diff --git a/dist/xeokit-bim-viewer.es.js b/dist/xeokit-bim-viewer.es.js index 83b04fea..f5be75b7 100644 --- a/dist/xeokit-bim-viewer.es.js +++ b/dist/xeokit-bim-viewer.es.js @@ -96798,7 +96798,7 @@ function getTableHeader$1(table) { return 'empty'; } -class Log$2 { +class Log$1 { constructor({ id } = { @@ -97045,7 +97045,7 @@ class Log$2 { } } -Log$2.VERSION = VERSION$7; +Log$1.VERSION = VERSION$7; function normalizeLogLevel$1(logLevel) { if (!logLevel) { @@ -97174,7 +97174,7 @@ function logImageInBrowser$1({ return noop$1; } -new Log$2({ +new Log$1({ id: 'loaders.gl' }); class ConsoleLog { @@ -97457,7 +97457,7 @@ const cache = {}; const ONCE = { once: true }; -class Log$1 { +class Log { constructor() { let { id @@ -97727,7 +97727,7 @@ class Log$1 { } -_defineProperty(Log$1, "VERSION", VERSION$6); +_defineProperty(Log, "VERSION", VERSION$6); function normalizeLogLevel(logLevel) { if (!logLevel) { @@ -97869,7 +97869,7 @@ function getTableHeader(table) { return 'empty'; } -new Log$1({ +new Log({ id: 'loaders.gl' }); @@ -108668,50190 +108668,6 @@ const zipExt = function(zipObj) { const zip = zipLib.zip; zipExt(zip); -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; - -// dist/web-ifc-mt.js -var require_web_ifc_mt = __commonJS({ - "dist/web-ifc-mt.js"(exports, module) { - var WebIFCWasm2 = (() => { - var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; - return function(WebIFCWasm3 = {}) { - function GROWABLE_HEAP_I8() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAP8; - } - function GROWABLE_HEAP_U8() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPU8; - } - function GROWABLE_HEAP_I16() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAP16; - } - function GROWABLE_HEAP_U16() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPU16; - } - function GROWABLE_HEAP_I32() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAP32; - } - function GROWABLE_HEAP_U32() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPU32; - } - function GROWABLE_HEAP_F32() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPF32; - } - function GROWABLE_HEAP_F64() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPF64; - } - var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; - var readyPromiseResolve, readyPromiseReject; - Module["ready"] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; - }); - var moduleOverrides = Object.assign({}, Module); - var thisProgram = "./this.program"; - var quit_ = (status, toThrow) => { - throw toThrow; - }; - var ENVIRONMENT_IS_WEB = typeof window == "object"; - var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; - var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; - var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false; - var scriptDirectory = ""; - function locateFile(path) { - if (Module["locateFile"]) { - return Module["locateFile"](path, scriptDirectory); - } - return scriptDirectory + path; - } - var read_, readAsync, readBinary; - if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - if (ENVIRONMENT_IS_WORKER) { - scriptDirectory = self.location.href; - } else if (typeof document != "undefined" && document.currentScript) { - scriptDirectory = document.currentScript.src; - } - if (_scriptDir) { - scriptDirectory = _scriptDir; - } - if (scriptDirectory.indexOf("blob:") !== 0) { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); - } else { - scriptDirectory = ""; - } - { - read_ = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, false); - xhr.send(null); - return xhr.responseText; - }; - if (ENVIRONMENT_IS_WORKER) { - readBinary = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, false); - xhr.responseType = "arraybuffer"; - xhr.send(null); - return new Uint8Array(xhr.response); - }; - } - readAsync = (url, onload, onerror) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, true); - xhr.responseType = "arraybuffer"; - xhr.onload = () => { - if (xhr.status == 200 || xhr.status == 0 && xhr.response) { - onload(xhr.response); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - }; - } - } - var out = Module["print"] || console.log.bind(console); - var err = Module["printErr"] || console.warn.bind(console); - Object.assign(Module, moduleOverrides); - moduleOverrides = null; - if (Module["arguments"]) - ; - if (Module["thisProgram"]) - thisProgram = Module["thisProgram"]; - if (Module["quit"]) - quit_ = Module["quit"]; - var wasmBinary; - if (Module["wasmBinary"]) - wasmBinary = Module["wasmBinary"]; - var noExitRuntime = Module["noExitRuntime"] || true; - if (typeof WebAssembly != "object") { - abort("no native wasm support detected"); - } - var wasmMemory; - var wasmModule; - var ABORT = false; - var EXITSTATUS; - function assert(condition, text) { - if (!condition) { - abort(text); - } - } - var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; - function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { - idx >>>= 0; - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) - ++endPtr; - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr)); - } - var str = ""; - while (idx < endPtr) { - var u0 = heapOrArray[idx++]; - if (!(u0 & 128)) { - str += String.fromCharCode(u0); - continue; - } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 224) == 192) { - str += String.fromCharCode((u0 & 31) << 6 | u1); - continue; - } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 240) == 224) { - u0 = (u0 & 15) << 12 | u1 << 6 | u2; - } else { - u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; - } - if (u0 < 65536) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } - } - return str; - } - function UTF8ToString(ptr, maxBytesToRead) { - ptr >>>= 0; - return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : ""; - } - function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - outIdx >>>= 0; - if (!(maxBytesToWrite > 0)) - return 0; - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) { - var u1 = str.charCodeAt(++i); - u = 65536 + ((u & 1023) << 10) | u1 & 1023; - } - if (u <= 127) { - if (outIdx >= endIdx) - break; - heap[outIdx++ >>> 0] = u; - } else if (u <= 2047) { - if (outIdx + 1 >= endIdx) - break; - heap[outIdx++ >>> 0] = 192 | u >> 6; - heap[outIdx++ >>> 0] = 128 | u & 63; - } else if (u <= 65535) { - if (outIdx + 2 >= endIdx) - break; - heap[outIdx++ >>> 0] = 224 | u >> 12; - heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; - heap[outIdx++ >>> 0] = 128 | u & 63; - } else { - if (outIdx + 3 >= endIdx) - break; - heap[outIdx++ >>> 0] = 240 | u >> 18; - heap[outIdx++ >>> 0] = 128 | u >> 12 & 63; - heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; - heap[outIdx++ >>> 0] = 128 | u & 63; - } - } - heap[outIdx >>> 0] = 0; - return outIdx - startIdx; - } - function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite); - } - function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var c = str.charCodeAt(i); - if (c <= 127) { - len++; - } else if (c <= 2047) { - len += 2; - } else if (c >= 55296 && c <= 57343) { - len += 4; - ++i; - } else { - len += 3; - } - } - return len; - } - var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; - function updateMemoryViews() { - var b = wasmMemory.buffer; - Module["HEAP8"] = HEAP8 = new Int8Array(b); - Module["HEAP16"] = HEAP16 = new Int16Array(b); - Module["HEAP32"] = HEAP32 = new Int32Array(b); - Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); - Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); - Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); - Module["HEAPF32"] = HEAPF32 = new Float32Array(b); - Module["HEAPF64"] = HEAPF64 = new Float64Array(b); - } - var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; - assert(INITIAL_MEMORY >= 5242880, "INITIAL_MEMORY should be larger than STACK_SIZE, was " + INITIAL_MEMORY + "! (STACK_SIZE=" + 5242880 + ")"); - if (ENVIRONMENT_IS_PTHREAD) { - wasmMemory = Module["wasmMemory"]; - } else { - if (Module["wasmMemory"]) { - wasmMemory = Module["wasmMemory"]; - } else { - wasmMemory = new WebAssembly.Memory({ "initial": INITIAL_MEMORY / 65536, "maximum": 4294967296 / 65536, "shared": true }); - if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) { - err("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"); - if (ENVIRONMENT_IS_NODE) { - err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"); - } - throw Error("bad memory"); - } - } - } - updateMemoryViews(); - INITIAL_MEMORY = wasmMemory.buffer.byteLength; - var wasmTable; - var __ATPRERUN__ = []; - var __ATINIT__ = []; - var __ATPOSTRUN__ = []; - function keepRuntimeAlive() { - return noExitRuntime; - } - function preRun() { - if (Module["preRun"]) { - if (typeof Module["preRun"] == "function") - Module["preRun"] = [Module["preRun"]]; - while (Module["preRun"].length) { - addOnPreRun(Module["preRun"].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); - } - function initRuntime() { - if (ENVIRONMENT_IS_PTHREAD) - return; - if (!Module["noFSInit"] && !FS.init.initialized) - FS.init(); - FS.ignorePermissions = false; - callRuntimeCallbacks(__ATINIT__); - } - function postRun() { - if (ENVIRONMENT_IS_PTHREAD) - return; - if (Module["postRun"]) { - if (typeof Module["postRun"] == "function") - Module["postRun"] = [Module["postRun"]]; - while (Module["postRun"].length) { - addOnPostRun(Module["postRun"].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); - } - function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); - } - function addOnInit(cb) { - __ATINIT__.unshift(cb); - } - function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); - } - var runDependencies = 0; - var dependenciesFulfilled = null; - function getUniqueRunDependency(id) { - return id; - } - function addRunDependency(id) { - runDependencies++; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - } - function removeRunDependency(id) { - runDependencies--; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - if (runDependencies == 0) { - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); - } - } - } - function abort(what) { - if (Module["onAbort"]) { - Module["onAbort"](what); - } - what = "Aborted(" + what + ")"; - err(what); - ABORT = true; - EXITSTATUS = 1; - what += ". Build with -sASSERTIONS for more info."; - var e = new WebAssembly.RuntimeError(what); - readyPromiseReject(e); - throw e; - } - var dataURIPrefix = "data:application/octet-stream;base64,"; - function isDataURI(filename) { - return filename.startsWith(dataURIPrefix); - } - var wasmBinaryFile; - wasmBinaryFile = "web-ifc-mt.wasm"; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) { - return readBinary(file); - } - throw "both async and sync fetching of the wasm failed"; - } catch (err2) { - abort(err2); - } - } - function getBinaryPromise() { - if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { - if (typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - if (!response["ok"]) { - throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; - } - return response["arrayBuffer"](); - }).catch(function() { - return getBinary(wasmBinaryFile); - }); - } - } - return Promise.resolve().then(function() { - return getBinary(wasmBinaryFile); - }); - } - function createWasm() { - var info = { "a": wasmImports }; - function receiveInstance(instance, module2) { - var exports3 = instance.exports; - Module["asm"] = exports3; - registerTLSInit(Module["asm"]["ka"]); - wasmTable = Module["asm"]["ia"]; - addOnInit(Module["asm"]["ha"]); - wasmModule = module2; - PThread.loadWasmModuleToAllWorkers(() => removeRunDependency()); - } - addRunDependency(); - function receiveInstantiationResult(result) { - receiveInstance(result["instance"], result["module"]); - } - function instantiateArrayBuffer(receiver) { - return getBinaryPromise().then(function(binary) { - return WebAssembly.instantiate(binary, info); - }).then(function(instance) { - return instance; - }).then(receiver, function(reason) { - err("failed to asynchronously prepare wasm: " + reason); - abort(reason); - }); - } - function instantiateAsync() { - if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - var result = WebAssembly.instantiateStreaming(response, info); - return result.then(receiveInstantiationResult, function(reason) { - err("wasm streaming compile failed: " + reason); - err("falling back to ArrayBuffer instantiation"); - return instantiateArrayBuffer(receiveInstantiationResult); - }); - }); - } else { - return instantiateArrayBuffer(receiveInstantiationResult); - } - } - if (Module["instantiateWasm"]) { - try { - var exports2 = Module["instantiateWasm"](info, receiveInstance); - return exports2; - } catch (e) { - err("Module.instantiateWasm callback failed with error: " + e); - readyPromiseReject(e); - } - } - instantiateAsync().catch(readyPromiseReject); - return {}; - } - var tempDouble; - var tempI64; - function ExitStatus(status) { - this.name = "ExitStatus"; - this.message = "Program terminated with exit(" + status + ")"; - this.status = status; - } - function killThread(pthread_ptr) { - var worker = PThread.pthreads[pthread_ptr]; - delete PThread.pthreads[pthread_ptr]; - worker.terminate(); - __emscripten_thread_free_data(pthread_ptr); - PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); - worker.pthread_ptr = 0; - } - function cancelThread(pthread_ptr) { - var worker = PThread.pthreads[pthread_ptr]; - worker.postMessage({ "cmd": "cancel" }); - } - function cleanupThread(pthread_ptr) { - var worker = PThread.pthreads[pthread_ptr]; - assert(worker); - PThread.returnWorkerToPool(worker); - } - function spawnThread(threadParams) { - var worker = PThread.getNewWorker(); - if (!worker) { - return 6; - } - PThread.runningWorkers.push(worker); - PThread.pthreads[threadParams.pthread_ptr] = worker; - worker.pthread_ptr = threadParams.pthread_ptr; - var msg = { "cmd": "run", "start_routine": threadParams.startRoutine, "arg": threadParams.arg, "pthread_ptr": threadParams.pthread_ptr }; - worker.postMessage(msg, threadParams.transferList); - return 0; - } - var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - }, normalizeArray: (parts, allowAboveRoot) => { - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === ".") { - parts.splice(i, 1); - } else if (last === "..") { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift(".."); - } - } - return parts; - }, normalize: (path) => { - var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; - path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/"); - if (!path && !isAbsolute) { - path = "."; - } - if (path && trailingSlash) { - path += "/"; - } - return (isAbsolute ? "/" : "") + path; - }, dirname: (path) => { - var result = PATH.splitPath(path), root = result[0], dir = result[1]; - if (!root && !dir) { - return "."; - } - if (dir) { - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - }, basename: (path) => { - if (path === "/") - return "/"; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf("/"); - if (lastSlash === -1) - return path; - return path.substr(lastSlash + 1); - }, join: function() { - var paths = Array.prototype.slice.call(arguments); - return PATH.normalize(paths.join("/")); - }, join2: (l, r) => { - return PATH.normalize(l + "/" + r); - } }; - function getRandomDevice() { - if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { - var randomBuffer = new Uint8Array(1); - return () => { - crypto.getRandomValues(randomBuffer); - return randomBuffer[0]; - }; - } else - return () => abort("randomDevice"); - } - var PATH_FS = { resolve: function() { - var resolvedPath = "", resolvedAbsolute = false; - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = i >= 0 ? arguments[i] : FS.cwd(); - if (typeof path != "string") { - throw new TypeError("Arguments to path.resolve must be strings"); - } else if (!path) { - return ""; - } - resolvedPath = path + "/" + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/"); - return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; - }, relative: (from, to) => { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== "") - break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== "") - break; - } - if (start > end) - return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split("/")); - var toParts = trim(to.split("/")); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push(".."); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join("/"); - } }; - function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) - u8array.length = numBytesWritten; - return u8array; - } - var TTY = { ttys: [], init: function() { - }, shutdown: function() { - }, register: function(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops }; - FS.registerDevice(dev, TTY.stream_ops); - }, stream_ops: { open: function(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - }, close: function(stream) { - stream.tty.ops.fsync(stream.tty); - }, fsync: function(stream) { - stream.tty.ops.fsync(stream.tty); - }, read: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === void 0 && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === void 0) - break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, write: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset + i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } }, default_tty_ops: { get_char: function(tty) { - if (!tty.input.length) { - var result = null; - if (typeof window != "undefined" && typeof window.prompt == "function") { - result = window.prompt("Input: "); - if (result !== null) { - result += "\n"; - } - } else if (typeof readline == "function") { - result = readline(); - if (result !== null) { - result += "\n"; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); - }, put_char: function(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) - tty.output.push(val); - } - }, fsync: function(tty) { - if (tty.output && tty.output.length > 0) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } }, default_tty1_ops: { put_char: function(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) - tty.output.push(val); - } - }, fsync: function(tty) { - if (tty.output && tty.output.length > 0) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } } }; - function mmapAlloc(size) { - abort(); - } - var MEMFS = { ops_table: null, mount: function(mount) { - return MEMFS.createNode(null, "/", 16384 | 511, 0); - }, createNode: function(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - throw new FS.ErrnoError(63); - } - if (!MEMFS.ops_table) { - MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; - } - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - if (parent) { - parent.contents[name] = node; - parent.timestamp = node.timestamp; - } - return node; - }, getFileDataAsTypedArray: function(node) { - if (!node.contents) - return new Uint8Array(0); - if (node.contents.subarray) - return node.contents.subarray(0, node.usedBytes); - return new Uint8Array(node.contents); - }, expandFileStorage: function(node, newCapacity) { - newCapacity >>>= 0; - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) - return; - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0); - if (prevCapacity != 0) - newCapacity = Math.max(newCapacity, 256); - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); - if (node.usedBytes > 0) - node.contents.set(oldContents.subarray(0, node.usedBytes), 0); - }, resizeFileStorage: function(node, newSize) { - newSize >>>= 0; - if (node.usedBytes == newSize) - return; - if (newSize == 0) { - node.contents = null; - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); - } - node.usedBytes = newSize; - } - }, node_ops: { getattr: function(node) { - var attr = {}; - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - }, setattr: function(node, attr) { - if (attr.mode !== void 0) { - node.mode = attr.mode; - } - if (attr.timestamp !== void 0) { - node.timestamp = attr.timestamp; - } - if (attr.size !== void 0) { - MEMFS.resizeFileStorage(node, attr.size); - } - }, lookup: function(parent, name) { - throw FS.genericErrors[44]; - }, mknod: function(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - }, rename: function(old_node, new_dir, new_name) { - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } - } - } - delete old_node.parent.contents[old_node.name]; - old_node.parent.timestamp = Date.now(); - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - new_dir.timestamp = old_node.parent.timestamp; - old_node.parent = new_dir; - }, unlink: function(parent, name) { - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, rmdir: function(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, readdir: function(node) { - var entries = [".", ".."]; - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - }, symlink: function(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); - node.link = oldpath; - return node; - }, readlink: function(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - } }, stream_ops: { read: function(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) - return 0; - var size = Math.min(stream.node.usedBytes - position, length); - if (size > 8 && contents.subarray) { - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) - buffer[offset + i] = contents[position + i]; - } - return size; - }, write: function(stream, buffer, offset, length, position, canOwn) { - if (buffer.buffer === GROWABLE_HEAP_I8().buffer) { - canOwn = false; - } - if (!length) - return 0; - var node = stream.node; - node.timestamp = Date.now(); - if (buffer.subarray && (!node.contents || node.contents.subarray)) { - if (canOwn) { - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - MEMFS.expandFileStorage(node, position + length); - if (node.contents.subarray && buffer.subarray) { - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - }, llseek: function(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - }, allocate: function(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - }, mmap: function(stream, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - if (!(flags & 2) && contents.buffer === GROWABLE_HEAP_I8().buffer) { - allocated = false; - ptr = contents.byteOffset; - } else { - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call(contents, position, position + length); - } - } - allocated = true; - ptr = mmapAlloc(); - if (!ptr) { - throw new FS.ErrnoError(48); - } - ptr >>>= 0; - GROWABLE_HEAP_I8().set(contents, ptr >>> 0); - } - return { ptr, allocated }; - }, msync: function(stream, buffer, offset, length, mmapFlags) { - MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - return 0; - } } }; - function asyncLoad(url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; - readAsync(url, (arrayBuffer) => { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) - removeRunDependency(); - }, (event) => { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) - addRunDependency(); - } - var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { - path = PATH_FS.resolve(path); - if (!path) - return { path: "", node: null }; - var defaults = { follow_mount: true, recurse_count: 0 }; - opts = Object.assign(defaults, opts); - if (opts.recurse_count > 8) { - throw new FS.ErrnoError(32); - } - var parts = path.split("/").filter((p) => !!p); - var current = FS.root; - var current_path = "/"; - for (var i = 0; i < parts.length; i++) { - var islast = i === parts.length - 1; - if (islast && opts.parent) { - break; - } - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - if (FS.isMountpoint(current)) { - if (!islast || islast && opts.follow_mount) { - current = current.mounted.root; - } - } - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); - current = lookup.node; - if (count++ > 40) { - throw new FS.ErrnoError(32); - } - } - } - } - return { path: current_path, node: current }; - }, getPath: (node) => { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) - return mount; - return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; - } - path = path ? node.name + "/" + path : node.name; - node = node.parent; - } - }, hashName: (parentid, name) => { - var hash = 0; - for (var i = 0; i < name.length; i++) { - hash = (hash << 5) - hash + name.charCodeAt(i) | 0; - } - return (parentid + hash >>> 0) % FS.nameTable.length; - }, hashAddNode: (node) => { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - }, hashRemoveNode: (node) => { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; - } - current = current.name_next; - } - } - }, lookupNode: (parent, name) => { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode, parent); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - return FS.lookup(parent, name); - }, createNode: (parent, name, mode, rdev) => { - var node = new FS.FSNode(parent, name, mode, rdev); - FS.hashAddNode(node); - return node; - }, destroyNode: (node) => { - FS.hashRemoveNode(node); - }, isRoot: (node) => { - return node === node.parent; - }, isMountpoint: (node) => { - return !!node.mounted; - }, isFile: (mode) => { - return (mode & 61440) === 32768; - }, isDir: (mode) => { - return (mode & 61440) === 16384; - }, isLink: (mode) => { - return (mode & 61440) === 40960; - }, isChrdev: (mode) => { - return (mode & 61440) === 8192; - }, isBlkdev: (mode) => { - return (mode & 61440) === 24576; - }, isFIFO: (mode) => { - return (mode & 61440) === 4096; - }, isSocket: (mode) => { - return (mode & 49152) === 49152; - }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { - var flags = FS.flagModes[str]; - if (typeof flags == "undefined") { - throw new Error("Unknown file open mode: " + str); - } - return flags; - }, flagsToPermissionString: (flag) => { - var perms = ["r", "w", "rw"][flag & 3]; - if (flag & 512) { - perms += "w"; - } - return perms; - }, nodePermissions: (node, perms) => { - if (FS.ignorePermissions) { - return 0; - } - if (perms.includes("r") && !(node.mode & 292)) { - return 2; - } else if (perms.includes("w") && !(node.mode & 146)) { - return 2; - } else if (perms.includes("x") && !(node.mode & 73)) { - return 2; - } - return 0; - }, mayLookup: (dir) => { - var errCode = FS.nodePermissions(dir, "x"); - if (errCode) - return errCode; - if (!dir.node_ops.lookup) - return 2; - return 0; - }, mayCreate: (dir, name) => { - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) { - } - return FS.nodePermissions(dir, "wx"); - }, mayDelete: (dir, name, isdir) => { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, "wx"); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - }, mayOpen: (node, flags) => { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { - for (var fd = fd_start; fd <= fd_end; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { - if (!FS.FSStream) { - FS.FSStream = function() { - this.shared = {}; - }; - FS.FSStream.prototype = {}; - Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { - return this.node; - }, set: function(val) { - this.node = val; - } }, isRead: { get: function() { - return (this.flags & 2097155) !== 1; - } }, isWrite: { get: function() { - return (this.flags & 2097155) !== 0; - } }, isAppend: { get: function() { - return this.flags & 1024; - } }, flags: { get: function() { - return this.shared.flags; - }, set: function(val) { - this.shared.flags = val; - } }, position: { get: function() { - return this.shared.position; - }, set: function(val) { - this.shared.position = val; - } } }); - } - stream = Object.assign(new FS.FSStream(), stream); - var fd = FS.nextfd(fd_start, fd_end); - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - }, closeStream: (fd) => { - FS.streams[fd] = null; - }, chrdev_stream_ops: { open: (stream) => { - var device = FS.getDevice(stream.node.rdev); - stream.stream_ops = device.stream_ops; - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - }, llseek: () => { - throw new FS.ErrnoError(70); - } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => { - FS.devices[dev] = { stream_ops: ops }; - }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => { - var mounts = []; - var check = [mount]; - while (check.length) { - var m = check.pop(); - mounts.push(m); - check.push.apply(check, m.mounts); - } - return mounts; - }, syncfs: (populate, callback) => { - if (typeof populate == "function") { - callback = populate; - populate = false; - } - FS.syncFSRequests++; - if (FS.syncFSRequests > 1) { - err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); - } - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - function doCallback(errCode) { - FS.syncFSRequests--; - return callback(errCode); - } - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); - } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - } - mounts.forEach((mount) => { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - }, mount: (type, opts, mountpoint) => { - var root = mountpoint === "/"; - var pseudo = !mountpoint; - var node; - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - mountpoint = lookup.path; - node = lookup.node; - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - var mount = { type, opts, mountpoint, mounts: [] }; - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - if (root) { - FS.root = mountRoot; - } else if (node) { - node.mounted = mount; - if (node.mount) { - node.mount.mounts.push(mount); - } - } - return mountRoot; - }, unmount: (mountpoint) => { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - Object.keys(FS.nameTable).forEach((hash) => { - var current = FS.nameTable[hash]; - while (current) { - var next = current.name_next; - if (mounts.includes(current.mount)) { - FS.destroyNode(current); - } - current = next; - } - }); - node.mounted = null; - var idx = node.mount.mounts.indexOf(mount); - node.mount.mounts.splice(idx, 1); - }, lookup: (parent, name) => { - return parent.node_ops.lookup(parent, name); - }, mknod: (path, mode, dev) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === "." || name === "..") { - throw new FS.ErrnoError(28); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - }, create: (path, mode) => { - mode = mode !== void 0 ? mode : 438; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - }, mkdir: (path, mode) => { - mode = mode !== void 0 ? mode : 511; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - }, mkdirTree: (path, mode) => { - var dirs = path.split("/"); - var d = ""; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) - continue; - d += "/" + dirs[i]; - try { - FS.mkdir(d, mode); - } catch (e) { - if (e.errno != 20) - throw e; - } - } - }, mkdev: (path, mode, dev) => { - if (typeof dev == "undefined") { - dev = mode; - mode = 438; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - }, symlink: (oldpath, newpath) => { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - }, rename: (old_path, new_path) => { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - var lookup, old_dir, new_dir; - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - if (!old_dir || !new_dir) - throw new FS.ErrnoError(44); - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - var old_node = FS.lookupNode(old_dir, old_name); - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(28); - } - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(55); - } - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (old_node === new_node) { - return; - } - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { - throw new FS.ErrnoError(10); - } - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - FS.hashRemoveNode(old_node); - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - } catch (e) { - throw e; - } finally { - FS.hashAddNode(old_node); - } - }, rmdir: (path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - }, readdir: (path) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); - }, unlink: (path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - }, readlink: (path) => { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); - }, stat: (path, dontFollow) => { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); - }, lstat: (path) => { - return FS.stat(path, true); - }, chmod: (path, mode, dontFollow) => { - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() }); - }, lchmod: (path, mode) => { - FS.chmod(path, mode, true); - }, fchmod: (fd, mode) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chmod(stream.node, mode); - }, chown: (path, uid, gid, dontFollow) => { - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { timestamp: Date.now() }); - }, lchown: (path, uid, gid) => { - FS.chown(path, uid, gid, true); - }, fchown: (fd, uid, gid) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chown(stream.node, uid, gid); - }, truncate: (path, len) => { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); - }, ftruncate: (fd, len) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.truncate(stream.node, len); - }, utime: (path, atime, mtime) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); - }, open: (path, flags, mode) => { - if (path === "") { - throw new FS.ErrnoError(44); - } - flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; - mode = typeof mode == "undefined" ? 438 : mode; - if (flags & 64) { - mode = mode & 4095 | 32768; - } else { - mode = 0; - } - var node; - if (typeof path == "object") { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); - node = lookup.node; - } catch (e) { - } - } - var created = false; - if (flags & 64) { - if (node) { - if (flags & 128) { - throw new FS.ErrnoError(20); - } - } else { - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - if (flags & 65536 && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - if (flags & 512 && !created) { - FS.truncate(node, 0); - } - flags &= ~(128 | 512 | 131072); - var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }); - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module["logReadFiles"] && !(flags & 1)) { - if (!FS.readFiles) - FS.readFiles = {}; - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } - } - return stream; - }, close: (stream) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) - stream.getdents = null; - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - }, isClosed: (stream) => { - return stream.fd === null; - }, llseek: (stream, offset, whence) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - }, read: (stream, buffer, offset, length, position) => { - offset >>>= 0; - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position != "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); - if (!seeking) - stream.position += bytesRead; - return bytesRead; - }, write: (stream, buffer, offset, length, position, canOwn) => { - offset >>>= 0; - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - FS.llseek(stream, 0, 2); - } - var seeking = typeof position != "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); - if (!seeking) - stream.position += bytesWritten; - return bytesWritten; - }, allocate: (stream, offset, length) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - }, mmap: (stream, length, position, prot, flags) => { - if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - return stream.stream_ops.mmap(stream, length, position, prot, flags); - }, msync: (stream, buffer, offset, length, mmapFlags) => { - offset >>>= 0; - if (!stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - }, readFile: (path, opts = {}) => { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || "binary"; - if (opts.encoding !== "utf8" && opts.encoding !== "binary") { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === "utf8") { - ret = UTF8ArrayToString(buf, 0); - } else if (opts.encoding === "binary") { - ret = buf; - } - FS.close(stream); - return ret; - }, writeFile: (path, data, opts = {}) => { - opts.flags = opts.flags || 577; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == "string") { - var buf = new Uint8Array(lengthBytesUTF8(data) + 1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn); - } else { - throw new Error("Unsupported data type"); - } - FS.close(stream); - }, cwd: () => FS.currentPath, chdir: (path) => { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); - } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); - } - var errCode = FS.nodePermissions(lookup.node, "x"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - FS.currentPath = lookup.path; - }, createDefaultDirectories: () => { - FS.mkdir("/tmp"); - FS.mkdir("/home"); - FS.mkdir("/home/web_user"); - }, createDefaultDevices: () => { - FS.mkdir("/dev"); - FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length }); - FS.mkdev("/dev/null", FS.makedev(1, 3)); - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev("/dev/tty", FS.makedev(5, 0)); - FS.mkdev("/dev/tty1", FS.makedev(6, 0)); - var random_device = getRandomDevice(); - FS.createDevice("/dev", "random", random_device); - FS.createDevice("/dev", "urandom", random_device); - FS.mkdir("/dev/shm"); - FS.mkdir("/dev/shm/tmp"); - }, createSpecialDirectories: () => { - FS.mkdir("/proc"); - var proc_self = FS.mkdir("/proc/self"); - FS.mkdir("/proc/self/fd"); - FS.mount({ mount: () => { - var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); - node.node_ops = { lookup: (parent, name) => { - var fd = +name; - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); - var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; - ret.parent = ret; - return ret; - } }; - return node; - } }, {}, "/proc/self/fd"); - }, createStandardStreams: () => { - if (Module["stdin"]) { - FS.createDevice("/dev", "stdin", Module["stdin"]); - } else { - FS.symlink("/dev/tty", "/dev/stdin"); - } - if (Module["stdout"]) { - FS.createDevice("/dev", "stdout", null, Module["stdout"]); - } else { - FS.symlink("/dev/tty", "/dev/stdout"); - } - if (Module["stderr"]) { - FS.createDevice("/dev", "stderr", null, Module["stderr"]); - } else { - FS.symlink("/dev/tty1", "/dev/stderr"); - } - FS.open("/dev/stdin", 0); - FS.open("/dev/stdout", 1); - FS.open("/dev/stderr", 1); - }, ensureErrnoError: () => { - if (FS.ErrnoError) - return; - FS.ErrnoError = function ErrnoError(errno, node) { - this.node = node; - this.setErrno = function(errno2) { - this.errno = errno2; - }; - this.setErrno(errno); - this.message = "FS error"; - }; - FS.ErrnoError.prototype = new Error(); - FS.ErrnoError.prototype.constructor = FS.ErrnoError; - [44].forEach((code) => { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ""; - }); - }, staticInit: () => { - FS.ensureErrnoError(); - FS.nameTable = new Array(4096); - FS.mount(MEMFS, {}, "/"); - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - FS.filesystems = { "MEMFS": MEMFS }; - }, init: (input, output, error) => { - FS.init.initialized = true; - FS.ensureErrnoError(); - Module["stdin"] = input || Module["stdin"]; - Module["stdout"] = output || Module["stdout"]; - Module["stderr"] = error || Module["stderr"]; - FS.createStandardStreams(); - }, quit: () => { - FS.init.initialized = false; - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - }, getMode: (canRead, canWrite) => { - var mode = 0; - if (canRead) - mode |= 292 | 73; - if (canWrite) - mode |= 146; - return mode; - }, findObject: (path, dontResolveLastLink) => { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; - } - return ret.object; - }, analyzePath: (path, dontResolveLastLink) => { - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) { - } - var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === "/"; - } catch (e) { - ret.error = e.errno; - } - return ret; - }, createPath: (parent, path, canRead, canWrite) => { - parent = typeof parent == "string" ? parent : FS.getPath(parent); - var parts = path.split("/").reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) - continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - } - parent = current; - } - return current; - }, createFile: (parent, name, properties, canRead, canWrite) => { - var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); - return FS.create(path, mode); - }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { - var path = name; - if (parent) { - parent = typeof parent == "string" ? parent : FS.getPath(parent); - path = name ? PATH.join2(parent, name) : parent; - } - var mode = FS.getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data == "string") { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) - arr[i] = data.charCodeAt(i); - data = arr; - } - FS.chmod(node, mode | 146); - var stream = FS.open(node, 577); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - return node; - }, createDevice: (parent, name, input, output) => { - var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); - if (!FS.createDevice.major) - FS.createDevice.major = 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - FS.registerDevice(dev, { open: (stream) => { - stream.seekable = false; - }, close: (stream) => { - if (output && output.buffer && output.buffer.length) { - output(10); - } - }, read: (stream, buffer, offset, length, pos) => { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === void 0 && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === void 0) - break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, write: (stream, buffer, offset, length, pos) => { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset + i]); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } }); - return FS.mkdev(path, mode, dev); - }, forceLoadFile: (obj) => { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) - return true; - if (typeof XMLHttpRequest != "undefined") { - 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."); - } else if (read_) { - try { - obj.contents = intArrayFromString(read_(obj.url), true); - obj.usedBytes = obj.contents.length; - } catch (e) { - throw new FS.ErrnoError(29); - } - } else { - throw new Error("Cannot load without read() or XMLHttpRequest."); - } - }, createLazyFile: (parent, name, url, canRead, canWrite) => { - function LazyUint8Array() { - this.lengthKnown = false; - this.chunks = []; - } - LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { - if (idx > this.length - 1 || idx < 0) { - return void 0; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = idx / this.chunkSize | 0; - return this.getter(chunkNum)[chunkOffset]; - }; - LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { - this.getter = getter; - }; - LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { - var xhr = new XMLHttpRequest(); - xhr.open("HEAD", url, false); - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; - var chunkSize = 1024 * 1024; - if (!hasByteServing) - chunkSize = datalength; - var doXHR = (from, to) => { - if (from > to) - throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength - 1) - throw new Error("only " + datalength + " bytes available! programmer error!"); - var xhr2 = new XMLHttpRequest(); - xhr2.open("GET", url, false); - if (datalength !== chunkSize) - xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to); - xhr2.responseType = "arraybuffer"; - if (xhr2.overrideMimeType) { - xhr2.overrideMimeType("text/plain; charset=x-user-defined"); - } - xhr2.send(null); - if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr2.status); - if (xhr2.response !== void 0) { - return new Uint8Array(xhr2.response || []); - } - return intArrayFromString(xhr2.responseText || "", true); - }; - var lazyArray2 = this; - lazyArray2.setDataGetter((chunkNum) => { - var start = chunkNum * chunkSize; - var end = (chunkNum + 1) * chunkSize - 1; - end = Math.min(end, datalength - 1); - if (typeof lazyArray2.chunks[chunkNum] == "undefined") { - lazyArray2.chunks[chunkNum] = doXHR(start, end); - } - if (typeof lazyArray2.chunks[chunkNum] == "undefined") - throw new Error("doXHR failed!"); - return lazyArray2.chunks[chunkNum]; - }); - if (usesGzip || !datalength) { - chunkSize = datalength = 1; - datalength = this.getter(0).length; - chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); - } - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - }; - if (typeof XMLHttpRequest != "undefined") { - if (!ENVIRONMENT_IS_WORKER) - throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; - var lazyArray = new LazyUint8Array(); - Object.defineProperties(lazyArray, { length: { get: function() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._length; - } }, chunkSize: { get: function() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._chunkSize; - } } }); - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url }; - } - var node = FS.createFile(parent, name, properties, canRead, canWrite); - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; - } - Object.defineProperties(node, { usedBytes: { get: function() { - return this.contents.length; - } } }); - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach((key) => { - var fn = node.stream_ops[key]; - stream_ops[key] = function forceLoadLazyFile() { - FS.forceLoadFile(node); - return fn.apply(null, arguments); - }; - }); - function writeChunks(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= contents.length) - return 0; - var size = Math.min(contents.length - position, length); - if (contents.slice) { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; - } - } else { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents.get(position + i); - } - } - return size; - } - stream_ops.read = (stream, buffer, offset, length, position) => { - FS.forceLoadFile(node); - return writeChunks(stream, buffer, offset, length, position); - }; - stream_ops.mmap = (stream, length, position, prot, flags) => { - FS.forceLoadFile(node); - var ptr = mmapAlloc(); - if (!ptr) { - throw new FS.ErrnoError(48); - } - writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position); - return { ptr, allocated: true }; - }; - node.stream_ops = stream_ops; - return node; - }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - function processData(byteArray) { - function finish(byteArray2) { - if (preFinish) - preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); - } - if (onload) - onload(); - removeRunDependency(); - } - if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { - if (onerror) - onerror(); - removeRunDependency(); - })) { - return; - } - finish(byteArray); - } - addRunDependency(); - if (typeof url == "string") { - asyncLoad(url, (byteArray) => processData(byteArray), onerror); - } else { - processData(url); - } - }, indexedDB: () => { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - }, DB_NAME: () => { - return "EM_FS_" + window.location.pathname; - }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = () => { - out("creating db"); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - openRequest.onsuccess = () => { - var db = openRequest.result; - var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) - onload(); - else - onerror(); - } - paths.forEach((path) => { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = () => { - ok++; - if (ok + fail == total) - finish(); - }; - putRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }, loadFilesFromDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = onerror; - openRequest.onsuccess = () => { - var db = openRequest.result; - try { - var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); - } catch (e) { - onerror(e); - return; - } - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) - onload(); - else - onerror(); - } - paths.forEach((path) => { - var getRequest = files.get(path); - getRequest.onsuccess = () => { - if (FS.analyzePath(path).exists) { - FS.unlink(path); - } - FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); - ok++; - if (ok + fail == total) - finish(); - }; - getRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - } }; - var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { - if (PATH.isAbs(path)) { - return path; - } - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = SYSCALLS.getStreamFromFD(dirfd); - dir = dirstream.path; - } - if (path.length == 0) { - if (!allowEmpty) { - throw new FS.ErrnoError(44); - } - return dir; - } - return PATH.join2(dir, path); - }, doStat: function(func, path, buf) { - try { - var stat = func(path); - } catch (e) { - if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { - return -54; - } - throw e; - } - GROWABLE_HEAP_I32()[buf >>> 2] = stat.dev; - GROWABLE_HEAP_I32()[buf + 8 >>> 2] = stat.ino; - GROWABLE_HEAP_I32()[buf + 12 >>> 2] = stat.mode; - GROWABLE_HEAP_U32()[buf + 16 >>> 2] = stat.nlink; - GROWABLE_HEAP_I32()[buf + 20 >>> 2] = stat.uid; - GROWABLE_HEAP_I32()[buf + 24 >>> 2] = stat.gid; - GROWABLE_HEAP_I32()[buf + 28 >>> 2] = stat.rdev; - tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 40 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >>> 2] = tempI64[1]; - GROWABLE_HEAP_I32()[buf + 48 >>> 2] = 4096; - GROWABLE_HEAP_I32()[buf + 52 >>> 2] = stat.blocks; - var atime = stat.atime.getTime(); - var mtime = stat.mtime.getTime(); - var ctime = stat.ctime.getTime(); - tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 56 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >>> 2] = tempI64[1]; - GROWABLE_HEAP_U32()[buf + 64 >>> 2] = atime % 1e3 * 1e3; - tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 72 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >>> 2] = tempI64[1]; - GROWABLE_HEAP_U32()[buf + 80 >>> 2] = mtime % 1e3 * 1e3; - tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 88 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >>> 2] = tempI64[1]; - GROWABLE_HEAP_U32()[buf + 96 >>> 2] = ctime % 1e3 * 1e3; - tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 104 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 108 >>> 2] = tempI64[1]; - return 0; - }, doMsync: function(addr, stream, len, flags, offset) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (flags & 2) { - return 0; - } - addr >>>= 0; - var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - }, varargs: void 0, get: function() { - SYSCALLS.varargs += 4; - var ret = GROWABLE_HEAP_I32()[SYSCALLS.varargs - 4 >>> 2]; - return ret; - }, getStr: function(ptr) { - var ret = UTF8ToString(ptr); - return ret; - }, getStreamFromFD: function(fd) { - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); - return stream; - } }; - function _proc_exit(code) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(1, 1, code); - EXITSTATUS = code; - if (!keepRuntimeAlive()) { - PThread.terminateAllThreads(); - if (Module["onExit"]) - Module["onExit"](code); - ABORT = true; - } - quit_(code, new ExitStatus(code)); - } - function exitJS(status, implicit) { - EXITSTATUS = status; - if (!implicit) { - if (ENVIRONMENT_IS_PTHREAD) { - exitOnMainThread(status); - throw "unwind"; - } - } - _proc_exit(status); - } - var _exit = exitJS; - function handleException(e) { - if (e instanceof ExitStatus || e == "unwind") { - return EXITSTATUS; - } - quit_(1, e); - } - var PThread = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init: function() { - if (ENVIRONMENT_IS_PTHREAD) { - PThread.initWorker(); - } else { - PThread.initMainThread(); - } - }, initMainThread: function() { - var pthreadPoolSize = navigator.hardwareConcurrency; - while (pthreadPoolSize--) { - PThread.allocateUnusedWorker(); - } - }, initWorker: function() { - noExitRuntime = false; - }, setExitStatus: function(status) { - EXITSTATUS = status; - }, terminateAllThreads: function() { - for (var worker of Object.values(PThread.pthreads)) { - PThread.returnWorkerToPool(worker); - } - for (var worker of PThread.unusedWorkers) { - worker.terminate(); - } - PThread.unusedWorkers = []; - }, returnWorkerToPool: function(worker) { - var pthread_ptr = worker.pthread_ptr; - delete PThread.pthreads[pthread_ptr]; - PThread.unusedWorkers.push(worker); - PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); - worker.pthread_ptr = 0; - __emscripten_thread_free_data(pthread_ptr); - }, receiveObjectTransfer: function(data) { - }, threadInitTLS: function() { - PThread.tlsInitFunctions.forEach((f) => f()); - }, loadWasmModuleToWorker: (worker) => new Promise((onFinishedLoading) => { - worker.onmessage = (e) => { - var d = e["data"]; - var cmd = d["cmd"]; - if (worker.pthread_ptr) - PThread.currentProxiedOperationCallerThread = worker.pthread_ptr; - if (d["targetThread"] && d["targetThread"] != _pthread_self()) { - var targetWorker = PThread.pthreads[d.targetThread]; - if (targetWorker) { - targetWorker.postMessage(d, d["transferList"]); - } else { - err('Internal error! Worker sent a message "' + cmd + '" to target pthread ' + d["targetThread"] + ", but that thread no longer exists!"); - } - PThread.currentProxiedOperationCallerThread = void 0; - return; - } - if (cmd === "processProxyingQueue") { - executeNotifiedProxyingQueue(d["queue"]); - } else if (cmd === "spawnThread") { - spawnThread(d); - } else if (cmd === "cleanupThread") { - cleanupThread(d["thread"]); - } else if (cmd === "killThread") { - killThread(d["thread"]); - } else if (cmd === "cancelThread") { - cancelThread(d["thread"]); - } else if (cmd === "loaded") { - worker.loaded = true; - onFinishedLoading(worker); - } else if (cmd === "print") { - out("Thread " + d["threadId"] + ": " + d["text"]); - } else if (cmd === "printErr") { - err("Thread " + d["threadId"] + ": " + d["text"]); - } else if (cmd === "alert") { - alert("Thread " + d["threadId"] + ": " + d["text"]); - } else if (d.target === "setimmediate") { - worker.postMessage(d); - } else if (cmd === "callHandler") { - Module[d["handler"]](...d["args"]); - } else if (cmd) { - err("worker sent an unknown command " + cmd); - } - PThread.currentProxiedOperationCallerThread = void 0; - }; - worker.onerror = (e) => { - var message = "worker sent an error!"; - err(message + " " + e.filename + ":" + e.lineno + ": " + e.message); - throw e; - }; - var handlers = []; - var knownHandlers = ["onExit", "onAbort", "print", "printErr"]; - for (var handler of knownHandlers) { - if (Module.hasOwnProperty(handler)) { - handlers.push(handler); - } - } - worker.postMessage({ "cmd": "load", "handlers": handlers, "urlOrBlob": Module["mainScriptUrlOrBlob"] || _scriptDir, "wasmMemory": wasmMemory, "wasmModule": wasmModule }); - }), loadWasmModuleToAllWorkers: function(onMaybeReady) { - if (ENVIRONMENT_IS_PTHREAD) { - return onMaybeReady(); - } - let pthreadPoolReady = Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker)); - pthreadPoolReady.then(onMaybeReady); - }, allocateUnusedWorker: function() { - var worker; - var pthreadMainJs = locateFile("web-ifc-mt.worker.js"); - worker = new Worker(pthreadMainJs); - PThread.unusedWorkers.push(worker); - }, getNewWorker: function() { - if (PThread.unusedWorkers.length == 0) { - PThread.allocateUnusedWorker(); - PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]); - } - return PThread.unusedWorkers.pop(); - } }; - Module["PThread"] = PThread; - function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - callbacks.shift()(Module); - } - } - function establishStackSpace() { - var pthread_ptr = _pthread_self(); - var stackTop = GROWABLE_HEAP_I32()[pthread_ptr + 52 >>> 2]; - var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 56 >>> 2]; - var stackMax = stackTop - stackSize; - _emscripten_stack_set_limits(stackTop, stackMax); - stackRestore(stackTop); - } - Module["establishStackSpace"] = establishStackSpace; - function exitOnMainThread(returnCode) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(2, 0, returnCode); - try { - _exit(returnCode); - } catch (e) { - handleException(e); - } - } - var wasmTableMirror = []; - function getWasmTableEntry(funcPtr) { - var func = wasmTableMirror[funcPtr]; - if (!func) { - if (funcPtr >= wasmTableMirror.length) - wasmTableMirror.length = funcPtr + 1; - wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); - } - return func; - } - function invokeEntryPoint(ptr, arg) { - var result = getWasmTableEntry(ptr)(arg); - if (keepRuntimeAlive()) { - PThread.setExitStatus(result); - } else { - __emscripten_thread_exit(result); - } - } - Module["invokeEntryPoint"] = invokeEntryPoint; - function registerTLSInit(tlsInitFunc) { - PThread.tlsInitFunctions.push(tlsInitFunc); - } - function ExceptionInfo(excPtr) { - this.excPtr = excPtr; - this.ptr = excPtr - 24; - this.set_type = function(type) { - GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2] = type; - }; - this.get_type = function() { - return GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2]; - }; - this.set_destructor = function(destructor) { - GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2] = destructor; - }; - this.get_destructor = function() { - return GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2]; - }; - this.set_refcount = function(refcount) { - GROWABLE_HEAP_I32()[this.ptr >>> 2] = refcount; - }; - this.set_caught = function(caught) { - caught = caught ? 1 : 0; - GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] = caught; - }; - this.get_caught = function() { - return GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] != 0; - }; - this.set_rethrown = function(rethrown) { - rethrown = rethrown ? 1 : 0; - GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] = rethrown; - }; - this.get_rethrown = function() { - return GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] != 0; - }; - this.init = function(type, destructor) { - this.set_adjusted_ptr(0); - this.set_type(type); - this.set_destructor(destructor); - this.set_refcount(0); - this.set_caught(false); - this.set_rethrown(false); - }; - this.add_ref = function() { - Atomics.add(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); - }; - this.release_ref = function() { - var prev = Atomics.sub(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); - return prev === 1; - }; - this.set_adjusted_ptr = function(adjustedPtr) { - GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2] = adjustedPtr; - }; - this.get_adjusted_ptr = function() { - return GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2]; - }; - this.get_exception_ptr = function() { - var isPointer = ___cxa_is_pointer_type(this.get_type()); - if (isPointer) { - return GROWABLE_HEAP_U32()[this.excPtr >>> 2]; - } - var adjusted = this.get_adjusted_ptr(); - if (adjusted !== 0) - return adjusted; - return this.excPtr; - }; - } - function ___cxa_throw(ptr, type, destructor) { - var info = new ExceptionInfo(ptr); - info.init(type, destructor); - throw ptr; - } - function ___emscripten_init_main_thread_js(tb) { - __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB); - PThread.threadInitTLS(); - } - function ___emscripten_thread_cleanup(thread) { - if (!ENVIRONMENT_IS_PTHREAD) - cleanupThread(thread); - else - postMessage({ "cmd": "cleanupThread", "thread": thread }); - } - function __dlinit(main_dso_handle) { - } - var dlopenMissingError = "To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking"; - function __dlopen_js(handle) { - abort(dlopenMissingError); - } - function __dlsym_catchup_js(handle, symbolIndex) { - abort(dlopenMissingError); - } - var tupleRegistrations = {}; - function runDestructors(destructors) { - while (destructors.length) { - var ptr = destructors.pop(); - var del = destructors.pop(); - del(ptr); - } - } - function simpleReadValueFromPointer(pointer) { - return this["fromWireType"](GROWABLE_HEAP_I32()[pointer >>> 2]); - } - var awaitingDependencies = {}; - var registeredTypes = {}; - var typeDependencies = {}; - var char_0 = 48; - var char_9 = 57; - function makeLegalFunctionName(name) { - if (name === void 0) { - return "_unknown"; - } - name = name.replace(/[^a-zA-Z0-9_]/g, "$"); - var f = name.charCodeAt(0); - if (f >= char_0 && f <= char_9) { - return "_" + name; - } - return name; - } - function createNamedFunction(name, body) { - name = makeLegalFunctionName(name); - return new Function("body", "return function " + name + '() {\n "use strict"; return body.apply(this, arguments);\n};\n')(body); - } - function extendError(baseErrorType, errorName) { - var errorClass = createNamedFunction(errorName, function(message) { - this.name = errorName; - this.message = message; - var stack = new Error(message).stack; - if (stack !== void 0) { - this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); - } - }); - errorClass.prototype = Object.create(baseErrorType.prototype); - errorClass.prototype.constructor = errorClass; - errorClass.prototype.toString = function() { - if (this.message === void 0) { - return this.name; - } else { - return this.name + ": " + this.message; - } - }; - return errorClass; - } - var InternalError = void 0; - function throwInternalError(message) { - throw new InternalError(message); - } - function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { - myTypes.forEach(function(type) { - typeDependencies[type] = dependentTypes; - }); - function onComplete(typeConverters2) { - var myTypeConverters = getTypeConverters(typeConverters2); - if (myTypeConverters.length !== myTypes.length) { - throwInternalError("Mismatched type converter count"); - } - for (var i = 0; i < myTypes.length; ++i) { - registerType(myTypes[i], myTypeConverters[i]); - } - } - var typeConverters = new Array(dependentTypes.length); - var unregisteredTypes = []; - var registered = 0; - dependentTypes.forEach((dt, i) => { - if (registeredTypes.hasOwnProperty(dt)) { - typeConverters[i] = registeredTypes[dt]; - } else { - unregisteredTypes.push(dt); - if (!awaitingDependencies.hasOwnProperty(dt)) { - awaitingDependencies[dt] = []; - } - awaitingDependencies[dt].push(() => { - typeConverters[i] = registeredTypes[dt]; - ++registered; - if (registered === unregisteredTypes.length) { - onComplete(typeConverters); - } - }); - } - }); - if (unregisteredTypes.length === 0) { - onComplete(typeConverters); - } - } - function __embind_finalize_value_array(rawTupleType) { - var reg = tupleRegistrations[rawTupleType]; - delete tupleRegistrations[rawTupleType]; - var elements = reg.elements; - var elementsLength = elements.length; - var elementTypes = elements.map(function(elt) { - return elt.getterReturnType; - }).concat(elements.map(function(elt) { - return elt.setterArgumentType; - })); - var rawConstructor = reg.rawConstructor; - var rawDestructor = reg.rawDestructor; - whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) { - elements.forEach((elt, i) => { - var getterReturnType = elementTypes2[i]; - var getter = elt.getter; - var getterContext = elt.getterContext; - var setterArgumentType = elementTypes2[i + elementsLength]; - var setter = elt.setter; - var setterContext = elt.setterContext; - elt.read = (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }; - elt.write = (ptr, o) => { - var destructors = []; - setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); - runDestructors(destructors); - }; - }); - return [{ name: reg.name, "fromWireType": function(ptr) { - var rv = new Array(elementsLength); - for (var i = 0; i < elementsLength; ++i) { - rv[i] = elements[i].read(ptr); - } - rawDestructor(ptr); - return rv; - }, "toWireType": function(destructors, o) { - if (elementsLength !== o.length) { - throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); - } - var ptr = rawConstructor(); - for (var i = 0; i < elementsLength; ++i) { - elements[i].write(ptr, o[i]); - } - if (destructors !== null) { - destructors.push(rawDestructor, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; - }); - } - var structRegistrations = {}; - function __embind_finalize_value_object(structType) { - var reg = structRegistrations[structType]; - delete structRegistrations[structType]; - var rawConstructor = reg.rawConstructor; - var rawDestructor = reg.rawDestructor; - var fieldRecords = reg.fields; - var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType)); - whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => { - var fields = {}; - fieldRecords.forEach((field, i) => { - var fieldName = field.fieldName; - var getterReturnType = fieldTypes2[i]; - var getter = field.getter; - var getterContext = field.getterContext; - var setterArgumentType = fieldTypes2[i + fieldRecords.length]; - var setter = field.setter; - var setterContext = field.setterContext; - fields[fieldName] = { read: (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }, write: (ptr, o) => { - var destructors = []; - setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); - runDestructors(destructors); - } }; - }); - return [{ name: reg.name, "fromWireType": function(ptr) { - var rv = {}; - for (var i in fields) { - rv[i] = fields[i].read(ptr); - } - rawDestructor(ptr); - return rv; - }, "toWireType": function(destructors, o) { - for (var fieldName in fields) { - if (!(fieldName in o)) { - throw new TypeError('Missing field: "' + fieldName + '"'); - } - } - var ptr = rawConstructor(); - for (fieldName in fields) { - fields[fieldName].write(ptr, o[fieldName]); - } - if (destructors !== null) { - destructors.push(rawDestructor, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; - }); - } - function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { - } - function getShiftFromSize(size) { - switch (size) { - case 1: - return 0; - case 2: - return 1; - case 4: - return 2; - case 8: - return 3; - default: - throw new TypeError("Unknown type size: " + size); - } - } - function embind_init_charCodes() { - var codes = new Array(256); - for (var i = 0; i < 256; ++i) { - codes[i] = String.fromCharCode(i); - } - embind_charCodes = codes; - } - var embind_charCodes = void 0; - function readLatin1String(ptr) { - var ret = ""; - var c = ptr; - while (GROWABLE_HEAP_U8()[c >>> 0]) { - ret += embind_charCodes[GROWABLE_HEAP_U8()[c++ >>> 0]]; - } - return ret; - } - var BindingError = void 0; - function throwBindingError(message) { - throw new BindingError(message); - } - function registerType(rawType, registeredInstance, options = {}) { - if (!("argPackAdvance" in registeredInstance)) { - throw new TypeError("registerType registeredInstance requires argPackAdvance"); - } - var name = registeredInstance.name; - if (!rawType) { - throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); - } - if (registeredTypes.hasOwnProperty(rawType)) { - if (options.ignoreDuplicateRegistrations) { - return; - } else { - throwBindingError("Cannot register type '" + name + "' twice"); - } - } - registeredTypes[rawType] = registeredInstance; - delete typeDependencies[rawType]; - if (awaitingDependencies.hasOwnProperty(rawType)) { - var callbacks = awaitingDependencies[rawType]; - delete awaitingDependencies[rawType]; - callbacks.forEach((cb) => cb()); - } - } - function __embind_register_bool(rawType, name, size, trueValue, falseValue) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(wt) { - return !!wt; - }, "toWireType": function(destructors, o) { - return o ? trueValue : falseValue; - }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) { - var heap; - if (size === 1) { - heap = GROWABLE_HEAP_I8(); - } else if (size === 2) { - heap = GROWABLE_HEAP_I16(); - } else if (size === 4) { - heap = GROWABLE_HEAP_I32(); - } else { - throw new TypeError("Unknown boolean type size: " + name); - } - return this["fromWireType"](heap[pointer >>> shift]); - }, destructorFunction: null }); - } - function ClassHandle_isAliasOf(other) { - if (!(this instanceof ClassHandle)) { - return false; - } - if (!(other instanceof ClassHandle)) { - return false; - } - var leftClass = this.$$.ptrType.registeredClass; - var left = this.$$.ptr; - var rightClass = other.$$.ptrType.registeredClass; - var right = other.$$.ptr; - while (leftClass.baseClass) { - left = leftClass.upcast(left); - leftClass = leftClass.baseClass; - } - while (rightClass.baseClass) { - right = rightClass.upcast(right); - rightClass = rightClass.baseClass; - } - return leftClass === rightClass && left === right; - } - function shallowCopyInternalPointer(o) { - return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType }; - } - function throwInstanceAlreadyDeleted(obj) { - function getInstanceTypeName(handle) { - return handle.$$.ptrType.registeredClass.name; - } - throwBindingError(getInstanceTypeName(obj) + " instance already deleted"); - } - var finalizationRegistry = false; - function detachFinalizer(handle) { - } - function runDestructor($$) { - if ($$.smartPtr) { - $$.smartPtrType.rawDestructor($$.smartPtr); - } else { - $$.ptrType.registeredClass.rawDestructor($$.ptr); - } - } - function releaseClassHandle($$) { - $$.count.value -= 1; - var toDelete = $$.count.value === 0; - if (toDelete) { - runDestructor($$); - } - } - function downcastPointer(ptr, ptrClass, desiredClass) { - if (ptrClass === desiredClass) { - return ptr; - } - if (desiredClass.baseClass === void 0) { - return null; - } - var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); - if (rv === null) { - return null; - } - return desiredClass.downcast(rv); - } - var registeredPointers = {}; - function getInheritedInstanceCount() { - return Object.keys(registeredInstances).length; - } - function getLiveInheritedInstances() { - var rv = []; - for (var k in registeredInstances) { - if (registeredInstances.hasOwnProperty(k)) { - rv.push(registeredInstances[k]); - } - } - return rv; - } - var deletionQueue = []; - function flushPendingDeletes() { - while (deletionQueue.length) { - var obj = deletionQueue.pop(); - obj.$$.deleteScheduled = false; - obj["delete"](); - } - } - var delayFunction = void 0; - function setDelayFunction(fn) { - delayFunction = fn; - if (deletionQueue.length && delayFunction) { - delayFunction(flushPendingDeletes); - } - } - function init_embind() { - Module["getInheritedInstanceCount"] = getInheritedInstanceCount; - Module["getLiveInheritedInstances"] = getLiveInheritedInstances; - Module["flushPendingDeletes"] = flushPendingDeletes; - Module["setDelayFunction"] = setDelayFunction; - } - var registeredInstances = {}; - function getBasestPointer(class_, ptr) { - if (ptr === void 0) { - throwBindingError("ptr should not be undefined"); - } - while (class_.baseClass) { - ptr = class_.upcast(ptr); - class_ = class_.baseClass; - } - return ptr; - } - function getInheritedInstance(class_, ptr) { - ptr = getBasestPointer(class_, ptr); - return registeredInstances[ptr]; - } - function makeClassHandle(prototype, record) { - if (!record.ptrType || !record.ptr) { - throwInternalError("makeClassHandle requires ptr and ptrType"); - } - var hasSmartPtrType = !!record.smartPtrType; - var hasSmartPtr = !!record.smartPtr; - if (hasSmartPtrType !== hasSmartPtr) { - throwInternalError("Both smartPtrType and smartPtr must be specified"); - } - record.count = { value: 1 }; - return attachFinalizer(Object.create(prototype, { $$: { value: record } })); - } - function RegisteredPointer_fromWireType(ptr) { - var rawPointer = this.getPointee(ptr); - if (!rawPointer) { - this.destructor(ptr); - return null; - } - var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); - if (registeredInstance !== void 0) { - if (registeredInstance.$$.count.value === 0) { - registeredInstance.$$.ptr = rawPointer; - registeredInstance.$$.smartPtr = ptr; - return registeredInstance["clone"](); - } else { - var rv = registeredInstance["clone"](); - this.destructor(ptr); - return rv; - } - } - function makeDefaultHandle() { - if (this.isSmartPointer) { - return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr }); - } else { - return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr }); - } - } - var actualType = this.registeredClass.getActualType(rawPointer); - var registeredPointerRecord = registeredPointers[actualType]; - if (!registeredPointerRecord) { - return makeDefaultHandle.call(this); - } - var toType; - if (this.isConst) { - toType = registeredPointerRecord.constPointerType; - } else { - toType = registeredPointerRecord.pointerType; - } - var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass); - if (dp === null) { - return makeDefaultHandle.call(this); - } - if (this.isSmartPointer) { - return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr }); - } else { - return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); - } - } - function attachFinalizer(handle) { - if (typeof FinalizationRegistry === "undefined") { - attachFinalizer = (handle2) => handle2; - return handle; - } - finalizationRegistry = new FinalizationRegistry((info) => { - releaseClassHandle(info.$$); - }); - attachFinalizer = (handle2) => { - var $$ = handle2.$$; - var hasSmartPtr = !!$$.smartPtr; - if (hasSmartPtr) { - var info = { $$ }; - finalizationRegistry.register(handle2, info, handle2); - } - return handle2; - }; - detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); - return attachFinalizer(handle); - } - function ClassHandle_clone() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.preservePointerOnDelete) { - this.$$.count.value += 1; - return this; - } else { - var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } })); - clone.$$.count.value += 1; - clone.$$.deleteScheduled = false; - return clone; - } - } - function ClassHandle_delete() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError("Object already scheduled for deletion"); - } - detachFinalizer(this); - releaseClassHandle(this.$$); - if (!this.$$.preservePointerOnDelete) { - this.$$.smartPtr = void 0; - this.$$.ptr = void 0; - } - } - function ClassHandle_isDeleted() { - return !this.$$.ptr; - } - function ClassHandle_deleteLater() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError("Object already scheduled for deletion"); - } - deletionQueue.push(this); - if (deletionQueue.length === 1 && delayFunction) { - delayFunction(flushPendingDeletes); - } - this.$$.deleteScheduled = true; - return this; - } - function init_ClassHandle() { - ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; - ClassHandle.prototype["clone"] = ClassHandle_clone; - ClassHandle.prototype["delete"] = ClassHandle_delete; - ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; - ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; - } - function ClassHandle() { - } - function ensureOverloadTable(proto, methodName, humanName) { - if (proto[methodName].overloadTable === void 0) { - var prevFunc = proto[methodName]; - proto[methodName] = function() { - if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { - throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); - } - return proto[methodName].overloadTable[arguments.length].apply(this, arguments); - }; - proto[methodName].overloadTable = []; - proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; - } - } - function exposePublicSymbol(name, value, numArguments) { - if (Module.hasOwnProperty(name)) { - if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { - throwBindingError("Cannot register public name '" + name + "' twice"); - } - ensureOverloadTable(Module, name, name); - if (Module.hasOwnProperty(numArguments)) { - throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); - } - Module[name].overloadTable[numArguments] = value; - } else { - Module[name] = value; - if (numArguments !== void 0) { - Module[name].numArguments = numArguments; - } - } - } - function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) { - this.name = name; - this.constructor = constructor; - this.instancePrototype = instancePrototype; - this.rawDestructor = rawDestructor; - this.baseClass = baseClass; - this.getActualType = getActualType; - this.upcast = upcast; - this.downcast = downcast; - this.pureVirtualFunctions = []; - } - function upcastPointer(ptr, ptrClass, desiredClass) { - while (ptrClass !== desiredClass) { - if (!ptrClass.upcast) { - throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); - } - ptr = ptrClass.upcast(ptr); - ptrClass = ptrClass.baseClass; - } - return ptr; - } - function constNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - return 0; - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - function genericPointerToWireType(destructors, handle) { - var ptr; - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - if (this.isSmartPointer) { - ptr = this.rawConstructor(); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - return ptr; - } else { - return 0; - } - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - if (!this.isConst && handle.$$.ptrType.isConst) { - throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - if (this.isSmartPointer) { - if (handle.$$.smartPtr === void 0) { - throwBindingError("Passing raw pointer to smart pointer is illegal"); - } - switch (this.sharingPolicy) { - case 0: - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); - } - break; - case 1: - ptr = handle.$$.smartPtr; - break; - case 2: - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - var clonedHandle = handle["clone"](); - ptr = this.rawShare(ptr, Emval.toHandle(function() { - clonedHandle["delete"](); - })); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - } - break; - default: - throwBindingError("Unsupporting sharing policy"); - } - } - return ptr; - } - function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - return 0; - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - if (handle.$$.ptrType.isConst) { - throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - function RegisteredPointer_getPointee(ptr) { - if (this.rawGetPointee) { - ptr = this.rawGetPointee(ptr); - } - return ptr; - } - function RegisteredPointer_destructor(ptr) { - if (this.rawDestructor) { - this.rawDestructor(ptr); - } - } - function RegisteredPointer_deleteObject(handle) { - if (handle !== null) { - handle["delete"](); - } - } - function init_RegisteredPointer() { - RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; - RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; - RegisteredPointer.prototype["argPackAdvance"] = 8; - RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; - RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; - RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; - } - function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) { - this.name = name; - this.registeredClass = registeredClass; - this.isReference = isReference; - this.isConst = isConst; - this.isSmartPointer = isSmartPointer; - this.pointeeType = pointeeType; - this.sharingPolicy = sharingPolicy; - this.rawGetPointee = rawGetPointee; - this.rawConstructor = rawConstructor; - this.rawShare = rawShare; - this.rawDestructor = rawDestructor; - if (!isSmartPointer && registeredClass.baseClass === void 0) { - if (isConst) { - this["toWireType"] = constNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } else { - this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } - } else { - this["toWireType"] = genericPointerToWireType; - } - } - function replacePublicSymbol(name, value, numArguments) { - if (!Module.hasOwnProperty(name)) { - throwInternalError("Replacing nonexistant public symbol"); - } - if (Module[name].overloadTable !== void 0 && numArguments !== void 0) { - Module[name].overloadTable[numArguments] = value; - } else { - Module[name] = value; - Module[name].argCount = numArguments; - } - } - function dynCallLegacy(sig, ptr, args) { - var f = Module["dynCall_" + sig]; - return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); - } - function dynCall(sig, ptr, args) { - if (sig.includes("j")) { - return dynCallLegacy(sig, ptr, args); - } - var rtn = getWasmTableEntry(ptr).apply(null, args); - return rtn; - } - function getDynCaller(sig, ptr) { - var argCache = []; - return function() { - argCache.length = 0; - Object.assign(argCache, arguments); - return dynCall(sig, ptr, argCache); - }; - } - function embind__requireFunction(signature, rawFunction) { - signature = readLatin1String(signature); - function makeDynCaller() { - if (signature.includes("j")) { - return getDynCaller(signature, rawFunction); - } - return getWasmTableEntry(rawFunction); - } - var fp = makeDynCaller(); - if (typeof fp != "function") { - throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); - } - return fp; - } - var UnboundTypeError = void 0; - function getTypeName(type) { - var ptr = ___getTypeName(type); - var rv = readLatin1String(ptr); - _free(ptr); - return rv; - } - function throwUnboundTypeError(message, types) { - var unboundTypes = []; - var seen = {}; - function visit(type) { - if (seen[type]) { - return; - } - if (registeredTypes[type]) { - return; - } - if (typeDependencies[type]) { - typeDependencies[type].forEach(visit); - return; - } - unboundTypes.push(type); - seen[type] = true; - } - types.forEach(visit); - throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); - } - function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { - name = readLatin1String(name); - getActualType = embind__requireFunction(getActualTypeSignature, getActualType); - if (upcast) { - upcast = embind__requireFunction(upcastSignature, upcast); - } - if (downcast) { - downcast = embind__requireFunction(downcastSignature, downcast); - } - rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); - var legalFunctionName = makeLegalFunctionName(name); - exposePublicSymbol(legalFunctionName, function() { - throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); - }); - whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { - base = base[0]; - var baseClass; - var basePrototype; - if (baseClassRawType) { - baseClass = base.registeredClass; - basePrototype = baseClass.instancePrototype; - } else { - basePrototype = ClassHandle.prototype; - } - var constructor = createNamedFunction(legalFunctionName, function() { - if (Object.getPrototypeOf(this) !== instancePrototype) { - throw new BindingError("Use 'new' to construct " + name); - } - if (registeredClass.constructor_body === void 0) { - throw new BindingError(name + " has no accessible constructor"); - } - var body = registeredClass.constructor_body[arguments.length]; - if (body === void 0) { - throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); - } - return body.apply(this, arguments); - }); - var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); - constructor.prototype = instancePrototype; - var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); - var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); - var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); - var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); - registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter }; - replacePublicSymbol(legalFunctionName, constructor); - return [referenceConverter, pointerConverter, constPointerConverter]; - }); - } - function heap32VectorToArray(count, firstElement) { - var array = []; - for (var i = 0; i < count; i++) { - array.push(GROWABLE_HEAP_U32()[firstElement + i * 4 >>> 2]); - } - return array; - } - function new_(constructor, argumentList) { - if (!(constructor instanceof Function)) { - throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function"); - } - var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() { - }); - dummy.prototype = constructor.prototype; - var obj = new dummy(); - var r = constructor.apply(obj, argumentList); - return r instanceof Object ? r : obj; - } - function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { - var argCount = argTypes.length; - if (argCount < 2) { - throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); - } - var isClassMethodFunc = argTypes[1] !== null && classType !== null; - var needsDestructorStack = false; - for (var i = 1; i < argTypes.length; ++i) { - if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) { - needsDestructorStack = true; - break; - } - } - var returns = argTypes[0].name !== "void"; - var argsList = ""; - var argsListWired = ""; - for (var i = 0; i < argCount - 2; ++i) { - argsList += (i !== 0 ? ", " : "") + "arg" + i; - argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; - } - var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\nif (arguments.length !== " + (argCount - 2) + ") {\nthrowBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n}\n"; - if (needsDestructorStack) { - invokerFnBody += "var destructors = [];\n"; - } - var dtorStack = needsDestructorStack ? "destructors" : "null"; - var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; - var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; - if (isClassMethodFunc) { - invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; - } - for (var i = 0; i < argCount - 2; ++i) { - invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; - args1.push("argType" + i); - args2.push(argTypes[i + 2]); - } - if (isClassMethodFunc) { - argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; - } - invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; - if (needsDestructorStack) { - invokerFnBody += "runDestructors(destructors);\n"; - } else { - for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) { - var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; - if (argTypes[i].destructorFunction !== null) { - invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; - args1.push(paramName + "_dtor"); - args2.push(argTypes[i].destructorFunction); - } - } - } - if (returns) { - invokerFnBody += "var ret = retType.fromWireType(rv);\nreturn ret;\n"; - } - invokerFnBody += "}\n"; - args1.push(invokerFnBody); - var invokerFunction = new_(Function, args1).apply(null, args2); - return invokerFunction; - } - function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { - assert(argCount > 0); - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - invoker = embind__requireFunction(invokerSignature, invoker); - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = "constructor " + classType.name; - if (classType.registeredClass.constructor_body === void 0) { - classType.registeredClass.constructor_body = []; - } - if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) { - throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); - } - classType.registeredClass.constructor_body[argCount - 1] = () => { - throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); - }; - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - argTypes.splice(1, 0, null); - classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor); - return []; - }); - return []; - }); - } - function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - methodName = readLatin1String(methodName); - rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = classType.name + "." + methodName; - if (methodName.startsWith("@@")) { - methodName = Symbol[methodName.substring(2)]; - } - if (isPureVirtual) { - classType.registeredClass.pureVirtualFunctions.push(methodName); - } - function unboundTypesHandler() { - throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); - } - var proto = classType.registeredClass.instancePrototype; - var method = proto[methodName]; - if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) { - unboundTypesHandler.argCount = argCount - 2; - unboundTypesHandler.className = classType.name; - proto[methodName] = unboundTypesHandler; - } else { - ensureOverloadTable(proto, methodName, humanName); - proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; - } - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); - if (proto[methodName].overloadTable === void 0) { - memberFunction.argCount = argCount - 2; - proto[methodName] = memberFunction; - } else { - proto[methodName].overloadTable[argCount - 2] = memberFunction; - } - return []; - }); - return []; - }); - } - var emval_free_list = []; - var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }]; - function __emval_decref(handle) { - if (handle > 4 && --emval_handle_array[handle].refcount === 0) { - emval_handle_array[handle] = void 0; - emval_free_list.push(handle); - } - } - function count_emval_handles() { - var count = 0; - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { - ++count; - } - } - return count; - } - function get_first_emval() { - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { - return emval_handle_array[i]; - } - } - return null; - } - function init_emval() { - Module["count_emval_handles"] = count_emval_handles; - Module["get_first_emval"] = get_first_emval; - } - var Emval = { toValue: (handle) => { - if (!handle) { - throwBindingError("Cannot use deleted val. handle = " + handle); - } - return emval_handle_array[handle].value; - }, toHandle: (value) => { - switch (value) { - case void 0: - return 1; - case null: - return 2; - case true: - return 3; - case false: - return 4; - default: { - var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length; - emval_handle_array[handle] = { refcount: 1, value }; - return handle; - } - } - } }; - function __embind_register_emval(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(handle) { - var rv = Emval.toValue(handle); - __emval_decref(handle); - return rv; - }, "toWireType": function(destructors, value) { - return Emval.toHandle(value); - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null }); - } - function enumReadValueFromPointer(name, shift, signed) { - switch (shift) { - case 0: - return function(pointer) { - var heap = signed ? GROWABLE_HEAP_I8() : GROWABLE_HEAP_U8(); - return this["fromWireType"](heap[pointer >>> 0]); - }; - case 1: - return function(pointer) { - var heap = signed ? GROWABLE_HEAP_I16() : GROWABLE_HEAP_U16(); - return this["fromWireType"](heap[pointer >>> 1]); - }; - case 2: - return function(pointer) { - var heap = signed ? GROWABLE_HEAP_I32() : GROWABLE_HEAP_U32(); - return this["fromWireType"](heap[pointer >>> 2]); - }; - default: - throw new TypeError("Unknown integer type: " + name); - } - } - function __embind_register_enum(rawType, name, size, isSigned) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - function ctor() { - } - ctor.values = {}; - registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) { - return this.constructor.values[c]; - }, "toWireType": function(destructors, c) { - return c.value; - }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null }); - exposePublicSymbol(name, ctor); - } - function requireRegisteredType(rawType, humanName) { - var impl = registeredTypes[rawType]; - if (impl === void 0) { - throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); - } - return impl; - } - function __embind_register_enum_value(rawEnumType, name, enumValue) { - var enumType = requireRegisteredType(rawEnumType, "enum"); - name = readLatin1String(name); - var Enum = enumType.constructor; - var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { - }) } }); - Enum.values[enumValue] = Value; - Enum[name] = Value; - } - function embindRepr(v) { - if (v === null) { - return "null"; - } - var t = typeof v; - if (t === "object" || t === "array" || t === "function") { - return v.toString(); - } else { - return "" + v; - } - } - function floatReadValueFromPointer(name, shift) { - switch (shift) { - case 2: - return function(pointer) { - return this["fromWireType"](GROWABLE_HEAP_F32()[pointer >>> 2]); - }; - case 3: - return function(pointer) { - return this["fromWireType"](GROWABLE_HEAP_F64()[pointer >>> 3]); - }; - default: - throw new TypeError("Unknown float type: " + name); - } - } - function __embind_register_float(rawType, name, size) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(value) { - return value; - }, "toWireType": function(destructors, value) { - return value; - }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); - } - function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { - var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - name = readLatin1String(name); - rawInvoker = embind__requireFunction(signature, rawInvoker); - exposePublicSymbol(name, function() { - throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); - }, argCount - 1); - whenDependentTypesAreResolved([], argTypes, function(argTypes2) { - var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); - replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); - return []; - }); - } - function integerReadValueFromPointer(name, shift, signed) { - switch (shift) { - case 0: - return signed ? function readS8FromPointer(pointer) { - return GROWABLE_HEAP_I8()[pointer >>> 0]; - } : function readU8FromPointer(pointer) { - return GROWABLE_HEAP_U8()[pointer >>> 0]; - }; - case 1: - return signed ? function readS16FromPointer(pointer) { - return GROWABLE_HEAP_I16()[pointer >>> 1]; - } : function readU16FromPointer(pointer) { - return GROWABLE_HEAP_U16()[pointer >>> 1]; - }; - case 2: - return signed ? function readS32FromPointer(pointer) { - return GROWABLE_HEAP_I32()[pointer >>> 2]; - } : function readU32FromPointer(pointer) { - return GROWABLE_HEAP_U32()[pointer >>> 2]; - }; - default: - throw new TypeError("Unknown integer type: " + name); - } - } - function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { - name = readLatin1String(name); - var shift = getShiftFromSize(size); - var fromWireType = (value) => value; - if (minRange === 0) { - var bitshift = 32 - 8 * size; - fromWireType = (value) => value << bitshift >>> bitshift; - } - var isUnsignedType = name.includes("unsigned"); - var checkAssertions = (value, toTypeName) => { - }; - var toWireType; - if (isUnsignedType) { - toWireType = function(destructors, value) { - checkAssertions(value, this.name); - return value >>> 0; - }; - } else { - toWireType = function(destructors, value) { - checkAssertions(value, this.name); - return value; - }; - } - registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); - } - function __embind_register_memory_view(rawType, dataTypeIndex, name) { - var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; - var TA = typeMapping[dataTypeIndex]; - function decodeMemoryView(handle) { - handle = handle >> 2; - var heap = GROWABLE_HEAP_U32(); - var size = heap[handle >>> 0]; - var data = heap[handle + 1 >>> 0]; - return new TA(heap.buffer, data, size); - } - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); - } - function __embind_register_std_string(rawType, name) { - name = readLatin1String(name); - var stdStringIsUTF8 = name === "std::string"; - registerType(rawType, { name, "fromWireType": function(value) { - var length = GROWABLE_HEAP_U32()[value >>> 2]; - var payload = value + 4; - var str; - if (stdStringIsUTF8) { - var decodeStartPtr = payload; - for (var i = 0; i <= length; ++i) { - var currentBytePtr = payload + i; - if (i == length || GROWABLE_HEAP_U8()[currentBytePtr >>> 0] == 0) { - var maxRead = currentBytePtr - decodeStartPtr; - var stringSegment = UTF8ToString(decodeStartPtr, maxRead); - if (str === void 0) { - str = stringSegment; - } else { - str += String.fromCharCode(0); - str += stringSegment; - } - decodeStartPtr = currentBytePtr + 1; - } - } - } else { - var a = new Array(length); - for (var i = 0; i < length; ++i) { - a[i] = String.fromCharCode(GROWABLE_HEAP_U8()[payload + i >>> 0]); - } - str = a.join(""); - } - _free(value); - return str; - }, "toWireType": function(destructors, value) { - if (value instanceof ArrayBuffer) { - value = new Uint8Array(value); - } - var length; - var valueIsOfTypeString = typeof value == "string"; - if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { - throwBindingError("Cannot pass non-string to std::string"); - } - if (stdStringIsUTF8 && valueIsOfTypeString) { - length = lengthBytesUTF8(value); - } else { - length = value.length; - } - var base = _malloc(4 + length + 1); - var ptr = base + 4; - ptr >>>= 0; - GROWABLE_HEAP_U32()[base >>> 2] = length; - if (stdStringIsUTF8 && valueIsOfTypeString) { - stringToUTF8(value, ptr, length + 1); - } else { - if (valueIsOfTypeString) { - for (var i = 0; i < length; ++i) { - var charCode = value.charCodeAt(i); - if (charCode > 255) { - _free(ptr); - throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); - } - GROWABLE_HEAP_U8()[ptr + i >>> 0] = charCode; - } - } else { - for (var i = 0; i < length; ++i) { - GROWABLE_HEAP_U8()[ptr + i >>> 0] = value[i]; - } - } - } - if (destructors !== null) { - destructors.push(_free, base); - } - return base; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { - _free(ptr); - } }); - } - var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0; - function UTF16ToString(ptr, maxBytesToRead) { - var endPtr = ptr; - var idx = endPtr >> 1; - var maxIdx = idx + maxBytesToRead / 2; - while (!(idx >= maxIdx) && GROWABLE_HEAP_U16()[idx >>> 0]) - ++idx; - endPtr = idx << 1; - if (endPtr - ptr > 32 && UTF16Decoder) - return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr, endPtr)); - var str = ""; - for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { - var codeUnit = GROWABLE_HEAP_I16()[ptr + i * 2 >>> 1]; - if (codeUnit == 0) - break; - str += String.fromCharCode(codeUnit); - } - return str; - } - function stringToUTF16(str, outPtr, maxBytesToWrite) { - if (maxBytesToWrite === void 0) { - maxBytesToWrite = 2147483647; - } - if (maxBytesToWrite < 2) - return 0; - maxBytesToWrite -= 2; - var startPtr = outPtr; - var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - var codeUnit = str.charCodeAt(i); - GROWABLE_HEAP_I16()[outPtr >>> 1] = codeUnit; - outPtr += 2; - } - GROWABLE_HEAP_I16()[outPtr >>> 1] = 0; - return outPtr - startPtr; - } - function lengthBytesUTF16(str) { - return str.length * 2; - } - function UTF32ToString(ptr, maxBytesToRead) { - var i = 0; - var str = ""; - while (!(i >= maxBytesToRead / 4)) { - var utf32 = GROWABLE_HEAP_I32()[ptr + i * 4 >>> 2]; - if (utf32 == 0) - break; - ++i; - if (utf32 >= 65536) { - var ch = utf32 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } else { - str += String.fromCharCode(utf32); - } - } - return str; - } - function stringToUTF32(str, outPtr, maxBytesToWrite) { - outPtr >>>= 0; - if (maxBytesToWrite === void 0) { - maxBytesToWrite = 2147483647; - } - if (maxBytesToWrite < 4) - return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 55296 && codeUnit <= 57343) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; - } - GROWABLE_HEAP_I32()[outPtr >>> 2] = codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) - break; - } - GROWABLE_HEAP_I32()[outPtr >>> 2] = 0; - return outPtr - startPtr; - } - function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 55296 && codeUnit <= 57343) - ++i; - len += 4; - } - return len; - } - function __embind_register_std_wstring(rawType, charSize, name) { - name = readLatin1String(name); - var decodeString, encodeString, getHeap, lengthBytesUTF, shift; - if (charSize === 2) { - decodeString = UTF16ToString; - encodeString = stringToUTF16; - lengthBytesUTF = lengthBytesUTF16; - getHeap = () => GROWABLE_HEAP_U16(); - shift = 1; - } else if (charSize === 4) { - decodeString = UTF32ToString; - encodeString = stringToUTF32; - lengthBytesUTF = lengthBytesUTF32; - getHeap = () => GROWABLE_HEAP_U32(); - shift = 2; - } - registerType(rawType, { name, "fromWireType": function(value) { - var length = GROWABLE_HEAP_U32()[value >>> 2]; - var HEAP = getHeap(); - var str; - var decodeStartPtr = value + 4; - for (var i = 0; i <= length; ++i) { - var currentBytePtr = value + 4 + i * charSize; - if (i == length || HEAP[currentBytePtr >>> shift] == 0) { - var maxReadBytes = currentBytePtr - decodeStartPtr; - var stringSegment = decodeString(decodeStartPtr, maxReadBytes); - if (str === void 0) { - str = stringSegment; - } else { - str += String.fromCharCode(0); - str += stringSegment; - } - decodeStartPtr = currentBytePtr + charSize; - } - } - _free(value); - return str; - }, "toWireType": function(destructors, value) { - if (!(typeof value == "string")) { - throwBindingError("Cannot pass non-string to C++ string type " + name); - } - var length = lengthBytesUTF(value); - var ptr = _malloc(4 + length + charSize); - ptr >>>= 0; - GROWABLE_HEAP_U32()[ptr >>> 2] = length >> shift; - encodeString(value, ptr + 4, length + charSize); - if (destructors !== null) { - destructors.push(_free, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { - _free(ptr); - } }); - } - function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { - tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; - } - function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { - tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); - } - function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { - structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; - } - function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { - structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); - } - function __embind_register_void(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { - return void 0; - }, "toWireType": function(destructors, o) { - return void 0; - } }); - } - function __emscripten_err(str) { - err(UTF8ToString(str)); - } - function executeNotifiedProxyingQueue(queue) { - Atomics.store(GROWABLE_HEAP_I32(), queue >> 2, 1); - if (_pthread_self()) { - __emscripten_proxy_execute_task_queue(queue); - } - Atomics.compareExchange(GROWABLE_HEAP_I32(), queue >> 2, 1, 0); - } - Module["executeNotifiedProxyingQueue"] = executeNotifiedProxyingQueue; - function __emscripten_notify_task_queue(targetThreadId, currThreadId, mainThreadId, queue) { - if (targetThreadId == currThreadId) { - setTimeout(() => executeNotifiedProxyingQueue(queue)); - } else if (ENVIRONMENT_IS_PTHREAD) { - postMessage({ "targetThread": targetThreadId, "cmd": "processProxyingQueue", "queue": queue }); - } else { - var worker = PThread.pthreads[targetThreadId]; - if (!worker) { - return; - } - worker.postMessage({ "cmd": "processProxyingQueue", "queue": queue }); - } - return 1; - } - function __emscripten_set_offscreencanvas_size(target, width, height) { - return -1; - } - function __emval_as(handle, returnType, destructorsRef) { - handle = Emval.toValue(handle); - returnType = requireRegisteredType(returnType, "emval::as"); - var destructors = []; - var rd = Emval.toHandle(destructors); - GROWABLE_HEAP_U32()[destructorsRef >>> 2] = rd; - return returnType["toWireType"](destructors, handle); - } - function emval_lookupTypes(argCount, argTypes) { - var a = new Array(argCount); - for (var i = 0; i < argCount; ++i) { - a[i] = requireRegisteredType(GROWABLE_HEAP_U32()[argTypes + i * 4 >>> 2], "parameter " + i); - } - return a; - } - function __emval_call(handle, argCount, argTypes, argv) { - handle = Emval.toValue(handle); - var types = emval_lookupTypes(argCount, argTypes); - var args = new Array(argCount); - for (var i = 0; i < argCount; ++i) { - var type = types[i]; - args[i] = type["readValueFromPointer"](argv); - argv += type["argPackAdvance"]; - } - var rv = handle.apply(void 0, args); - return Emval.toHandle(rv); - } - var emval_symbols = {}; - function getStringOrSymbol(address) { - var symbol = emval_symbols[address]; - if (symbol === void 0) { - return readLatin1String(address); - } - return symbol; - } - function emval_get_global() { - if (typeof globalThis == "object") { - return globalThis; - } - return function() { - return Function; - }()("return this")(); - } - function __emval_get_global(name) { - if (name === 0) { - return Emval.toHandle(emval_get_global()); - } else { - name = getStringOrSymbol(name); - return Emval.toHandle(emval_get_global()[name]); - } - } - function __emval_get_property(handle, key) { - handle = Emval.toValue(handle); - key = Emval.toValue(key); - return Emval.toHandle(handle[key]); - } - function __emval_incref(handle) { - if (handle > 4) { - emval_handle_array[handle].refcount += 1; - } - } - function __emval_instanceof(object, constructor) { - object = Emval.toValue(object); - constructor = Emval.toValue(constructor); - return object instanceof constructor; - } - function __emval_is_number(handle) { - handle = Emval.toValue(handle); - return typeof handle == "number"; - } - function __emval_is_string(handle) { - handle = Emval.toValue(handle); - return typeof handle == "string"; - } - function __emval_new_array() { - return Emval.toHandle([]); - } - function __emval_new_cstring(v) { - return Emval.toHandle(getStringOrSymbol(v)); - } - function __emval_new_object() { - return Emval.toHandle({}); - } - function __emval_run_destructors(handle) { - var destructors = Emval.toValue(handle); - runDestructors(destructors); - __emval_decref(handle); - } - function __emval_set_property(handle, key, value) { - handle = Emval.toValue(handle); - key = Emval.toValue(key); - value = Emval.toValue(value); - handle[key] = value; - } - function __emval_take_value(type, arg) { - type = requireRegisteredType(type, "_emval_take_value"); - var v = type["readValueFromPointer"](arg); - return Emval.toHandle(v); - } - function _abort() { - abort(""); - } - function warnOnce(text) { - if (!warnOnce.shown) - warnOnce.shown = {}; - if (!warnOnce.shown[text]) { - warnOnce.shown[text] = 1; - err(text); - } - } - function _emscripten_check_blocking_allowed() { - if (ENVIRONMENT_IS_WORKER) - return; - warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread"); - } - var _emscripten_get_now; - _emscripten_get_now = () => performance.timeOrigin + performance.now(); - function _emscripten_memcpy_big(dest, src, num) { - GROWABLE_HEAP_U8().copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); - } - function withStackSave(f) { - var stack = stackSave(); - var ret = f(); - stackRestore(stack); - return ret; - } - function _emscripten_proxy_to_main_thread_js(index, sync) { - var numCallArgs = arguments.length - 2; - var outerArgs = arguments; - return withStackSave(() => { - var serializedNumCallArgs = numCallArgs; - var args = stackAlloc(serializedNumCallArgs * 8); - var b = args >> 3; - for (var i = 0; i < numCallArgs; i++) { - var arg = outerArgs[2 + i]; - GROWABLE_HEAP_F64()[b + i >>> 0] = arg; - } - return _emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync); - }); - } - var _emscripten_receive_on_main_thread_js_callArgs = []; - function _emscripten_receive_on_main_thread_js(index, numCallArgs, args) { - _emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs; - var b = args >> 3; - for (var i = 0; i < numCallArgs; i++) { - _emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i >>> 0]; - } - var func = proxiedFunctionTable[index]; - return func.apply(null, _emscripten_receive_on_main_thread_js_callArgs); - } - function getHeapMax() { - return 4294901760; - } - function emscripten_realloc_buffer(size) { - var b = wasmMemory.buffer; - try { - wasmMemory.grow(size - b.byteLength + 65535 >>> 16); - updateMemoryViews(); - return 1; - } catch (e) { - } - } - function _emscripten_resize_heap(requestedSize) { - var oldSize = GROWABLE_HEAP_U8().length; - requestedSize = requestedSize >>> 0; - if (requestedSize <= oldSize) { - return false; - } - var maxHeapSize = getHeapMax(); - if (requestedSize > maxHeapSize) { - return false; - } - let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); - var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - return true; - } - } - return false; - } - function _emscripten_unwind_to_js_event_loop() { - throw "unwind"; - } - var ENV = {}; - function getExecutableName() { - return thisProgram || "./this.program"; - } - function getEnvStrings() { - if (!getEnvStrings.strings) { - var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; - var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() }; - for (var x in ENV) { - if (ENV[x] === void 0) - delete env[x]; - else - env[x] = ENV[x]; - } - var strings = []; - for (var x in env) { - strings.push(x + "=" + env[x]); - } - getEnvStrings.strings = strings; - } - return getEnvStrings.strings; - } - function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - GROWABLE_HEAP_I8()[buffer++ >>> 0] = str.charCodeAt(i); - } - if (!dontAddNull) - GROWABLE_HEAP_I8()[buffer >>> 0] = 0; - } - function _environ_get(__environ, environ_buf) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(3, 1, __environ, environ_buf); - var bufSize = 0; - getEnvStrings().forEach(function(string, i) { - var ptr = environ_buf + bufSize; - GROWABLE_HEAP_U32()[__environ + i * 4 >>> 2] = ptr; - writeAsciiToMemory(string, ptr); - bufSize += string.length + 1; - }); - return 0; - } - function _environ_sizes_get(penviron_count, penviron_buf_size) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(4, 1, penviron_count, penviron_buf_size); - var strings = getEnvStrings(); - GROWABLE_HEAP_U32()[penviron_count >>> 2] = strings.length; - var bufSize = 0; - strings.forEach(function(string) { - bufSize += string.length + 1; - }); - GROWABLE_HEAP_U32()[penviron_buf_size >>> 2] = bufSize; - return 0; - } - function _fd_close(fd) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(5, 1, fd); - try { - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function doReadv(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; - var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2]; - iov += 8; - var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset); - if (curr < 0) - return -1; - ret += curr; - if (curr < len) - break; - if (typeof offset !== "undefined") { - offset += curr; - } - } - return ret; - } - function _fd_read(fd, iov, iovcnt, pnum) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(6, 1, fd, iov, iovcnt, pnum); - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doReadv(stream, iov, iovcnt); - GROWABLE_HEAP_U32()[pnum >>> 2] = num; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function convertI32PairToI53Checked(lo, hi) { - return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; - } - function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(7, 1, fd, offset_low, offset_high, whence, newOffset); - try { - var offset = convertI32PairToI53Checked(offset_low, offset_high); - if (isNaN(offset)) - return 61; - var stream = SYSCALLS.getStreamFromFD(fd); - FS.llseek(stream, offset, whence); - tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[newOffset >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >>> 2] = tempI64[1]; - if (stream.getdents && offset === 0 && whence === 0) - stream.getdents = null; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function doWritev(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; - var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2]; - iov += 8; - var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset); - if (curr < 0) - return -1; - ret += curr; - if (typeof offset !== "undefined") { - offset += curr; - } - } - return ret; - } - function _fd_write(fd, iov, iovcnt, pnum) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(8, 1, fd, iov, iovcnt, pnum); - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doWritev(stream, iov, iovcnt); - GROWABLE_HEAP_U32()[pnum >>> 2] = num; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function __isLeapYear(year) { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); - } - function __arraySum(array, index) { - var sum = 0; - for (var i = 0; i <= index; sum += array[i++]) { - } - return sum; - } - var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - function __addDays(date, days) { - var newDate = new Date(date.getTime()); - while (days > 0) { - var leap = __isLeapYear(newDate.getFullYear()); - var currentMonth = newDate.getMonth(); - var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; - if (days > daysInCurrentMonth - newDate.getDate()) { - days -= daysInCurrentMonth - newDate.getDate() + 1; - newDate.setDate(1); - if (currentMonth < 11) { - newDate.setMonth(currentMonth + 1); - } else { - newDate.setMonth(0); - newDate.setFullYear(newDate.getFullYear() + 1); - } - } else { - newDate.setDate(newDate.getDate() + days); - return newDate; - } - } - return newDate; - } - function writeArrayToMemory(array, buffer) { - GROWABLE_HEAP_I8().set(array, buffer >>> 0); - } - function _strftime(s, maxsize, format, tm) { - var tm_zone = GROWABLE_HEAP_I32()[tm + 40 >>> 2]; - var date = { tm_sec: GROWABLE_HEAP_I32()[tm >>> 2], tm_min: GROWABLE_HEAP_I32()[tm + 4 >>> 2], tm_hour: GROWABLE_HEAP_I32()[tm + 8 >>> 2], tm_mday: GROWABLE_HEAP_I32()[tm + 12 >>> 2], tm_mon: GROWABLE_HEAP_I32()[tm + 16 >>> 2], tm_year: GROWABLE_HEAP_I32()[tm + 20 >>> 2], tm_wday: GROWABLE_HEAP_I32()[tm + 24 >>> 2], tm_yday: GROWABLE_HEAP_I32()[tm + 28 >>> 2], tm_isdst: GROWABLE_HEAP_I32()[tm + 32 >>> 2], tm_gmtoff: GROWABLE_HEAP_I32()[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" }; - var pattern = UTF8ToString(format); - var EXPANSION_RULES_1 = { "%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 rule in EXPANSION_RULES_1) { - pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); - } - var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; - function leadingSomething(value, digits, character) { - var str = typeof value == "number" ? value.toString() : value || ""; - while (str.length < digits) { - str = character[0] + str; - } - return str; - } - function leadingNulls(value, digits) { - return leadingSomething(value, digits, "0"); - } - function compareByDay(date1, date2) { - function sgn(value) { - return value < 0 ? -1 : value > 0 ? 1 : 0; - } - var compare; - if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { - if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { - compare = sgn(date1.getDate() - date2.getDate()); - } - } - return compare; - } - function getFirstWeekStartDate(janFourth) { - switch (janFourth.getDay()) { - case 0: - return new Date(janFourth.getFullYear() - 1, 11, 29); - case 1: - return janFourth; - case 2: - return new Date(janFourth.getFullYear(), 0, 3); - case 3: - return new Date(janFourth.getFullYear(), 0, 2); - case 4: - return new Date(janFourth.getFullYear(), 0, 1); - case 5: - return new Date(janFourth.getFullYear() - 1, 11, 31); - case 6: - return new Date(janFourth.getFullYear() - 1, 11, 30); - } - } - function getWeekBasedYear(date2) { - var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); - var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); - var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); - var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); - var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); - if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { - if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { - return thisDate.getFullYear() + 1; - } - return thisDate.getFullYear(); - } - return thisDate.getFullYear() - 1; - } - var EXPANSION_RULES_2 = { "%a": function(date2) { - return WEEKDAYS[date2.tm_wday].substring(0, 3); - }, "%A": function(date2) { - return WEEKDAYS[date2.tm_wday]; - }, "%b": function(date2) { - return MONTHS[date2.tm_mon].substring(0, 3); - }, "%B": function(date2) { - return MONTHS[date2.tm_mon]; - }, "%C": function(date2) { - var year = date2.tm_year + 1900; - return leadingNulls(year / 100 | 0, 2); - }, "%d": function(date2) { - return leadingNulls(date2.tm_mday, 2); - }, "%e": function(date2) { - return leadingSomething(date2.tm_mday, 2, " "); - }, "%g": function(date2) { - return getWeekBasedYear(date2).toString().substring(2); - }, "%G": function(date2) { - return getWeekBasedYear(date2); - }, "%H": function(date2) { - return leadingNulls(date2.tm_hour, 2); - }, "%I": function(date2) { - var twelveHour = date2.tm_hour; - if (twelveHour == 0) - twelveHour = 12; - else if (twelveHour > 12) - twelveHour -= 12; - return leadingNulls(twelveHour, 2); - }, "%j": function(date2) { - return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); - }, "%m": function(date2) { - return leadingNulls(date2.tm_mon + 1, 2); - }, "%M": function(date2) { - return leadingNulls(date2.tm_min, 2); - }, "%n": function() { - return "\n"; - }, "%p": function(date2) { - if (date2.tm_hour >= 0 && date2.tm_hour < 12) { - return "AM"; - } - return "PM"; - }, "%S": function(date2) { - return leadingNulls(date2.tm_sec, 2); - }, "%t": function() { - return " "; - }, "%u": function(date2) { - return date2.tm_wday || 7; - }, "%U": function(date2) { - var days = date2.tm_yday + 7 - date2.tm_wday; - return leadingNulls(Math.floor(days / 7), 2); - }, "%V": function(date2) { - var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); - if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { - val++; - } - if (!val) { - val = 52; - var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; - if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { - val++; - } - } else if (val == 53) { - var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; - if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) - val = 1; - } - return leadingNulls(val, 2); - }, "%w": function(date2) { - return date2.tm_wday; - }, "%W": function(date2) { - var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; - return leadingNulls(Math.floor(days / 7), 2); - }, "%y": function(date2) { - return (date2.tm_year + 1900).toString().substring(2); - }, "%Y": function(date2) { - return date2.tm_year + 1900; - }, "%z": function(date2) { - var off = date2.tm_gmtoff; - var ahead = off >= 0; - off = Math.abs(off) / 60; - off = off / 60 * 100 + off % 60; - return (ahead ? "+" : "-") + String("0000" + off).slice(-4); - }, "%Z": function(date2) { - return date2.tm_zone; - }, "%%": function() { - return "%"; - } }; - pattern = pattern.replace(/%%/g, "\0\0"); - for (var rule in EXPANSION_RULES_2) { - if (pattern.includes(rule)) { - pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); - } - } - pattern = pattern.replace(/\0\0/g, "%"); - var bytes = intArrayFromString(pattern, false); - if (bytes.length > maxsize) { - return 0; - } - writeArrayToMemory(bytes, s); - return bytes.length - 1; - } - function _strftime_l(s, maxsize, format, tm, loc) { - return _strftime(s, maxsize, format, tm); - } - PThread.init(); - var FSNode = function(parent, name, mode, rdev) { - if (!parent) { - parent = this; - } - this.parent = parent; - this.mount = parent.mount; - this.mounted = null; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.node_ops = {}; - this.stream_ops = {}; - this.rdev = rdev; - }; - var readMode = 292 | 73; - var writeMode = 146; - Object.defineProperties(FSNode.prototype, { read: { get: function() { - return (this.mode & readMode) === readMode; - }, set: function(val) { - val ? this.mode |= readMode : this.mode &= ~readMode; - } }, write: { get: function() { - return (this.mode & writeMode) === writeMode; - }, set: function(val) { - val ? this.mode |= writeMode : this.mode &= ~writeMode; - } }, isFolder: { get: function() { - return FS.isDir(this.mode); - } }, isDevice: { get: function() { - return FS.isChrdev(this.mode); - } } }); - FS.FSNode = FSNode; - FS.staticInit(); - InternalError = Module["InternalError"] = extendError(Error, "InternalError"); - embind_init_charCodes(); - BindingError = Module["BindingError"] = extendError(Error, "BindingError"); - init_ClassHandle(); - init_embind(); - init_RegisteredPointer(); - UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); - init_emval(); - var proxiedFunctionTable = [null, _proc_exit, exitOnMainThread, _environ_get, _environ_sizes_get, _fd_close, _fd_read, _fd_seek, _fd_write]; - var wasmImports = { "g": ___cxa_throw, "T": ___emscripten_init_main_thread_js, "J": ___emscripten_thread_cleanup, "X": __dlinit, "_": __dlopen_js, "Z": __dlsym_catchup_js, "da": __embind_finalize_value_array, "q": __embind_finalize_value_object, "H": __embind_register_bigint, "ba": __embind_register_bool, "p": __embind_register_class, "o": __embind_register_class_constructor, "c": __embind_register_class_function, "aa": __embind_register_emval, "D": __embind_register_enum, "t": __embind_register_enum_value, "B": __embind_register_float, "d": __embind_register_function, "s": __embind_register_integer, "i": __embind_register_memory_view, "C": __embind_register_std_string, "x": __embind_register_std_wstring, "ea": __embind_register_value_array, "j": __embind_register_value_array_element, "r": __embind_register_value_object, "f": __embind_register_value_object_field, "ca": __embind_register_void, "Y": __emscripten_err, "V": __emscripten_notify_task_queue, "S": __emscripten_set_offscreencanvas_size, "n": __emval_as, "z": __emval_call, "b": __emval_decref, "F": __emval_get_global, "l": __emval_get_property, "u": __emval_incref, "ga": __emval_instanceof, "y": __emval_is_number, "E": __emval_is_string, "fa": __emval_new_array, "h": __emval_new_cstring, "w": __emval_new_object, "m": __emval_run_destructors, "k": __emval_set_property, "e": __emval_take_value, "A": _abort, "U": _emscripten_check_blocking_allowed, "v": _emscripten_get_now, "W": _emscripten_memcpy_big, "R": _emscripten_receive_on_main_thread_js, "P": _emscripten_resize_heap, "$": _emscripten_unwind_to_js_event_loop, "L": _environ_get, "M": _environ_sizes_get, "I": _exit, "N": _fd_close, "O": _fd_read, "G": _fd_seek, "Q": _fd_write, "a": wasmMemory || Module["wasmMemory"], "K": _strftime_l }; - createWasm(); - var _malloc = function() { - return (_malloc = Module["asm"]["ja"]).apply(null, arguments); - }; - Module["__emscripten_tls_init"] = function() { - return (Module["__emscripten_tls_init"] = Module["asm"]["ka"]).apply(null, arguments); - }; - var _pthread_self = Module["_pthread_self"] = function() { - return (_pthread_self = Module["_pthread_self"] = Module["asm"]["la"]).apply(null, arguments); - }; - var ___getTypeName = Module["___getTypeName"] = function() { - return (___getTypeName = Module["___getTypeName"] = Module["asm"]["ma"]).apply(null, arguments); - }; - Module["__embind_initialize_bindings"] = function() { - return (Module["__embind_initialize_bindings"] = Module["asm"]["na"]).apply(null, arguments); - }; - var __emscripten_thread_init = Module["__emscripten_thread_init"] = function() { - return (__emscripten_thread_init = Module["__emscripten_thread_init"] = Module["asm"]["oa"]).apply(null, arguments); - }; - Module["__emscripten_thread_crashed"] = function() { - return (Module["__emscripten_thread_crashed"] = Module["asm"]["pa"]).apply(null, arguments); - }; - var _emscripten_run_in_main_runtime_thread_js = function() { - return (_emscripten_run_in_main_runtime_thread_js = Module["asm"]["qa"]).apply(null, arguments); - }; - var __emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = function() { - return (__emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = Module["asm"]["ra"]).apply(null, arguments); - }; - var __emscripten_thread_free_data = function() { - return (__emscripten_thread_free_data = Module["asm"]["sa"]).apply(null, arguments); - }; - var __emscripten_thread_exit = Module["__emscripten_thread_exit"] = function() { - return (__emscripten_thread_exit = Module["__emscripten_thread_exit"] = Module["asm"]["ta"]).apply(null, arguments); - }; - var _free = function() { - return (_free = Module["asm"]["ua"]).apply(null, arguments); - }; - var _emscripten_stack_set_limits = function() { - return (_emscripten_stack_set_limits = Module["asm"]["va"]).apply(null, arguments); - }; - var stackSave = function() { - return (stackSave = Module["asm"]["wa"]).apply(null, arguments); - }; - var stackRestore = function() { - return (stackRestore = Module["asm"]["xa"]).apply(null, arguments); - }; - var stackAlloc = function() { - return (stackAlloc = Module["asm"]["ya"]).apply(null, arguments); - }; - var ___cxa_is_pointer_type = function() { - return (___cxa_is_pointer_type = Module["asm"]["za"]).apply(null, arguments); - }; - Module["dynCall_jiji"] = function() { - return (Module["dynCall_jiji"] = Module["asm"]["Aa"]).apply(null, arguments); - }; - Module["dynCall_viijii"] = function() { - return (Module["dynCall_viijii"] = Module["asm"]["Ba"]).apply(null, arguments); - }; - Module["dynCall_iiiiij"] = function() { - return (Module["dynCall_iiiiij"] = Module["asm"]["Ca"]).apply(null, arguments); - }; - Module["dynCall_iiiiijj"] = function() { - return (Module["dynCall_iiiiijj"] = Module["asm"]["Da"]).apply(null, arguments); - }; - Module["dynCall_iiiiiijj"] = function() { - return (Module["dynCall_iiiiiijj"] = Module["asm"]["Ea"]).apply(null, arguments); - }; - Module["keepRuntimeAlive"] = keepRuntimeAlive; - Module["wasmMemory"] = wasmMemory; - Module["ExitStatus"] = ExitStatus; - Module["PThread"] = PThread; - var calledRun; - dependenciesFulfilled = function runCaller() { - if (!calledRun) - run(); - if (!calledRun) - dependenciesFulfilled = runCaller; - }; - function run() { - if (runDependencies > 0) { - return; - } - if (ENVIRONMENT_IS_PTHREAD) { - readyPromiseResolve(Module); - initRuntime(); - startWorker(Module); - return; - } - preRun(); - if (runDependencies > 0) { - return; - } - function doRun() { - if (calledRun) - return; - calledRun = true; - Module["calledRun"] = true; - if (ABORT) - return; - initRuntime(); - readyPromiseResolve(Module); - if (Module["onRuntimeInitialized"]) - Module["onRuntimeInitialized"](); - postRun(); - } - if (Module["setStatus"]) { - Module["setStatus"]("Running..."); - setTimeout(function() { - setTimeout(function() { - Module["setStatus"](""); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - } - if (Module["preInit"]) { - if (typeof Module["preInit"] == "function") - Module["preInit"] = [Module["preInit"]]; - while (Module["preInit"].length > 0) { - Module["preInit"].pop()(); - } - } - run(); - return WebIFCWasm3.ready; - }; - })(); - if (typeof exports === "object" && typeof module === "object") - module.exports = WebIFCWasm2; - else if (typeof define === "function" && define["amd"]) - define([], function() { - return WebIFCWasm2; - }); - else if (typeof exports === "object") - exports["WebIFCWasm"] = WebIFCWasm2; - } -}); - -// dist/web-ifc.js -var require_web_ifc = __commonJS({ - "dist/web-ifc.js"(exports, module) { - var WebIFCWasm2 = (() => { - var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; - return function(WebIFCWasm3 = {}) { - var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; - var readyPromiseResolve, readyPromiseReject; - Module["ready"] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; - }); - var moduleOverrides = Object.assign({}, Module); - var thisProgram = "./this.program"; - var ENVIRONMENT_IS_WEB = true; - var scriptDirectory = ""; - function locateFile(path) { - if (Module["locateFile"]) { - return Module["locateFile"](path, scriptDirectory); - } - return scriptDirectory + path; - } - var read_, readAsync, readBinary; - { - if (typeof document != "undefined" && document.currentScript) { - scriptDirectory = document.currentScript.src; - } - if (_scriptDir) { - scriptDirectory = _scriptDir; - } - if (scriptDirectory.indexOf("blob:") !== 0) { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); - } else { - scriptDirectory = ""; - } - { - read_ = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, false); - xhr.send(null); - return xhr.responseText; - }; - readAsync = (url, onload, onerror) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, true); - xhr.responseType = "arraybuffer"; - xhr.onload = () => { - if (xhr.status == 200 || xhr.status == 0 && xhr.response) { - onload(xhr.response); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - }; - } - } - var out = Module["print"] || console.log.bind(console); - var err = Module["printErr"] || console.warn.bind(console); - Object.assign(Module, moduleOverrides); - moduleOverrides = null; - if (Module["arguments"]) - ; - if (Module["thisProgram"]) - thisProgram = Module["thisProgram"]; - if (Module["quit"]) - ; - var wasmBinary; - if (Module["wasmBinary"]) - wasmBinary = Module["wasmBinary"]; - Module["noExitRuntime"] || true; - if (typeof WebAssembly != "object") { - abort("no native wasm support detected"); - } - var wasmMemory; - var ABORT = false; - function assert(condition, text) { - if (!condition) { - abort(text); - } - } - var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; - function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { - idx >>>= 0; - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) - ++endPtr; - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); - } - var str = ""; - while (idx < endPtr) { - var u0 = heapOrArray[idx++]; - if (!(u0 & 128)) { - str += String.fromCharCode(u0); - continue; - } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 224) == 192) { - str += String.fromCharCode((u0 & 31) << 6 | u1); - continue; - } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 240) == 224) { - u0 = (u0 & 15) << 12 | u1 << 6 | u2; - } else { - u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; - } - if (u0 < 65536) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } - } - return str; - } - function UTF8ToString(ptr, maxBytesToRead) { - ptr >>>= 0; - return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; - } - function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - outIdx >>>= 0; - if (!(maxBytesToWrite > 0)) - return 0; - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) { - var u1 = str.charCodeAt(++i); - u = 65536 + ((u & 1023) << 10) | u1 & 1023; - } - if (u <= 127) { - if (outIdx >= endIdx) - break; - heap[outIdx++ >>> 0] = u; - } else if (u <= 2047) { - if (outIdx + 1 >= endIdx) - break; - heap[outIdx++ >>> 0] = 192 | u >> 6; - heap[outIdx++ >>> 0] = 128 | u & 63; - } else if (u <= 65535) { - if (outIdx + 2 >= endIdx) - break; - heap[outIdx++ >>> 0] = 224 | u >> 12; - heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; - heap[outIdx++ >>> 0] = 128 | u & 63; - } else { - if (outIdx + 3 >= endIdx) - break; - heap[outIdx++ >>> 0] = 240 | u >> 18; - heap[outIdx++ >>> 0] = 128 | u >> 12 & 63; - heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; - heap[outIdx++ >>> 0] = 128 | u & 63; - } - } - heap[outIdx >>> 0] = 0; - return outIdx - startIdx; - } - function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); - } - function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var c = str.charCodeAt(i); - if (c <= 127) { - len++; - } else if (c <= 2047) { - len += 2; - } else if (c >= 55296 && c <= 57343) { - len += 4; - ++i; - } else { - len += 3; - } - } - return len; - } - var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; - function updateMemoryViews() { - var b = wasmMemory.buffer; - Module["HEAP8"] = HEAP8 = new Int8Array(b); - Module["HEAP16"] = HEAP16 = new Int16Array(b); - Module["HEAP32"] = HEAP32 = new Int32Array(b); - Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); - Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); - Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); - Module["HEAPF32"] = HEAPF32 = new Float32Array(b); - Module["HEAPF64"] = HEAPF64 = new Float64Array(b); - } - var wasmTable; - var __ATPRERUN__ = []; - var __ATINIT__ = []; - var __ATPOSTRUN__ = []; - function preRun() { - if (Module["preRun"]) { - if (typeof Module["preRun"] == "function") - Module["preRun"] = [Module["preRun"]]; - while (Module["preRun"].length) { - addOnPreRun(Module["preRun"].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); - } - function initRuntime() { - if (!Module["noFSInit"] && !FS.init.initialized) - FS.init(); - FS.ignorePermissions = false; - callRuntimeCallbacks(__ATINIT__); - } - function postRun() { - if (Module["postRun"]) { - if (typeof Module["postRun"] == "function") - Module["postRun"] = [Module["postRun"]]; - while (Module["postRun"].length) { - addOnPostRun(Module["postRun"].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); - } - function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); - } - function addOnInit(cb) { - __ATINIT__.unshift(cb); - } - function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); - } - var runDependencies = 0; - var dependenciesFulfilled = null; - function getUniqueRunDependency(id) { - return id; - } - function addRunDependency(id) { - runDependencies++; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - } - function removeRunDependency(id) { - runDependencies--; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - if (runDependencies == 0) { - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); - } - } - } - function abort(what) { - if (Module["onAbort"]) { - Module["onAbort"](what); - } - what = "Aborted(" + what + ")"; - err(what); - ABORT = true; - what += ". Build with -sASSERTIONS for more info."; - var e = new WebAssembly.RuntimeError(what); - readyPromiseReject(e); - throw e; - } - var dataURIPrefix = "data:application/octet-stream;base64,"; - function isDataURI(filename) { - return filename.startsWith(dataURIPrefix); - } - var wasmBinaryFile; - wasmBinaryFile = "web-ifc.wasm"; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) ; - throw "both async and sync fetching of the wasm failed"; - } catch (err2) { - abort(err2); - } - } - function getBinaryPromise() { - if (!wasmBinary && (ENVIRONMENT_IS_WEB )) { - if (typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - if (!response["ok"]) { - throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; - } - return response["arrayBuffer"](); - }).catch(function() { - return getBinary(wasmBinaryFile); - }); - } - } - return Promise.resolve().then(function() { - return getBinary(wasmBinaryFile); - }); - } - function createWasm() { - var info = { "a": wasmImports }; - function receiveInstance(instance, module2) { - var exports3 = instance.exports; - Module["asm"] = exports3; - wasmMemory = Module["asm"]["V"]; - updateMemoryViews(); - wasmTable = Module["asm"]["X"]; - addOnInit(Module["asm"]["W"]); - removeRunDependency(); - } - addRunDependency(); - function receiveInstantiationResult(result) { - receiveInstance(result["instance"]); - } - function instantiateArrayBuffer(receiver) { - return getBinaryPromise().then(function(binary) { - return WebAssembly.instantiate(binary, info); - }).then(function(instance) { - return instance; - }).then(receiver, function(reason) { - err("failed to asynchronously prepare wasm: " + reason); - abort(reason); - }); - } - function instantiateAsync() { - if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - var result = WebAssembly.instantiateStreaming(response, info); - return result.then(receiveInstantiationResult, function(reason) { - err("wasm streaming compile failed: " + reason); - err("falling back to ArrayBuffer instantiation"); - return instantiateArrayBuffer(receiveInstantiationResult); - }); - }); - } else { - return instantiateArrayBuffer(receiveInstantiationResult); - } - } - if (Module["instantiateWasm"]) { - try { - var exports2 = Module["instantiateWasm"](info, receiveInstance); - return exports2; - } catch (e) { - err("Module.instantiateWasm callback failed with error: " + e); - readyPromiseReject(e); - } - } - instantiateAsync().catch(readyPromiseReject); - return {}; - } - var tempDouble; - var tempI64; - function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - callbacks.shift()(Module); - } - } - function ExceptionInfo(excPtr) { - this.excPtr = excPtr; - this.ptr = excPtr - 24; - this.set_type = function(type) { - HEAPU32[this.ptr + 4 >>> 2] = type; - }; - this.get_type = function() { - return HEAPU32[this.ptr + 4 >>> 2]; - }; - this.set_destructor = function(destructor) { - HEAPU32[this.ptr + 8 >>> 2] = destructor; - }; - this.get_destructor = function() { - return HEAPU32[this.ptr + 8 >>> 2]; - }; - this.set_refcount = function(refcount) { - HEAP32[this.ptr >>> 2] = refcount; - }; - this.set_caught = function(caught) { - caught = caught ? 1 : 0; - HEAP8[this.ptr + 12 >>> 0] = caught; - }; - this.get_caught = function() { - return HEAP8[this.ptr + 12 >>> 0] != 0; - }; - this.set_rethrown = function(rethrown) { - rethrown = rethrown ? 1 : 0; - HEAP8[this.ptr + 13 >>> 0] = rethrown; - }; - this.get_rethrown = function() { - return HEAP8[this.ptr + 13 >>> 0] != 0; - }; - this.init = function(type, destructor) { - this.set_adjusted_ptr(0); - this.set_type(type); - this.set_destructor(destructor); - this.set_refcount(0); - this.set_caught(false); - this.set_rethrown(false); - }; - this.add_ref = function() { - var value = HEAP32[this.ptr >>> 2]; - HEAP32[this.ptr >>> 2] = value + 1; - }; - this.release_ref = function() { - var prev = HEAP32[this.ptr >>> 2]; - HEAP32[this.ptr >>> 2] = prev - 1; - return prev === 1; - }; - this.set_adjusted_ptr = function(adjustedPtr) { - HEAPU32[this.ptr + 16 >>> 2] = adjustedPtr; - }; - this.get_adjusted_ptr = function() { - return HEAPU32[this.ptr + 16 >>> 2]; - }; - this.get_exception_ptr = function() { - var isPointer = ___cxa_is_pointer_type(this.get_type()); - if (isPointer) { - return HEAPU32[this.excPtr >>> 2]; - } - var adjusted = this.get_adjusted_ptr(); - if (adjusted !== 0) - return adjusted; - return this.excPtr; - }; - } - function ___cxa_throw(ptr, type, destructor) { - var info = new ExceptionInfo(ptr); - info.init(type, destructor); - throw ptr; - } - var tupleRegistrations = {}; - function runDestructors(destructors) { - while (destructors.length) { - var ptr = destructors.pop(); - var del = destructors.pop(); - del(ptr); - } - } - function simpleReadValueFromPointer(pointer) { - return this["fromWireType"](HEAP32[pointer >>> 2]); - } - var awaitingDependencies = {}; - var registeredTypes = {}; - var typeDependencies = {}; - var char_0 = 48; - var char_9 = 57; - function makeLegalFunctionName(name) { - if (name === void 0) { - return "_unknown"; - } - name = name.replace(/[^a-zA-Z0-9_]/g, "$"); - var f = name.charCodeAt(0); - if (f >= char_0 && f <= char_9) { - return "_" + name; - } - return name; - } - function createNamedFunction(name, body) { - name = makeLegalFunctionName(name); - return new Function("body", "return function " + name + '() {\n "use strict"; return body.apply(this, arguments);\n};\n')(body); - } - function extendError(baseErrorType, errorName) { - var errorClass = createNamedFunction(errorName, function(message) { - this.name = errorName; - this.message = message; - var stack = new Error(message).stack; - if (stack !== void 0) { - this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); - } - }); - errorClass.prototype = Object.create(baseErrorType.prototype); - errorClass.prototype.constructor = errorClass; - errorClass.prototype.toString = function() { - if (this.message === void 0) { - return this.name; - } else { - return this.name + ": " + this.message; - } - }; - return errorClass; - } - var InternalError = void 0; - function throwInternalError(message) { - throw new InternalError(message); - } - function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { - myTypes.forEach(function(type) { - typeDependencies[type] = dependentTypes; - }); - function onComplete(typeConverters2) { - var myTypeConverters = getTypeConverters(typeConverters2); - if (myTypeConverters.length !== myTypes.length) { - throwInternalError("Mismatched type converter count"); - } - for (var i = 0; i < myTypes.length; ++i) { - registerType(myTypes[i], myTypeConverters[i]); - } - } - var typeConverters = new Array(dependentTypes.length); - var unregisteredTypes = []; - var registered = 0; - dependentTypes.forEach((dt, i) => { - if (registeredTypes.hasOwnProperty(dt)) { - typeConverters[i] = registeredTypes[dt]; - } else { - unregisteredTypes.push(dt); - if (!awaitingDependencies.hasOwnProperty(dt)) { - awaitingDependencies[dt] = []; - } - awaitingDependencies[dt].push(() => { - typeConverters[i] = registeredTypes[dt]; - ++registered; - if (registered === unregisteredTypes.length) { - onComplete(typeConverters); - } - }); - } - }); - if (unregisteredTypes.length === 0) { - onComplete(typeConverters); - } - } - function __embind_finalize_value_array(rawTupleType) { - var reg = tupleRegistrations[rawTupleType]; - delete tupleRegistrations[rawTupleType]; - var elements = reg.elements; - var elementsLength = elements.length; - var elementTypes = elements.map(function(elt) { - return elt.getterReturnType; - }).concat(elements.map(function(elt) { - return elt.setterArgumentType; - })); - var rawConstructor = reg.rawConstructor; - var rawDestructor = reg.rawDestructor; - whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) { - elements.forEach((elt, i) => { - var getterReturnType = elementTypes2[i]; - var getter = elt.getter; - var getterContext = elt.getterContext; - var setterArgumentType = elementTypes2[i + elementsLength]; - var setter = elt.setter; - var setterContext = elt.setterContext; - elt.read = (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }; - elt.write = (ptr, o) => { - var destructors = []; - setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); - runDestructors(destructors); - }; - }); - return [{ name: reg.name, "fromWireType": function(ptr) { - var rv = new Array(elementsLength); - for (var i = 0; i < elementsLength; ++i) { - rv[i] = elements[i].read(ptr); - } - rawDestructor(ptr); - return rv; - }, "toWireType": function(destructors, o) { - if (elementsLength !== o.length) { - throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); - } - var ptr = rawConstructor(); - for (var i = 0; i < elementsLength; ++i) { - elements[i].write(ptr, o[i]); - } - if (destructors !== null) { - destructors.push(rawDestructor, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; - }); - } - var structRegistrations = {}; - function __embind_finalize_value_object(structType) { - var reg = structRegistrations[structType]; - delete structRegistrations[structType]; - var rawConstructor = reg.rawConstructor; - var rawDestructor = reg.rawDestructor; - var fieldRecords = reg.fields; - var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType)); - whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => { - var fields = {}; - fieldRecords.forEach((field, i) => { - var fieldName = field.fieldName; - var getterReturnType = fieldTypes2[i]; - var getter = field.getter; - var getterContext = field.getterContext; - var setterArgumentType = fieldTypes2[i + fieldRecords.length]; - var setter = field.setter; - var setterContext = field.setterContext; - fields[fieldName] = { read: (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }, write: (ptr, o) => { - var destructors = []; - setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); - runDestructors(destructors); - } }; - }); - return [{ name: reg.name, "fromWireType": function(ptr) { - var rv = {}; - for (var i in fields) { - rv[i] = fields[i].read(ptr); - } - rawDestructor(ptr); - return rv; - }, "toWireType": function(destructors, o) { - for (var fieldName in fields) { - if (!(fieldName in o)) { - throw new TypeError('Missing field: "' + fieldName + '"'); - } - } - var ptr = rawConstructor(); - for (fieldName in fields) { - fields[fieldName].write(ptr, o[fieldName]); - } - if (destructors !== null) { - destructors.push(rawDestructor, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; - }); - } - function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { - } - function getShiftFromSize(size) { - switch (size) { - case 1: - return 0; - case 2: - return 1; - case 4: - return 2; - case 8: - return 3; - default: - throw new TypeError("Unknown type size: " + size); - } - } - function embind_init_charCodes() { - var codes = new Array(256); - for (var i = 0; i < 256; ++i) { - codes[i] = String.fromCharCode(i); - } - embind_charCodes = codes; - } - var embind_charCodes = void 0; - function readLatin1String(ptr) { - var ret = ""; - var c = ptr; - while (HEAPU8[c >>> 0]) { - ret += embind_charCodes[HEAPU8[c++ >>> 0]]; - } - return ret; - } - var BindingError = void 0; - function throwBindingError(message) { - throw new BindingError(message); - } - function registerType(rawType, registeredInstance, options = {}) { - if (!("argPackAdvance" in registeredInstance)) { - throw new TypeError("registerType registeredInstance requires argPackAdvance"); - } - var name = registeredInstance.name; - if (!rawType) { - throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); - } - if (registeredTypes.hasOwnProperty(rawType)) { - if (options.ignoreDuplicateRegistrations) { - return; - } else { - throwBindingError("Cannot register type '" + name + "' twice"); - } - } - registeredTypes[rawType] = registeredInstance; - delete typeDependencies[rawType]; - if (awaitingDependencies.hasOwnProperty(rawType)) { - var callbacks = awaitingDependencies[rawType]; - delete awaitingDependencies[rawType]; - callbacks.forEach((cb) => cb()); - } - } - function __embind_register_bool(rawType, name, size, trueValue, falseValue) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(wt) { - return !!wt; - }, "toWireType": function(destructors, o) { - return o ? trueValue : falseValue; - }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) { - var heap; - if (size === 1) { - heap = HEAP8; - } else if (size === 2) { - heap = HEAP16; - } else if (size === 4) { - heap = HEAP32; - } else { - throw new TypeError("Unknown boolean type size: " + name); - } - return this["fromWireType"](heap[pointer >>> shift]); - }, destructorFunction: null }); - } - function ClassHandle_isAliasOf(other) { - if (!(this instanceof ClassHandle)) { - return false; - } - if (!(other instanceof ClassHandle)) { - return false; - } - var leftClass = this.$$.ptrType.registeredClass; - var left = this.$$.ptr; - var rightClass = other.$$.ptrType.registeredClass; - var right = other.$$.ptr; - while (leftClass.baseClass) { - left = leftClass.upcast(left); - leftClass = leftClass.baseClass; - } - while (rightClass.baseClass) { - right = rightClass.upcast(right); - rightClass = rightClass.baseClass; - } - return leftClass === rightClass && left === right; - } - function shallowCopyInternalPointer(o) { - return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType }; - } - function throwInstanceAlreadyDeleted(obj) { - function getInstanceTypeName(handle) { - return handle.$$.ptrType.registeredClass.name; - } - throwBindingError(getInstanceTypeName(obj) + " instance already deleted"); - } - var finalizationRegistry = false; - function detachFinalizer(handle) { - } - function runDestructor($$) { - if ($$.smartPtr) { - $$.smartPtrType.rawDestructor($$.smartPtr); - } else { - $$.ptrType.registeredClass.rawDestructor($$.ptr); - } - } - function releaseClassHandle($$) { - $$.count.value -= 1; - var toDelete = $$.count.value === 0; - if (toDelete) { - runDestructor($$); - } - } - function downcastPointer(ptr, ptrClass, desiredClass) { - if (ptrClass === desiredClass) { - return ptr; - } - if (desiredClass.baseClass === void 0) { - return null; - } - var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); - if (rv === null) { - return null; - } - return desiredClass.downcast(rv); - } - var registeredPointers = {}; - function getInheritedInstanceCount() { - return Object.keys(registeredInstances).length; - } - function getLiveInheritedInstances() { - var rv = []; - for (var k in registeredInstances) { - if (registeredInstances.hasOwnProperty(k)) { - rv.push(registeredInstances[k]); - } - } - return rv; - } - var deletionQueue = []; - function flushPendingDeletes() { - while (deletionQueue.length) { - var obj = deletionQueue.pop(); - obj.$$.deleteScheduled = false; - obj["delete"](); - } - } - var delayFunction = void 0; - function setDelayFunction(fn) { - delayFunction = fn; - if (deletionQueue.length && delayFunction) { - delayFunction(flushPendingDeletes); - } - } - function init_embind() { - Module["getInheritedInstanceCount"] = getInheritedInstanceCount; - Module["getLiveInheritedInstances"] = getLiveInheritedInstances; - Module["flushPendingDeletes"] = flushPendingDeletes; - Module["setDelayFunction"] = setDelayFunction; - } - var registeredInstances = {}; - function getBasestPointer(class_, ptr) { - if (ptr === void 0) { - throwBindingError("ptr should not be undefined"); - } - while (class_.baseClass) { - ptr = class_.upcast(ptr); - class_ = class_.baseClass; - } - return ptr; - } - function getInheritedInstance(class_, ptr) { - ptr = getBasestPointer(class_, ptr); - return registeredInstances[ptr]; - } - function makeClassHandle(prototype, record) { - if (!record.ptrType || !record.ptr) { - throwInternalError("makeClassHandle requires ptr and ptrType"); - } - var hasSmartPtrType = !!record.smartPtrType; - var hasSmartPtr = !!record.smartPtr; - if (hasSmartPtrType !== hasSmartPtr) { - throwInternalError("Both smartPtrType and smartPtr must be specified"); - } - record.count = { value: 1 }; - return attachFinalizer(Object.create(prototype, { $$: { value: record } })); - } - function RegisteredPointer_fromWireType(ptr) { - var rawPointer = this.getPointee(ptr); - if (!rawPointer) { - this.destructor(ptr); - return null; - } - var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); - if (registeredInstance !== void 0) { - if (registeredInstance.$$.count.value === 0) { - registeredInstance.$$.ptr = rawPointer; - registeredInstance.$$.smartPtr = ptr; - return registeredInstance["clone"](); - } else { - var rv = registeredInstance["clone"](); - this.destructor(ptr); - return rv; - } - } - function makeDefaultHandle() { - if (this.isSmartPointer) { - return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr }); - } else { - return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr }); - } - } - var actualType = this.registeredClass.getActualType(rawPointer); - var registeredPointerRecord = registeredPointers[actualType]; - if (!registeredPointerRecord) { - return makeDefaultHandle.call(this); - } - var toType; - if (this.isConst) { - toType = registeredPointerRecord.constPointerType; - } else { - toType = registeredPointerRecord.pointerType; - } - var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass); - if (dp === null) { - return makeDefaultHandle.call(this); - } - if (this.isSmartPointer) { - return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr }); - } else { - return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); - } - } - function attachFinalizer(handle) { - if (typeof FinalizationRegistry === "undefined") { - attachFinalizer = (handle2) => handle2; - return handle; - } - finalizationRegistry = new FinalizationRegistry((info) => { - releaseClassHandle(info.$$); - }); - attachFinalizer = (handle2) => { - var $$ = handle2.$$; - var hasSmartPtr = !!$$.smartPtr; - if (hasSmartPtr) { - var info = { $$ }; - finalizationRegistry.register(handle2, info, handle2); - } - return handle2; - }; - detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); - return attachFinalizer(handle); - } - function ClassHandle_clone() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.preservePointerOnDelete) { - this.$$.count.value += 1; - return this; - } else { - var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } })); - clone.$$.count.value += 1; - clone.$$.deleteScheduled = false; - return clone; - } - } - function ClassHandle_delete() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError("Object already scheduled for deletion"); - } - detachFinalizer(this); - releaseClassHandle(this.$$); - if (!this.$$.preservePointerOnDelete) { - this.$$.smartPtr = void 0; - this.$$.ptr = void 0; - } - } - function ClassHandle_isDeleted() { - return !this.$$.ptr; - } - function ClassHandle_deleteLater() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError("Object already scheduled for deletion"); - } - deletionQueue.push(this); - if (deletionQueue.length === 1 && delayFunction) { - delayFunction(flushPendingDeletes); - } - this.$$.deleteScheduled = true; - return this; - } - function init_ClassHandle() { - ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; - ClassHandle.prototype["clone"] = ClassHandle_clone; - ClassHandle.prototype["delete"] = ClassHandle_delete; - ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; - ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; - } - function ClassHandle() { - } - function ensureOverloadTable(proto, methodName, humanName) { - if (proto[methodName].overloadTable === void 0) { - var prevFunc = proto[methodName]; - proto[methodName] = function() { - if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { - throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); - } - return proto[methodName].overloadTable[arguments.length].apply(this, arguments); - }; - proto[methodName].overloadTable = []; - proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; - } - } - function exposePublicSymbol(name, value, numArguments) { - if (Module.hasOwnProperty(name)) { - if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { - throwBindingError("Cannot register public name '" + name + "' twice"); - } - ensureOverloadTable(Module, name, name); - if (Module.hasOwnProperty(numArguments)) { - throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); - } - Module[name].overloadTable[numArguments] = value; - } else { - Module[name] = value; - if (numArguments !== void 0) { - Module[name].numArguments = numArguments; - } - } - } - function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) { - this.name = name; - this.constructor = constructor; - this.instancePrototype = instancePrototype; - this.rawDestructor = rawDestructor; - this.baseClass = baseClass; - this.getActualType = getActualType; - this.upcast = upcast; - this.downcast = downcast; - this.pureVirtualFunctions = []; - } - function upcastPointer(ptr, ptrClass, desiredClass) { - while (ptrClass !== desiredClass) { - if (!ptrClass.upcast) { - throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); - } - ptr = ptrClass.upcast(ptr); - ptrClass = ptrClass.baseClass; - } - return ptr; - } - function constNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - return 0; - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - function genericPointerToWireType(destructors, handle) { - var ptr; - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - if (this.isSmartPointer) { - ptr = this.rawConstructor(); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - return ptr; - } else { - return 0; - } - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - if (!this.isConst && handle.$$.ptrType.isConst) { - throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - if (this.isSmartPointer) { - if (handle.$$.smartPtr === void 0) { - throwBindingError("Passing raw pointer to smart pointer is illegal"); - } - switch (this.sharingPolicy) { - case 0: - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); - } - break; - case 1: - ptr = handle.$$.smartPtr; - break; - case 2: - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - var clonedHandle = handle["clone"](); - ptr = this.rawShare(ptr, Emval.toHandle(function() { - clonedHandle["delete"](); - })); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - } - break; - default: - throwBindingError("Unsupporting sharing policy"); - } - } - return ptr; - } - function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - return 0; - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - if (handle.$$.ptrType.isConst) { - throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - function RegisteredPointer_getPointee(ptr) { - if (this.rawGetPointee) { - ptr = this.rawGetPointee(ptr); - } - return ptr; - } - function RegisteredPointer_destructor(ptr) { - if (this.rawDestructor) { - this.rawDestructor(ptr); - } - } - function RegisteredPointer_deleteObject(handle) { - if (handle !== null) { - handle["delete"](); - } - } - function init_RegisteredPointer() { - RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; - RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; - RegisteredPointer.prototype["argPackAdvance"] = 8; - RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; - RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; - RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; - } - function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) { - this.name = name; - this.registeredClass = registeredClass; - this.isReference = isReference; - this.isConst = isConst; - this.isSmartPointer = isSmartPointer; - this.pointeeType = pointeeType; - this.sharingPolicy = sharingPolicy; - this.rawGetPointee = rawGetPointee; - this.rawConstructor = rawConstructor; - this.rawShare = rawShare; - this.rawDestructor = rawDestructor; - if (!isSmartPointer && registeredClass.baseClass === void 0) { - if (isConst) { - this["toWireType"] = constNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } else { - this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } - } else { - this["toWireType"] = genericPointerToWireType; - } - } - function replacePublicSymbol(name, value, numArguments) { - if (!Module.hasOwnProperty(name)) { - throwInternalError("Replacing nonexistant public symbol"); - } - if (Module[name].overloadTable !== void 0 && numArguments !== void 0) { - Module[name].overloadTable[numArguments] = value; - } else { - Module[name] = value; - Module[name].argCount = numArguments; - } - } - function dynCallLegacy(sig, ptr, args) { - var f = Module["dynCall_" + sig]; - return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); - } - var wasmTableMirror = []; - function getWasmTableEntry(funcPtr) { - var func = wasmTableMirror[funcPtr]; - if (!func) { - if (funcPtr >= wasmTableMirror.length) - wasmTableMirror.length = funcPtr + 1; - wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); - } - return func; - } - function dynCall(sig, ptr, args) { - if (sig.includes("j")) { - return dynCallLegacy(sig, ptr, args); - } - var rtn = getWasmTableEntry(ptr).apply(null, args); - return rtn; - } - function getDynCaller(sig, ptr) { - var argCache = []; - return function() { - argCache.length = 0; - Object.assign(argCache, arguments); - return dynCall(sig, ptr, argCache); - }; - } - function embind__requireFunction(signature, rawFunction) { - signature = readLatin1String(signature); - function makeDynCaller() { - if (signature.includes("j")) { - return getDynCaller(signature, rawFunction); - } - return getWasmTableEntry(rawFunction); - } - var fp = makeDynCaller(); - if (typeof fp != "function") { - throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); - } - return fp; - } - var UnboundTypeError = void 0; - function getTypeName(type) { - var ptr = ___getTypeName(type); - var rv = readLatin1String(ptr); - _free(ptr); - return rv; - } - function throwUnboundTypeError(message, types) { - var unboundTypes = []; - var seen = {}; - function visit(type) { - if (seen[type]) { - return; - } - if (registeredTypes[type]) { - return; - } - if (typeDependencies[type]) { - typeDependencies[type].forEach(visit); - return; - } - unboundTypes.push(type); - seen[type] = true; - } - types.forEach(visit); - throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); - } - function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { - name = readLatin1String(name); - getActualType = embind__requireFunction(getActualTypeSignature, getActualType); - if (upcast) { - upcast = embind__requireFunction(upcastSignature, upcast); - } - if (downcast) { - downcast = embind__requireFunction(downcastSignature, downcast); - } - rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); - var legalFunctionName = makeLegalFunctionName(name); - exposePublicSymbol(legalFunctionName, function() { - throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); - }); - whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { - base = base[0]; - var baseClass; - var basePrototype; - if (baseClassRawType) { - baseClass = base.registeredClass; - basePrototype = baseClass.instancePrototype; - } else { - basePrototype = ClassHandle.prototype; - } - var constructor = createNamedFunction(legalFunctionName, function() { - if (Object.getPrototypeOf(this) !== instancePrototype) { - throw new BindingError("Use 'new' to construct " + name); - } - if (registeredClass.constructor_body === void 0) { - throw new BindingError(name + " has no accessible constructor"); - } - var body = registeredClass.constructor_body[arguments.length]; - if (body === void 0) { - throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); - } - return body.apply(this, arguments); - }); - var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); - constructor.prototype = instancePrototype; - var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); - var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); - var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); - var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); - registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter }; - replacePublicSymbol(legalFunctionName, constructor); - return [referenceConverter, pointerConverter, constPointerConverter]; - }); - } - function heap32VectorToArray(count, firstElement) { - var array = []; - for (var i = 0; i < count; i++) { - array.push(HEAPU32[firstElement + i * 4 >>> 2]); - } - return array; - } - function new_(constructor, argumentList) { - if (!(constructor instanceof Function)) { - throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function"); - } - var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() { - }); - dummy.prototype = constructor.prototype; - var obj = new dummy(); - var r = constructor.apply(obj, argumentList); - return r instanceof Object ? r : obj; - } - function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { - var argCount = argTypes.length; - if (argCount < 2) { - throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); - } - var isClassMethodFunc = argTypes[1] !== null && classType !== null; - var needsDestructorStack = false; - for (var i = 1; i < argTypes.length; ++i) { - if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) { - needsDestructorStack = true; - break; - } - } - var returns = argTypes[0].name !== "void"; - var argsList = ""; - var argsListWired = ""; - for (var i = 0; i < argCount - 2; ++i) { - argsList += (i !== 0 ? ", " : "") + "arg" + i; - argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; - } - var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\nif (arguments.length !== " + (argCount - 2) + ") {\nthrowBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n}\n"; - if (needsDestructorStack) { - invokerFnBody += "var destructors = [];\n"; - } - var dtorStack = needsDestructorStack ? "destructors" : "null"; - var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; - var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; - if (isClassMethodFunc) { - invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; - } - for (var i = 0; i < argCount - 2; ++i) { - invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; - args1.push("argType" + i); - args2.push(argTypes[i + 2]); - } - if (isClassMethodFunc) { - argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; - } - invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; - if (needsDestructorStack) { - invokerFnBody += "runDestructors(destructors);\n"; - } else { - for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) { - var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; - if (argTypes[i].destructorFunction !== null) { - invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; - args1.push(paramName + "_dtor"); - args2.push(argTypes[i].destructorFunction); - } - } - } - if (returns) { - invokerFnBody += "var ret = retType.fromWireType(rv);\nreturn ret;\n"; - } - invokerFnBody += "}\n"; - args1.push(invokerFnBody); - var invokerFunction = new_(Function, args1).apply(null, args2); - return invokerFunction; - } - function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { - assert(argCount > 0); - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - invoker = embind__requireFunction(invokerSignature, invoker); - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = "constructor " + classType.name; - if (classType.registeredClass.constructor_body === void 0) { - classType.registeredClass.constructor_body = []; - } - if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) { - throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); - } - classType.registeredClass.constructor_body[argCount - 1] = () => { - throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); - }; - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - argTypes.splice(1, 0, null); - classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor); - return []; - }); - return []; - }); - } - function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - methodName = readLatin1String(methodName); - rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = classType.name + "." + methodName; - if (methodName.startsWith("@@")) { - methodName = Symbol[methodName.substring(2)]; - } - if (isPureVirtual) { - classType.registeredClass.pureVirtualFunctions.push(methodName); - } - function unboundTypesHandler() { - throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); - } - var proto = classType.registeredClass.instancePrototype; - var method = proto[methodName]; - if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) { - unboundTypesHandler.argCount = argCount - 2; - unboundTypesHandler.className = classType.name; - proto[methodName] = unboundTypesHandler; - } else { - ensureOverloadTable(proto, methodName, humanName); - proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; - } - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); - if (proto[methodName].overloadTable === void 0) { - memberFunction.argCount = argCount - 2; - proto[methodName] = memberFunction; - } else { - proto[methodName].overloadTable[argCount - 2] = memberFunction; - } - return []; - }); - return []; - }); - } - var emval_free_list = []; - var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }]; - function __emval_decref(handle) { - if (handle > 4 && --emval_handle_array[handle].refcount === 0) { - emval_handle_array[handle] = void 0; - emval_free_list.push(handle); - } - } - function count_emval_handles() { - var count = 0; - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { - ++count; - } - } - return count; - } - function get_first_emval() { - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { - return emval_handle_array[i]; - } - } - return null; - } - function init_emval() { - Module["count_emval_handles"] = count_emval_handles; - Module["get_first_emval"] = get_first_emval; - } - var Emval = { toValue: (handle) => { - if (!handle) { - throwBindingError("Cannot use deleted val. handle = " + handle); - } - return emval_handle_array[handle].value; - }, toHandle: (value) => { - switch (value) { - case void 0: - return 1; - case null: - return 2; - case true: - return 3; - case false: - return 4; - default: { - var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length; - emval_handle_array[handle] = { refcount: 1, value }; - return handle; - } - } - } }; - function __embind_register_emval(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(handle) { - var rv = Emval.toValue(handle); - __emval_decref(handle); - return rv; - }, "toWireType": function(destructors, value) { - return Emval.toHandle(value); - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null }); - } - function enumReadValueFromPointer(name, shift, signed) { - switch (shift) { - case 0: - return function(pointer) { - var heap = signed ? HEAP8 : HEAPU8; - return this["fromWireType"](heap[pointer >>> 0]); - }; - case 1: - return function(pointer) { - var heap = signed ? HEAP16 : HEAPU16; - return this["fromWireType"](heap[pointer >>> 1]); - }; - case 2: - return function(pointer) { - var heap = signed ? HEAP32 : HEAPU32; - return this["fromWireType"](heap[pointer >>> 2]); - }; - default: - throw new TypeError("Unknown integer type: " + name); - } - } - function __embind_register_enum(rawType, name, size, isSigned) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - function ctor() { - } - ctor.values = {}; - registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) { - return this.constructor.values[c]; - }, "toWireType": function(destructors, c) { - return c.value; - }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null }); - exposePublicSymbol(name, ctor); - } - function requireRegisteredType(rawType, humanName) { - var impl = registeredTypes[rawType]; - if (impl === void 0) { - throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); - } - return impl; - } - function __embind_register_enum_value(rawEnumType, name, enumValue) { - var enumType = requireRegisteredType(rawEnumType, "enum"); - name = readLatin1String(name); - var Enum = enumType.constructor; - var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { - }) } }); - Enum.values[enumValue] = Value; - Enum[name] = Value; - } - function embindRepr(v) { - if (v === null) { - return "null"; - } - var t = typeof v; - if (t === "object" || t === "array" || t === "function") { - return v.toString(); - } else { - return "" + v; - } - } - function floatReadValueFromPointer(name, shift) { - switch (shift) { - case 2: - return function(pointer) { - return this["fromWireType"](HEAPF32[pointer >>> 2]); - }; - case 3: - return function(pointer) { - return this["fromWireType"](HEAPF64[pointer >>> 3]); - }; - default: - throw new TypeError("Unknown float type: " + name); - } - } - function __embind_register_float(rawType, name, size) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(value) { - return value; - }, "toWireType": function(destructors, value) { - return value; - }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); - } - function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { - var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - name = readLatin1String(name); - rawInvoker = embind__requireFunction(signature, rawInvoker); - exposePublicSymbol(name, function() { - throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); - }, argCount - 1); - whenDependentTypesAreResolved([], argTypes, function(argTypes2) { - var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); - replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); - return []; - }); - } - function integerReadValueFromPointer(name, shift, signed) { - switch (shift) { - case 0: - return signed ? function readS8FromPointer(pointer) { - return HEAP8[pointer >>> 0]; - } : function readU8FromPointer(pointer) { - return HEAPU8[pointer >>> 0]; - }; - case 1: - return signed ? function readS16FromPointer(pointer) { - return HEAP16[pointer >>> 1]; - } : function readU16FromPointer(pointer) { - return HEAPU16[pointer >>> 1]; - }; - case 2: - return signed ? function readS32FromPointer(pointer) { - return HEAP32[pointer >>> 2]; - } : function readU32FromPointer(pointer) { - return HEAPU32[pointer >>> 2]; - }; - default: - throw new TypeError("Unknown integer type: " + name); - } - } - function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { - name = readLatin1String(name); - var shift = getShiftFromSize(size); - var fromWireType = (value) => value; - if (minRange === 0) { - var bitshift = 32 - 8 * size; - fromWireType = (value) => value << bitshift >>> bitshift; - } - var isUnsignedType = name.includes("unsigned"); - var checkAssertions = (value, toTypeName) => { - }; - var toWireType; - if (isUnsignedType) { - toWireType = function(destructors, value) { - checkAssertions(value, this.name); - return value >>> 0; - }; - } else { - toWireType = function(destructors, value) { - checkAssertions(value, this.name); - return value; - }; - } - registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); - } - function __embind_register_memory_view(rawType, dataTypeIndex, name) { - var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; - var TA = typeMapping[dataTypeIndex]; - function decodeMemoryView(handle) { - handle = handle >> 2; - var heap = HEAPU32; - var size = heap[handle >>> 0]; - var data = heap[handle + 1 >>> 0]; - return new TA(heap.buffer, data, size); - } - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); - } - function __embind_register_std_string(rawType, name) { - name = readLatin1String(name); - var stdStringIsUTF8 = name === "std::string"; - registerType(rawType, { name, "fromWireType": function(value) { - var length = HEAPU32[value >>> 2]; - var payload = value + 4; - var str; - if (stdStringIsUTF8) { - var decodeStartPtr = payload; - for (var i = 0; i <= length; ++i) { - var currentBytePtr = payload + i; - if (i == length || HEAPU8[currentBytePtr >>> 0] == 0) { - var maxRead = currentBytePtr - decodeStartPtr; - var stringSegment = UTF8ToString(decodeStartPtr, maxRead); - if (str === void 0) { - str = stringSegment; - } else { - str += String.fromCharCode(0); - str += stringSegment; - } - decodeStartPtr = currentBytePtr + 1; - } - } - } else { - var a = new Array(length); - for (var i = 0; i < length; ++i) { - a[i] = String.fromCharCode(HEAPU8[payload + i >>> 0]); - } - str = a.join(""); - } - _free(value); - return str; - }, "toWireType": function(destructors, value) { - if (value instanceof ArrayBuffer) { - value = new Uint8Array(value); - } - var length; - var valueIsOfTypeString = typeof value == "string"; - if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { - throwBindingError("Cannot pass non-string to std::string"); - } - if (stdStringIsUTF8 && valueIsOfTypeString) { - length = lengthBytesUTF8(value); - } else { - length = value.length; - } - var base = _malloc(4 + length + 1); - var ptr = base + 4; - ptr >>>= 0; - HEAPU32[base >>> 2] = length; - if (stdStringIsUTF8 && valueIsOfTypeString) { - stringToUTF8(value, ptr, length + 1); - } else { - if (valueIsOfTypeString) { - for (var i = 0; i < length; ++i) { - var charCode = value.charCodeAt(i); - if (charCode > 255) { - _free(ptr); - throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); - } - HEAPU8[ptr + i >>> 0] = charCode; - } - } else { - for (var i = 0; i < length; ++i) { - HEAPU8[ptr + i >>> 0] = value[i]; - } - } - } - if (destructors !== null) { - destructors.push(_free, base); - } - return base; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { - _free(ptr); - } }); - } - var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0; - function UTF16ToString(ptr, maxBytesToRead) { - var endPtr = ptr; - var idx = endPtr >> 1; - var maxIdx = idx + maxBytesToRead / 2; - while (!(idx >= maxIdx) && HEAPU16[idx >>> 0]) - ++idx; - endPtr = idx << 1; - if (endPtr - ptr > 32 && UTF16Decoder) - return UTF16Decoder.decode(HEAPU8.subarray(ptr >>> 0, endPtr >>> 0)); - var str = ""; - for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { - var codeUnit = HEAP16[ptr + i * 2 >>> 1]; - if (codeUnit == 0) - break; - str += String.fromCharCode(codeUnit); - } - return str; - } - function stringToUTF16(str, outPtr, maxBytesToWrite) { - if (maxBytesToWrite === void 0) { - maxBytesToWrite = 2147483647; - } - if (maxBytesToWrite < 2) - return 0; - maxBytesToWrite -= 2; - var startPtr = outPtr; - var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - var codeUnit = str.charCodeAt(i); - HEAP16[outPtr >>> 1] = codeUnit; - outPtr += 2; - } - HEAP16[outPtr >>> 1] = 0; - return outPtr - startPtr; - } - function lengthBytesUTF16(str) { - return str.length * 2; - } - function UTF32ToString(ptr, maxBytesToRead) { - var i = 0; - var str = ""; - while (!(i >= maxBytesToRead / 4)) { - var utf32 = HEAP32[ptr + i * 4 >>> 2]; - if (utf32 == 0) - break; - ++i; - if (utf32 >= 65536) { - var ch = utf32 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } else { - str += String.fromCharCode(utf32); - } - } - return str; - } - function stringToUTF32(str, outPtr, maxBytesToWrite) { - outPtr >>>= 0; - if (maxBytesToWrite === void 0) { - maxBytesToWrite = 2147483647; - } - if (maxBytesToWrite < 4) - return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 55296 && codeUnit <= 57343) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; - } - HEAP32[outPtr >>> 2] = codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) - break; - } - HEAP32[outPtr >>> 2] = 0; - return outPtr - startPtr; - } - function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 55296 && codeUnit <= 57343) - ++i; - len += 4; - } - return len; - } - function __embind_register_std_wstring(rawType, charSize, name) { - name = readLatin1String(name); - var decodeString, encodeString, getHeap, lengthBytesUTF, shift; - if (charSize === 2) { - decodeString = UTF16ToString; - encodeString = stringToUTF16; - lengthBytesUTF = lengthBytesUTF16; - getHeap = () => HEAPU16; - shift = 1; - } else if (charSize === 4) { - decodeString = UTF32ToString; - encodeString = stringToUTF32; - lengthBytesUTF = lengthBytesUTF32; - getHeap = () => HEAPU32; - shift = 2; - } - registerType(rawType, { name, "fromWireType": function(value) { - var length = HEAPU32[value >>> 2]; - var HEAP = getHeap(); - var str; - var decodeStartPtr = value + 4; - for (var i = 0; i <= length; ++i) { - var currentBytePtr = value + 4 + i * charSize; - if (i == length || HEAP[currentBytePtr >>> shift] == 0) { - var maxReadBytes = currentBytePtr - decodeStartPtr; - var stringSegment = decodeString(decodeStartPtr, maxReadBytes); - if (str === void 0) { - str = stringSegment; - } else { - str += String.fromCharCode(0); - str += stringSegment; - } - decodeStartPtr = currentBytePtr + charSize; - } - } - _free(value); - return str; - }, "toWireType": function(destructors, value) { - if (!(typeof value == "string")) { - throwBindingError("Cannot pass non-string to C++ string type " + name); - } - var length = lengthBytesUTF(value); - var ptr = _malloc(4 + length + charSize); - ptr >>>= 0; - HEAPU32[ptr >>> 2] = length >> shift; - encodeString(value, ptr + 4, length + charSize); - if (destructors !== null) { - destructors.push(_free, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { - _free(ptr); - } }); - } - function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { - tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; - } - function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { - tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); - } - function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { - structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; - } - function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { - structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); - } - function __embind_register_void(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { - return void 0; - }, "toWireType": function(destructors, o) { - return void 0; - } }); - } - function __emval_as(handle, returnType, destructorsRef) { - handle = Emval.toValue(handle); - returnType = requireRegisteredType(returnType, "emval::as"); - var destructors = []; - var rd = Emval.toHandle(destructors); - HEAPU32[destructorsRef >>> 2] = rd; - return returnType["toWireType"](destructors, handle); - } - function emval_lookupTypes(argCount, argTypes) { - var a = new Array(argCount); - for (var i = 0; i < argCount; ++i) { - a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >>> 2], "parameter " + i); - } - return a; - } - function __emval_call(handle, argCount, argTypes, argv) { - handle = Emval.toValue(handle); - var types = emval_lookupTypes(argCount, argTypes); - var args = new Array(argCount); - for (var i = 0; i < argCount; ++i) { - var type = types[i]; - args[i] = type["readValueFromPointer"](argv); - argv += type["argPackAdvance"]; - } - var rv = handle.apply(void 0, args); - return Emval.toHandle(rv); - } - var emval_symbols = {}; - function getStringOrSymbol(address) { - var symbol = emval_symbols[address]; - if (symbol === void 0) { - return readLatin1String(address); - } - return symbol; - } - function emval_get_global() { - if (typeof globalThis == "object") { - return globalThis; - } - return function() { - return Function; - }()("return this")(); - } - function __emval_get_global(name) { - if (name === 0) { - return Emval.toHandle(emval_get_global()); - } else { - name = getStringOrSymbol(name); - return Emval.toHandle(emval_get_global()[name]); - } - } - function __emval_get_property(handle, key) { - handle = Emval.toValue(handle); - key = Emval.toValue(key); - return Emval.toHandle(handle[key]); - } - function __emval_incref(handle) { - if (handle > 4) { - emval_handle_array[handle].refcount += 1; - } - } - function __emval_instanceof(object, constructor) { - object = Emval.toValue(object); - constructor = Emval.toValue(constructor); - return object instanceof constructor; - } - function __emval_is_number(handle) { - handle = Emval.toValue(handle); - return typeof handle == "number"; - } - function __emval_is_string(handle) { - handle = Emval.toValue(handle); - return typeof handle == "string"; - } - function __emval_new_array() { - return Emval.toHandle([]); - } - function __emval_new_cstring(v) { - return Emval.toHandle(getStringOrSymbol(v)); - } - function __emval_new_object() { - return Emval.toHandle({}); - } - function __emval_run_destructors(handle) { - var destructors = Emval.toValue(handle); - runDestructors(destructors); - __emval_decref(handle); - } - function __emval_set_property(handle, key, value) { - handle = Emval.toValue(handle); - key = Emval.toValue(key); - value = Emval.toValue(value); - handle[key] = value; - } - function __emval_take_value(type, arg) { - type = requireRegisteredType(type, "_emval_take_value"); - var v = type["readValueFromPointer"](arg); - return Emval.toHandle(v); - } - function _abort() { - abort(""); - } - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); - } - function getHeapMax() { - return 4294901760; - } - function emscripten_realloc_buffer(size) { - var b = wasmMemory.buffer; - try { - wasmMemory.grow(size - b.byteLength + 65535 >>> 16); - updateMemoryViews(); - return 1; - } catch (e) { - } - } - function _emscripten_resize_heap(requestedSize) { - var oldSize = HEAPU8.length; - requestedSize = requestedSize >>> 0; - var maxHeapSize = getHeapMax(); - if (requestedSize > maxHeapSize) { - return false; - } - let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); - var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - return true; - } - } - return false; - } - var ENV = {}; - function getExecutableName() { - return thisProgram || "./this.program"; - } - function getEnvStrings() { - if (!getEnvStrings.strings) { - var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; - var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() }; - for (var x in ENV) { - if (ENV[x] === void 0) - delete env[x]; - else - env[x] = ENV[x]; - } - var strings = []; - for (var x in env) { - strings.push(x + "=" + env[x]); - } - getEnvStrings.strings = strings; - } - return getEnvStrings.strings; - } - function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - HEAP8[buffer++ >>> 0] = str.charCodeAt(i); - } - if (!dontAddNull) - HEAP8[buffer >>> 0] = 0; - } - var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - }, normalizeArray: (parts, allowAboveRoot) => { - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === ".") { - parts.splice(i, 1); - } else if (last === "..") { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift(".."); - } - } - return parts; - }, normalize: (path) => { - var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; - path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/"); - if (!path && !isAbsolute) { - path = "."; - } - if (path && trailingSlash) { - path += "/"; - } - return (isAbsolute ? "/" : "") + path; - }, dirname: (path) => { - var result = PATH.splitPath(path), root = result[0], dir = result[1]; - if (!root && !dir) { - return "."; - } - if (dir) { - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - }, basename: (path) => { - if (path === "/") - return "/"; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf("/"); - if (lastSlash === -1) - return path; - return path.substr(lastSlash + 1); - }, join: function() { - var paths = Array.prototype.slice.call(arguments); - return PATH.normalize(paths.join("/")); - }, join2: (l, r) => { - return PATH.normalize(l + "/" + r); - } }; - function getRandomDevice() { - if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { - var randomBuffer = new Uint8Array(1); - return () => { - crypto.getRandomValues(randomBuffer); - return randomBuffer[0]; - }; - } else - return () => abort("randomDevice"); - } - var PATH_FS = { resolve: function() { - var resolvedPath = "", resolvedAbsolute = false; - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = i >= 0 ? arguments[i] : FS.cwd(); - if (typeof path != "string") { - throw new TypeError("Arguments to path.resolve must be strings"); - } else if (!path) { - return ""; - } - resolvedPath = path + "/" + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/"); - return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; - }, relative: (from, to) => { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== "") - break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== "") - break; - } - if (start > end) - return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split("/")); - var toParts = trim(to.split("/")); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push(".."); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join("/"); - } }; - function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) - u8array.length = numBytesWritten; - return u8array; - } - var TTY = { ttys: [], init: function() { - }, shutdown: function() { - }, register: function(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops }; - FS.registerDevice(dev, TTY.stream_ops); - }, stream_ops: { open: function(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - }, close: function(stream) { - stream.tty.ops.fsync(stream.tty); - }, fsync: function(stream) { - stream.tty.ops.fsync(stream.tty); - }, read: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === void 0 && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === void 0) - break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, write: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset + i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } }, default_tty_ops: { get_char: function(tty) { - if (!tty.input.length) { - var result = null; - if (typeof window != "undefined" && typeof window.prompt == "function") { - result = window.prompt("Input: "); - if (result !== null) { - result += "\n"; - } - } else if (typeof readline == "function") { - result = readline(); - if (result !== null) { - result += "\n"; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); - }, put_char: function(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) - tty.output.push(val); - } - }, fsync: function(tty) { - if (tty.output && tty.output.length > 0) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } }, default_tty1_ops: { put_char: function(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) - tty.output.push(val); - } - }, fsync: function(tty) { - if (tty.output && tty.output.length > 0) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } } }; - function mmapAlloc(size) { - abort(); - } - var MEMFS = { ops_table: null, mount: function(mount) { - return MEMFS.createNode(null, "/", 16384 | 511, 0); - }, createNode: function(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - throw new FS.ErrnoError(63); - } - if (!MEMFS.ops_table) { - MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; - } - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - if (parent) { - parent.contents[name] = node; - parent.timestamp = node.timestamp; - } - return node; - }, getFileDataAsTypedArray: function(node) { - if (!node.contents) - return new Uint8Array(0); - if (node.contents.subarray) - return node.contents.subarray(0, node.usedBytes); - return new Uint8Array(node.contents); - }, expandFileStorage: function(node, newCapacity) { - newCapacity >>>= 0; - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) - return; - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0); - if (prevCapacity != 0) - newCapacity = Math.max(newCapacity, 256); - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); - if (node.usedBytes > 0) - node.contents.set(oldContents.subarray(0, node.usedBytes), 0); - }, resizeFileStorage: function(node, newSize) { - newSize >>>= 0; - if (node.usedBytes == newSize) - return; - if (newSize == 0) { - node.contents = null; - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); - } - node.usedBytes = newSize; - } - }, node_ops: { getattr: function(node) { - var attr = {}; - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - }, setattr: function(node, attr) { - if (attr.mode !== void 0) { - node.mode = attr.mode; - } - if (attr.timestamp !== void 0) { - node.timestamp = attr.timestamp; - } - if (attr.size !== void 0) { - MEMFS.resizeFileStorage(node, attr.size); - } - }, lookup: function(parent, name) { - throw FS.genericErrors[44]; - }, mknod: function(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - }, rename: function(old_node, new_dir, new_name) { - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } - } - } - delete old_node.parent.contents[old_node.name]; - old_node.parent.timestamp = Date.now(); - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - new_dir.timestamp = old_node.parent.timestamp; - old_node.parent = new_dir; - }, unlink: function(parent, name) { - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, rmdir: function(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, readdir: function(node) { - var entries = [".", ".."]; - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - }, symlink: function(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); - node.link = oldpath; - return node; - }, readlink: function(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - } }, stream_ops: { read: function(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) - return 0; - var size = Math.min(stream.node.usedBytes - position, length); - if (size > 8 && contents.subarray) { - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) - buffer[offset + i] = contents[position + i]; - } - return size; - }, write: function(stream, buffer, offset, length, position, canOwn) { - if (buffer.buffer === HEAP8.buffer) { - canOwn = false; - } - if (!length) - return 0; - var node = stream.node; - node.timestamp = Date.now(); - if (buffer.subarray && (!node.contents || node.contents.subarray)) { - if (canOwn) { - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - MEMFS.expandFileStorage(node, position + length); - if (node.contents.subarray && buffer.subarray) { - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - }, llseek: function(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - }, allocate: function(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - }, mmap: function(stream, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - if (!(flags & 2) && contents.buffer === HEAP8.buffer) { - allocated = false; - ptr = contents.byteOffset; - } else { - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call(contents, position, position + length); - } - } - allocated = true; - ptr = mmapAlloc(); - if (!ptr) { - throw new FS.ErrnoError(48); - } - ptr >>>= 0; - HEAP8.set(contents, ptr >>> 0); - } - return { ptr, allocated }; - }, msync: function(stream, buffer, offset, length, mmapFlags) { - MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - return 0; - } } }; - function asyncLoad(url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; - readAsync(url, (arrayBuffer) => { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) - removeRunDependency(); - }, (event) => { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) - addRunDependency(); - } - var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { - path = PATH_FS.resolve(path); - if (!path) - return { path: "", node: null }; - var defaults = { follow_mount: true, recurse_count: 0 }; - opts = Object.assign(defaults, opts); - if (opts.recurse_count > 8) { - throw new FS.ErrnoError(32); - } - var parts = path.split("/").filter((p) => !!p); - var current = FS.root; - var current_path = "/"; - for (var i = 0; i < parts.length; i++) { - var islast = i === parts.length - 1; - if (islast && opts.parent) { - break; - } - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - if (FS.isMountpoint(current)) { - if (!islast || islast && opts.follow_mount) { - current = current.mounted.root; - } - } - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); - current = lookup.node; - if (count++ > 40) { - throw new FS.ErrnoError(32); - } - } - } - } - return { path: current_path, node: current }; - }, getPath: (node) => { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) - return mount; - return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; - } - path = path ? node.name + "/" + path : node.name; - node = node.parent; - } - }, hashName: (parentid, name) => { - var hash = 0; - for (var i = 0; i < name.length; i++) { - hash = (hash << 5) - hash + name.charCodeAt(i) | 0; - } - return (parentid + hash >>> 0) % FS.nameTable.length; - }, hashAddNode: (node) => { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - }, hashRemoveNode: (node) => { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; - } - current = current.name_next; - } - } - }, lookupNode: (parent, name) => { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode, parent); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - return FS.lookup(parent, name); - }, createNode: (parent, name, mode, rdev) => { - var node = new FS.FSNode(parent, name, mode, rdev); - FS.hashAddNode(node); - return node; - }, destroyNode: (node) => { - FS.hashRemoveNode(node); - }, isRoot: (node) => { - return node === node.parent; - }, isMountpoint: (node) => { - return !!node.mounted; - }, isFile: (mode) => { - return (mode & 61440) === 32768; - }, isDir: (mode) => { - return (mode & 61440) === 16384; - }, isLink: (mode) => { - return (mode & 61440) === 40960; - }, isChrdev: (mode) => { - return (mode & 61440) === 8192; - }, isBlkdev: (mode) => { - return (mode & 61440) === 24576; - }, isFIFO: (mode) => { - return (mode & 61440) === 4096; - }, isSocket: (mode) => { - return (mode & 49152) === 49152; - }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { - var flags = FS.flagModes[str]; - if (typeof flags == "undefined") { - throw new Error("Unknown file open mode: " + str); - } - return flags; - }, flagsToPermissionString: (flag) => { - var perms = ["r", "w", "rw"][flag & 3]; - if (flag & 512) { - perms += "w"; - } - return perms; - }, nodePermissions: (node, perms) => { - if (FS.ignorePermissions) { - return 0; - } - if (perms.includes("r") && !(node.mode & 292)) { - return 2; - } else if (perms.includes("w") && !(node.mode & 146)) { - return 2; - } else if (perms.includes("x") && !(node.mode & 73)) { - return 2; - } - return 0; - }, mayLookup: (dir) => { - var errCode = FS.nodePermissions(dir, "x"); - if (errCode) - return errCode; - if (!dir.node_ops.lookup) - return 2; - return 0; - }, mayCreate: (dir, name) => { - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) { - } - return FS.nodePermissions(dir, "wx"); - }, mayDelete: (dir, name, isdir) => { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, "wx"); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - }, mayOpen: (node, flags) => { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { - for (var fd = fd_start; fd <= fd_end; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { - if (!FS.FSStream) { - FS.FSStream = function() { - this.shared = {}; - }; - FS.FSStream.prototype = {}; - Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { - return this.node; - }, set: function(val) { - this.node = val; - } }, isRead: { get: function() { - return (this.flags & 2097155) !== 1; - } }, isWrite: { get: function() { - return (this.flags & 2097155) !== 0; - } }, isAppend: { get: function() { - return this.flags & 1024; - } }, flags: { get: function() { - return this.shared.flags; - }, set: function(val) { - this.shared.flags = val; - } }, position: { get: function() { - return this.shared.position; - }, set: function(val) { - this.shared.position = val; - } } }); - } - stream = Object.assign(new FS.FSStream(), stream); - var fd = FS.nextfd(fd_start, fd_end); - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - }, closeStream: (fd) => { - FS.streams[fd] = null; - }, chrdev_stream_ops: { open: (stream) => { - var device = FS.getDevice(stream.node.rdev); - stream.stream_ops = device.stream_ops; - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - }, llseek: () => { - throw new FS.ErrnoError(70); - } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => { - FS.devices[dev] = { stream_ops: ops }; - }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => { - var mounts = []; - var check = [mount]; - while (check.length) { - var m = check.pop(); - mounts.push(m); - check.push.apply(check, m.mounts); - } - return mounts; - }, syncfs: (populate, callback) => { - if (typeof populate == "function") { - callback = populate; - populate = false; - } - FS.syncFSRequests++; - if (FS.syncFSRequests > 1) { - err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); - } - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - function doCallback(errCode) { - FS.syncFSRequests--; - return callback(errCode); - } - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); - } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - } - mounts.forEach((mount) => { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - }, mount: (type, opts, mountpoint) => { - var root = mountpoint === "/"; - var pseudo = !mountpoint; - var node; - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - mountpoint = lookup.path; - node = lookup.node; - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - var mount = { type, opts, mountpoint, mounts: [] }; - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - if (root) { - FS.root = mountRoot; - } else if (node) { - node.mounted = mount; - if (node.mount) { - node.mount.mounts.push(mount); - } - } - return mountRoot; - }, unmount: (mountpoint) => { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - Object.keys(FS.nameTable).forEach((hash) => { - var current = FS.nameTable[hash]; - while (current) { - var next = current.name_next; - if (mounts.includes(current.mount)) { - FS.destroyNode(current); - } - current = next; - } - }); - node.mounted = null; - var idx = node.mount.mounts.indexOf(mount); - node.mount.mounts.splice(idx, 1); - }, lookup: (parent, name) => { - return parent.node_ops.lookup(parent, name); - }, mknod: (path, mode, dev) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === "." || name === "..") { - throw new FS.ErrnoError(28); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - }, create: (path, mode) => { - mode = mode !== void 0 ? mode : 438; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - }, mkdir: (path, mode) => { - mode = mode !== void 0 ? mode : 511; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - }, mkdirTree: (path, mode) => { - var dirs = path.split("/"); - var d = ""; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) - continue; - d += "/" + dirs[i]; - try { - FS.mkdir(d, mode); - } catch (e) { - if (e.errno != 20) - throw e; - } - } - }, mkdev: (path, mode, dev) => { - if (typeof dev == "undefined") { - dev = mode; - mode = 438; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - }, symlink: (oldpath, newpath) => { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - }, rename: (old_path, new_path) => { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - var lookup, old_dir, new_dir; - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - if (!old_dir || !new_dir) - throw new FS.ErrnoError(44); - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - var old_node = FS.lookupNode(old_dir, old_name); - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(28); - } - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(55); - } - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (old_node === new_node) { - return; - } - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { - throw new FS.ErrnoError(10); - } - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - FS.hashRemoveNode(old_node); - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - } catch (e) { - throw e; - } finally { - FS.hashAddNode(old_node); - } - }, rmdir: (path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - }, readdir: (path) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); - }, unlink: (path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - }, readlink: (path) => { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); - }, stat: (path, dontFollow) => { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); - }, lstat: (path) => { - return FS.stat(path, true); - }, chmod: (path, mode, dontFollow) => { - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() }); - }, lchmod: (path, mode) => { - FS.chmod(path, mode, true); - }, fchmod: (fd, mode) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chmod(stream.node, mode); - }, chown: (path, uid, gid, dontFollow) => { - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { timestamp: Date.now() }); - }, lchown: (path, uid, gid) => { - FS.chown(path, uid, gid, true); - }, fchown: (fd, uid, gid) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chown(stream.node, uid, gid); - }, truncate: (path, len) => { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); - }, ftruncate: (fd, len) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.truncate(stream.node, len); - }, utime: (path, atime, mtime) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); - }, open: (path, flags, mode) => { - if (path === "") { - throw new FS.ErrnoError(44); - } - flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; - mode = typeof mode == "undefined" ? 438 : mode; - if (flags & 64) { - mode = mode & 4095 | 32768; - } else { - mode = 0; - } - var node; - if (typeof path == "object") { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); - node = lookup.node; - } catch (e) { - } - } - var created = false; - if (flags & 64) { - if (node) { - if (flags & 128) { - throw new FS.ErrnoError(20); - } - } else { - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - if (flags & 65536 && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - if (flags & 512 && !created) { - FS.truncate(node, 0); - } - flags &= ~(128 | 512 | 131072); - var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }); - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module["logReadFiles"] && !(flags & 1)) { - if (!FS.readFiles) - FS.readFiles = {}; - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } - } - return stream; - }, close: (stream) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) - stream.getdents = null; - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - }, isClosed: (stream) => { - return stream.fd === null; - }, llseek: (stream, offset, whence) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - }, read: (stream, buffer, offset, length, position) => { - offset >>>= 0; - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position != "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); - if (!seeking) - stream.position += bytesRead; - return bytesRead; - }, write: (stream, buffer, offset, length, position, canOwn) => { - offset >>>= 0; - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - FS.llseek(stream, 0, 2); - } - var seeking = typeof position != "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); - if (!seeking) - stream.position += bytesWritten; - return bytesWritten; - }, allocate: (stream, offset, length) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - }, mmap: (stream, length, position, prot, flags) => { - if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - return stream.stream_ops.mmap(stream, length, position, prot, flags); - }, msync: (stream, buffer, offset, length, mmapFlags) => { - offset >>>= 0; - if (!stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - }, readFile: (path, opts = {}) => { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || "binary"; - if (opts.encoding !== "utf8" && opts.encoding !== "binary") { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === "utf8") { - ret = UTF8ArrayToString(buf, 0); - } else if (opts.encoding === "binary") { - ret = buf; - } - FS.close(stream); - return ret; - }, writeFile: (path, data, opts = {}) => { - opts.flags = opts.flags || 577; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == "string") { - var buf = new Uint8Array(lengthBytesUTF8(data) + 1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn); - } else { - throw new Error("Unsupported data type"); - } - FS.close(stream); - }, cwd: () => FS.currentPath, chdir: (path) => { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); - } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); - } - var errCode = FS.nodePermissions(lookup.node, "x"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - FS.currentPath = lookup.path; - }, createDefaultDirectories: () => { - FS.mkdir("/tmp"); - FS.mkdir("/home"); - FS.mkdir("/home/web_user"); - }, createDefaultDevices: () => { - FS.mkdir("/dev"); - FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length }); - FS.mkdev("/dev/null", FS.makedev(1, 3)); - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev("/dev/tty", FS.makedev(5, 0)); - FS.mkdev("/dev/tty1", FS.makedev(6, 0)); - var random_device = getRandomDevice(); - FS.createDevice("/dev", "random", random_device); - FS.createDevice("/dev", "urandom", random_device); - FS.mkdir("/dev/shm"); - FS.mkdir("/dev/shm/tmp"); - }, createSpecialDirectories: () => { - FS.mkdir("/proc"); - var proc_self = FS.mkdir("/proc/self"); - FS.mkdir("/proc/self/fd"); - FS.mount({ mount: () => { - var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); - node.node_ops = { lookup: (parent, name) => { - var fd = +name; - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); - var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; - ret.parent = ret; - return ret; - } }; - return node; - } }, {}, "/proc/self/fd"); - }, createStandardStreams: () => { - if (Module["stdin"]) { - FS.createDevice("/dev", "stdin", Module["stdin"]); - } else { - FS.symlink("/dev/tty", "/dev/stdin"); - } - if (Module["stdout"]) { - FS.createDevice("/dev", "stdout", null, Module["stdout"]); - } else { - FS.symlink("/dev/tty", "/dev/stdout"); - } - if (Module["stderr"]) { - FS.createDevice("/dev", "stderr", null, Module["stderr"]); - } else { - FS.symlink("/dev/tty1", "/dev/stderr"); - } - FS.open("/dev/stdin", 0); - FS.open("/dev/stdout", 1); - FS.open("/dev/stderr", 1); - }, ensureErrnoError: () => { - if (FS.ErrnoError) - return; - FS.ErrnoError = function ErrnoError(errno, node) { - this.node = node; - this.setErrno = function(errno2) { - this.errno = errno2; - }; - this.setErrno(errno); - this.message = "FS error"; - }; - FS.ErrnoError.prototype = new Error(); - FS.ErrnoError.prototype.constructor = FS.ErrnoError; - [44].forEach((code) => { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ""; - }); - }, staticInit: () => { - FS.ensureErrnoError(); - FS.nameTable = new Array(4096); - FS.mount(MEMFS, {}, "/"); - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - FS.filesystems = { "MEMFS": MEMFS }; - }, init: (input, output, error) => { - FS.init.initialized = true; - FS.ensureErrnoError(); - Module["stdin"] = input || Module["stdin"]; - Module["stdout"] = output || Module["stdout"]; - Module["stderr"] = error || Module["stderr"]; - FS.createStandardStreams(); - }, quit: () => { - FS.init.initialized = false; - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - }, getMode: (canRead, canWrite) => { - var mode = 0; - if (canRead) - mode |= 292 | 73; - if (canWrite) - mode |= 146; - return mode; - }, findObject: (path, dontResolveLastLink) => { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; - } - return ret.object; - }, analyzePath: (path, dontResolveLastLink) => { - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) { - } - var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === "/"; - } catch (e) { - ret.error = e.errno; - } - return ret; - }, createPath: (parent, path, canRead, canWrite) => { - parent = typeof parent == "string" ? parent : FS.getPath(parent); - var parts = path.split("/").reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) - continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - } - parent = current; - } - return current; - }, createFile: (parent, name, properties, canRead, canWrite) => { - var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); - return FS.create(path, mode); - }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { - var path = name; - if (parent) { - parent = typeof parent == "string" ? parent : FS.getPath(parent); - path = name ? PATH.join2(parent, name) : parent; - } - var mode = FS.getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data == "string") { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) - arr[i] = data.charCodeAt(i); - data = arr; - } - FS.chmod(node, mode | 146); - var stream = FS.open(node, 577); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - return node; - }, createDevice: (parent, name, input, output) => { - var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); - if (!FS.createDevice.major) - FS.createDevice.major = 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - FS.registerDevice(dev, { open: (stream) => { - stream.seekable = false; - }, close: (stream) => { - if (output && output.buffer && output.buffer.length) { - output(10); - } - }, read: (stream, buffer, offset, length, pos) => { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === void 0 && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === void 0) - break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, write: (stream, buffer, offset, length, pos) => { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset + i]); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } }); - return FS.mkdev(path, mode, dev); - }, forceLoadFile: (obj) => { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) - return true; - if (typeof XMLHttpRequest != "undefined") { - 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."); - } else if (read_) { - try { - obj.contents = intArrayFromString(read_(obj.url), true); - obj.usedBytes = obj.contents.length; - } catch (e) { - throw new FS.ErrnoError(29); - } - } else { - throw new Error("Cannot load without read() or XMLHttpRequest."); - } - }, createLazyFile: (parent, name, url, canRead, canWrite) => { - function LazyUint8Array() { - this.lengthKnown = false; - this.chunks = []; - } - LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { - if (idx > this.length - 1 || idx < 0) { - return void 0; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = idx / this.chunkSize | 0; - return this.getter(chunkNum)[chunkOffset]; - }; - LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { - this.getter = getter; - }; - LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { - var xhr = new XMLHttpRequest(); - xhr.open("HEAD", url, false); - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; - var chunkSize = 1024 * 1024; - if (!hasByteServing) - chunkSize = datalength; - var doXHR = (from, to) => { - if (from > to) - throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength - 1) - throw new Error("only " + datalength + " bytes available! programmer error!"); - var xhr2 = new XMLHttpRequest(); - xhr2.open("GET", url, false); - if (datalength !== chunkSize) - xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to); - xhr2.responseType = "arraybuffer"; - if (xhr2.overrideMimeType) { - xhr2.overrideMimeType("text/plain; charset=x-user-defined"); - } - xhr2.send(null); - if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr2.status); - if (xhr2.response !== void 0) { - return new Uint8Array(xhr2.response || []); - } - return intArrayFromString(xhr2.responseText || "", true); - }; - var lazyArray2 = this; - lazyArray2.setDataGetter((chunkNum) => { - var start = chunkNum * chunkSize; - var end = (chunkNum + 1) * chunkSize - 1; - end = Math.min(end, datalength - 1); - if (typeof lazyArray2.chunks[chunkNum] == "undefined") { - lazyArray2.chunks[chunkNum] = doXHR(start, end); - } - if (typeof lazyArray2.chunks[chunkNum] == "undefined") - throw new Error("doXHR failed!"); - return lazyArray2.chunks[chunkNum]; - }); - if (usesGzip || !datalength) { - chunkSize = datalength = 1; - datalength = this.getter(0).length; - chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); - } - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - }; - if (typeof XMLHttpRequest != "undefined") { - throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; - var lazyArray = new LazyUint8Array(); - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url }; - } - var node = FS.createFile(parent, name, properties, canRead, canWrite); - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; - } - Object.defineProperties(node, { usedBytes: { get: function() { - return this.contents.length; - } } }); - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach((key) => { - var fn = node.stream_ops[key]; - stream_ops[key] = function forceLoadLazyFile() { - FS.forceLoadFile(node); - return fn.apply(null, arguments); - }; - }); - function writeChunks(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= contents.length) - return 0; - var size = Math.min(contents.length - position, length); - if (contents.slice) { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; - } - } else { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents.get(position + i); - } - } - return size; - } - stream_ops.read = (stream, buffer, offset, length, position) => { - FS.forceLoadFile(node); - return writeChunks(stream, buffer, offset, length, position); - }; - stream_ops.mmap = (stream, length, position, prot, flags) => { - FS.forceLoadFile(node); - var ptr = mmapAlloc(); - if (!ptr) { - throw new FS.ErrnoError(48); - } - writeChunks(stream, HEAP8, ptr, length, position); - return { ptr, allocated: true }; - }; - node.stream_ops = stream_ops; - return node; - }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - function processData(byteArray) { - function finish(byteArray2) { - if (preFinish) - preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); - } - if (onload) - onload(); - removeRunDependency(); - } - if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { - if (onerror) - onerror(); - removeRunDependency(); - })) { - return; - } - finish(byteArray); - } - addRunDependency(); - if (typeof url == "string") { - asyncLoad(url, (byteArray) => processData(byteArray), onerror); - } else { - processData(url); - } - }, indexedDB: () => { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - }, DB_NAME: () => { - return "EM_FS_" + window.location.pathname; - }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = () => { - out("creating db"); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - openRequest.onsuccess = () => { - var db = openRequest.result; - var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) - onload(); - else - onerror(); - } - paths.forEach((path) => { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = () => { - ok++; - if (ok + fail == total) - finish(); - }; - putRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }, loadFilesFromDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = onerror; - openRequest.onsuccess = () => { - var db = openRequest.result; - try { - var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); - } catch (e) { - onerror(e); - return; - } - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) - onload(); - else - onerror(); - } - paths.forEach((path) => { - var getRequest = files.get(path); - getRequest.onsuccess = () => { - if (FS.analyzePath(path).exists) { - FS.unlink(path); - } - FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); - ok++; - if (ok + fail == total) - finish(); - }; - getRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - } }; - var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { - if (PATH.isAbs(path)) { - return path; - } - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = SYSCALLS.getStreamFromFD(dirfd); - dir = dirstream.path; - } - if (path.length == 0) { - if (!allowEmpty) { - throw new FS.ErrnoError(44); - } - return dir; - } - return PATH.join2(dir, path); - }, doStat: function(func, path, buf) { - try { - var stat = func(path); - } catch (e) { - if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { - return -54; - } - throw e; - } - HEAP32[buf >>> 2] = stat.dev; - HEAP32[buf + 8 >>> 2] = stat.ino; - HEAP32[buf + 12 >>> 2] = stat.mode; - HEAPU32[buf + 16 >>> 2] = stat.nlink; - HEAP32[buf + 20 >>> 2] = stat.uid; - HEAP32[buf + 24 >>> 2] = stat.gid; - HEAP32[buf + 28 >>> 2] = stat.rdev; - tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >>> 2] = tempI64[0], HEAP32[buf + 44 >>> 2] = tempI64[1]; - HEAP32[buf + 48 >>> 2] = 4096; - HEAP32[buf + 52 >>> 2] = stat.blocks; - var atime = stat.atime.getTime(); - var mtime = stat.mtime.getTime(); - var ctime = stat.ctime.getTime(); - tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >>> 2] = tempI64[0], HEAP32[buf + 60 >>> 2] = tempI64[1]; - HEAPU32[buf + 64 >>> 2] = atime % 1e3 * 1e3; - tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >>> 2] = tempI64[0], HEAP32[buf + 76 >>> 2] = tempI64[1]; - HEAPU32[buf + 80 >>> 2] = mtime % 1e3 * 1e3; - tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >>> 2] = tempI64[0], HEAP32[buf + 92 >>> 2] = tempI64[1]; - HEAPU32[buf + 96 >>> 2] = ctime % 1e3 * 1e3; - tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 104 >>> 2] = tempI64[0], HEAP32[buf + 108 >>> 2] = tempI64[1]; - return 0; - }, doMsync: function(addr, stream, len, flags, offset) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (flags & 2) { - return 0; - } - addr >>>= 0; - var buffer = HEAPU8.slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - }, varargs: void 0, get: function() { - SYSCALLS.varargs += 4; - var ret = HEAP32[SYSCALLS.varargs - 4 >>> 2]; - return ret; - }, getStr: function(ptr) { - var ret = UTF8ToString(ptr); - return ret; - }, getStreamFromFD: function(fd) { - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); - return stream; - } }; - function _environ_get(__environ, environ_buf) { - var bufSize = 0; - getEnvStrings().forEach(function(string, i) { - var ptr = environ_buf + bufSize; - HEAPU32[__environ + i * 4 >>> 2] = ptr; - writeAsciiToMemory(string, ptr); - bufSize += string.length + 1; - }); - return 0; - } - function _environ_sizes_get(penviron_count, penviron_buf_size) { - var strings = getEnvStrings(); - HEAPU32[penviron_count >>> 2] = strings.length; - var bufSize = 0; - strings.forEach(function(string) { - bufSize += string.length + 1; - }); - HEAPU32[penviron_buf_size >>> 2] = bufSize; - return 0; - } - function _fd_close(fd) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function doReadv(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[iov >>> 2]; - var len = HEAPU32[iov + 4 >>> 2]; - iov += 8; - var curr = FS.read(stream, HEAP8, ptr, len, offset); - if (curr < 0) - return -1; - ret += curr; - if (curr < len) - break; - if (typeof offset !== "undefined") { - offset += curr; - } - } - return ret; - } - function _fd_read(fd, iov, iovcnt, pnum) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doReadv(stream, iov, iovcnt); - HEAPU32[pnum >>> 2] = num; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function convertI32PairToI53Checked(lo, hi) { - return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; - } - function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { - try { - var offset = convertI32PairToI53Checked(offset_low, offset_high); - if (isNaN(offset)) - return 61; - var stream = SYSCALLS.getStreamFromFD(fd); - FS.llseek(stream, offset, whence); - tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >>> 2] = tempI64[0], HEAP32[newOffset + 4 >>> 2] = tempI64[1]; - if (stream.getdents && offset === 0 && whence === 0) - stream.getdents = null; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function doWritev(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[iov >>> 2]; - var len = HEAPU32[iov + 4 >>> 2]; - iov += 8; - var curr = FS.write(stream, HEAP8, ptr, len, offset); - if (curr < 0) - return -1; - ret += curr; - if (typeof offset !== "undefined") { - offset += curr; - } - } - return ret; - } - function _fd_write(fd, iov, iovcnt, pnum) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doWritev(stream, iov, iovcnt); - HEAPU32[pnum >>> 2] = num; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function __isLeapYear(year) { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); - } - function __arraySum(array, index) { - var sum = 0; - for (var i = 0; i <= index; sum += array[i++]) { - } - return sum; - } - var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - function __addDays(date, days) { - var newDate = new Date(date.getTime()); - while (days > 0) { - var leap = __isLeapYear(newDate.getFullYear()); - var currentMonth = newDate.getMonth(); - var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; - if (days > daysInCurrentMonth - newDate.getDate()) { - days -= daysInCurrentMonth - newDate.getDate() + 1; - newDate.setDate(1); - if (currentMonth < 11) { - newDate.setMonth(currentMonth + 1); - } else { - newDate.setMonth(0); - newDate.setFullYear(newDate.getFullYear() + 1); - } - } else { - newDate.setDate(newDate.getDate() + days); - return newDate; - } - } - return newDate; - } - function writeArrayToMemory(array, buffer) { - HEAP8.set(array, buffer >>> 0); - } - function _strftime(s, maxsize, format, tm) { - var tm_zone = HEAP32[tm + 40 >>> 2]; - var date = { tm_sec: HEAP32[tm >>> 2], tm_min: HEAP32[tm + 4 >>> 2], tm_hour: HEAP32[tm + 8 >>> 2], tm_mday: HEAP32[tm + 12 >>> 2], tm_mon: HEAP32[tm + 16 >>> 2], tm_year: HEAP32[tm + 20 >>> 2], tm_wday: HEAP32[tm + 24 >>> 2], tm_yday: HEAP32[tm + 28 >>> 2], tm_isdst: HEAP32[tm + 32 >>> 2], tm_gmtoff: HEAP32[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" }; - var pattern = UTF8ToString(format); - var EXPANSION_RULES_1 = { "%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 rule in EXPANSION_RULES_1) { - pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); - } - var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; - function leadingSomething(value, digits, character) { - var str = typeof value == "number" ? value.toString() : value || ""; - while (str.length < digits) { - str = character[0] + str; - } - return str; - } - function leadingNulls(value, digits) { - return leadingSomething(value, digits, "0"); - } - function compareByDay(date1, date2) { - function sgn(value) { - return value < 0 ? -1 : value > 0 ? 1 : 0; - } - var compare; - if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { - if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { - compare = sgn(date1.getDate() - date2.getDate()); - } - } - return compare; - } - function getFirstWeekStartDate(janFourth) { - switch (janFourth.getDay()) { - case 0: - return new Date(janFourth.getFullYear() - 1, 11, 29); - case 1: - return janFourth; - case 2: - return new Date(janFourth.getFullYear(), 0, 3); - case 3: - return new Date(janFourth.getFullYear(), 0, 2); - case 4: - return new Date(janFourth.getFullYear(), 0, 1); - case 5: - return new Date(janFourth.getFullYear() - 1, 11, 31); - case 6: - return new Date(janFourth.getFullYear() - 1, 11, 30); - } - } - function getWeekBasedYear(date2) { - var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); - var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); - var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); - var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); - var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); - if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { - if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { - return thisDate.getFullYear() + 1; - } - return thisDate.getFullYear(); - } - return thisDate.getFullYear() - 1; - } - var EXPANSION_RULES_2 = { "%a": function(date2) { - return WEEKDAYS[date2.tm_wday].substring(0, 3); - }, "%A": function(date2) { - return WEEKDAYS[date2.tm_wday]; - }, "%b": function(date2) { - return MONTHS[date2.tm_mon].substring(0, 3); - }, "%B": function(date2) { - return MONTHS[date2.tm_mon]; - }, "%C": function(date2) { - var year = date2.tm_year + 1900; - return leadingNulls(year / 100 | 0, 2); - }, "%d": function(date2) { - return leadingNulls(date2.tm_mday, 2); - }, "%e": function(date2) { - return leadingSomething(date2.tm_mday, 2, " "); - }, "%g": function(date2) { - return getWeekBasedYear(date2).toString().substring(2); - }, "%G": function(date2) { - return getWeekBasedYear(date2); - }, "%H": function(date2) { - return leadingNulls(date2.tm_hour, 2); - }, "%I": function(date2) { - var twelveHour = date2.tm_hour; - if (twelveHour == 0) - twelveHour = 12; - else if (twelveHour > 12) - twelveHour -= 12; - return leadingNulls(twelveHour, 2); - }, "%j": function(date2) { - return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); - }, "%m": function(date2) { - return leadingNulls(date2.tm_mon + 1, 2); - }, "%M": function(date2) { - return leadingNulls(date2.tm_min, 2); - }, "%n": function() { - return "\n"; - }, "%p": function(date2) { - if (date2.tm_hour >= 0 && date2.tm_hour < 12) { - return "AM"; - } - return "PM"; - }, "%S": function(date2) { - return leadingNulls(date2.tm_sec, 2); - }, "%t": function() { - return " "; - }, "%u": function(date2) { - return date2.tm_wday || 7; - }, "%U": function(date2) { - var days = date2.tm_yday + 7 - date2.tm_wday; - return leadingNulls(Math.floor(days / 7), 2); - }, "%V": function(date2) { - var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); - if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { - val++; - } - if (!val) { - val = 52; - var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; - if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { - val++; - } - } else if (val == 53) { - var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; - if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) - val = 1; - } - return leadingNulls(val, 2); - }, "%w": function(date2) { - return date2.tm_wday; - }, "%W": function(date2) { - var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; - return leadingNulls(Math.floor(days / 7), 2); - }, "%y": function(date2) { - return (date2.tm_year + 1900).toString().substring(2); - }, "%Y": function(date2) { - return date2.tm_year + 1900; - }, "%z": function(date2) { - var off = date2.tm_gmtoff; - var ahead = off >= 0; - off = Math.abs(off) / 60; - off = off / 60 * 100 + off % 60; - return (ahead ? "+" : "-") + String("0000" + off).slice(-4); - }, "%Z": function(date2) { - return date2.tm_zone; - }, "%%": function() { - return "%"; - } }; - pattern = pattern.replace(/%%/g, "\0\0"); - for (var rule in EXPANSION_RULES_2) { - if (pattern.includes(rule)) { - pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); - } - } - pattern = pattern.replace(/\0\0/g, "%"); - var bytes = intArrayFromString(pattern, false); - if (bytes.length > maxsize) { - return 0; - } - writeArrayToMemory(bytes, s); - return bytes.length - 1; - } - function _strftime_l(s, maxsize, format, tm, loc) { - return _strftime(s, maxsize, format, tm); - } - InternalError = Module["InternalError"] = extendError(Error, "InternalError"); - embind_init_charCodes(); - BindingError = Module["BindingError"] = extendError(Error, "BindingError"); - init_ClassHandle(); - init_embind(); - init_RegisteredPointer(); - UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); - init_emval(); - var FSNode = function(parent, name, mode, rdev) { - if (!parent) { - parent = this; - } - this.parent = parent; - this.mount = parent.mount; - this.mounted = null; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.node_ops = {}; - this.stream_ops = {}; - this.rdev = rdev; - }; - var readMode = 292 | 73; - var writeMode = 146; - Object.defineProperties(FSNode.prototype, { read: { get: function() { - return (this.mode & readMode) === readMode; - }, set: function(val) { - val ? this.mode |= readMode : this.mode &= ~readMode; - } }, write: { get: function() { - return (this.mode & writeMode) === writeMode; - }, set: function(val) { - val ? this.mode |= writeMode : this.mode &= ~writeMode; - } }, isFolder: { get: function() { - return FS.isDir(this.mode); - } }, isDevice: { get: function() { - return FS.isChrdev(this.mode); - } } }); - FS.FSNode = FSNode; - FS.staticInit(); - var wasmImports = { "f": ___cxa_throw, "R": __embind_finalize_value_array, "p": __embind_finalize_value_object, "F": __embind_register_bigint, "P": __embind_register_bool, "o": __embind_register_class, "n": __embind_register_class_constructor, "b": __embind_register_class_function, "O": __embind_register_emval, "B": __embind_register_enum, "s": __embind_register_enum_value, "z": __embind_register_float, "c": __embind_register_function, "r": __embind_register_integer, "h": __embind_register_memory_view, "A": __embind_register_std_string, "v": __embind_register_std_wstring, "S": __embind_register_value_array, "i": __embind_register_value_array_element, "q": __embind_register_value_object, "e": __embind_register_value_object_field, "Q": __embind_register_void, "m": __emval_as, "x": __emval_call, "a": __emval_decref, "D": __emval_get_global, "k": __emval_get_property, "t": __emval_incref, "U": __emval_instanceof, "w": __emval_is_number, "C": __emval_is_string, "T": __emval_new_array, "g": __emval_new_cstring, "u": __emval_new_object, "l": __emval_run_destructors, "j": __emval_set_property, "d": __emval_take_value, "y": _abort, "N": _emscripten_memcpy_big, "L": _emscripten_resize_heap, "H": _environ_get, "I": _environ_sizes_get, "J": _fd_close, "K": _fd_read, "E": _fd_seek, "M": _fd_write, "G": _strftime_l }; - createWasm(); - var _malloc = function() { - return (_malloc = Module["asm"]["Y"]).apply(null, arguments); - }; - var ___getTypeName = Module["___getTypeName"] = function() { - return (___getTypeName = Module["___getTypeName"] = Module["asm"]["Z"]).apply(null, arguments); - }; - Module["__embind_initialize_bindings"] = function() { - return (Module["__embind_initialize_bindings"] = Module["asm"]["_"]).apply(null, arguments); - }; - var _free = function() { - return (_free = Module["asm"]["$"]).apply(null, arguments); - }; - var ___cxa_is_pointer_type = function() { - return (___cxa_is_pointer_type = Module["asm"]["aa"]).apply(null, arguments); - }; - Module["dynCall_jiji"] = function() { - return (Module["dynCall_jiji"] = Module["asm"]["ba"]).apply(null, arguments); - }; - Module["dynCall_viijii"] = function() { - return (Module["dynCall_viijii"] = Module["asm"]["ca"]).apply(null, arguments); - }; - Module["dynCall_iiiiij"] = function() { - return (Module["dynCall_iiiiij"] = Module["asm"]["da"]).apply(null, arguments); - }; - Module["dynCall_iiiiijj"] = function() { - return (Module["dynCall_iiiiijj"] = Module["asm"]["ea"]).apply(null, arguments); - }; - Module["dynCall_iiiiiijj"] = function() { - return (Module["dynCall_iiiiiijj"] = Module["asm"]["fa"]).apply(null, arguments); - }; - var calledRun; - dependenciesFulfilled = function runCaller() { - if (!calledRun) - run(); - if (!calledRun) - dependenciesFulfilled = runCaller; - }; - function run() { - if (runDependencies > 0) { - return; - } - preRun(); - if (runDependencies > 0) { - return; - } - function doRun() { - if (calledRun) - return; - calledRun = true; - Module["calledRun"] = true; - if (ABORT) - return; - initRuntime(); - readyPromiseResolve(Module); - if (Module["onRuntimeInitialized"]) - Module["onRuntimeInitialized"](); - postRun(); - } - if (Module["setStatus"]) { - Module["setStatus"]("Running..."); - setTimeout(function() { - setTimeout(function() { - Module["setStatus"](""); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - } - if (Module["preInit"]) { - if (typeof Module["preInit"] == "function") - Module["preInit"] = [Module["preInit"]]; - while (Module["preInit"].length > 0) { - Module["preInit"].pop()(); - } - } - run(); - return WebIFCWasm3.ready; - }; - })(); - if (typeof exports === "object" && typeof module === "object") - module.exports = WebIFCWasm2; - else if (typeof define === "function" && define["amd"]) - define([], function() { - return WebIFCWasm2; - }); - else if (typeof exports === "object") - exports["WebIFCWasm"] = WebIFCWasm2; - } -}); -var Handle = class { - constructor(value) { - this.value = value; - this.type = 5; - } -}; -var IfcLineObject = class { - constructor(expressID) { - this.expressID = expressID; - this.type = 0; - } -}; -var Schemas; -(function(Schemas2) { - Schemas2["IFC2X3"] = "IFC2X3"; - Schemas2["IFC4"] = "IFC4"; - Schemas2["IFC4X3"] = "IFC4X3"; -})(Schemas || (Schemas = {})); -var IFC2X3; -(function(IFC2X32) { - class IfcAbsorbedDoseMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; - class IfcAccelerationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAccelerationMeasure = IfcAccelerationMeasure; - class IfcAmountOfSubstanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; - class IfcAngularVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; - class IfcAreaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAreaMeasure = IfcAreaMeasure; - class IfcBoolean { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC2X32.IfcBoolean = IfcBoolean; - class IfcBoxAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcBoxAlignment = IfcBoxAlignment; - class IfcComplexNumber { - constructor(value) { - this.value = value; - } - } - IFC2X32.IfcComplexNumber = IfcComplexNumber; - class IfcCompoundPlaneAngleMeasure { - constructor(value) { - this.value = value; - } - } - IFC2X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; - class IfcContextDependentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcContextDependentMeasure = IfcContextDependentMeasure; - class IfcCountMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcCountMeasure = IfcCountMeasure; - class IfcCurvatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcCurvatureMeasure = IfcCurvatureMeasure; - class IfcDayInMonthNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDayInMonthNumber = IfcDayInMonthNumber; - class IfcDaylightSavingHour { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDaylightSavingHour = IfcDaylightSavingHour; - class IfcDescriptiveMeasure { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; - class IfcDimensionCount { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDimensionCount = IfcDimensionCount; - class IfcDoseEquivalentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; - class IfcDynamicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; - class IfcElectricCapacitanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; - class IfcElectricChargeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; - class IfcElectricConductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; - class IfcElectricCurrentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; - class IfcElectricResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; - class IfcElectricVoltageMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; - class IfcEnergyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcEnergyMeasure = IfcEnergyMeasure; - class IfcFontStyle { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcFontStyle = IfcFontStyle; - class IfcFontVariant { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcFontVariant = IfcFontVariant; - class IfcFontWeight { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcFontWeight = IfcFontWeight; - class IfcForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcForceMeasure = IfcForceMeasure; - class IfcFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcFrequencyMeasure = IfcFrequencyMeasure; - class IfcGloballyUniqueId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcGloballyUniqueId = IfcGloballyUniqueId; - class IfcHeatFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; - class IfcHeatingValueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; - class IfcHourInDay { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcHourInDay = IfcHourInDay; - class IfcIdentifier { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcIdentifier = IfcIdentifier; - class IfcIlluminanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; - class IfcInductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcInductanceMeasure = IfcInductanceMeasure; - class IfcInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcInteger = IfcInteger; - class IfcIntegerCountRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; - class IfcIonConcentrationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; - class IfcIsothermalMoistureCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; - class IfcKinematicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; - class IfcLabel { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcLabel = IfcLabel; - class IfcLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLengthMeasure = IfcLengthMeasure; - class IfcLinearForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLinearForceMeasure = IfcLinearForceMeasure; - class IfcLinearMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; - class IfcLinearStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; - class IfcLinearVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; - class IfcLogical { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC2X32.IfcLogical = IfcLogical; - class IfcLuminousFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; - class IfcLuminousIntensityDistributionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; - class IfcLuminousIntensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; - class IfcMagneticFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; - class IfcMagneticFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; - class IfcMassDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMassDensityMeasure = IfcMassDensityMeasure; - class IfcMassFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; - class IfcMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMassMeasure = IfcMassMeasure; - class IfcMassPerLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; - class IfcMinuteInHour { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMinuteInHour = IfcMinuteInHour; - class IfcModulusOfElasticityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; - class IfcModulusOfLinearSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; - class IfcModulusOfRotationalSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; - class IfcModulusOfSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; - class IfcMoistureDiffusivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; - class IfcMolecularWeightMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; - class IfcMomentOfInertiaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; - class IfcMonetaryMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMonetaryMeasure = IfcMonetaryMeasure; - class IfcMonthInYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMonthInYearNumber = IfcMonthInYearNumber; - class IfcNormalisedRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; - class IfcNumericMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcNumericMeasure = IfcNumericMeasure; - class IfcPHMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPHMeasure = IfcPHMeasure; - class IfcParameterValue { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcParameterValue = IfcParameterValue; - class IfcPlanarForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; - class IfcPlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; - class IfcPositiveLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; - class IfcPositivePlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; - class IfcPositiveRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; - class IfcPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPowerMeasure = IfcPowerMeasure; - class IfcPresentableText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcPresentableText = IfcPresentableText; - class IfcPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPressureMeasure = IfcPressureMeasure; - class IfcRadioActivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; - class IfcRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRatioMeasure = IfcRatioMeasure; - class IfcReal { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcReal = IfcReal; - class IfcRotationalFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; - class IfcRotationalMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; - class IfcRotationalStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; - class IfcSecondInMinute { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSecondInMinute = IfcSecondInMinute; - class IfcSectionModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; - class IfcSectionalAreaIntegralMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; - class IfcShearModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcShearModulusMeasure = IfcShearModulusMeasure; - class IfcSolidAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; - class IfcSoundPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; - class IfcSoundPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; - class IfcSpecificHeatCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; - class IfcSpecularExponent { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSpecularExponent = IfcSpecularExponent; - class IfcSpecularRoughness { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSpecularRoughness = IfcSpecularRoughness; - class IfcTemperatureGradientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; - class IfcText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcText = IfcText; - class IfcTextAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcTextAlignment = IfcTextAlignment; - class IfcTextDecoration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcTextDecoration = IfcTextDecoration; - class IfcTextFontName { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcTextFontName = IfcTextFontName; - class IfcTextTransformation { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcTextTransformation = IfcTextTransformation; - class IfcThermalAdmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; - class IfcThermalConductivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; - class IfcThermalExpansionCoefficientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; - class IfcThermalResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; - class IfcThermalTransmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; - class IfcThermodynamicTemperatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; - class IfcTimeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcTimeMeasure = IfcTimeMeasure; - class IfcTimeStamp { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcTimeStamp = IfcTimeStamp; - class IfcTorqueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcTorqueMeasure = IfcTorqueMeasure; - class IfcVaporPermeabilityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; - class IfcVolumeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcVolumeMeasure = IfcVolumeMeasure; - class IfcVolumetricFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; - class IfcWarpingConstantMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; - class IfcWarpingMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; - class IfcYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcYearNumber = IfcYearNumber; - class IfcActionSourceTypeEnum { - } - IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; - IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; - IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; - IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; - IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; - IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; - IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; - IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; - IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; - IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; - IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; - IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; - IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; - IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; - IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; - IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; - IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; - IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; - IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; - IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; - IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; - IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; - IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; - IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; - class IfcActionTypeEnum { - } - IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; - IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; - IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; - IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcActionTypeEnum = IfcActionTypeEnum; - class IfcActuatorTypeEnum { - } - IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; - IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; - IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; - IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; - IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; - IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; - class IfcAddressTypeEnum { - } - IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; - IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; - IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcAddressTypeEnum = IfcAddressTypeEnum; - class IfcAheadOrBehind { - } - IfcAheadOrBehind.AHEAD = { type: 3, value: "AHEAD" }; - IfcAheadOrBehind.BEHIND = { type: 3, value: "BEHIND" }; - IFC2X32.IfcAheadOrBehind = IfcAheadOrBehind; - class IfcAirTerminalBoxTypeEnum { - } - IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; - class IfcAirTerminalTypeEnum { - } - IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; - IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; - IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; - IfcAirTerminalTypeEnum.EYEBALL = { type: 3, value: "EYEBALL" }; - IfcAirTerminalTypeEnum.IRIS = { type: 3, value: "IRIS" }; - IfcAirTerminalTypeEnum.LINEARGRILLE = { type: 3, value: "LINEARGRILLE" }; - IfcAirTerminalTypeEnum.LINEARDIFFUSER = { type: 3, value: "LINEARDIFFUSER" }; - IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; - class IfcAirToAirHeatRecoveryTypeEnum { - } - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; - IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; - IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; - IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; - class IfcAlarmTypeEnum { - } - IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; - IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; - IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; - IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; - IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; - IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; - IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; - class IfcAnalysisModelTypeEnum { - } - IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; - IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; - class IfcAnalysisTheoryTypeEnum { - } - IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; - IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; - class IfcArithmeticOperatorEnum { - } - IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; - IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; - IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; - IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; - IFC2X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; - class IfcAssemblyPlaceEnum { - } - IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; - IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; - IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; - class IfcBSplineCurveForm { - } - IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; - IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; - IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; - IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; - IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; - IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC2X32.IfcBSplineCurveForm = IfcBSplineCurveForm; - class IfcBeamTypeEnum { - } - IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; - IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; - IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; - IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; - IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcBeamTypeEnum = IfcBeamTypeEnum; - class IfcBenchmarkEnum { - } - IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; - IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; - IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; - IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; - IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; - IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; - IFC2X32.IfcBenchmarkEnum = IfcBenchmarkEnum; - class IfcBoilerTypeEnum { - } - IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; - IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; - class IfcBooleanOperator { - } - IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; - IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; - IFC2X32.IfcBooleanOperator = IfcBooleanOperator; - class IfcBuildingElementProxyTypeEnum { - } - IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; - class IfcCableCarrierFittingTypeEnum { - } - IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; - IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; - IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; - IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; - class IfcCableCarrierSegmentTypeEnum { - } - IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; - class IfcCableSegmentTypeEnum { - } - IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; - IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; - IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; - class IfcChangeActionEnum { - } - IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; - IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; - IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; - IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; - IfcChangeActionEnum.MODIFIEDADDED = { type: 3, value: "MODIFIEDADDED" }; - IfcChangeActionEnum.MODIFIEDDELETED = { type: 3, value: "MODIFIEDDELETED" }; - IFC2X32.IfcChangeActionEnum = IfcChangeActionEnum; - class IfcChillerTypeEnum { - } - IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; - IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcChillerTypeEnum = IfcChillerTypeEnum; - class IfcCoilTypeEnum { - } - IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; - IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; - IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; - IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; - IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; - IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; - IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCoilTypeEnum = IfcCoilTypeEnum; - class IfcColumnTypeEnum { - } - IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; - IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcColumnTypeEnum = IfcColumnTypeEnum; - class IfcCompressorTypeEnum { - } - IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; - IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; - IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; - IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; - IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; - IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; - IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; - IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; - IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; - IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; - IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; - IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; - IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; - IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; - IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; - IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; - class IfcCondenserTypeEnum { - } - IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; - IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; - IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; - IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; - class IfcConnectionTypeEnum { - } - IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; - IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; - IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; - IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; - class IfcConstraintEnum { - } - IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; - IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; - IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; - IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcConstraintEnum = IfcConstraintEnum; - class IfcControllerTypeEnum { - } - IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; - IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; - IfcControllerTypeEnum.PROPORTIONALINTEGRAL = { type: 3, value: "PROPORTIONALINTEGRAL" }; - IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE = { type: 3, value: "PROPORTIONALINTEGRALDERIVATIVE" }; - IfcControllerTypeEnum.TIMEDTWOPOSITION = { type: 3, value: "TIMEDTWOPOSITION" }; - IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; - IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcControllerTypeEnum = IfcControllerTypeEnum; - class IfcCooledBeamTypeEnum { - } - IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; - IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; - IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; - class IfcCoolingTowerTypeEnum { - } - IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; - IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; - class IfcCostScheduleTypeEnum { - } - IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; - IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; - IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; - IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; - IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; - IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; - class IfcCoveringTypeEnum { - } - IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; - IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; - IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; - IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; - IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; - IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; - class IfcCurrencyEnum { - } - IfcCurrencyEnum.AED = { type: 3, value: "AED" }; - IfcCurrencyEnum.AES = { type: 3, value: "AES" }; - IfcCurrencyEnum.ATS = { type: 3, value: "ATS" }; - IfcCurrencyEnum.AUD = { type: 3, value: "AUD" }; - IfcCurrencyEnum.BBD = { type: 3, value: "BBD" }; - IfcCurrencyEnum.BEG = { type: 3, value: "BEG" }; - IfcCurrencyEnum.BGL = { type: 3, value: "BGL" }; - IfcCurrencyEnum.BHD = { type: 3, value: "BHD" }; - IfcCurrencyEnum.BMD = { type: 3, value: "BMD" }; - IfcCurrencyEnum.BND = { type: 3, value: "BND" }; - IfcCurrencyEnum.BRL = { type: 3, value: "BRL" }; - IfcCurrencyEnum.BSD = { type: 3, value: "BSD" }; - IfcCurrencyEnum.BWP = { type: 3, value: "BWP" }; - IfcCurrencyEnum.BZD = { type: 3, value: "BZD" }; - IfcCurrencyEnum.CAD = { type: 3, value: "CAD" }; - IfcCurrencyEnum.CBD = { type: 3, value: "CBD" }; - IfcCurrencyEnum.CHF = { type: 3, value: "CHF" }; - IfcCurrencyEnum.CLP = { type: 3, value: "CLP" }; - IfcCurrencyEnum.CNY = { type: 3, value: "CNY" }; - IfcCurrencyEnum.CYS = { type: 3, value: "CYS" }; - IfcCurrencyEnum.CZK = { type: 3, value: "CZK" }; - IfcCurrencyEnum.DDP = { type: 3, value: "DDP" }; - IfcCurrencyEnum.DEM = { type: 3, value: "DEM" }; - IfcCurrencyEnum.DKK = { type: 3, value: "DKK" }; - IfcCurrencyEnum.EGL = { type: 3, value: "EGL" }; - IfcCurrencyEnum.EST = { type: 3, value: "EST" }; - IfcCurrencyEnum.EUR = { type: 3, value: "EUR" }; - IfcCurrencyEnum.FAK = { type: 3, value: "FAK" }; - IfcCurrencyEnum.FIM = { type: 3, value: "FIM" }; - IfcCurrencyEnum.FJD = { type: 3, value: "FJD" }; - IfcCurrencyEnum.FKP = { type: 3, value: "FKP" }; - IfcCurrencyEnum.FRF = { type: 3, value: "FRF" }; - IfcCurrencyEnum.GBP = { type: 3, value: "GBP" }; - IfcCurrencyEnum.GIP = { type: 3, value: "GIP" }; - IfcCurrencyEnum.GMD = { type: 3, value: "GMD" }; - IfcCurrencyEnum.GRX = { type: 3, value: "GRX" }; - IfcCurrencyEnum.HKD = { type: 3, value: "HKD" }; - IfcCurrencyEnum.HUF = { type: 3, value: "HUF" }; - IfcCurrencyEnum.ICK = { type: 3, value: "ICK" }; - IfcCurrencyEnum.IDR = { type: 3, value: "IDR" }; - IfcCurrencyEnum.ILS = { type: 3, value: "ILS" }; - IfcCurrencyEnum.INR = { type: 3, value: "INR" }; - IfcCurrencyEnum.IRP = { type: 3, value: "IRP" }; - IfcCurrencyEnum.ITL = { type: 3, value: "ITL" }; - IfcCurrencyEnum.JMD = { type: 3, value: "JMD" }; - IfcCurrencyEnum.JOD = { type: 3, value: "JOD" }; - IfcCurrencyEnum.JPY = { type: 3, value: "JPY" }; - IfcCurrencyEnum.KES = { type: 3, value: "KES" }; - IfcCurrencyEnum.KRW = { type: 3, value: "KRW" }; - IfcCurrencyEnum.KWD = { type: 3, value: "KWD" }; - IfcCurrencyEnum.KYD = { type: 3, value: "KYD" }; - IfcCurrencyEnum.LKR = { type: 3, value: "LKR" }; - IfcCurrencyEnum.LUF = { type: 3, value: "LUF" }; - IfcCurrencyEnum.MTL = { type: 3, value: "MTL" }; - IfcCurrencyEnum.MUR = { type: 3, value: "MUR" }; - IfcCurrencyEnum.MXN = { type: 3, value: "MXN" }; - IfcCurrencyEnum.MYR = { type: 3, value: "MYR" }; - IfcCurrencyEnum.NLG = { type: 3, value: "NLG" }; - IfcCurrencyEnum.NZD = { type: 3, value: "NZD" }; - IfcCurrencyEnum.OMR = { type: 3, value: "OMR" }; - IfcCurrencyEnum.PGK = { type: 3, value: "PGK" }; - IfcCurrencyEnum.PHP = { type: 3, value: "PHP" }; - IfcCurrencyEnum.PKR = { type: 3, value: "PKR" }; - IfcCurrencyEnum.PLN = { type: 3, value: "PLN" }; - IfcCurrencyEnum.PTN = { type: 3, value: "PTN" }; - IfcCurrencyEnum.QAR = { type: 3, value: "QAR" }; - IfcCurrencyEnum.RUR = { type: 3, value: "RUR" }; - IfcCurrencyEnum.SAR = { type: 3, value: "SAR" }; - IfcCurrencyEnum.SCR = { type: 3, value: "SCR" }; - IfcCurrencyEnum.SEK = { type: 3, value: "SEK" }; - IfcCurrencyEnum.SGD = { type: 3, value: "SGD" }; - IfcCurrencyEnum.SKP = { type: 3, value: "SKP" }; - IfcCurrencyEnum.THB = { type: 3, value: "THB" }; - IfcCurrencyEnum.TRL = { type: 3, value: "TRL" }; - IfcCurrencyEnum.TTD = { type: 3, value: "TTD" }; - IfcCurrencyEnum.TWD = { type: 3, value: "TWD" }; - IfcCurrencyEnum.USD = { type: 3, value: "USD" }; - IfcCurrencyEnum.VEB = { type: 3, value: "VEB" }; - IfcCurrencyEnum.VND = { type: 3, value: "VND" }; - IfcCurrencyEnum.XEU = { type: 3, value: "XEU" }; - IfcCurrencyEnum.ZAR = { type: 3, value: "ZAR" }; - IfcCurrencyEnum.ZWD = { type: 3, value: "ZWD" }; - IfcCurrencyEnum.NOK = { type: 3, value: "NOK" }; - IFC2X32.IfcCurrencyEnum = IfcCurrencyEnum; - class IfcCurtainWallTypeEnum { - } - IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; - class IfcDamperTypeEnum { - } - IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; - IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; - IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; - IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; - IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; - IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; - IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; - IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; - IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; - IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; - IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; - IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDamperTypeEnum = IfcDamperTypeEnum; - class IfcDataOriginEnum { - } - IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; - IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDataOriginEnum = IfcDataOriginEnum; - class IfcDerivedUnitEnum { - } - IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; - IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; - IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; - IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; - IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; - IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; - IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; - IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; - IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; - IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; - IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; - IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; - IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; - IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; - IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; - IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; - IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; - IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; - IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; - IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; - IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; - IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; - IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; - IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; - IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; - IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; - IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; - IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; - IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; - class IfcDimensionExtentUsage { - } - IfcDimensionExtentUsage.ORIGIN = { type: 3, value: "ORIGIN" }; - IfcDimensionExtentUsage.TARGET = { type: 3, value: "TARGET" }; - IFC2X32.IfcDimensionExtentUsage = IfcDimensionExtentUsage; - class IfcDirectionSenseEnum { - } - IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IFC2X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; - class IfcDistributionChamberElementTypeEnum { - } - IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; - IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; - IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; - IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; - IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; - IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; - class IfcDocumentConfidentialityEnum { - } - IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; - IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; - IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; - IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; - IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; - class IfcDocumentStatusEnum { - } - IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; - IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; - IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; - IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; - IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; - class IfcDoorPanelOperationEnum { - } - IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; - IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; - IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; - IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; - IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; - class IfcDoorPanelPositionEnum { - } - IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; - class IfcDoorStyleConstructionEnum { - } - IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; - IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; - class IfcDoorStyleOperationEnum { - } - IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; - class IfcDuctFittingTypeEnum { - } - IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; - class IfcDuctSegmentTypeEnum { - } - IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; - class IfcDuctSilencerTypeEnum { - } - IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; - IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; - IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; - class IfcElectricApplianceTypeEnum { - } - IfcElectricApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; - IfcElectricApplianceTypeEnum.DIRECTWATERHEATER = { type: 3, value: "DIRECTWATERHEATER" }; - IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; - IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; - IfcElectricApplianceTypeEnum.ELECTRICHEATER = { type: 3, value: "ELECTRICHEATER" }; - IfcElectricApplianceTypeEnum.FACSIMILE = { type: 3, value: "FACSIMILE" }; - IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; - IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; - IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; - IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; - IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER = { type: 3, value: "INDIRECTWATERHEATER" }; - IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; - IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; - IfcElectricApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; - IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; - IfcElectricApplianceTypeEnum.RADIANTHEATER = { type: 3, value: "RADIANTHEATER" }; - IfcElectricApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; - IfcElectricApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; - IfcElectricApplianceTypeEnum.TV = { type: 3, value: "TV" }; - IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; - IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; - IfcElectricApplianceTypeEnum.WATERHEATER = { type: 3, value: "WATERHEATER" }; - IfcElectricApplianceTypeEnum.WATERCOOLER = { type: 3, value: "WATERCOOLER" }; - IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; - class IfcElectricCurrentEnum { - } - IfcElectricCurrentEnum.ALTERNATING = { type: 3, value: "ALTERNATING" }; - IfcElectricCurrentEnum.DIRECT = { type: 3, value: "DIRECT" }; - IfcElectricCurrentEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricCurrentEnum = IfcElectricCurrentEnum; - class IfcElectricDistributionPointFunctionEnum { - } - IfcElectricDistributionPointFunctionEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; - IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcElectricDistributionPointFunctionEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; - IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL = { type: 3, value: "GASDETECTORPANEL" }; - IfcElectricDistributionPointFunctionEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; - IfcElectricDistributionPointFunctionEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; - IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcElectricDistributionPointFunctionEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcElectricDistributionPointFunctionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricDistributionPointFunctionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricDistributionPointFunctionEnum = IfcElectricDistributionPointFunctionEnum; - class IfcElectricFlowStorageDeviceTypeEnum { - } - IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; - IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; - class IfcElectricGeneratorTypeEnum { - } - IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; - class IfcElectricHeaterTypeEnum { - } - IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER = { type: 3, value: "ELECTRICPOINTHEATER" }; - IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER = { type: 3, value: "ELECTRICCABLEHEATER" }; - IfcElectricHeaterTypeEnum.ELECTRICMATHEATER = { type: 3, value: "ELECTRICMATHEATER" }; - IfcElectricHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricHeaterTypeEnum = IfcElectricHeaterTypeEnum; - class IfcElectricMotorTypeEnum { - } - IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; - IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; - IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; - IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; - IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; - IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; - class IfcElectricTimeControlTypeEnum { - } - IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; - IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; - IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; - class IfcElementAssemblyTypeEnum { - } - IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; - IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; - IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; - IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; - IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; - IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; - IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; - class IfcElementCompositionEnum { - } - IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IFC2X32.IfcElementCompositionEnum = IfcElementCompositionEnum; - class IfcEnergySequenceEnum { - } - IfcEnergySequenceEnum.PRIMARY = { type: 3, value: "PRIMARY" }; - IfcEnergySequenceEnum.SECONDARY = { type: 3, value: "SECONDARY" }; - IfcEnergySequenceEnum.TERTIARY = { type: 3, value: "TERTIARY" }; - IfcEnergySequenceEnum.AUXILIARY = { type: 3, value: "AUXILIARY" }; - IfcEnergySequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEnergySequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEnergySequenceEnum = IfcEnergySequenceEnum; - class IfcEnvironmentalImpactCategoryEnum { - } - IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE = { type: 3, value: "COMBINEDVALUE" }; - IfcEnvironmentalImpactCategoryEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcEnvironmentalImpactCategoryEnum.EXTRACTION = { type: 3, value: "EXTRACTION" }; - IfcEnvironmentalImpactCategoryEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; - IfcEnvironmentalImpactCategoryEnum.MANUFACTURE = { type: 3, value: "MANUFACTURE" }; - IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION = { type: 3, value: "TRANSPORTATION" }; - IfcEnvironmentalImpactCategoryEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEnvironmentalImpactCategoryEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEnvironmentalImpactCategoryEnum = IfcEnvironmentalImpactCategoryEnum; - class IfcEvaporativeCoolerTypeEnum { - } - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; - IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; - class IfcEvaporatorTypeEnum { - } - IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; - IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; - IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; - class IfcFanTypeEnum { - } - IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; - IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; - IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; - IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; - IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; - IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFanTypeEnum = IfcFanTypeEnum; - class IfcFilterTypeEnum { - } - IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; - IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; - IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; - IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; - IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; - IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFilterTypeEnum = IfcFilterTypeEnum; - class IfcFireSuppressionTerminalTypeEnum { - } - IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; - IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; - IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; - IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; - class IfcFlowDirectionEnum { - } - IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; - IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; - IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; - IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; - class IfcFlowInstrumentTypeEnum { - } - IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; - IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; - IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; - IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; - IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; - IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; - IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; - class IfcFlowMeterTypeEnum { - } - IfcFlowMeterTypeEnum.ELECTRICMETER = { type: 3, value: "ELECTRICMETER" }; - IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; - IfcFlowMeterTypeEnum.FLOWMETER = { type: 3, value: "FLOWMETER" }; - IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; - IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; - IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; - IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; - class IfcFootingTypeEnum { - } - IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; - IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; - IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; - IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; - IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFootingTypeEnum = IfcFootingTypeEnum; - class IfcGasTerminalTypeEnum { - } - IfcGasTerminalTypeEnum.GASAPPLIANCE = { type: 3, value: "GASAPPLIANCE" }; - IfcGasTerminalTypeEnum.GASBOOSTER = { type: 3, value: "GASBOOSTER" }; - IfcGasTerminalTypeEnum.GASBURNER = { type: 3, value: "GASBURNER" }; - IfcGasTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGasTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcGasTerminalTypeEnum = IfcGasTerminalTypeEnum; - class IfcGeometricProjectionEnum { - } - IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; - IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; - IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; - IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; - IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; - IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; - IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; - IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; - class IfcGlobalOrLocalEnum { - } - IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; - IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; - IFC2X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; - class IfcHeatExchangerTypeEnum { - } - IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; - IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; - class IfcHumidifierTypeEnum { - } - IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; - IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; - IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; - IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; - IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; - IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; - IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; - IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; - IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; - IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; - IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; - IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; - IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; - IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; - class IfcInternalOrExternalEnum { - } - IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; - class IfcInventoryTypeEnum { - } - IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; - IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; - IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; - IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; - class IfcJunctionBoxTypeEnum { - } - IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; - class IfcLampTypeEnum { - } - IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLampTypeEnum = IfcLampTypeEnum; - class IfcLayerSetDirectionEnum { - } - IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; - IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; - IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; - IFC2X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; - class IfcLightDistributionCurveEnum { - } - IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; - IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; - IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; - IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; - class IfcLightEmissionSourceEnum { - } - IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; - IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; - class IfcLightFixtureTypeEnum { - } - IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; - IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; - IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; - class IfcLoadGroupTypeEnum { - } - IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; - IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP = { type: 3, value: "LOAD_COMBINATION_GROUP" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; - IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; - class IfcLogicalOperatorEnum { - } - IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; - IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; - IFC2X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; - class IfcMemberTypeEnum { - } - IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; - IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; - IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; - IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; - IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; - IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; - IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; - IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; - IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; - IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; - IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcMemberTypeEnum = IfcMemberTypeEnum; - class IfcMotorConnectionTypeEnum { - } - IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; - IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; - IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; - IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; - class IfcNullStyle { - } - IfcNullStyle.NULL = { type: 3, value: "NULL" }; - IFC2X32.IfcNullStyle = IfcNullStyle; - class IfcObjectTypeEnum { - } - IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; - IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; - IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; - IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; - IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; - IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; - IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcObjectTypeEnum = IfcObjectTypeEnum; - class IfcObjectiveEnum { - } - IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; - IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; - IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; - IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; - IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; - IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; - IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcObjectiveEnum = IfcObjectiveEnum; - class IfcOccupantTypeEnum { - } - IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; - IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; - IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; - IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; - IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; - IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; - IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; - IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; - class IfcOutletTypeEnum { - } - IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; - IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; - IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; - IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcOutletTypeEnum = IfcOutletTypeEnum; - class IfcPermeableCoveringOperationEnum { - } - IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; - IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; - IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; - IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; - class IfcPhysicalOrVirtualEnum { - } - IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; - IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; - class IfcPileConstructionEnum { - } - IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; - IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; - IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; - IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; - IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPileConstructionEnum = IfcPileConstructionEnum; - class IfcPileTypeEnum { - } - IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; - IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; - IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPileTypeEnum = IfcPileTypeEnum; - class IfcPipeFittingTypeEnum { - } - IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; - class IfcPipeSegmentTypeEnum { - } - IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; - IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; - IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; - class IfcPlateTypeEnum { - } - IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; - IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; - IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPlateTypeEnum = IfcPlateTypeEnum; - class IfcProcedureTypeEnum { - } - IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; - IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; - IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; - IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; - IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; - class IfcProfileTypeEnum { - } - IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; - IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; - IFC2X32.IfcProfileTypeEnum = IfcProfileTypeEnum; - class IfcProjectOrderRecordTypeEnum { - } - IfcProjectOrderRecordTypeEnum.CHANGE = { type: 3, value: "CHANGE" }; - IfcProjectOrderRecordTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; - IfcProjectOrderRecordTypeEnum.MOVE = { type: 3, value: "MOVE" }; - IfcProjectOrderRecordTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; - IfcProjectOrderRecordTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcProjectOrderRecordTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderRecordTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProjectOrderRecordTypeEnum = IfcProjectOrderRecordTypeEnum; - class IfcProjectOrderTypeEnum { - } - IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; - IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; - IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; - IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; - IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; - IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; - class IfcProjectedOrTrueLengthEnum { - } - IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; - IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; - IFC2X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; - class IfcPropertySourceEnum { - } - IfcPropertySourceEnum.DESIGN = { type: 3, value: "DESIGN" }; - IfcPropertySourceEnum.DESIGNMAXIMUM = { type: 3, value: "DESIGNMAXIMUM" }; - IfcPropertySourceEnum.DESIGNMINIMUM = { type: 3, value: "DESIGNMINIMUM" }; - IfcPropertySourceEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcPropertySourceEnum.ASBUILT = { type: 3, value: "ASBUILT" }; - IfcPropertySourceEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcPropertySourceEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcPropertySourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPropertySourceEnum.NOTKNOWN = { type: 3, value: "NOTKNOWN" }; - IFC2X32.IfcPropertySourceEnum = IfcPropertySourceEnum; - class IfcProtectiveDeviceTypeEnum { - } - IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; - IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE = { type: 3, value: "EARTHFAILUREDEVICE" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; - IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; - IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; - class IfcPumpTypeEnum { - } - IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; - IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; - IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; - IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; - IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; - IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPumpTypeEnum = IfcPumpTypeEnum; - class IfcRailingTypeEnum { - } - IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; - IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; - IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRailingTypeEnum = IfcRailingTypeEnum; - class IfcRampFlightTypeEnum { - } - IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; - class IfcRampTypeEnum { - } - IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; - IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; - IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRampTypeEnum = IfcRampTypeEnum; - class IfcReflectanceMethodEnum { - } - IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; - IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; - IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; - IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; - IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; - IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; - IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; - IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; - class IfcReinforcingBarRoleEnum { - } - IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; - class IfcReinforcingBarSurfaceEnum { - } - IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; - IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; - IFC2X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; - class IfcResourceConsumptionEnum { - } - IfcResourceConsumptionEnum.CONSUMED = { type: 3, value: "CONSUMED" }; - IfcResourceConsumptionEnum.PARTIALLYCONSUMED = { type: 3, value: "PARTIALLYCONSUMED" }; - IfcResourceConsumptionEnum.NOTCONSUMED = { type: 3, value: "NOTCONSUMED" }; - IfcResourceConsumptionEnum.OCCUPIED = { type: 3, value: "OCCUPIED" }; - IfcResourceConsumptionEnum.PARTIALLYOCCUPIED = { type: 3, value: "PARTIALLYOCCUPIED" }; - IfcResourceConsumptionEnum.NOTOCCUPIED = { type: 3, value: "NOTOCCUPIED" }; - IfcResourceConsumptionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcResourceConsumptionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcResourceConsumptionEnum = IfcResourceConsumptionEnum; - class IfcRibPlateDirectionEnum { - } - IfcRibPlateDirectionEnum.DIRECTION_X = { type: 3, value: "DIRECTION_X" }; - IfcRibPlateDirectionEnum.DIRECTION_Y = { type: 3, value: "DIRECTION_Y" }; - IFC2X32.IfcRibPlateDirectionEnum = IfcRibPlateDirectionEnum; - class IfcRoleEnum { - } - IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; - IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; - IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; - IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; - IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; - IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; - IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; - IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; - IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; - IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; - IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; - IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; - IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; - IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; - IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; - IfcRoleEnum.COMISSIONINGENGINEER = { type: 3, value: "COMISSIONINGENGINEER" }; - IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; - IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; - IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; - IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; - IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; - IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; - IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcRoleEnum = IfcRoleEnum; - class IfcRoofTypeEnum { - } - IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; - IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; - IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; - IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; - IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; - IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; - IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; - IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; - IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; - IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; - IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; - IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; - IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRoofTypeEnum = IfcRoofTypeEnum; - class IfcSIPrefix { - } - IfcSIPrefix.EXA = { type: 3, value: "EXA" }; - IfcSIPrefix.PETA = { type: 3, value: "PETA" }; - IfcSIPrefix.TERA = { type: 3, value: "TERA" }; - IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; - IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; - IfcSIPrefix.KILO = { type: 3, value: "KILO" }; - IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; - IfcSIPrefix.DECA = { type: 3, value: "DECA" }; - IfcSIPrefix.DECI = { type: 3, value: "DECI" }; - IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; - IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; - IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; - IfcSIPrefix.NANO = { type: 3, value: "NANO" }; - IfcSIPrefix.PICO = { type: 3, value: "PICO" }; - IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; - IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; - IFC2X32.IfcSIPrefix = IfcSIPrefix; - class IfcSIUnitName { - } - IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; - IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; - IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; - IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; - IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; - IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; - IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; - IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; - IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; - IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; - IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; - IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; - IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; - IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; - IfcSIUnitName.LUX = { type: 3, value: "LUX" }; - IfcSIUnitName.METRE = { type: 3, value: "METRE" }; - IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; - IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; - IfcSIUnitName.OHM = { type: 3, value: "OHM" }; - IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; - IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; - IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; - IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; - IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; - IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; - IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; - IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; - IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; - IfcSIUnitName.WATT = { type: 3, value: "WATT" }; - IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; - IFC2X32.IfcSIUnitName = IfcSIUnitName; - class IfcSanitaryTerminalTypeEnum { - } - IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; - IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; - IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; - IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; - IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; - IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; - IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; - IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; - IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; - IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; - IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; - class IfcSectionTypeEnum { - } - IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; - IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; - IFC2X32.IfcSectionTypeEnum = IfcSectionTypeEnum; - class IfcSensorTypeEnum { - } - IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; - IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; - IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; - IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; - IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; - IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; - IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; - IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; - IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; - IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; - IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; - IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; - IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; - IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSensorTypeEnum = IfcSensorTypeEnum; - class IfcSequenceEnum { - } - IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; - IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; - IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; - IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; - IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSequenceEnum = IfcSequenceEnum; - class IfcServiceLifeFactorTypeEnum { - } - IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS = { type: 3, value: "A_QUALITYOFCOMPONENTS" }; - IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL = { type: 3, value: "B_DESIGNLEVEL" }; - IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL = { type: 3, value: "C_WORKEXECUTIONLEVEL" }; - IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT = { type: 3, value: "D_INDOORENVIRONMENT" }; - IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT = { type: 3, value: "E_OUTDOORENVIRONMENT" }; - IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS = { type: 3, value: "F_INUSECONDITIONS" }; - IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL = { type: 3, value: "G_MAINTENANCELEVEL" }; - IfcServiceLifeFactorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcServiceLifeFactorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcServiceLifeFactorTypeEnum = IfcServiceLifeFactorTypeEnum; - class IfcServiceLifeTypeEnum { - } - IfcServiceLifeTypeEnum.ACTUALSERVICELIFE = { type: 3, value: "ACTUALSERVICELIFE" }; - IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE = { type: 3, value: "EXPECTEDSERVICELIFE" }; - IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE = { type: 3, value: "OPTIMISTICREFERENCESERVICELIFE" }; - IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE = { type: 3, value: "PESSIMISTICREFERENCESERVICELIFE" }; - IfcServiceLifeTypeEnum.REFERENCESERVICELIFE = { type: 3, value: "REFERENCESERVICELIFE" }; - IFC2X32.IfcServiceLifeTypeEnum = IfcServiceLifeTypeEnum; - class IfcSlabTypeEnum { - } - IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; - IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; - IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; - IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; - IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSlabTypeEnum = IfcSlabTypeEnum; - class IfcSoundScaleEnum { - } - IfcSoundScaleEnum.DBA = { type: 3, value: "DBA" }; - IfcSoundScaleEnum.DBB = { type: 3, value: "DBB" }; - IfcSoundScaleEnum.DBC = { type: 3, value: "DBC" }; - IfcSoundScaleEnum.NC = { type: 3, value: "NC" }; - IfcSoundScaleEnum.NR = { type: 3, value: "NR" }; - IfcSoundScaleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSoundScaleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSoundScaleEnum = IfcSoundScaleEnum; - class IfcSpaceHeaterTypeEnum { - } - IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR = { type: 3, value: "SECTIONALRADIATOR" }; - IfcSpaceHeaterTypeEnum.PANELRADIATOR = { type: 3, value: "PANELRADIATOR" }; - IfcSpaceHeaterTypeEnum.TUBULARRADIATOR = { type: 3, value: "TUBULARRADIATOR" }; - IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; - IfcSpaceHeaterTypeEnum.BASEBOARDHEATER = { type: 3, value: "BASEBOARDHEATER" }; - IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT = { type: 3, value: "FINNEDTUBEUNIT" }; - IfcSpaceHeaterTypeEnum.UNITHEATER = { type: 3, value: "UNITHEATER" }; - IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; - class IfcSpaceTypeEnum { - } - IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; - class IfcStackTerminalTypeEnum { - } - IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; - IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; - IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; - IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; - class IfcStairFlightTypeEnum { - } - IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; - IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; - IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; - class IfcStairTypeEnum { - } - IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; - IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; - IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; - IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; - IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; - IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStairTypeEnum = IfcStairTypeEnum; - class IfcStateEnum { - } - IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; - IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; - IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; - IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; - IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; - IFC2X32.IfcStateEnum = IfcStateEnum; - class IfcStructuralCurveTypeEnum { - } - IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; - IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; - IfcStructuralCurveTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcStructuralCurveTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; - IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; - IfcStructuralCurveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStructuralCurveTypeEnum = IfcStructuralCurveTypeEnum; - class IfcStructuralSurfaceTypeEnum { - } - IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; - IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; - IfcStructuralSurfaceTypeEnum.SHELL = { type: 3, value: "SHELL" }; - IfcStructuralSurfaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStructuralSurfaceTypeEnum = IfcStructuralSurfaceTypeEnum; - class IfcSurfaceSide { - } - IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; - IFC2X32.IfcSurfaceSide = IfcSurfaceSide; - class IfcSurfaceTextureEnum { - } - IfcSurfaceTextureEnum.BUMP = { type: 3, value: "BUMP" }; - IfcSurfaceTextureEnum.OPACITY = { type: 3, value: "OPACITY" }; - IfcSurfaceTextureEnum.REFLECTION = { type: 3, value: "REFLECTION" }; - IfcSurfaceTextureEnum.SELFILLUMINATION = { type: 3, value: "SELFILLUMINATION" }; - IfcSurfaceTextureEnum.SHININESS = { type: 3, value: "SHININESS" }; - IfcSurfaceTextureEnum.SPECULAR = { type: 3, value: "SPECULAR" }; - IfcSurfaceTextureEnum.TEXTURE = { type: 3, value: "TEXTURE" }; - IfcSurfaceTextureEnum.TRANSPARENCYMAP = { type: 3, value: "TRANSPARENCYMAP" }; - IfcSurfaceTextureEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSurfaceTextureEnum = IfcSurfaceTextureEnum; - class IfcSwitchingDeviceTypeEnum { - } - IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; - IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; - IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; - IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; - IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; - IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; - class IfcTankTypeEnum { - } - IfcTankTypeEnum.PREFORMED = { type: 3, value: "PREFORMED" }; - IfcTankTypeEnum.SECTIONAL = { type: 3, value: "SECTIONAL" }; - IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; - IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; - IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTankTypeEnum = IfcTankTypeEnum; - class IfcTendonTypeEnum { - } - IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; - IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; - IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; - IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; - IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTendonTypeEnum = IfcTendonTypeEnum; - class IfcTextPath { - } - IfcTextPath.LEFT = { type: 3, value: "LEFT" }; - IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; - IfcTextPath.UP = { type: 3, value: "UP" }; - IfcTextPath.DOWN = { type: 3, value: "DOWN" }; - IFC2X32.IfcTextPath = IfcTextPath; - class IfcThermalLoadSourceEnum { - } - IfcThermalLoadSourceEnum.PEOPLE = { type: 3, value: "PEOPLE" }; - IfcThermalLoadSourceEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcThermalLoadSourceEnum.EQUIPMENT = { type: 3, value: "EQUIPMENT" }; - IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR = { type: 3, value: "VENTILATIONINDOORAIR" }; - IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR = { type: 3, value: "VENTILATIONOUTSIDEAIR" }; - IfcThermalLoadSourceEnum.RECIRCULATEDAIR = { type: 3, value: "RECIRCULATEDAIR" }; - IfcThermalLoadSourceEnum.EXHAUSTAIR = { type: 3, value: "EXHAUSTAIR" }; - IfcThermalLoadSourceEnum.AIREXCHANGERATE = { type: 3, value: "AIREXCHANGERATE" }; - IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE = { type: 3, value: "DRYBULBTEMPERATURE" }; - IfcThermalLoadSourceEnum.RELATIVEHUMIDITY = { type: 3, value: "RELATIVEHUMIDITY" }; - IfcThermalLoadSourceEnum.INFILTRATION = { type: 3, value: "INFILTRATION" }; - IfcThermalLoadSourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcThermalLoadSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcThermalLoadSourceEnum = IfcThermalLoadSourceEnum; - class IfcThermalLoadTypeEnum { - } - IfcThermalLoadTypeEnum.SENSIBLE = { type: 3, value: "SENSIBLE" }; - IfcThermalLoadTypeEnum.LATENT = { type: 3, value: "LATENT" }; - IfcThermalLoadTypeEnum.RADIANT = { type: 3, value: "RADIANT" }; - IfcThermalLoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcThermalLoadTypeEnum = IfcThermalLoadTypeEnum; - class IfcTimeSeriesDataTypeEnum { - } - IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; - class IfcTimeSeriesScheduleTypeEnum { - } - IfcTimeSeriesScheduleTypeEnum.ANNUAL = { type: 3, value: "ANNUAL" }; - IfcTimeSeriesScheduleTypeEnum.MONTHLY = { type: 3, value: "MONTHLY" }; - IfcTimeSeriesScheduleTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; - IfcTimeSeriesScheduleTypeEnum.DAILY = { type: 3, value: "DAILY" }; - IfcTimeSeriesScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTimeSeriesScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTimeSeriesScheduleTypeEnum = IfcTimeSeriesScheduleTypeEnum; - class IfcTransformerTypeEnum { - } - IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; - IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; - IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; - class IfcTransitionCode { - } - IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; - IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; - IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; - IFC2X32.IfcTransitionCode = IfcTransitionCode; - class IfcTransportElementTypeEnum { - } - IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; - IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; - IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; - IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; - class IfcTrimmingPreference { - } - IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; - IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC2X32.IfcTrimmingPreference = IfcTrimmingPreference; - class IfcTubeBundleTypeEnum { - } - IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; - IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; - class IfcUnitEnum { - } - IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; - IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; - IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; - IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; - IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; - IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; - IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; - IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; - IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; - IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; - IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; - IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; - IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; - IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; - IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; - IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; - IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; - IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; - IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; - IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; - IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; - IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; - IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; - IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; - IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; - IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; - IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; - IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcUnitEnum = IfcUnitEnum; - class IfcUnitaryEquipmentTypeEnum { - } - IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; - IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; - IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; - IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; - IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; - class IfcValveTypeEnum { - } - IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; - IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; - IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; - IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; - IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; - IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; - IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; - IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; - IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; - IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; - IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; - IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; - IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; - IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; - IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; - IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; - IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; - IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; - IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; - IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; - IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcValveTypeEnum = IfcValveTypeEnum; - class IfcVibrationIsolatorTypeEnum { - } - IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; - IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; - IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; - class IfcWallTypeEnum { - } - IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; - IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; - IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; - IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWallTypeEnum = IfcWallTypeEnum; - class IfcWasteTerminalTypeEnum { - } - IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; - IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; - IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; - IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; - IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR = { type: 3, value: "GREASEINTERCEPTOR" }; - IfcWasteTerminalTypeEnum.OILINTERCEPTOR = { type: 3, value: "OILINTERCEPTOR" }; - IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR = { type: 3, value: "PETROLINTERCEPTOR" }; - IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; - IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; - IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; - IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; - class IfcWindowPanelOperationEnum { - } - IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; - IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; - IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; - IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; - IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; - IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; - IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; - IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; - IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; - IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; - IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; - IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; - class IfcWindowPanelPositionEnum { - } - IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; - IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; - IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; - class IfcWindowStyleConstructionEnum { - } - IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; - IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; - class IfcWindowStyleOperationEnum { - } - IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; - class IfcWorkControlTypeEnum { - } - IfcWorkControlTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkControlTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkControlTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWorkControlTypeEnum = IfcWorkControlTypeEnum; - class IfcActorRole extends IfcLineObject { - constructor(expressID, Role, UserDefinedRole, Description) { - super(expressID); - this.Role = Role; - this.UserDefinedRole = UserDefinedRole; - this.Description = Description; - this.type = 3630933823; - } - } - IFC2X32.IfcActorRole = IfcActorRole; - class IfcAddress extends IfcLineObject { - constructor(expressID, Purpose, Description, UserDefinedPurpose) { - super(expressID); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.type = 618182010; - } - } - IFC2X32.IfcAddress = IfcAddress; - class IfcApplication extends IfcLineObject { - constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { - super(expressID); - this.ApplicationDeveloper = ApplicationDeveloper; - this.Version = Version; - this.ApplicationFullName = ApplicationFullName; - this.ApplicationIdentifier = ApplicationIdentifier; - this.type = 639542469; - } - } - IFC2X32.IfcApplication = IfcApplication; - class IfcAppliedValue extends IfcLineObject { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.type = 411424972; - } - } - IFC2X32.IfcAppliedValue = IfcAppliedValue; - class IfcAppliedValueRelationship extends IfcLineObject { - constructor(expressID, ComponentOfTotal, Components, ArithmeticOperator, Name, Description) { - super(expressID); - this.ComponentOfTotal = ComponentOfTotal; - this.Components = Components; - this.ArithmeticOperator = ArithmeticOperator; - this.Name = Name; - this.Description = Description; - this.type = 1110488051; - } - } - IFC2X32.IfcAppliedValueRelationship = IfcAppliedValueRelationship; - class IfcApproval extends IfcLineObject { - constructor(expressID, Description, ApprovalDateTime, ApprovalStatus, ApprovalLevel, ApprovalQualifier, Name, Identifier) { - super(expressID); - this.Description = Description; - this.ApprovalDateTime = ApprovalDateTime; - this.ApprovalStatus = ApprovalStatus; - this.ApprovalLevel = ApprovalLevel; - this.ApprovalQualifier = ApprovalQualifier; - this.Name = Name; - this.Identifier = Identifier; - this.type = 130549933; - } - } - IFC2X32.IfcApproval = IfcApproval; - class IfcApprovalActorRelationship extends IfcLineObject { - constructor(expressID, Actor, Approval, Role) { - super(expressID); - this.Actor = Actor; - this.Approval = Approval; - this.Role = Role; - this.type = 2080292479; - } - } - IFC2X32.IfcApprovalActorRelationship = IfcApprovalActorRelationship; - class IfcApprovalPropertyRelationship extends IfcLineObject { - constructor(expressID, ApprovedProperties, Approval) { - super(expressID); - this.ApprovedProperties = ApprovedProperties; - this.Approval = Approval; - this.type = 390851274; - } - } - IFC2X32.IfcApprovalPropertyRelationship = IfcApprovalPropertyRelationship; - class IfcApprovalRelationship extends IfcLineObject { - constructor(expressID, RelatedApproval, RelatingApproval, Description, Name) { - super(expressID); - this.RelatedApproval = RelatedApproval; - this.RelatingApproval = RelatingApproval; - this.Description = Description; - this.Name = Name; - this.type = 3869604511; - } - } - IFC2X32.IfcApprovalRelationship = IfcApprovalRelationship; - class IfcBoundaryCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 4037036970; - } - } - IFC2X32.IfcBoundaryCondition = IfcBoundaryCondition; - class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, LinearStiffnessByLengthX, LinearStiffnessByLengthY, LinearStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { - super(expressID, Name); - this.Name = Name; - this.LinearStiffnessByLengthX = LinearStiffnessByLengthX; - this.LinearStiffnessByLengthY = LinearStiffnessByLengthY; - this.LinearStiffnessByLengthZ = LinearStiffnessByLengthZ; - this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; - this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; - this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; - this.type = 1560379544; - } - } - IFC2X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; - class IfcBoundaryFaceCondition extends IfcBoundaryCondition { - constructor(expressID, Name, LinearStiffnessByAreaX, LinearStiffnessByAreaY, LinearStiffnessByAreaZ) { - super(expressID, Name); - this.Name = Name; - this.LinearStiffnessByAreaX = LinearStiffnessByAreaX; - this.LinearStiffnessByAreaY = LinearStiffnessByAreaY; - this.LinearStiffnessByAreaZ = LinearStiffnessByAreaZ; - this.type = 3367102660; - } - } - IFC2X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; - class IfcBoundaryNodeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { - super(expressID, Name); - this.Name = Name; - this.LinearStiffnessX = LinearStiffnessX; - this.LinearStiffnessY = LinearStiffnessY; - this.LinearStiffnessZ = LinearStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.type = 1387855156; - } - } - IFC2X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; - class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { - constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { - super(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); - this.Name = Name; - this.LinearStiffnessX = LinearStiffnessX; - this.LinearStiffnessY = LinearStiffnessY; - this.LinearStiffnessZ = LinearStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.WarpingStiffness = WarpingStiffness; - this.type = 2069777674; - } - } - IFC2X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; - class IfcCalendarDate extends IfcLineObject { - constructor(expressID, DayComponent, MonthComponent, YearComponent) { - super(expressID); - this.DayComponent = DayComponent; - this.MonthComponent = MonthComponent; - this.YearComponent = YearComponent; - this.type = 622194075; - } - } - IFC2X32.IfcCalendarDate = IfcCalendarDate; - class IfcClassification extends IfcLineObject { - constructor(expressID, Source, Edition, EditionDate, Name) { - super(expressID); - this.Source = Source; - this.Edition = Edition; - this.EditionDate = EditionDate; - this.Name = Name; - this.type = 747523909; - } - } - IFC2X32.IfcClassification = IfcClassification; - class IfcClassificationItem extends IfcLineObject { - constructor(expressID, Notation, ItemOf, Title) { - super(expressID); - this.Notation = Notation; - this.ItemOf = ItemOf; - this.Title = Title; - this.type = 1767535486; - } - } - IFC2X32.IfcClassificationItem = IfcClassificationItem; - class IfcClassificationItemRelationship extends IfcLineObject { - constructor(expressID, RelatingItem, RelatedItems) { - super(expressID); - this.RelatingItem = RelatingItem; - this.RelatedItems = RelatedItems; - this.type = 1098599126; - } - } - IFC2X32.IfcClassificationItemRelationship = IfcClassificationItemRelationship; - class IfcClassificationNotation extends IfcLineObject { - constructor(expressID, NotationFacets) { - super(expressID); - this.NotationFacets = NotationFacets; - this.type = 938368621; - } - } - IFC2X32.IfcClassificationNotation = IfcClassificationNotation; - class IfcClassificationNotationFacet extends IfcLineObject { - constructor(expressID, NotationValue) { - super(expressID); - this.NotationValue = NotationValue; - this.type = 3639012971; - } - } - IFC2X32.IfcClassificationNotationFacet = IfcClassificationNotationFacet; - class IfcColourSpecification extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3264961684; - } - } - IFC2X32.IfcColourSpecification = IfcColourSpecification; - class IfcConnectionGeometry extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 2859738748; - } - } - IFC2X32.IfcConnectionGeometry = IfcConnectionGeometry; - class IfcConnectionPointGeometry extends IfcConnectionGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { - super(expressID); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.type = 2614616156; - } - } - IFC2X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; - class IfcConnectionPortGeometry extends IfcConnectionGeometry { - constructor(expressID, LocationAtRelatingElement, LocationAtRelatedElement, ProfileOfPort) { - super(expressID); - this.LocationAtRelatingElement = LocationAtRelatingElement; - this.LocationAtRelatedElement = LocationAtRelatedElement; - this.ProfileOfPort = ProfileOfPort; - this.type = 4257277454; - } - } - IFC2X32.IfcConnectionPortGeometry = IfcConnectionPortGeometry; - class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { - constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { - super(expressID); - this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; - this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; - this.type = 2732653382; - } - } - IFC2X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; - class IfcConstraint extends IfcLineObject { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.type = 1959218052; - } - } - IFC2X32.IfcConstraint = IfcConstraint; - class IfcConstraintAggregationRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints, LogicalAggregator) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedConstraints = RelatedConstraints; - this.LogicalAggregator = LogicalAggregator; - this.type = 1658513725; - } - } - IFC2X32.IfcConstraintAggregationRelationship = IfcConstraintAggregationRelationship; - class IfcConstraintClassificationRelationship extends IfcLineObject { - constructor(expressID, ClassifiedConstraint, RelatedClassifications) { - super(expressID); - this.ClassifiedConstraint = ClassifiedConstraint; - this.RelatedClassifications = RelatedClassifications; - this.type = 613356794; - } - } - IFC2X32.IfcConstraintClassificationRelationship = IfcConstraintClassificationRelationship; - class IfcConstraintRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedConstraints = RelatedConstraints; - this.type = 347226245; - } - } - IFC2X32.IfcConstraintRelationship = IfcConstraintRelationship; - class IfcCoordinatedUniversalTimeOffset extends IfcLineObject { - constructor(expressID, HourOffset, MinuteOffset, Sense) { - super(expressID); - this.HourOffset = HourOffset; - this.MinuteOffset = MinuteOffset; - this.Sense = Sense; - this.type = 1065062679; - } - } - IFC2X32.IfcCoordinatedUniversalTimeOffset = IfcCoordinatedUniversalTimeOffset; - class IfcCostValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, CostType, Condition) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.CostType = CostType; - this.Condition = Condition; - this.type = 602808272; - } - } - IFC2X32.IfcCostValue = IfcCostValue; - class IfcCurrencyRelationship extends IfcLineObject { - constructor(expressID, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { - super(expressID); - this.RelatingMonetaryUnit = RelatingMonetaryUnit; - this.RelatedMonetaryUnit = RelatedMonetaryUnit; - this.ExchangeRate = ExchangeRate; - this.RateDateTime = RateDateTime; - this.RateSource = RateSource; - this.type = 539742890; - } - } - IFC2X32.IfcCurrencyRelationship = IfcCurrencyRelationship; - class IfcCurveStyleFont extends IfcLineObject { - constructor(expressID, Name, PatternList) { - super(expressID); - this.Name = Name; - this.PatternList = PatternList; - this.type = 1105321065; - } - } - IFC2X32.IfcCurveStyleFont = IfcCurveStyleFont; - class IfcCurveStyleFontAndScaling extends IfcLineObject { - constructor(expressID, Name, CurveFont, CurveFontScaling) { - super(expressID); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveFontScaling = CurveFontScaling; - this.type = 2367409068; - } - } - IFC2X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; - class IfcCurveStyleFontPattern extends IfcLineObject { - constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { - super(expressID); - this.VisibleSegmentLength = VisibleSegmentLength; - this.InvisibleSegmentLength = InvisibleSegmentLength; - this.type = 3510044353; - } - } - IFC2X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; - class IfcDateAndTime extends IfcLineObject { - constructor(expressID, DateComponent, TimeComponent) { - super(expressID); - this.DateComponent = DateComponent; - this.TimeComponent = TimeComponent; - this.type = 1072939445; - } - } - IFC2X32.IfcDateAndTime = IfcDateAndTime; - class IfcDerivedUnit extends IfcLineObject { - constructor(expressID, Elements, UnitType, UserDefinedType) { - super(expressID); - this.Elements = Elements; - this.UnitType = UnitType; - this.UserDefinedType = UserDefinedType; - this.type = 1765591967; - } - } - IFC2X32.IfcDerivedUnit = IfcDerivedUnit; - class IfcDerivedUnitElement extends IfcLineObject { - constructor(expressID, Unit, Exponent) { - super(expressID); - this.Unit = Unit; - this.Exponent = Exponent; - this.type = 1045800335; - } - } - IFC2X32.IfcDerivedUnitElement = IfcDerivedUnitElement; - class IfcDimensionalExponents extends IfcLineObject { - constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { - super(expressID); - this.LengthExponent = LengthExponent; - this.MassExponent = MassExponent; - this.TimeExponent = TimeExponent; - this.ElectricCurrentExponent = ElectricCurrentExponent; - this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; - this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; - this.LuminousIntensityExponent = LuminousIntensityExponent; - this.type = 2949456006; - } - } - IFC2X32.IfcDimensionalExponents = IfcDimensionalExponents; - class IfcDocumentElectronicFormat extends IfcLineObject { - constructor(expressID, FileExtension, MimeContentType, MimeSubtype) { - super(expressID); - this.FileExtension = FileExtension; - this.MimeContentType = MimeContentType; - this.MimeSubtype = MimeSubtype; - this.type = 1376555844; - } - } - IFC2X32.IfcDocumentElectronicFormat = IfcDocumentElectronicFormat; - class IfcDocumentInformation extends IfcLineObject { - constructor(expressID, DocumentId, Name, Description, DocumentReferences, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { - super(expressID); - this.DocumentId = DocumentId; - this.Name = Name; - this.Description = Description; - this.DocumentReferences = DocumentReferences; - this.Purpose = Purpose; - this.IntendedUse = IntendedUse; - this.Scope = Scope; - this.Revision = Revision; - this.DocumentOwner = DocumentOwner; - this.Editors = Editors; - this.CreationTime = CreationTime; - this.LastRevisionTime = LastRevisionTime; - this.ElectronicFormat = ElectronicFormat; - this.ValidFrom = ValidFrom; - this.ValidUntil = ValidUntil; - this.Confidentiality = Confidentiality; - this.Status = Status; - this.type = 1154170062; - } - } - IFC2X32.IfcDocumentInformation = IfcDocumentInformation; - class IfcDocumentInformationRelationship extends IfcLineObject { - constructor(expressID, RelatingDocument, RelatedDocuments, RelationshipType) { - super(expressID); - this.RelatingDocument = RelatingDocument; - this.RelatedDocuments = RelatedDocuments; - this.RelationshipType = RelationshipType; - this.type = 770865208; - } - } - IFC2X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; - class IfcDraughtingCalloutRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.RelatingDraughtingCallout = RelatingDraughtingCallout; - this.RelatedDraughtingCallout = RelatedDraughtingCallout; - this.type = 3796139169; - } - } - IFC2X32.IfcDraughtingCalloutRelationship = IfcDraughtingCalloutRelationship; - class IfcEnvironmentalImpactValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, ImpactType, Category, UserDefinedCategory) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.ImpactType = ImpactType; - this.Category = Category; - this.UserDefinedCategory = UserDefinedCategory; - this.type = 1648886627; - } - } - IFC2X32.IfcEnvironmentalImpactValue = IfcEnvironmentalImpactValue; - class IfcExternalReference extends IfcLineObject { - constructor(expressID, Location, ItemReference, Name) { - super(expressID); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3200245327; - } - } - IFC2X32.IfcExternalReference = IfcExternalReference; - class IfcExternallyDefinedHatchStyle extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 2242383968; - } - } - IFC2X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; - class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 1040185647; - } - } - IFC2X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; - class IfcExternallyDefinedSymbol extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3207319532; - } - } - IFC2X32.IfcExternallyDefinedSymbol = IfcExternallyDefinedSymbol; - class IfcExternallyDefinedTextFont extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3548104201; - } - } - IFC2X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; - class IfcGridAxis extends IfcLineObject { - constructor(expressID, AxisTag, AxisCurve, SameSense) { - super(expressID); - this.AxisTag = AxisTag; - this.AxisCurve = AxisCurve; - this.SameSense = SameSense; - this.type = 852622518; - } - } - IFC2X32.IfcGridAxis = IfcGridAxis; - class IfcIrregularTimeSeriesValue extends IfcLineObject { - constructor(expressID, TimeStamp, ListValues) { - super(expressID); - this.TimeStamp = TimeStamp; - this.ListValues = ListValues; - this.type = 3020489413; - } - } - IFC2X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; - class IfcLibraryInformation extends IfcLineObject { - constructor(expressID, Name, Version, Publisher, VersionDate, LibraryReference) { - super(expressID); - this.Name = Name; - this.Version = Version; - this.Publisher = Publisher; - this.VersionDate = VersionDate; - this.LibraryReference = LibraryReference; - this.type = 2655187982; - } - } - IFC2X32.IfcLibraryInformation = IfcLibraryInformation; - class IfcLibraryReference extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3452421091; - } - } - IFC2X32.IfcLibraryReference = IfcLibraryReference; - class IfcLightDistributionData extends IfcLineObject { - constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { - super(expressID); - this.MainPlaneAngle = MainPlaneAngle; - this.SecondaryPlaneAngle = SecondaryPlaneAngle; - this.LuminousIntensity = LuminousIntensity; - this.type = 4162380809; - } - } - IFC2X32.IfcLightDistributionData = IfcLightDistributionData; - class IfcLightIntensityDistribution extends IfcLineObject { - constructor(expressID, LightDistributionCurve, DistributionData) { - super(expressID); - this.LightDistributionCurve = LightDistributionCurve; - this.DistributionData = DistributionData; - this.type = 1566485204; - } - } - IFC2X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; - class IfcLocalTime extends IfcLineObject { - constructor(expressID, HourComponent, MinuteComponent, SecondComponent, Zone, DaylightSavingOffset) { - super(expressID); - this.HourComponent = HourComponent; - this.MinuteComponent = MinuteComponent; - this.SecondComponent = SecondComponent; - this.Zone = Zone; - this.DaylightSavingOffset = DaylightSavingOffset; - this.type = 30780891; - } - } - IFC2X32.IfcLocalTime = IfcLocalTime; - class IfcMaterial extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 1838606355; - } - } - IFC2X32.IfcMaterial = IfcMaterial; - class IfcMaterialClassificationRelationship extends IfcLineObject { - constructor(expressID, MaterialClassifications, ClassifiedMaterial) { - super(expressID); - this.MaterialClassifications = MaterialClassifications; - this.ClassifiedMaterial = ClassifiedMaterial; - this.type = 1847130766; - } - } - IFC2X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; - class IfcMaterialLayer extends IfcLineObject { - constructor(expressID, Material, LayerThickness, IsVentilated) { - super(expressID); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.type = 248100487; - } - } - IFC2X32.IfcMaterialLayer = IfcMaterialLayer; - class IfcMaterialLayerSet extends IfcLineObject { - constructor(expressID, MaterialLayers, LayerSetName) { - super(expressID); - this.MaterialLayers = MaterialLayers; - this.LayerSetName = LayerSetName; - this.type = 3303938423; - } - } - IFC2X32.IfcMaterialLayerSet = IfcMaterialLayerSet; - class IfcMaterialLayerSetUsage extends IfcLineObject { - constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine) { - super(expressID); - this.ForLayerSet = ForLayerSet; - this.LayerSetDirection = LayerSetDirection; - this.DirectionSense = DirectionSense; - this.OffsetFromReferenceLine = OffsetFromReferenceLine; - this.type = 1303795690; - } - } - IFC2X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; - class IfcMaterialList extends IfcLineObject { - constructor(expressID, Materials) { - super(expressID); - this.Materials = Materials; - this.type = 2199411900; - } - } - IFC2X32.IfcMaterialList = IfcMaterialList; - class IfcMaterialProperties extends IfcLineObject { - constructor(expressID, Material) { - super(expressID); - this.Material = Material; - this.type = 3265635763; - } - } - IFC2X32.IfcMaterialProperties = IfcMaterialProperties; - class IfcMeasureWithUnit extends IfcLineObject { - constructor(expressID, ValueComponent, UnitComponent) { - super(expressID); - this.ValueComponent = ValueComponent; - this.UnitComponent = UnitComponent; - this.type = 2597039031; - } - } - IFC2X32.IfcMeasureWithUnit = IfcMeasureWithUnit; - class IfcMechanicalMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient) { - super(expressID, Material); - this.Material = Material; - this.DynamicViscosity = DynamicViscosity; - this.YoungModulus = YoungModulus; - this.ShearModulus = ShearModulus; - this.PoissonRatio = PoissonRatio; - this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; - this.type = 4256014907; - } - } - IFC2X32.IfcMechanicalMaterialProperties = IfcMechanicalMaterialProperties; - class IfcMechanicalSteelMaterialProperties extends IfcMechanicalMaterialProperties { - constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, YieldStress, UltimateStress, UltimateStrain, HardeningModule, ProportionalStress, PlasticStrain, Relaxations) { - super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); - this.Material = Material; - this.DynamicViscosity = DynamicViscosity; - this.YoungModulus = YoungModulus; - this.ShearModulus = ShearModulus; - this.PoissonRatio = PoissonRatio; - this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; - this.YieldStress = YieldStress; - this.UltimateStress = UltimateStress; - this.UltimateStrain = UltimateStrain; - this.HardeningModule = HardeningModule; - this.ProportionalStress = ProportionalStress; - this.PlasticStrain = PlasticStrain; - this.Relaxations = Relaxations; - this.type = 677618848; - } - } - IFC2X32.IfcMechanicalSteelMaterialProperties = IfcMechanicalSteelMaterialProperties; - class IfcMetric extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.Benchmark = Benchmark; - this.ValueSource = ValueSource; - this.DataValue = DataValue; - this.type = 3368373690; - } - } - IFC2X32.IfcMetric = IfcMetric; - class IfcMonetaryUnit extends IfcLineObject { - constructor(expressID, Currency) { - super(expressID); - this.Currency = Currency; - this.type = 2706619895; - } - } - IFC2X32.IfcMonetaryUnit = IfcMonetaryUnit; - class IfcNamedUnit extends IfcLineObject { - constructor(expressID, Dimensions, UnitType) { - super(expressID); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.type = 1918398963; - } - } - IFC2X32.IfcNamedUnit = IfcNamedUnit; - class IfcObjectPlacement extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3701648758; - } - } - IFC2X32.IfcObjectPlacement = IfcObjectPlacement; - class IfcObjective extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, ResultValues, ObjectiveQualifier, UserDefinedQualifier) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.BenchmarkValues = BenchmarkValues; - this.ResultValues = ResultValues; - this.ObjectiveQualifier = ObjectiveQualifier; - this.UserDefinedQualifier = UserDefinedQualifier; - this.type = 2251480897; - } - } - IFC2X32.IfcObjective = IfcObjective; - class IfcOpticalMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, VisibleTransmittance, SolarTransmittance, ThermalIrTransmittance, ThermalIrEmissivityBack, ThermalIrEmissivityFront, VisibleReflectanceBack, VisibleReflectanceFront, SolarReflectanceFront, SolarReflectanceBack) { - super(expressID, Material); - this.Material = Material; - this.VisibleTransmittance = VisibleTransmittance; - this.SolarTransmittance = SolarTransmittance; - this.ThermalIrTransmittance = ThermalIrTransmittance; - this.ThermalIrEmissivityBack = ThermalIrEmissivityBack; - this.ThermalIrEmissivityFront = ThermalIrEmissivityFront; - this.VisibleReflectanceBack = VisibleReflectanceBack; - this.VisibleReflectanceFront = VisibleReflectanceFront; - this.SolarReflectanceFront = SolarReflectanceFront; - this.SolarReflectanceBack = SolarReflectanceBack; - this.type = 1227763645; - } - } - IFC2X32.IfcOpticalMaterialProperties = IfcOpticalMaterialProperties; - class IfcOrganization extends IfcLineObject { - constructor(expressID, Id, Name, Description, Roles, Addresses) { - super(expressID); - this.Id = Id; - this.Name = Name; - this.Description = Description; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 4251960020; - } - } - IFC2X32.IfcOrganization = IfcOrganization; - class IfcOrganizationRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.RelatingOrganization = RelatingOrganization; - this.RelatedOrganizations = RelatedOrganizations; - this.type = 1411181986; - } - } - IFC2X32.IfcOrganizationRelationship = IfcOrganizationRelationship; - class IfcOwnerHistory extends IfcLineObject { - constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { - super(expressID); - this.OwningUser = OwningUser; - this.OwningApplication = OwningApplication; - this.State = State; - this.ChangeAction = ChangeAction; - this.LastModifiedDate = LastModifiedDate; - this.LastModifyingUser = LastModifyingUser; - this.LastModifyingApplication = LastModifyingApplication; - this.CreationDate = CreationDate; - this.type = 1207048766; - } - } - IFC2X32.IfcOwnerHistory = IfcOwnerHistory; - class IfcPerson extends IfcLineObject { - constructor(expressID, Id, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { - super(expressID); - this.Id = Id; - this.FamilyName = FamilyName; - this.GivenName = GivenName; - this.MiddleNames = MiddleNames; - this.PrefixTitles = PrefixTitles; - this.SuffixTitles = SuffixTitles; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 2077209135; - } - } - IFC2X32.IfcPerson = IfcPerson; - class IfcPersonAndOrganization extends IfcLineObject { - constructor(expressID, ThePerson, TheOrganization, Roles) { - super(expressID); - this.ThePerson = ThePerson; - this.TheOrganization = TheOrganization; - this.Roles = Roles; - this.type = 101040310; - } - } - IFC2X32.IfcPersonAndOrganization = IfcPersonAndOrganization; - class IfcPhysicalQuantity extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2483315170; - } - } - IFC2X32.IfcPhysicalQuantity = IfcPhysicalQuantity; - class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.type = 2226359599; - } - } - IFC2X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; - class IfcPostalAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.InternalLocation = InternalLocation; - this.AddressLines = AddressLines; - this.PostalBox = PostalBox; - this.Town = Town; - this.Region = Region; - this.PostalCode = PostalCode; - this.Country = Country; - this.type = 3355820592; - } - } - IFC2X32.IfcPostalAddress = IfcPostalAddress; - class IfcPreDefinedItem extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3727388367; - } - } - IFC2X32.IfcPreDefinedItem = IfcPreDefinedItem; - class IfcPreDefinedSymbol extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 990879717; - } - } - IFC2X32.IfcPreDefinedSymbol = IfcPreDefinedSymbol; - class IfcPreDefinedTerminatorSymbol extends IfcPreDefinedSymbol { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 3213052703; - } - } - IFC2X32.IfcPreDefinedTerminatorSymbol = IfcPreDefinedTerminatorSymbol; - class IfcPreDefinedTextFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 1775413392; - } - } - IFC2X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; - class IfcPresentationLayerAssignment extends IfcLineObject { - constructor(expressID, Name, Description, AssignedItems, Identifier) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.type = 2022622350; - } - } - IFC2X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; - class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { - constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { - super(expressID, Name, Description, AssignedItems, Identifier); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.LayerOn = LayerOn; - this.LayerFrozen = LayerFrozen; - this.LayerBlocked = LayerBlocked; - this.LayerStyles = LayerStyles; - this.type = 1304840413; - } - } - IFC2X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; - class IfcPresentationStyle extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3119450353; - } - } - IFC2X32.IfcPresentationStyle = IfcPresentationStyle; - class IfcPresentationStyleAssignment extends IfcLineObject { - constructor(expressID, Styles) { - super(expressID); - this.Styles = Styles; - this.type = 2417041796; - } - } - IFC2X32.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; - class IfcProductRepresentation extends IfcLineObject { - constructor(expressID, Name, Description, Representations) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 2095639259; - } - } - IFC2X32.IfcProductRepresentation = IfcProductRepresentation; - class IfcProductsOfCombustionProperties extends IfcMaterialProperties { - constructor(expressID, Material, SpecificHeatCapacity, N20Content, COContent, CO2Content) { - super(expressID, Material); - this.Material = Material; - this.SpecificHeatCapacity = SpecificHeatCapacity; - this.N20Content = N20Content; - this.COContent = COContent; - this.CO2Content = CO2Content; - this.type = 2267347899; - } - } - IFC2X32.IfcProductsOfCombustionProperties = IfcProductsOfCombustionProperties; - class IfcProfileDef extends IfcLineObject { - constructor(expressID, ProfileType, ProfileName) { - super(expressID); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.type = 3958567839; - } - } - IFC2X32.IfcProfileDef = IfcProfileDef; - class IfcProfileProperties extends IfcLineObject { - constructor(expressID, ProfileName, ProfileDefinition) { - super(expressID); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.type = 2802850158; - } - } - IFC2X32.IfcProfileProperties = IfcProfileProperties; - class IfcProperty extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2598011224; - } - } - IFC2X32.IfcProperty = IfcProperty; - class IfcPropertyConstraintRelationship extends IfcLineObject { - constructor(expressID, RelatingConstraint, RelatedProperties, Name, Description) { - super(expressID); - this.RelatingConstraint = RelatingConstraint; - this.RelatedProperties = RelatedProperties; - this.Name = Name; - this.Description = Description; - this.type = 3896028662; - } - } - IFC2X32.IfcPropertyConstraintRelationship = IfcPropertyConstraintRelationship; - class IfcPropertyDependencyRelationship extends IfcLineObject { - constructor(expressID, DependingProperty, DependantProperty, Name, Description, Expression) { - super(expressID); - this.DependingProperty = DependingProperty; - this.DependantProperty = DependantProperty; - this.Name = Name; - this.Description = Description; - this.Expression = Expression; - this.type = 148025276; - } - } - IFC2X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; - class IfcPropertyEnumeration extends IfcLineObject { - constructor(expressID, Name, EnumerationValues, Unit) { - super(expressID); - this.Name = Name; - this.EnumerationValues = EnumerationValues; - this.Unit = Unit; - this.type = 3710013099; - } - } - IFC2X32.IfcPropertyEnumeration = IfcPropertyEnumeration; - class IfcQuantityArea extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, AreaValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.AreaValue = AreaValue; - this.type = 2044713172; - } - } - IFC2X32.IfcQuantityArea = IfcQuantityArea; - class IfcQuantityCount extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, CountValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.CountValue = CountValue; - this.type = 2093928680; - } - } - IFC2X32.IfcQuantityCount = IfcQuantityCount; - class IfcQuantityLength extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, LengthValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.LengthValue = LengthValue; - this.type = 931644368; - } - } - IFC2X32.IfcQuantityLength = IfcQuantityLength; - class IfcQuantityTime extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, TimeValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.TimeValue = TimeValue; - this.type = 3252649465; - } - } - IFC2X32.IfcQuantityTime = IfcQuantityTime; - class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, VolumeValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.VolumeValue = VolumeValue; - this.type = 2405470396; - } - } - IFC2X32.IfcQuantityVolume = IfcQuantityVolume; - class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, WeightValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.WeightValue = WeightValue; - this.type = 825690147; - } - } - IFC2X32.IfcQuantityWeight = IfcQuantityWeight; - class IfcReferencesValueDocument extends IfcLineObject { - constructor(expressID, ReferencedDocument, ReferencingValues, Name, Description) { - super(expressID); - this.ReferencedDocument = ReferencedDocument; - this.ReferencingValues = ReferencingValues; - this.Name = Name; - this.Description = Description; - this.type = 2692823254; - } - } - IFC2X32.IfcReferencesValueDocument = IfcReferencesValueDocument; - class IfcReinforcementBarProperties extends IfcLineObject { - constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { - super(expressID); - this.TotalCrossSectionArea = TotalCrossSectionArea; - this.SteelGrade = SteelGrade; - this.BarSurface = BarSurface; - this.EffectiveDepth = EffectiveDepth; - this.NominalBarDiameter = NominalBarDiameter; - this.BarCount = BarCount; - this.type = 1580146022; - } - } - IFC2X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; - class IfcRelaxation extends IfcLineObject { - constructor(expressID, RelaxationValue, InitialStress) { - super(expressID); - this.RelaxationValue = RelaxationValue; - this.InitialStress = InitialStress; - this.type = 1222501353; - } - } - IFC2X32.IfcRelaxation = IfcRelaxation; - class IfcRepresentation extends IfcLineObject { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1076942058; - } - } - IFC2X32.IfcRepresentation = IfcRepresentation; - class IfcRepresentationContext extends IfcLineObject { - constructor(expressID, ContextIdentifier, ContextType) { - super(expressID); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.type = 3377609919; - } - } - IFC2X32.IfcRepresentationContext = IfcRepresentationContext; - class IfcRepresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3008791417; - } - } - IFC2X32.IfcRepresentationItem = IfcRepresentationItem; - class IfcRepresentationMap extends IfcLineObject { - constructor(expressID, MappingOrigin, MappedRepresentation) { - super(expressID); - this.MappingOrigin = MappingOrigin; - this.MappedRepresentation = MappedRepresentation; - this.type = 1660063152; - } - } - IFC2X32.IfcRepresentationMap = IfcRepresentationMap; - class IfcRibPlateProfileProperties extends IfcProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, Thickness, RibHeight, RibWidth, RibSpacing, Direction) { - super(expressID, ProfileName, ProfileDefinition); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.Thickness = Thickness; - this.RibHeight = RibHeight; - this.RibWidth = RibWidth; - this.RibSpacing = RibSpacing; - this.Direction = Direction; - this.type = 3679540991; - } - } - IFC2X32.IfcRibPlateProfileProperties = IfcRibPlateProfileProperties; - class IfcRoot extends IfcLineObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2341007311; - } - } - IFC2X32.IfcRoot = IfcRoot; - class IfcSIUnit extends IfcNamedUnit { - constructor(expressID, UnitType, Prefix, Name) { - super(expressID, new Handle(0), UnitType); - this.UnitType = UnitType; - this.Prefix = Prefix; - this.Name = Name; - this.type = 448429030; - } - } - IFC2X32.IfcSIUnit = IfcSIUnit; - class IfcSectionProperties extends IfcLineObject { - constructor(expressID, SectionType, StartProfile, EndProfile) { - super(expressID); - this.SectionType = SectionType; - this.StartProfile = StartProfile; - this.EndProfile = EndProfile; - this.type = 2042790032; - } - } - IFC2X32.IfcSectionProperties = IfcSectionProperties; - class IfcSectionReinforcementProperties extends IfcLineObject { - constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { - super(expressID); - this.LongitudinalStartPosition = LongitudinalStartPosition; - this.LongitudinalEndPosition = LongitudinalEndPosition; - this.TransversePosition = TransversePosition; - this.ReinforcementRole = ReinforcementRole; - this.SectionDefinition = SectionDefinition; - this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; - this.type = 4165799628; - } - } - IFC2X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; - class IfcShapeAspect extends IfcLineObject { - constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { - super(expressID); - this.ShapeRepresentations = ShapeRepresentations; - this.Name = Name; - this.Description = Description; - this.ProductDefinitional = ProductDefinitional; - this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; - this.type = 867548509; - } - } - IFC2X32.IfcShapeAspect = IfcShapeAspect; - class IfcShapeModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3982875396; - } - } - IFC2X32.IfcShapeModel = IfcShapeModel; - class IfcShapeRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 4240577450; - } - } - IFC2X32.IfcShapeRepresentation = IfcShapeRepresentation; - class IfcSimpleProperty extends IfcProperty { - constructor(expressID, Name, Description) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.type = 3692461612; - } - } - IFC2X32.IfcSimpleProperty = IfcSimpleProperty; - class IfcStructuralConnectionCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2273995522; - } - } - IFC2X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; - class IfcStructuralLoad extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2162789131; - } - } - IFC2X32.IfcStructuralLoad = IfcStructuralLoad; - class IfcStructuralLoadStatic extends IfcStructuralLoad { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2525727697; - } - } - IFC2X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; - class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { - constructor(expressID, Name, DeltaT_Constant, DeltaT_Y, DeltaT_Z) { - super(expressID, Name); - this.Name = Name; - this.DeltaT_Constant = DeltaT_Constant; - this.DeltaT_Y = DeltaT_Y; - this.DeltaT_Z = DeltaT_Z; - this.type = 3408363356; - } - } - IFC2X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; - class IfcStyleModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 2830218821; - } - } - IFC2X32.IfcStyleModel = IfcStyleModel; - class IfcStyledItem extends IfcRepresentationItem { - constructor(expressID, Item, Styles, Name) { - super(expressID); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3958052878; - } - } - IFC2X32.IfcStyledItem = IfcStyledItem; - class IfcStyledRepresentation extends IfcStyleModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3049322572; - } - } - IFC2X32.IfcStyledRepresentation = IfcStyledRepresentation; - class IfcSurfaceStyle extends IfcPresentationStyle { - constructor(expressID, Name, Side, Styles) { - super(expressID, Name); - this.Name = Name; - this.Side = Side; - this.Styles = Styles; - this.type = 1300840506; - } - } - IFC2X32.IfcSurfaceStyle = IfcSurfaceStyle; - class IfcSurfaceStyleLighting extends IfcLineObject { - constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { - super(expressID); - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.DiffuseReflectionColour = DiffuseReflectionColour; - this.TransmissionColour = TransmissionColour; - this.ReflectanceColour = ReflectanceColour; - this.type = 3303107099; - } - } - IFC2X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; - class IfcSurfaceStyleRefraction extends IfcLineObject { - constructor(expressID, RefractionIndex, DispersionFactor) { - super(expressID); - this.RefractionIndex = RefractionIndex; - this.DispersionFactor = DispersionFactor; - this.type = 1607154358; - } - } - IFC2X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; - class IfcSurfaceStyleShading extends IfcLineObject { - constructor(expressID, SurfaceColour) { - super(expressID); - this.SurfaceColour = SurfaceColour; - this.type = 846575682; - } - } - IFC2X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; - class IfcSurfaceStyleWithTextures extends IfcLineObject { - constructor(expressID, Textures) { - super(expressID); - this.Textures = Textures; - this.type = 1351298697; - } - } - IFC2X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; - class IfcSurfaceTexture extends IfcLineObject { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform) { - super(expressID); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.type = 626085974; - } - } - IFC2X32.IfcSurfaceTexture = IfcSurfaceTexture; - class IfcSymbolStyle extends IfcPresentationStyle { - constructor(expressID, Name, StyleOfSymbol) { - super(expressID, Name); - this.Name = Name; - this.StyleOfSymbol = StyleOfSymbol; - this.type = 1290481447; - } - } - IFC2X32.IfcSymbolStyle = IfcSymbolStyle; - class IfcTable extends IfcLineObject { - constructor(expressID, Name, Rows) { - super(expressID); - this.Name = Name; - this.Rows = Rows; - this.type = 985171141; - } - } - IFC2X32.IfcTable = IfcTable; - class IfcTableRow extends IfcLineObject { - constructor(expressID, RowCells, IsHeading) { - super(expressID); - this.RowCells = RowCells; - this.IsHeading = IsHeading; - this.type = 531007025; - } - } - IFC2X32.IfcTableRow = IfcTableRow; - class IfcTelecomAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.TelephoneNumbers = TelephoneNumbers; - this.FacsimileNumbers = FacsimileNumbers; - this.PagerNumber = PagerNumber; - this.ElectronicMailAddresses = ElectronicMailAddresses; - this.WWWHomePageURL = WWWHomePageURL; - this.type = 912023232; - } - } - IFC2X32.IfcTelecomAddress = IfcTelecomAddress; - class IfcTextStyle extends IfcPresentationStyle { - constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle) { - super(expressID, Name); - this.Name = Name; - this.TextCharacterAppearance = TextCharacterAppearance; - this.TextStyle = TextStyle; - this.TextFontStyle = TextFontStyle; - this.type = 1447204868; - } - } - IFC2X32.IfcTextStyle = IfcTextStyle; - class IfcTextStyleFontModel extends IfcPreDefinedTextFont { - constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { - super(expressID, Name); - this.Name = Name; - this.FontFamily = FontFamily; - this.FontStyle = FontStyle; - this.FontVariant = FontVariant; - this.FontWeight = FontWeight; - this.FontSize = FontSize; - this.type = 1983826977; - } - } - IFC2X32.IfcTextStyleFontModel = IfcTextStyleFontModel; - class IfcTextStyleForDefinedFont extends IfcLineObject { - constructor(expressID, Colour, BackgroundColour) { - super(expressID); - this.Colour = Colour; - this.BackgroundColour = BackgroundColour; - this.type = 2636378356; - } - } - IFC2X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; - class IfcTextStyleTextModel extends IfcLineObject { - constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { - super(expressID); - this.TextIndent = TextIndent; - this.TextAlign = TextAlign; - this.TextDecoration = TextDecoration; - this.LetterSpacing = LetterSpacing; - this.WordSpacing = WordSpacing; - this.TextTransform = TextTransform; - this.LineHeight = LineHeight; - this.type = 1640371178; - } - } - IFC2X32.IfcTextStyleTextModel = IfcTextStyleTextModel; - class IfcTextStyleWithBoxCharacteristics extends IfcLineObject { - constructor(expressID, BoxHeight, BoxWidth, BoxSlantAngle, BoxRotateAngle, CharacterSpacing) { - super(expressID); - this.BoxHeight = BoxHeight; - this.BoxWidth = BoxWidth; - this.BoxSlantAngle = BoxSlantAngle; - this.BoxRotateAngle = BoxRotateAngle; - this.CharacterSpacing = CharacterSpacing; - this.type = 1484833681; - } - } - IFC2X32.IfcTextStyleWithBoxCharacteristics = IfcTextStyleWithBoxCharacteristics; - class IfcTextureCoordinate extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 280115917; - } - } - IFC2X32.IfcTextureCoordinate = IfcTextureCoordinate; - class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { - constructor(expressID, Mode, Parameter) { - super(expressID); - this.Mode = Mode; - this.Parameter = Parameter; - this.type = 1742049831; - } - } - IFC2X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; - class IfcTextureMap extends IfcTextureCoordinate { - constructor(expressID, TextureMaps) { - super(expressID); - this.TextureMaps = TextureMaps; - this.type = 2552916305; - } - } - IFC2X32.IfcTextureMap = IfcTextureMap; - class IfcTextureVertex extends IfcLineObject { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1210645708; - } - } - IFC2X32.IfcTextureVertex = IfcTextureVertex; - class IfcThermalMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, SpecificHeatCapacity, BoilingPoint, FreezingPoint, ThermalConductivity) { - super(expressID, Material); - this.Material = Material; - this.SpecificHeatCapacity = SpecificHeatCapacity; - this.BoilingPoint = BoilingPoint; - this.FreezingPoint = FreezingPoint; - this.ThermalConductivity = ThermalConductivity; - this.type = 3317419933; - } - } - IFC2X32.IfcThermalMaterialProperties = IfcThermalMaterialProperties; - class IfcTimeSeries extends IfcLineObject { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.type = 3101149627; - } - } - IFC2X32.IfcTimeSeries = IfcTimeSeries; - class IfcTimeSeriesReferenceRelationship extends IfcLineObject { - constructor(expressID, ReferencedTimeSeries, TimeSeriesReferences) { - super(expressID); - this.ReferencedTimeSeries = ReferencedTimeSeries; - this.TimeSeriesReferences = TimeSeriesReferences; - this.type = 1718945513; - } - } - IFC2X32.IfcTimeSeriesReferenceRelationship = IfcTimeSeriesReferenceRelationship; - class IfcTimeSeriesValue extends IfcLineObject { - constructor(expressID, ListValues) { - super(expressID); - this.ListValues = ListValues; - this.type = 581633288; - } - } - IFC2X32.IfcTimeSeriesValue = IfcTimeSeriesValue; - class IfcTopologicalRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1377556343; - } - } - IFC2X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; - class IfcTopologyRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1735638870; - } - } - IFC2X32.IfcTopologyRepresentation = IfcTopologyRepresentation; - class IfcUnitAssignment extends IfcLineObject { - constructor(expressID, Units) { - super(expressID); - this.Units = Units; - this.type = 180925521; - } - } - IFC2X32.IfcUnitAssignment = IfcUnitAssignment; - class IfcVertex extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2799835756; - } - } - IFC2X32.IfcVertex = IfcVertex; - class IfcVertexBasedTextureMap extends IfcLineObject { - constructor(expressID, TextureVertices, TexturePoints) { - super(expressID); - this.TextureVertices = TextureVertices; - this.TexturePoints = TexturePoints; - this.type = 3304826586; - } - } - IFC2X32.IfcVertexBasedTextureMap = IfcVertexBasedTextureMap; - class IfcVertexPoint extends IfcVertex { - constructor(expressID, VertexGeometry) { - super(expressID); - this.VertexGeometry = VertexGeometry; - this.type = 1907098498; - } - } - IFC2X32.IfcVertexPoint = IfcVertexPoint; - class IfcVirtualGridIntersection extends IfcLineObject { - constructor(expressID, IntersectingAxes, OffsetDistances) { - super(expressID); - this.IntersectingAxes = IntersectingAxes; - this.OffsetDistances = OffsetDistances; - this.type = 891718957; - } - } - IFC2X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; - class IfcWaterProperties extends IfcMaterialProperties { - constructor(expressID, Material, IsPotable, Hardness, AlkalinityConcentration, AcidityConcentration, ImpuritiesContent, PHLevel, DissolvedSolidsContent) { - super(expressID, Material); - this.Material = Material; - this.IsPotable = IsPotable; - this.Hardness = Hardness; - this.AlkalinityConcentration = AlkalinityConcentration; - this.AcidityConcentration = AcidityConcentration; - this.ImpuritiesContent = ImpuritiesContent; - this.PHLevel = PHLevel; - this.DissolvedSolidsContent = DissolvedSolidsContent; - this.type = 1065908215; - } - } - IFC2X32.IfcWaterProperties = IfcWaterProperties; - class IfcAnnotationOccurrence extends IfcStyledItem { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 2442683028; - } - } - IFC2X32.IfcAnnotationOccurrence = IfcAnnotationOccurrence; - class IfcAnnotationSurfaceOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 962685235; - } - } - IFC2X32.IfcAnnotationSurfaceOccurrence = IfcAnnotationSurfaceOccurrence; - class IfcAnnotationSymbolOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3612888222; - } - } - IFC2X32.IfcAnnotationSymbolOccurrence = IfcAnnotationSymbolOccurrence; - class IfcAnnotationTextOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 2297822566; - } - } - IFC2X32.IfcAnnotationTextOccurrence = IfcAnnotationTextOccurrence; - class IfcArbitraryClosedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.type = 3798115385; - } - } - IFC2X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; - class IfcArbitraryOpenProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.type = 1310608509; - } - } - IFC2X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; - class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { - super(expressID, ProfileType, ProfileName, OuterCurve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.InnerCurves = InnerCurves; - this.type = 2705031697; - } - } - IFC2X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; - class IfcBlobTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, RasterFormat, RasterCode) { - super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.RasterFormat = RasterFormat; - this.RasterCode = RasterCode; - this.type = 616511568; - } - } - IFC2X32.IfcBlobTexture = IfcBlobTexture; - class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { - super(expressID, ProfileType, ProfileName, Curve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.Thickness = Thickness; - this.type = 3150382593; - } - } - IFC2X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; - class IfcClassificationReference extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name, ReferencedSource) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.ReferencedSource = ReferencedSource; - this.type = 647927063; - } - } - IFC2X32.IfcClassificationReference = IfcClassificationReference; - class IfcColourRgb extends IfcColourSpecification { - constructor(expressID, Name, Red, Green, Blue) { - super(expressID, Name); - this.Name = Name; - this.Red = Red; - this.Green = Green; - this.Blue = Blue; - this.type = 776857604; - } - } - IFC2X32.IfcColourRgb = IfcColourRgb; - class IfcComplexProperty extends IfcProperty { - constructor(expressID, Name, Description, UsageName, HasProperties) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.HasProperties = HasProperties; - this.type = 2542286263; - } - } - IFC2X32.IfcComplexProperty = IfcComplexProperty; - class IfcCompositeProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Profiles, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Profiles = Profiles; - this.Label = Label; - this.type = 1485152156; - } - } - IFC2X32.IfcCompositeProfileDef = IfcCompositeProfileDef; - class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { - constructor(expressID, CfsFaces) { - super(expressID); - this.CfsFaces = CfsFaces; - this.type = 370225590; - } - } - IFC2X32.IfcConnectedFaceSet = IfcConnectedFaceSet; - class IfcConnectionCurveGeometry extends IfcConnectionGeometry { - constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { - super(expressID); - this.CurveOnRelatingElement = CurveOnRelatingElement; - this.CurveOnRelatedElement = CurveOnRelatedElement; - this.type = 1981873012; - } - } - IFC2X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; - class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { - super(expressID, PointOnRelatingElement, PointOnRelatedElement); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.EccentricityInX = EccentricityInX; - this.EccentricityInY = EccentricityInY; - this.EccentricityInZ = EccentricityInZ; - this.type = 45288368; - } - } - IFC2X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; - class IfcContextDependentUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.type = 3050246964; - } - } - IFC2X32.IfcContextDependentUnit = IfcContextDependentUnit; - class IfcConversionBasedUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.type = 2889183280; - } - } - IFC2X32.IfcConversionBasedUnit = IfcConversionBasedUnit; - class IfcCurveStyle extends IfcPresentationStyle { - constructor(expressID, Name, CurveFont, CurveWidth, CurveColour) { - super(expressID, Name); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveWidth = CurveWidth; - this.CurveColour = CurveColour; - this.type = 3800577675; - } - } - IFC2X32.IfcCurveStyle = IfcCurveStyle; - class IfcDerivedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 3632507154; - } - } - IFC2X32.IfcDerivedProfileDef = IfcDerivedProfileDef; - class IfcDimensionCalloutRelationship extends IfcDraughtingCalloutRelationship { - constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { - super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); - this.Name = Name; - this.Description = Description; - this.RelatingDraughtingCallout = RelatingDraughtingCallout; - this.RelatedDraughtingCallout = RelatedDraughtingCallout; - this.type = 2273265877; - } - } - IFC2X32.IfcDimensionCalloutRelationship = IfcDimensionCalloutRelationship; - class IfcDimensionPair extends IfcDraughtingCalloutRelationship { - constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { - super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); - this.Name = Name; - this.Description = Description; - this.RelatingDraughtingCallout = RelatingDraughtingCallout; - this.RelatedDraughtingCallout = RelatedDraughtingCallout; - this.type = 1694125774; - } - } - IFC2X32.IfcDimensionPair = IfcDimensionPair; - class IfcDocumentReference extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3732053477; - } - } - IFC2X32.IfcDocumentReference = IfcDocumentReference; - class IfcDraughtingPreDefinedTextFont extends IfcPreDefinedTextFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4170525392; - } - } - IFC2X32.IfcDraughtingPreDefinedTextFont = IfcDraughtingPreDefinedTextFont; - class IfcEdge extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeStart, EdgeEnd) { - super(expressID); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.type = 3900360178; - } - } - IFC2X32.IfcEdge = IfcEdge; - class IfcEdgeCurve extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.EdgeGeometry = EdgeGeometry; - this.SameSense = SameSense; - this.type = 476780140; - } - } - IFC2X32.IfcEdgeCurve = IfcEdgeCurve; - class IfcExtendedMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, ExtendedProperties, Description, Name) { - super(expressID, Material); - this.Material = Material; - this.ExtendedProperties = ExtendedProperties; - this.Description = Description; - this.Name = Name; - this.type = 1860660968; - } - } - IFC2X32.IfcExtendedMaterialProperties = IfcExtendedMaterialProperties; - class IfcFace extends IfcTopologicalRepresentationItem { - constructor(expressID, Bounds) { - super(expressID); - this.Bounds = Bounds; - this.type = 2556980723; - } - } - IFC2X32.IfcFace = IfcFace; - class IfcFaceBound extends IfcTopologicalRepresentationItem { - constructor(expressID, Bound, Orientation) { - super(expressID); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 1809719519; - } - } - IFC2X32.IfcFaceBound = IfcFaceBound; - class IfcFaceOuterBound extends IfcFaceBound { - constructor(expressID, Bound, Orientation) { - super(expressID, Bound, Orientation); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 803316827; - } - } - IFC2X32.IfcFaceOuterBound = IfcFaceOuterBound; - class IfcFaceSurface extends IfcFace { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3008276851; - } - } - IFC2X32.IfcFaceSurface = IfcFaceSurface; - class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { - super(expressID, Name); - this.Name = Name; - this.TensionFailureX = TensionFailureX; - this.TensionFailureY = TensionFailureY; - this.TensionFailureZ = TensionFailureZ; - this.CompressionFailureX = CompressionFailureX; - this.CompressionFailureY = CompressionFailureY; - this.CompressionFailureZ = CompressionFailureZ; - this.type = 4219587988; - } - } - IFC2X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; - class IfcFillAreaStyle extends IfcPresentationStyle { - constructor(expressID, Name, FillStyles) { - super(expressID, Name); - this.Name = Name; - this.FillStyles = FillStyles; - this.type = 738692330; - } - } - IFC2X32.IfcFillAreaStyle = IfcFillAreaStyle; - class IfcFuelProperties extends IfcMaterialProperties { - constructor(expressID, Material, CombustionTemperature, CarbonContent, LowerHeatingValue, HigherHeatingValue) { - super(expressID, Material); - this.Material = Material; - this.CombustionTemperature = CombustionTemperature; - this.CarbonContent = CarbonContent; - this.LowerHeatingValue = LowerHeatingValue; - this.HigherHeatingValue = HigherHeatingValue; - this.type = 3857492461; - } - } - IFC2X32.IfcFuelProperties = IfcFuelProperties; - class IfcGeneralMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, MolecularWeight, Porosity, MassDensity) { - super(expressID, Material); - this.Material = Material; - this.MolecularWeight = MolecularWeight; - this.Porosity = Porosity; - this.MassDensity = MassDensity; - this.type = 803998398; - } - } - IFC2X32.IfcGeneralMaterialProperties = IfcGeneralMaterialProperties; - class IfcGeneralProfileProperties extends IfcProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea) { - super(expressID, ProfileName, ProfileDefinition); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.PhysicalWeight = PhysicalWeight; - this.Perimeter = Perimeter; - this.MinimumPlateThickness = MinimumPlateThickness; - this.MaximumPlateThickness = MaximumPlateThickness; - this.CrossSectionArea = CrossSectionArea; - this.type = 1446786286; - } - } - IFC2X32.IfcGeneralProfileProperties = IfcGeneralProfileProperties; - class IfcGeometricRepresentationContext extends IfcRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { - super(expressID, ContextIdentifier, ContextType); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.CoordinateSpaceDimension = CoordinateSpaceDimension; - this.Precision = Precision; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.TrueNorth = TrueNorth; - this.type = 3448662350; - } - } - IFC2X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; - class IfcGeometricRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2453401579; - } - } - IFC2X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; - class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { - super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.ParentContext = ParentContext; - this.TargetScale = TargetScale; - this.TargetView = TargetView; - this.UserDefinedTargetView = UserDefinedTargetView; - this.type = 4142052618; - } - } - IFC2X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; - class IfcGeometricSet extends IfcGeometricRepresentationItem { - constructor(expressID, Elements) { - super(expressID); - this.Elements = Elements; - this.type = 3590301190; - } - } - IFC2X32.IfcGeometricSet = IfcGeometricSet; - class IfcGridPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementLocation, PlacementRefDirection) { - super(expressID); - this.PlacementLocation = PlacementLocation; - this.PlacementRefDirection = PlacementRefDirection; - this.type = 178086475; - } - } - IFC2X32.IfcGridPlacement = IfcGridPlacement; - class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { - constructor(expressID, BaseSurface, AgreementFlag) { - super(expressID); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.type = 812098782; - } - } - IFC2X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; - class IfcHygroscopicMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, UpperVaporResistanceFactor, LowerVaporResistanceFactor, IsothermalMoistureCapacity, VaporPermeability, MoistureDiffusivity) { - super(expressID, Material); - this.Material = Material; - this.UpperVaporResistanceFactor = UpperVaporResistanceFactor; - this.LowerVaporResistanceFactor = LowerVaporResistanceFactor; - this.IsothermalMoistureCapacity = IsothermalMoistureCapacity; - this.VaporPermeability = VaporPermeability; - this.MoistureDiffusivity = MoistureDiffusivity; - this.type = 2445078500; - } - } - IFC2X32.IfcHygroscopicMaterialProperties = IfcHygroscopicMaterialProperties; - class IfcImageTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, UrlReference) { - super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.UrlReference = UrlReference; - this.type = 3905492369; - } - } - IFC2X32.IfcImageTexture = IfcImageTexture; - class IfcIrregularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.Values = Values; - this.type = 3741457305; - } - } - IFC2X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; - class IfcLightSource extends IfcGeometricRepresentationItem { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 1402838566; - } - } - IFC2X32.IfcLightSource = IfcLightSource; - class IfcLightSourceAmbient extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 125510826; - } - } - IFC2X32.IfcLightSourceAmbient = IfcLightSourceAmbient; - class IfcLightSourceDirectional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Orientation = Orientation; - this.type = 2604431987; - } - } - IFC2X32.IfcLightSourceDirectional = IfcLightSourceDirectional; - class IfcLightSourceGoniometric extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.ColourAppearance = ColourAppearance; - this.ColourTemperature = ColourTemperature; - this.LuminousFlux = LuminousFlux; - this.LightEmissionSource = LightEmissionSource; - this.LightDistributionDataSource = LightDistributionDataSource; - this.type = 4266656042; - } - } - IFC2X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; - class IfcLightSourcePositional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.type = 1520743889; - } - } - IFC2X32.IfcLightSourcePositional = IfcLightSourcePositional; - class IfcLightSourceSpot extends IfcLightSourcePositional { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.Orientation = Orientation; - this.ConcentrationExponent = ConcentrationExponent; - this.SpreadAngle = SpreadAngle; - this.BeamWidthAngle = BeamWidthAngle; - this.type = 3422422726; - } - } - IFC2X32.IfcLightSourceSpot = IfcLightSourceSpot; - class IfcLocalPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement) { - super(expressID); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.type = 2624227202; - } - } - IFC2X32.IfcLocalPlacement = IfcLocalPlacement; - class IfcLoop extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1008929658; - } - } - IFC2X32.IfcLoop = IfcLoop; - class IfcMappedItem extends IfcRepresentationItem { - constructor(expressID, MappingSource, MappingTarget) { - super(expressID); - this.MappingSource = MappingSource; - this.MappingTarget = MappingTarget; - this.type = 2347385850; - } - } - IFC2X32.IfcMappedItem = IfcMappedItem; - class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations, RepresentedMaterial) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.RepresentedMaterial = RepresentedMaterial; - this.type = 2022407955; - } - } - IFC2X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; - class IfcMechanicalConcreteMaterialProperties extends IfcMechanicalMaterialProperties { - constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, CompressiveStrength, MaxAggregateSize, AdmixturesDescription, Workability, ProtectivePoreRatio, WaterImpermeability) { - super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); - this.Material = Material; - this.DynamicViscosity = DynamicViscosity; - this.YoungModulus = YoungModulus; - this.ShearModulus = ShearModulus; - this.PoissonRatio = PoissonRatio; - this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; - this.CompressiveStrength = CompressiveStrength; - this.MaxAggregateSize = MaxAggregateSize; - this.AdmixturesDescription = AdmixturesDescription; - this.Workability = Workability; - this.ProtectivePoreRatio = ProtectivePoreRatio; - this.WaterImpermeability = WaterImpermeability; - this.type = 1430189142; - } - } - IFC2X32.IfcMechanicalConcreteMaterialProperties = IfcMechanicalConcreteMaterialProperties; - class IfcObjectDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 219451334; - } - } - IFC2X32.IfcObjectDefinition = IfcObjectDefinition; - class IfcOneDirectionRepeatFactor extends IfcGeometricRepresentationItem { - constructor(expressID, RepeatFactor) { - super(expressID); - this.RepeatFactor = RepeatFactor; - this.type = 2833995503; - } - } - IFC2X32.IfcOneDirectionRepeatFactor = IfcOneDirectionRepeatFactor; - class IfcOpenShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2665983363; - } - } - IFC2X32.IfcOpenShell = IfcOpenShell; - class IfcOrientedEdge extends IfcEdge { - constructor(expressID, EdgeElement, Orientation) { - super(expressID, new Handle(0), new Handle(0)); - this.EdgeElement = EdgeElement; - this.Orientation = Orientation; - this.type = 1029017970; - } - } - IFC2X32.IfcOrientedEdge = IfcOrientedEdge; - class IfcParameterizedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Position) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.type = 2529465313; - } - } - IFC2X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; - class IfcPath extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 2519244187; - } - } - IFC2X32.IfcPath = IfcPath; - class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.HasQuantities = HasQuantities; - this.Discrimination = Discrimination; - this.Quality = Quality; - this.Usage = Usage; - this.type = 3021840470; - } - } - IFC2X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; - class IfcPixelTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, Width, Height, ColourComponents, Pixel) { - super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.Width = Width; - this.Height = Height; - this.ColourComponents = ColourComponents; - this.Pixel = Pixel; - this.type = 597895409; - } - } - IFC2X32.IfcPixelTexture = IfcPixelTexture; - class IfcPlacement extends IfcGeometricRepresentationItem { - constructor(expressID, Location) { - super(expressID); - this.Location = Location; - this.type = 2004835150; - } - } - IFC2X32.IfcPlacement = IfcPlacement; - class IfcPlanarExtent extends IfcGeometricRepresentationItem { - constructor(expressID, SizeInX, SizeInY) { - super(expressID); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.type = 1663979128; - } - } - IFC2X32.IfcPlanarExtent = IfcPlanarExtent; - class IfcPoint extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2067069095; - } - } - IFC2X32.IfcPoint = IfcPoint; - class IfcPointOnCurve extends IfcPoint { - constructor(expressID, BasisCurve, PointParameter) { - super(expressID); - this.BasisCurve = BasisCurve; - this.PointParameter = PointParameter; - this.type = 4022376103; - } - } - IFC2X32.IfcPointOnCurve = IfcPointOnCurve; - class IfcPointOnSurface extends IfcPoint { - constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { - super(expressID); - this.BasisSurface = BasisSurface; - this.PointParameterU = PointParameterU; - this.PointParameterV = PointParameterV; - this.type = 1423911732; - } - } - IFC2X32.IfcPointOnSurface = IfcPointOnSurface; - class IfcPolyLoop extends IfcLoop { - constructor(expressID, Polygon) { - super(expressID); - this.Polygon = Polygon; - this.type = 2924175390; - } - } - IFC2X32.IfcPolyLoop = IfcPolyLoop; - class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Position = Position; - this.PolygonalBoundary = PolygonalBoundary; - this.type = 2775532180; - } - } - IFC2X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; - class IfcPreDefinedColour extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 759155922; - } - } - IFC2X32.IfcPreDefinedColour = IfcPreDefinedColour; - class IfcPreDefinedCurveFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2559016684; - } - } - IFC2X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; - class IfcPreDefinedDimensionSymbol extends IfcPreDefinedSymbol { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 433424934; - } - } - IFC2X32.IfcPreDefinedDimensionSymbol = IfcPreDefinedDimensionSymbol; - class IfcPreDefinedPointMarkerSymbol extends IfcPreDefinedSymbol { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 179317114; - } - } - IFC2X32.IfcPreDefinedPointMarkerSymbol = IfcPreDefinedPointMarkerSymbol; - class IfcProductDefinitionShape extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 673634403; - } - } - IFC2X32.IfcProductDefinitionShape = IfcProductDefinitionShape; - class IfcPropertyBoundedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UpperBoundValue = UpperBoundValue; - this.LowerBoundValue = LowerBoundValue; - this.Unit = Unit; - this.type = 871118103; - } - } - IFC2X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; - class IfcPropertyDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1680319473; - } - } - IFC2X32.IfcPropertyDefinition = IfcPropertyDefinition; - class IfcPropertyEnumeratedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.EnumerationValues = EnumerationValues; - this.EnumerationReference = EnumerationReference; - this.type = 4166981789; - } - } - IFC2X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; - class IfcPropertyListValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, ListValues, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.ListValues = ListValues; - this.Unit = Unit; - this.type = 2752243245; - } - } - IFC2X32.IfcPropertyListValue = IfcPropertyListValue; - class IfcPropertyReferenceValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UsageName, PropertyReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.PropertyReference = PropertyReference; - this.type = 941946838; - } - } - IFC2X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; - class IfcPropertySetDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3357820518; - } - } - IFC2X32.IfcPropertySetDefinition = IfcPropertySetDefinition; - class IfcPropertySingleValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, NominalValue, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.NominalValue = NominalValue; - this.Unit = Unit; - this.type = 3650150729; - } - } - IFC2X32.IfcPropertySingleValue = IfcPropertySingleValue; - class IfcPropertyTableValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.DefiningValues = DefiningValues; - this.DefinedValues = DefinedValues; - this.Expression = Expression; - this.DefiningUnit = DefiningUnit; - this.DefinedUnit = DefinedUnit; - this.type = 110355661; - } - } - IFC2X32.IfcPropertyTableValue = IfcPropertyTableValue; - class IfcRectangleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.type = 3615266464; - } - } - IFC2X32.IfcRectangleProfileDef = IfcRectangleProfileDef; - class IfcRegularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.TimeStep = TimeStep; - this.Values = Values; - this.type = 3413951693; - } - } - IFC2X32.IfcRegularTimeSeries = IfcRegularTimeSeries; - class IfcReinforcementDefinitionProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DefinitionType = DefinitionType; - this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; - this.type = 3765753017; - } - } - IFC2X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; - class IfcRelationship extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 478536968; - } - } - IFC2X32.IfcRelationship = IfcRelationship; - class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.RoundingRadius = RoundingRadius; - this.type = 2778083089; - } - } - IFC2X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; - class IfcSectionedSpine extends IfcGeometricRepresentationItem { - constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { - super(expressID); - this.SpineCurve = SpineCurve; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1509187699; - } - } - IFC2X32.IfcSectionedSpine = IfcSectionedSpine; - class IfcServiceLifeFactor extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PredefinedType, UpperValue, MostUsedValue, LowerValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PredefinedType = PredefinedType; - this.UpperValue = UpperValue; - this.MostUsedValue = MostUsedValue; - this.LowerValue = LowerValue; - this.type = 2411513650; - } - } - IFC2X32.IfcServiceLifeFactor = IfcServiceLifeFactor; - class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, SbsmBoundary) { - super(expressID); - this.SbsmBoundary = SbsmBoundary; - this.type = 4124623270; - } - } - IFC2X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; - class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { - super(expressID, Name); - this.Name = Name; - this.SlippageX = SlippageX; - this.SlippageY = SlippageY; - this.SlippageZ = SlippageZ; - this.type = 2609359061; - } - } - IFC2X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; - class IfcSolidModel extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 723233188; - } - } - IFC2X32.IfcSolidModel = IfcSolidModel; - class IfcSoundProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, IsAttenuating, SoundScale, SoundValues) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.IsAttenuating = IsAttenuating; - this.SoundScale = SoundScale; - this.SoundValues = SoundValues; - this.type = 2485662743; - } - } - IFC2X32.IfcSoundProperties = IfcSoundProperties; - class IfcSoundValue extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, SoundLevelTimeSeries, Frequency, SoundLevelSingleValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.SoundLevelTimeSeries = SoundLevelTimeSeries; - this.Frequency = Frequency; - this.SoundLevelSingleValue = SoundLevelSingleValue; - this.type = 1202362311; - } - } - IFC2X32.IfcSoundValue = IfcSoundValue; - class IfcSpaceThermalLoadProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableValueRatio, ThermalLoadSource, PropertySource, SourceDescription, MaximumValue, MinimumValue, ThermalLoadTimeSeriesValues, UserDefinedThermalLoadSource, UserDefinedPropertySource, ThermalLoadType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableValueRatio = ApplicableValueRatio; - this.ThermalLoadSource = ThermalLoadSource; - this.PropertySource = PropertySource; - this.SourceDescription = SourceDescription; - this.MaximumValue = MaximumValue; - this.MinimumValue = MinimumValue; - this.ThermalLoadTimeSeriesValues = ThermalLoadTimeSeriesValues; - this.UserDefinedThermalLoadSource = UserDefinedThermalLoadSource; - this.UserDefinedPropertySource = UserDefinedPropertySource; - this.ThermalLoadType = ThermalLoadType; - this.type = 390701378; - } - } - IFC2X32.IfcSpaceThermalLoadProperties = IfcSpaceThermalLoadProperties; - class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { - super(expressID, Name); - this.Name = Name; - this.LinearForceX = LinearForceX; - this.LinearForceY = LinearForceY; - this.LinearForceZ = LinearForceZ; - this.LinearMomentX = LinearMomentX; - this.LinearMomentY = LinearMomentY; - this.LinearMomentZ = LinearMomentZ; - this.type = 1595516126; - } - } - IFC2X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; - class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { - super(expressID, Name); - this.Name = Name; - this.PlanarForceX = PlanarForceX; - this.PlanarForceY = PlanarForceY; - this.PlanarForceZ = PlanarForceZ; - this.type = 2668620305; - } - } - IFC2X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; - class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { - super(expressID, Name); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.type = 2473145415; - } - } - IFC2X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; - class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { - super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.Distortion = Distortion; - this.type = 1973038258; - } - } - IFC2X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; - class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { - super(expressID, Name); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.type = 1597423693; - } - } - IFC2X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; - class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { - super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.WarpingMoment = WarpingMoment; - this.type = 1190533807; - } - } - IFC2X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; - class IfcStructuralProfileProperties extends IfcGeneralProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY) { - super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.PhysicalWeight = PhysicalWeight; - this.Perimeter = Perimeter; - this.MinimumPlateThickness = MinimumPlateThickness; - this.MaximumPlateThickness = MaximumPlateThickness; - this.CrossSectionArea = CrossSectionArea; - this.TorsionalConstantX = TorsionalConstantX; - this.MomentOfInertiaYZ = MomentOfInertiaYZ; - this.MomentOfInertiaY = MomentOfInertiaY; - this.MomentOfInertiaZ = MomentOfInertiaZ; - this.WarpingConstant = WarpingConstant; - this.ShearCentreZ = ShearCentreZ; - this.ShearCentreY = ShearCentreY; - this.ShearDeformationAreaZ = ShearDeformationAreaZ; - this.ShearDeformationAreaY = ShearDeformationAreaY; - this.MaximumSectionModulusY = MaximumSectionModulusY; - this.MinimumSectionModulusY = MinimumSectionModulusY; - this.MaximumSectionModulusZ = MaximumSectionModulusZ; - this.MinimumSectionModulusZ = MinimumSectionModulusZ; - this.TorsionalSectionModulus = TorsionalSectionModulus; - this.CentreOfGravityInX = CentreOfGravityInX; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 3843319758; - } - } - IFC2X32.IfcStructuralProfileProperties = IfcStructuralProfileProperties; - class IfcStructuralSteelProfileProperties extends IfcStructuralProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY, ShearAreaZ, ShearAreaY, PlasticShapeFactorY, PlasticShapeFactorZ) { - super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.PhysicalWeight = PhysicalWeight; - this.Perimeter = Perimeter; - this.MinimumPlateThickness = MinimumPlateThickness; - this.MaximumPlateThickness = MaximumPlateThickness; - this.CrossSectionArea = CrossSectionArea; - this.TorsionalConstantX = TorsionalConstantX; - this.MomentOfInertiaYZ = MomentOfInertiaYZ; - this.MomentOfInertiaY = MomentOfInertiaY; - this.MomentOfInertiaZ = MomentOfInertiaZ; - this.WarpingConstant = WarpingConstant; - this.ShearCentreZ = ShearCentreZ; - this.ShearCentreY = ShearCentreY; - this.ShearDeformationAreaZ = ShearDeformationAreaZ; - this.ShearDeformationAreaY = ShearDeformationAreaY; - this.MaximumSectionModulusY = MaximumSectionModulusY; - this.MinimumSectionModulusY = MinimumSectionModulusY; - this.MaximumSectionModulusZ = MaximumSectionModulusZ; - this.MinimumSectionModulusZ = MinimumSectionModulusZ; - this.TorsionalSectionModulus = TorsionalSectionModulus; - this.CentreOfGravityInX = CentreOfGravityInX; - this.CentreOfGravityInY = CentreOfGravityInY; - this.ShearAreaZ = ShearAreaZ; - this.ShearAreaY = ShearAreaY; - this.PlasticShapeFactorY = PlasticShapeFactorY; - this.PlasticShapeFactorZ = PlasticShapeFactorZ; - this.type = 3653947884; - } - } - IFC2X32.IfcStructuralSteelProfileProperties = IfcStructuralSteelProfileProperties; - class IfcSubedge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.ParentEdge = ParentEdge; - this.type = 2233826070; - } - } - IFC2X32.IfcSubedge = IfcSubedge; - class IfcSurface extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2513912981; - } - } - IFC2X32.IfcSurface = IfcSurface; - class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { - constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { - super(expressID, SurfaceColour); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.DiffuseColour = DiffuseColour; - this.TransmissionColour = TransmissionColour; - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.ReflectionColour = ReflectionColour; - this.SpecularColour = SpecularColour; - this.SpecularHighlight = SpecularHighlight; - this.ReflectanceMethod = ReflectanceMethod; - this.type = 1878645084; - } - } - IFC2X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; - class IfcSweptAreaSolid extends IfcSolidModel { - constructor(expressID, SweptArea, Position) { - super(expressID); - this.SweptArea = SweptArea; - this.Position = Position; - this.type = 2247615214; - } - } - IFC2X32.IfcSweptAreaSolid = IfcSweptAreaSolid; - class IfcSweptDiskSolid extends IfcSolidModel { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { - super(expressID); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 1260650574; - } - } - IFC2X32.IfcSweptDiskSolid = IfcSweptDiskSolid; - class IfcSweptSurface extends IfcSurface { - constructor(expressID, SweptCurve, Position) { - super(expressID); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.type = 230924584; - } - } - IFC2X32.IfcSweptSurface = IfcSweptSurface; - class IfcTShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.WebEdgeRadius = WebEdgeRadius; - this.WebSlope = WebSlope; - this.FlangeSlope = FlangeSlope; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 3071757647; - } - } - IFC2X32.IfcTShapeProfileDef = IfcTShapeProfileDef; - class IfcTerminatorSymbol extends IfcAnnotationSymbolOccurrence { - constructor(expressID, Item, Styles, Name, AnnotatedCurve) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.AnnotatedCurve = AnnotatedCurve; - this.type = 3028897424; - } - } - IFC2X32.IfcTerminatorSymbol = IfcTerminatorSymbol; - class IfcTextLiteral extends IfcGeometricRepresentationItem { - constructor(expressID, Literal, Placement, Path) { - super(expressID); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.type = 4282788508; - } - } - IFC2X32.IfcTextLiteral = IfcTextLiteral; - class IfcTextLiteralWithExtent extends IfcTextLiteral { - constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { - super(expressID, Literal, Placement, Path); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.Extent = Extent; - this.BoxAlignment = BoxAlignment; - this.type = 3124975700; - } - } - IFC2X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; - class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomXDim = BottomXDim; - this.TopXDim = TopXDim; - this.YDim = YDim; - this.TopXOffset = TopXOffset; - this.type = 2715220739; - } - } - IFC2X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; - class IfcTwoDirectionRepeatFactor extends IfcOneDirectionRepeatFactor { - constructor(expressID, RepeatFactor, SecondRepeatFactor) { - super(expressID, RepeatFactor); - this.RepeatFactor = RepeatFactor; - this.SecondRepeatFactor = SecondRepeatFactor; - this.type = 1345879162; - } - } - IFC2X32.IfcTwoDirectionRepeatFactor = IfcTwoDirectionRepeatFactor; - class IfcTypeObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.type = 1628702193; - } - } - IFC2X32.IfcTypeObject = IfcTypeObject; - class IfcTypeProduct extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.type = 2347495698; - } - } - IFC2X32.IfcTypeProduct = IfcTypeProduct; - class IfcUShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope, CentreOfGravityInX) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.FlangeSlope = FlangeSlope; - this.CentreOfGravityInX = CentreOfGravityInX; - this.type = 427810014; - } - } - IFC2X32.IfcUShapeProfileDef = IfcUShapeProfileDef; - class IfcVector extends IfcGeometricRepresentationItem { - constructor(expressID, Orientation, Magnitude) { - super(expressID); - this.Orientation = Orientation; - this.Magnitude = Magnitude; - this.type = 1417489154; - } - } - IFC2X32.IfcVector = IfcVector; - class IfcVertexLoop extends IfcLoop { - constructor(expressID, LoopVertex) { - super(expressID); - this.LoopVertex = LoopVertex; - this.type = 2759199220; - } - } - IFC2X32.IfcVertexLoop = IfcVertexLoop; - class IfcWindowLiningProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.TransomThickness = TransomThickness; - this.MullionThickness = MullionThickness; - this.FirstTransomOffset = FirstTransomOffset; - this.SecondTransomOffset = SecondTransomOffset; - this.FirstMullionOffset = FirstMullionOffset; - this.SecondMullionOffset = SecondMullionOffset; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 336235671; - } - } - IFC2X32.IfcWindowLiningProperties = IfcWindowLiningProperties; - class IfcWindowPanelProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 512836454; - } - } - IFC2X32.IfcWindowPanelProperties = IfcWindowPanelProperties; - class IfcWindowStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ConstructionType = ConstructionType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 1299126871; - } - } - IFC2X32.IfcWindowStyle = IfcWindowStyle; - class IfcZShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.type = 2543172580; - } - } - IFC2X32.IfcZShapeProfileDef = IfcZShapeProfileDef; - class IfcAnnotationCurveOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3288037868; - } - } - IFC2X32.IfcAnnotationCurveOccurrence = IfcAnnotationCurveOccurrence; - class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { - constructor(expressID, OuterBoundary, InnerBoundaries) { - super(expressID); - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 669184980; - } - } - IFC2X32.IfcAnnotationFillArea = IfcAnnotationFillArea; - class IfcAnnotationFillAreaOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name, FillStyleTarget, GlobalOrLocal) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.FillStyleTarget = FillStyleTarget; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 2265737646; - } - } - IFC2X32.IfcAnnotationFillAreaOccurrence = IfcAnnotationFillAreaOccurrence; - class IfcAnnotationSurface extends IfcGeometricRepresentationItem { - constructor(expressID, Item, TextureCoordinates) { - super(expressID); - this.Item = Item; - this.TextureCoordinates = TextureCoordinates; - this.type = 1302238472; - } - } - IFC2X32.IfcAnnotationSurface = IfcAnnotationSurface; - class IfcAxis1Placement extends IfcPlacement { - constructor(expressID, Location, Axis) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.type = 4261334040; - } - } - IFC2X32.IfcAxis1Placement = IfcAxis1Placement; - class IfcAxis2Placement2D extends IfcPlacement { - constructor(expressID, Location, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.RefDirection = RefDirection; - this.type = 3125803723; - } - } - IFC2X32.IfcAxis2Placement2D = IfcAxis2Placement2D; - class IfcAxis2Placement3D extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 2740243338; - } - } - IFC2X32.IfcAxis2Placement3D = IfcAxis2Placement3D; - class IfcBooleanResult extends IfcGeometricRepresentationItem { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 2736907675; - } - } - IFC2X32.IfcBooleanResult = IfcBooleanResult; - class IfcBoundedSurface extends IfcSurface { - constructor(expressID) { - super(expressID); - this.type = 4182860854; - } - } - IFC2X32.IfcBoundedSurface = IfcBoundedSurface; - class IfcBoundingBox extends IfcGeometricRepresentationItem { - constructor(expressID, Corner, XDim, YDim, ZDim) { - super(expressID); - this.Corner = Corner; - this.XDim = XDim; - this.YDim = YDim; - this.ZDim = ZDim; - this.type = 2581212453; - } - } - IFC2X32.IfcBoundingBox = IfcBoundingBox; - class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Enclosure = Enclosure; - this.type = 2713105998; - } - } - IFC2X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; - class IfcCShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius, CentreOfGravityInX) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.WallThickness = WallThickness; - this.Girth = Girth; - this.InternalFilletRadius = InternalFilletRadius; - this.CentreOfGravityInX = CentreOfGravityInX; - this.type = 2898889636; - } - } - IFC2X32.IfcCShapeProfileDef = IfcCShapeProfileDef; - class IfcCartesianPoint extends IfcPoint { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1123145078; - } - } - IFC2X32.IfcCartesianPoint = IfcCartesianPoint; - class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 59481748; - } - } - IFC2X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; - class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 3749851601; - } - } - IFC2X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; - class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Scale2 = Scale2; - this.type = 3486308946; - } - } - IFC2X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; - class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.type = 3331915920; - } - } - IFC2X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; - class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.Scale2 = Scale2; - this.Scale3 = Scale3; - this.type = 1416205885; - } - } - IFC2X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; - class IfcCircleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.type = 1383045692; - } - } - IFC2X32.IfcCircleProfileDef = IfcCircleProfileDef; - class IfcClosedShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2205249479; - } - } - IFC2X32.IfcClosedShell = IfcClosedShell; - class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { - constructor(expressID, Transition, SameSense, ParentCurve) { - super(expressID); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.type = 2485617015; - } - } - IFC2X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; - class IfcCraneRailAShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, BaseWidth2, Radius, HeadWidth, HeadDepth2, HeadDepth3, WebThickness, BaseWidth4, BaseDepth1, BaseDepth2, BaseDepth3, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallHeight = OverallHeight; - this.BaseWidth2 = BaseWidth2; - this.Radius = Radius; - this.HeadWidth = HeadWidth; - this.HeadDepth2 = HeadDepth2; - this.HeadDepth3 = HeadDepth3; - this.WebThickness = WebThickness; - this.BaseWidth4 = BaseWidth4; - this.BaseDepth1 = BaseDepth1; - this.BaseDepth2 = BaseDepth2; - this.BaseDepth3 = BaseDepth3; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 4133800736; - } - } - IFC2X32.IfcCraneRailAShapeProfileDef = IfcCraneRailAShapeProfileDef; - class IfcCraneRailFShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, HeadWidth, Radius, HeadDepth2, HeadDepth3, WebThickness, BaseDepth1, BaseDepth2, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallHeight = OverallHeight; - this.HeadWidth = HeadWidth; - this.Radius = Radius; - this.HeadDepth2 = HeadDepth2; - this.HeadDepth3 = HeadDepth3; - this.WebThickness = WebThickness; - this.BaseDepth1 = BaseDepth1; - this.BaseDepth2 = BaseDepth2; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 194851669; - } - } - IFC2X32.IfcCraneRailFShapeProfileDef = IfcCraneRailFShapeProfileDef; - class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2506170314; - } - } - IFC2X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; - class IfcCsgSolid extends IfcSolidModel { - constructor(expressID, TreeRootExpression) { - super(expressID); - this.TreeRootExpression = TreeRootExpression; - this.type = 2147822146; - } - } - IFC2X32.IfcCsgSolid = IfcCsgSolid; - class IfcCurve extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2601014836; - } - } - IFC2X32.IfcCurve = IfcCurve; - class IfcCurveBoundedPlane extends IfcBoundedSurface { - constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { - super(expressID); - this.BasisSurface = BasisSurface; - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 2827736869; - } - } - IFC2X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; - class IfcDefinedSymbol extends IfcGeometricRepresentationItem { - constructor(expressID, Definition, Target) { - super(expressID); - this.Definition = Definition; - this.Target = Target; - this.type = 693772133; - } - } - IFC2X32.IfcDefinedSymbol = IfcDefinedSymbol; - class IfcDimensionCurve extends IfcAnnotationCurveOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 606661476; - } - } - IFC2X32.IfcDimensionCurve = IfcDimensionCurve; - class IfcDimensionCurveTerminator extends IfcTerminatorSymbol { - constructor(expressID, Item, Styles, Name, AnnotatedCurve, Role) { - super(expressID, Item, Styles, Name, AnnotatedCurve); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.AnnotatedCurve = AnnotatedCurve; - this.Role = Role; - this.type = 4054601972; - } - } - IFC2X32.IfcDimensionCurveTerminator = IfcDimensionCurveTerminator; - class IfcDirection extends IfcGeometricRepresentationItem { - constructor(expressID, DirectionRatios) { - super(expressID); - this.DirectionRatios = DirectionRatios; - this.type = 32440307; - } - } - IFC2X32.IfcDirection = IfcDirection; - class IfcDoorLiningProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.ThresholdDepth = ThresholdDepth; - this.ThresholdThickness = ThresholdThickness; - this.TransomThickness = TransomThickness; - this.TransomOffset = TransomOffset; - this.LiningOffset = LiningOffset; - this.ThresholdOffset = ThresholdOffset; - this.CasingThickness = CasingThickness; - this.CasingDepth = CasingDepth; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 2963535650; - } - } - IFC2X32.IfcDoorLiningProperties = IfcDoorLiningProperties; - class IfcDoorPanelProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PanelDepth = PanelDepth; - this.PanelOperation = PanelOperation; - this.PanelWidth = PanelWidth; - this.PanelPosition = PanelPosition; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 1714330368; - } - } - IFC2X32.IfcDoorPanelProperties = IfcDoorPanelProperties; - class IfcDoorStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.OperationType = OperationType; - this.ConstructionType = ConstructionType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 526551008; - } - } - IFC2X32.IfcDoorStyle = IfcDoorStyle; - class IfcDraughtingCallout extends IfcGeometricRepresentationItem { - constructor(expressID, Contents) { - super(expressID); - this.Contents = Contents; - this.type = 3073041342; - } - } - IFC2X32.IfcDraughtingCallout = IfcDraughtingCallout; - class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 445594917; - } - } - IFC2X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; - class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4006246654; - } - } - IFC2X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; - class IfcEdgeLoop extends IfcLoop { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 1472233963; - } - } - IFC2X32.IfcEdgeLoop = IfcEdgeLoop; - class IfcElementQuantity extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.MethodOfMeasurement = MethodOfMeasurement; - this.Quantities = Quantities; - this.type = 1883228015; - } - } - IFC2X32.IfcElementQuantity = IfcElementQuantity; - class IfcElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 339256511; - } - } - IFC2X32.IfcElementType = IfcElementType; - class IfcElementarySurface extends IfcSurface { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2777663545; - } - } - IFC2X32.IfcElementarySurface = IfcElementarySurface; - class IfcEllipseProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 2835456948; - } - } - IFC2X32.IfcEllipseProfileDef = IfcEllipseProfileDef; - class IfcEnergyProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.EnergySequence = EnergySequence; - this.UserDefinedEnergySequence = UserDefinedEnergySequence; - this.type = 80994333; - } - } - IFC2X32.IfcEnergyProperties = IfcEnergyProperties; - class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 477187591; - } - } - IFC2X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; - class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, FbsmFaces) { - super(expressID); - this.FbsmFaces = FbsmFaces; - this.type = 2047409740; - } - } - IFC2X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; - class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { - constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { - super(expressID); - this.HatchLineAppearance = HatchLineAppearance; - this.StartOfNextHatchLine = StartOfNextHatchLine; - this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; - this.PatternStart = PatternStart; - this.HatchLineAngle = HatchLineAngle; - this.type = 374418227; - } - } - IFC2X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; - class IfcFillAreaStyleTileSymbolWithStyle extends IfcGeometricRepresentationItem { - constructor(expressID, Symbol2) { - super(expressID); - this.Symbol = Symbol2; - this.type = 4203026998; - } - } - IFC2X32.IfcFillAreaStyleTileSymbolWithStyle = IfcFillAreaStyleTileSymbolWithStyle; - class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { - constructor(expressID, TilingPattern, Tiles, TilingScale) { - super(expressID); - this.TilingPattern = TilingPattern; - this.Tiles = Tiles; - this.TilingScale = TilingScale; - this.type = 315944413; - } - } - IFC2X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; - class IfcFluidFlowProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PropertySource, FlowConditionTimeSeries, VelocityTimeSeries, FlowrateTimeSeries, Fluid, PressureTimeSeries, UserDefinedPropertySource, TemperatureSingleValue, WetBulbTemperatureSingleValue, WetBulbTemperatureTimeSeries, TemperatureTimeSeries, FlowrateSingleValue, FlowConditionSingleValue, VelocitySingleValue, PressureSingleValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PropertySource = PropertySource; - this.FlowConditionTimeSeries = FlowConditionTimeSeries; - this.VelocityTimeSeries = VelocityTimeSeries; - this.FlowrateTimeSeries = FlowrateTimeSeries; - this.Fluid = Fluid; - this.PressureTimeSeries = PressureTimeSeries; - this.UserDefinedPropertySource = UserDefinedPropertySource; - this.TemperatureSingleValue = TemperatureSingleValue; - this.WetBulbTemperatureSingleValue = WetBulbTemperatureSingleValue; - this.WetBulbTemperatureTimeSeries = WetBulbTemperatureTimeSeries; - this.TemperatureTimeSeries = TemperatureTimeSeries; - this.FlowrateSingleValue = FlowrateSingleValue; - this.FlowConditionSingleValue = FlowConditionSingleValue; - this.VelocitySingleValue = VelocitySingleValue; - this.PressureSingleValue = PressureSingleValue; - this.type = 3455213021; - } - } - IFC2X32.IfcFluidFlowProperties = IfcFluidFlowProperties; - class IfcFurnishingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 4238390223; - } - } - IFC2X32.IfcFurnishingElementType = IfcFurnishingElementType; - class IfcFurnitureType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.AssemblyPlace = AssemblyPlace; - this.type = 1268542332; - } - } - IFC2X32.IfcFurnitureType = IfcFurnitureType; - class IfcGeometricCurveSet extends IfcGeometricSet { - constructor(expressID, Elements) { - super(expressID, Elements); - this.Elements = Elements; - this.type = 987898635; - } - } - IFC2X32.IfcGeometricCurveSet = IfcGeometricCurveSet; - class IfcIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.type = 1484403080; - } - } - IFC2X32.IfcIShapeProfileDef = IfcIShapeProfileDef; - class IfcLShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope, CentreOfGravityInX, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.Thickness = Thickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.LegSlope = LegSlope; - this.CentreOfGravityInX = CentreOfGravityInX; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 572779678; - } - } - IFC2X32.IfcLShapeProfileDef = IfcLShapeProfileDef; - class IfcLine extends IfcCurve { - constructor(expressID, Pnt, Dir) { - super(expressID); - this.Pnt = Pnt; - this.Dir = Dir; - this.type = 1281925730; - } - } - IFC2X32.IfcLine = IfcLine; - class IfcManifoldSolidBrep extends IfcSolidModel { - constructor(expressID, Outer) { - super(expressID); - this.Outer = Outer; - this.type = 1425443689; - } - } - IFC2X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; - class IfcObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3888040117; - } - } - IFC2X32.IfcObject = IfcObject; - class IfcOffsetCurve2D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.type = 3388369263; - } - } - IFC2X32.IfcOffsetCurve2D = IfcOffsetCurve2D; - class IfcOffsetCurve3D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.RefDirection = RefDirection; - this.type = 3505215534; - } - } - IFC2X32.IfcOffsetCurve3D = IfcOffsetCurve3D; - class IfcPermeableCoveringProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 3566463478; - } - } - IFC2X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; - class IfcPlanarBox extends IfcPlanarExtent { - constructor(expressID, SizeInX, SizeInY, Placement) { - super(expressID, SizeInX, SizeInY); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.Placement = Placement; - this.type = 603570806; - } - } - IFC2X32.IfcPlanarBox = IfcPlanarBox; - class IfcPlane extends IfcElementarySurface { - constructor(expressID, Position) { - super(expressID, Position); - this.Position = Position; - this.type = 220341763; - } - } - IFC2X32.IfcPlane = IfcPlane; - class IfcProcess extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2945172077; - } - } - IFC2X32.IfcProcess = IfcProcess; - class IfcProduct extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 4208778838; - } - } - IFC2X32.IfcProduct = IfcProduct; - class IfcProject extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 103090709; - } - } - IFC2X32.IfcProject = IfcProject; - class IfcProjectionCurve extends IfcAnnotationCurveOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 4194566429; - } - } - IFC2X32.IfcProjectionCurve = IfcProjectionCurve; - class IfcPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.HasProperties = HasProperties; - this.type = 1451395588; - } - } - IFC2X32.IfcPropertySet = IfcPropertySet; - class IfcProxy extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.ProxyType = ProxyType; - this.Tag = Tag; - this.type = 3219374653; - } - } - IFC2X32.IfcProxy = IfcProxy; - class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.WallThickness = WallThickness; - this.InnerFilletRadius = InnerFilletRadius; - this.OuterFilletRadius = OuterFilletRadius; - this.type = 2770003689; - } - } - IFC2X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; - class IfcRectangularPyramid extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, Height) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.Height = Height; - this.type = 2798486643; - } - } - IFC2X32.IfcRectangularPyramid = IfcRectangularPyramid; - class IfcRectangularTrimmedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { - super(expressID); - this.BasisSurface = BasisSurface; - this.U1 = U1; - this.V1 = V1; - this.U2 = U2; - this.V2 = V2; - this.Usense = Usense; - this.Vsense = Vsense; - this.type = 3454111270; - } - } - IFC2X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; - class IfcRelAssigns extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.type = 3939117080; - } - } - IFC2X32.IfcRelAssigns = IfcRelAssigns; - class IfcRelAssignsToActor extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 1683148259; - } - } - IFC2X32.IfcRelAssignsToActor = IfcRelAssignsToActor; - class IfcRelAssignsToControl extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 2495723537; - } - } - IFC2X32.IfcRelAssignsToControl = IfcRelAssignsToControl; - class IfcRelAssignsToGroup extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.type = 1307041759; - } - } - IFC2X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; - class IfcRelAssignsToProcess extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProcess = RelatingProcess; - this.QuantityInProcess = QuantityInProcess; - this.type = 4278684876; - } - } - IFC2X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; - class IfcRelAssignsToProduct extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProduct = RelatingProduct; - this.type = 2857406711; - } - } - IFC2X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; - class IfcRelAssignsToProjectOrder extends IfcRelAssignsToControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 3372526763; - } - } - IFC2X32.IfcRelAssignsToProjectOrder = IfcRelAssignsToProjectOrder; - class IfcRelAssignsToResource extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingResource = RelatingResource; - this.type = 205026976; - } - } - IFC2X32.IfcRelAssignsToResource = IfcRelAssignsToResource; - class IfcRelAssociates extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 1865459582; - } - } - IFC2X32.IfcRelAssociates = IfcRelAssociates; - class IfcRelAssociatesAppliedValue extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingAppliedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingAppliedValue = RelatingAppliedValue; - this.type = 1327628568; - } - } - IFC2X32.IfcRelAssociatesAppliedValue = IfcRelAssociatesAppliedValue; - class IfcRelAssociatesApproval extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingApproval = RelatingApproval; - this.type = 4095574036; - } - } - IFC2X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; - class IfcRelAssociatesClassification extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingClassification = RelatingClassification; - this.type = 919958153; - } - } - IFC2X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; - class IfcRelAssociatesConstraint extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.Intent = Intent; - this.RelatingConstraint = RelatingConstraint; - this.type = 2728634034; - } - } - IFC2X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; - class IfcRelAssociatesDocument extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingDocument = RelatingDocument; - this.type = 982818633; - } - } - IFC2X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; - class IfcRelAssociatesLibrary extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingLibrary = RelatingLibrary; - this.type = 3840914261; - } - } - IFC2X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; - class IfcRelAssociatesMaterial extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingMaterial = RelatingMaterial; - this.type = 2655215786; - } - } - IFC2X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; - class IfcRelAssociatesProfileProperties extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileProperties, ProfileSectionLocation, ProfileOrientation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingProfileProperties = RelatingProfileProperties; - this.ProfileSectionLocation = ProfileSectionLocation; - this.ProfileOrientation = ProfileOrientation; - this.type = 2851387026; - } - } - IFC2X32.IfcRelAssociatesProfileProperties = IfcRelAssociatesProfileProperties; - class IfcRelConnects extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 826625072; - } - } - IFC2X32.IfcRelConnects = IfcRelConnects; - class IfcRelConnectsElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.type = 1204542856; - } - } - IFC2X32.IfcRelConnectsElements = IfcRelConnectsElements; - class IfcRelConnectsPathElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RelatingPriorities = RelatingPriorities; - this.RelatedPriorities = RelatedPriorities; - this.RelatedConnectionType = RelatedConnectionType; - this.RelatingConnectionType = RelatingConnectionType; - this.type = 3945020480; - } - } - IFC2X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; - class IfcRelConnectsPortToElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedElement = RelatedElement; - this.type = 4201705270; - } - } - IFC2X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; - class IfcRelConnectsPorts extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedPort = RelatedPort; - this.RealizingElement = RealizingElement; - this.type = 3190031847; - } - } - IFC2X32.IfcRelConnectsPorts = IfcRelConnectsPorts; - class IfcRelConnectsStructuralActivity extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralActivity = RelatedStructuralActivity; - this.type = 2127690289; - } - } - IFC2X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; - class IfcRelConnectsStructuralElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralMember) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralMember = RelatedStructuralMember; - this.type = 3912681535; - } - } - IFC2X32.IfcRelConnectsStructuralElement = IfcRelConnectsStructuralElement; - class IfcRelConnectsStructuralMember extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 1638771189; - } - } - IFC2X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; - class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.ConnectionConstraint = ConnectionConstraint; - this.type = 504942748; - } - } - IFC2X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; - class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RealizingElements = RealizingElements; - this.ConnectionType = ConnectionType; - this.type = 3678494232; - } - } - IFC2X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; - class IfcRelContainedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 3242617779; - } - } - IFC2X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; - class IfcRelCoversBldgElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedCoverings = RelatedCoverings; - this.type = 886880790; - } - } - IFC2X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; - class IfcRelCoversSpaces extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedSpace, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedSpace = RelatedSpace; - this.RelatedCoverings = RelatedCoverings; - this.type = 2802773753; - } - } - IFC2X32.IfcRelCoversSpaces = IfcRelCoversSpaces; - class IfcRelDecomposes extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 2551354335; - } - } - IFC2X32.IfcRelDecomposes = IfcRelDecomposes; - class IfcRelDefines extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 693640335; - } - } - IFC2X32.IfcRelDefines = IfcRelDefines; - class IfcRelDefinesByProperties extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.type = 4186316022; - } - } - IFC2X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; - class IfcRelDefinesByType extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingType = RelatingType; - this.type = 781010003; - } - } - IFC2X32.IfcRelDefinesByType = IfcRelDefinesByType; - class IfcRelFillsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingOpeningElement = RelatingOpeningElement; - this.RelatedBuildingElement = RelatedBuildingElement; - this.type = 3940055652; - } - } - IFC2X32.IfcRelFillsElement = IfcRelFillsElement; - class IfcRelFlowControlElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedControlElements = RelatedControlElements; - this.RelatingFlowElement = RelatingFlowElement; - this.type = 279856033; - } - } - IFC2X32.IfcRelFlowControlElements = IfcRelFlowControlElements; - class IfcRelInteractionRequirements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DailyInteraction, ImportanceRating, LocationOfInteraction, RelatedSpaceProgram, RelatingSpaceProgram) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DailyInteraction = DailyInteraction; - this.ImportanceRating = ImportanceRating; - this.LocationOfInteraction = LocationOfInteraction; - this.RelatedSpaceProgram = RelatedSpaceProgram; - this.RelatingSpaceProgram = RelatingSpaceProgram; - this.type = 4189434867; - } - } - IFC2X32.IfcRelInteractionRequirements = IfcRelInteractionRequirements; - class IfcRelNests extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 3268803585; - } - } - IFC2X32.IfcRelNests = IfcRelNests; - class IfcRelOccupiesSpaces extends IfcRelAssignsToActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 2051452291; - } - } - IFC2X32.IfcRelOccupiesSpaces = IfcRelOccupiesSpaces; - class IfcRelOverridesProperties extends IfcRelDefinesByProperties { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition, OverridingProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.OverridingProperties = OverridingProperties; - this.type = 202636808; - } - } - IFC2X32.IfcRelOverridesProperties = IfcRelOverridesProperties; - class IfcRelProjectsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedFeatureElement = RelatedFeatureElement; - this.type = 750771296; - } - } - IFC2X32.IfcRelProjectsElement = IfcRelProjectsElement; - class IfcRelReferencedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 1245217292; - } - } - IFC2X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; - class IfcRelSchedulesCostItems extends IfcRelAssignsToControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 1058617721; - } - } - IFC2X32.IfcRelSchedulesCostItems = IfcRelSchedulesCostItems; - class IfcRelSequence extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingProcess = RelatingProcess; - this.RelatedProcess = RelatedProcess; - this.TimeLag = TimeLag; - this.SequenceType = SequenceType; - this.type = 4122056220; - } - } - IFC2X32.IfcRelSequence = IfcRelSequence; - class IfcRelServicesBuildings extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSystem = RelatingSystem; - this.RelatedBuildings = RelatedBuildings; - this.type = 366585022; - } - } - IFC2X32.IfcRelServicesBuildings = IfcRelServicesBuildings; - class IfcRelSpaceBoundary extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.type = 3451746338; - } - } - IFC2X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; - class IfcRelVoidsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedOpeningElement = RelatedOpeningElement; - this.type = 1401173127; - } - } - IFC2X32.IfcRelVoidsElement = IfcRelVoidsElement; - class IfcResource extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2914609552; - } - } - IFC2X32.IfcResource = IfcResource; - class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.type = 1856042241; - } - } - IFC2X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; - class IfcRightCircularCone extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, BottomRadius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.BottomRadius = BottomRadius; - this.type = 4158566097; - } - } - IFC2X32.IfcRightCircularCone = IfcRightCircularCone; - class IfcRightCircularCylinder extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, Radius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.Radius = Radius; - this.type = 3626867408; - } - } - IFC2X32.IfcRightCircularCylinder = IfcRightCircularCylinder; - class IfcSpatialStructureElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 2706606064; - } - } - IFC2X32.IfcSpatialStructureElement = IfcSpatialStructureElement; - class IfcSpatialStructureElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893378262; - } - } - IFC2X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; - class IfcSphere extends IfcCsgPrimitive3D { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 451544542; - } - } - IFC2X32.IfcSphere = IfcSphere; - class IfcStructuralActivity extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3544373492; - } - } - IFC2X32.IfcStructuralActivity = IfcStructuralActivity; - class IfcStructuralItem extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3136571912; - } - } - IFC2X32.IfcStructuralItem = IfcStructuralItem; - class IfcStructuralMember extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 530289379; - } - } - IFC2X32.IfcStructuralMember = IfcStructuralMember; - class IfcStructuralReaction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3689010777; - } - } - IFC2X32.IfcStructuralReaction = IfcStructuralReaction; - class IfcStructuralSurfaceMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 3979015343; - } - } - IFC2X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; - class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness, SubsequentThickness, VaryingThicknessLocation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.SubsequentThickness = SubsequentThickness; - this.VaryingThicknessLocation = VaryingThicknessLocation; - this.type = 2218152070; - } - } - IFC2X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; - class IfcStructuredDimensionCallout extends IfcDraughtingCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 4070609034; - } - } - IFC2X32.IfcStructuredDimensionCallout = IfcStructuredDimensionCallout; - class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.ReferenceSurface = ReferenceSurface; - this.type = 2028607225; - } - } - IFC2X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; - class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 2809605785; - } - } - IFC2X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; - class IfcSurfaceOfRevolution extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, AxisPosition) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.AxisPosition = AxisPosition; - this.type = 4124788165; - } - } - IFC2X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; - class IfcSystemFurnitureElementType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1580310250; - } - } - IFC2X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; - class IfcTask extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TaskId = TaskId; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.type = 3473067441; - } - } - IFC2X32.IfcTask = IfcTask; - class IfcTransportElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2097647324; - } - } - IFC2X32.IfcTransportElementType = IfcTransportElementType; - class IfcActor extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.type = 2296667514; - } - } - IFC2X32.IfcActor = IfcActor; - class IfcAnnotation extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1674181508; - } - } - IFC2X32.IfcAnnotation = IfcAnnotation; - class IfcAsymmetricIShapeProfileDef extends IfcIShapeProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.TopFlangeWidth = TopFlangeWidth; - this.TopFlangeThickness = TopFlangeThickness; - this.TopFlangeFilletRadius = TopFlangeFilletRadius; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 3207858831; - } - } - IFC2X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; - class IfcBlock extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, ZLength) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.ZLength = ZLength; - this.type = 1334484129; - } - } - IFC2X32.IfcBlock = IfcBlock; - class IfcBooleanClippingResult extends IfcBooleanResult { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID, Operator, FirstOperand, SecondOperand); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 3649129432; - } - } - IFC2X32.IfcBooleanClippingResult = IfcBooleanClippingResult; - class IfcBoundedCurve extends IfcCurve { - constructor(expressID) { - super(expressID); - this.type = 1260505505; - } - } - IFC2X32.IfcBoundedCurve = IfcBoundedCurve; - class IfcBuilding extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.ElevationOfRefHeight = ElevationOfRefHeight; - this.ElevationOfTerrain = ElevationOfTerrain; - this.BuildingAddress = BuildingAddress; - this.type = 4031249490; - } - } - IFC2X32.IfcBuilding = IfcBuilding; - class IfcBuildingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1950629157; - } - } - IFC2X32.IfcBuildingElementType = IfcBuildingElementType; - class IfcBuildingStorey extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.Elevation = Elevation; - this.type = 3124254112; - } - } - IFC2X32.IfcBuildingStorey = IfcBuildingStorey; - class IfcCircleHollowProfileDef extends IfcCircleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { - super(expressID, ProfileType, ProfileName, Position, Radius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.WallThickness = WallThickness; - this.type = 2937912522; - } - } - IFC2X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; - class IfcColumnType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 300633059; - } - } - IFC2X32.IfcColumnType = IfcColumnType; - class IfcCompositeCurve extends IfcBoundedCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 3732776249; - } - } - IFC2X32.IfcCompositeCurve = IfcCompositeCurve; - class IfcConic extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2510884976; - } - } - IFC2X32.IfcConic = IfcConic; - class IfcConstructionResource extends IfcResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 2559216714; - } - } - IFC2X32.IfcConstructionResource = IfcConstructionResource; - class IfcControl extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3293443760; - } - } - IFC2X32.IfcControl = IfcControl; - class IfcCostItem extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3895139033; - } - } - IFC2X32.IfcCostItem = IfcCostItem; - class IfcCostSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SubmittedBy, PreparedBy, SubmittedOn, Status, TargetUsers, UpdateDate, ID, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.SubmittedBy = SubmittedBy; - this.PreparedBy = PreparedBy; - this.SubmittedOn = SubmittedOn; - this.Status = Status; - this.TargetUsers = TargetUsers; - this.UpdateDate = UpdateDate; - this.ID = ID; - this.PredefinedType = PredefinedType; - this.type = 1419761937; - } - } - IFC2X32.IfcCostSchedule = IfcCostSchedule; - class IfcCoveringType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1916426348; - } - } - IFC2X32.IfcCoveringType = IfcCoveringType; - class IfcCrewResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 3295246426; - } - } - IFC2X32.IfcCrewResource = IfcCrewResource; - class IfcCurtainWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1457835157; - } - } - IFC2X32.IfcCurtainWallType = IfcCurtainWallType; - class IfcDimensionCurveDirectedCallout extends IfcDraughtingCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 681481545; - } - } - IFC2X32.IfcDimensionCurveDirectedCallout = IfcDimensionCurveDirectedCallout; - class IfcDistributionElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3256556792; - } - } - IFC2X32.IfcDistributionElementType = IfcDistributionElementType; - class IfcDistributionFlowElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3849074793; - } - } - IFC2X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; - class IfcElectricalBaseProperties extends IfcEnergyProperties { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence, ElectricCurrentType, InputVoltage, InputFrequency, FullLoadCurrent, MinimumCircuitCurrent, MaximumPowerInput, RatedPowerInput, InputPhase) { - super(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.EnergySequence = EnergySequence; - this.UserDefinedEnergySequence = UserDefinedEnergySequence; - this.ElectricCurrentType = ElectricCurrentType; - this.InputVoltage = InputVoltage; - this.InputFrequency = InputFrequency; - this.FullLoadCurrent = FullLoadCurrent; - this.MinimumCircuitCurrent = MinimumCircuitCurrent; - this.MaximumPowerInput = MaximumPowerInput; - this.RatedPowerInput = RatedPowerInput; - this.InputPhase = InputPhase; - this.type = 360485395; - } - } - IFC2X32.IfcElectricalBaseProperties = IfcElectricalBaseProperties; - class IfcElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1758889154; - } - } - IFC2X32.IfcElement = IfcElement; - class IfcElementAssembly extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 4123344466; - } - } - IFC2X32.IfcElementAssembly = IfcElementAssembly; - class IfcElementComponent extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1623761950; - } - } - IFC2X32.IfcElementComponent = IfcElementComponent; - class IfcElementComponentType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2590856083; - } - } - IFC2X32.IfcElementComponentType = IfcElementComponentType; - class IfcEllipse extends IfcConic { - constructor(expressID, Position, SemiAxis1, SemiAxis2) { - super(expressID, Position); - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 1704287377; - } - } - IFC2X32.IfcEllipse = IfcEllipse; - class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2107101300; - } - } - IFC2X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; - class IfcEquipmentElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1962604670; - } - } - IFC2X32.IfcEquipmentElement = IfcEquipmentElement; - class IfcEquipmentStandard extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3272907226; - } - } - IFC2X32.IfcEquipmentStandard = IfcEquipmentStandard; - class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3174744832; - } - } - IFC2X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; - class IfcEvaporatorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3390157468; - } - } - IFC2X32.IfcEvaporatorType = IfcEvaporatorType; - class IfcFacetedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 807026263; - } - } - IFC2X32.IfcFacetedBrep = IfcFacetedBrep; - class IfcFacetedBrepWithVoids extends IfcManifoldSolidBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 3737207727; - } - } - IFC2X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; - class IfcFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 647756555; - } - } - IFC2X32.IfcFastener = IfcFastener; - class IfcFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2489546625; - } - } - IFC2X32.IfcFastenerType = IfcFastenerType; - class IfcFeatureElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2827207264; - } - } - IFC2X32.IfcFeatureElement = IfcFeatureElement; - class IfcFeatureElementAddition extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2143335405; - } - } - IFC2X32.IfcFeatureElementAddition = IfcFeatureElementAddition; - class IfcFeatureElementSubtraction extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1287392070; - } - } - IFC2X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; - class IfcFlowControllerType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3907093117; - } - } - IFC2X32.IfcFlowControllerType = IfcFlowControllerType; - class IfcFlowFittingType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3198132628; - } - } - IFC2X32.IfcFlowFittingType = IfcFlowFittingType; - class IfcFlowMeterType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3815607619; - } - } - IFC2X32.IfcFlowMeterType = IfcFlowMeterType; - class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1482959167; - } - } - IFC2X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; - class IfcFlowSegmentType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1834744321; - } - } - IFC2X32.IfcFlowSegmentType = IfcFlowSegmentType; - class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1339347760; - } - } - IFC2X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; - class IfcFlowTerminalType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2297155007; - } - } - IFC2X32.IfcFlowTerminalType = IfcFlowTerminalType; - class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3009222698; - } - } - IFC2X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; - class IfcFurnishingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 263784265; - } - } - IFC2X32.IfcFurnishingElement = IfcFurnishingElement; - class IfcFurnitureStandard extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 814719939; - } - } - IFC2X32.IfcFurnitureStandard = IfcFurnitureStandard; - class IfcGasTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 200128114; - } - } - IFC2X32.IfcGasTerminalType = IfcGasTerminalType; - class IfcGrid extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.UAxes = UAxes; - this.VAxes = VAxes; - this.WAxes = WAxes; - this.type = 3009204131; - } - } - IFC2X32.IfcGrid = IfcGrid; - class IfcGroup extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2706460486; - } - } - IFC2X32.IfcGroup = IfcGroup; - class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1251058090; - } - } - IFC2X32.IfcHeatExchangerType = IfcHeatExchangerType; - class IfcHumidifierType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1806887404; - } - } - IFC2X32.IfcHumidifierType = IfcHumidifierType; - class IfcInventory extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, InventoryType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.InventoryType = InventoryType; - this.Jurisdiction = Jurisdiction; - this.ResponsiblePersons = ResponsiblePersons; - this.LastUpdateDate = LastUpdateDate; - this.CurrentValue = CurrentValue; - this.OriginalValue = OriginalValue; - this.type = 2391368822; - } - } - IFC2X32.IfcInventory = IfcInventory; - class IfcJunctionBoxType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4288270099; - } - } - IFC2X32.IfcJunctionBoxType = IfcJunctionBoxType; - class IfcLaborResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SkillSet) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.SkillSet = SkillSet; - this.type = 3827777499; - } - } - IFC2X32.IfcLaborResource = IfcLaborResource; - class IfcLampType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1051575348; - } - } - IFC2X32.IfcLampType = IfcLampType; - class IfcLightFixtureType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1161773419; - } - } - IFC2X32.IfcLightFixtureType = IfcLightFixtureType; - class IfcLinearDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 2506943328; - } - } - IFC2X32.IfcLinearDimension = IfcLinearDimension; - class IfcMechanicalFastener extends IfcFastener { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.type = 377706215; - } - } - IFC2X32.IfcMechanicalFastener = IfcMechanicalFastener; - class IfcMechanicalFastenerType extends IfcFastenerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2108223431; - } - } - IFC2X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; - class IfcMemberType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3181161470; - } - } - IFC2X32.IfcMemberType = IfcMemberType; - class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 977012517; - } - } - IFC2X32.IfcMotorConnectionType = IfcMotorConnectionType; - class IfcMove extends IfcTask { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, MoveFrom, MoveTo, PunchList) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TaskId = TaskId; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.MoveFrom = MoveFrom; - this.MoveTo = MoveTo; - this.PunchList = PunchList; - this.type = 1916936684; - } - } - IFC2X32.IfcMove = IfcMove; - class IfcOccupant extends IfcActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.PredefinedType = PredefinedType; - this.type = 4143007308; - } - } - IFC2X32.IfcOccupant = IfcOccupant; - class IfcOpeningElement extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3588315303; - } - } - IFC2X32.IfcOpeningElement = IfcOpeningElement; - class IfcOrderAction extends IfcTask { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, ActionID) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TaskId = TaskId; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.ActionID = ActionID; - this.type = 3425660407; - } - } - IFC2X32.IfcOrderAction = IfcOrderAction; - class IfcOutletType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2837617999; - } - } - IFC2X32.IfcOutletType = IfcOutletType; - class IfcPerformanceHistory extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LifeCyclePhase) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LifeCyclePhase = LifeCyclePhase; - this.type = 2382730787; - } - } - IFC2X32.IfcPerformanceHistory = IfcPerformanceHistory; - class IfcPermit extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PermitID) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PermitID = PermitID; - this.type = 3327091369; - } - } - IFC2X32.IfcPermit = IfcPermit; - class IfcPipeFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 804291784; - } - } - IFC2X32.IfcPipeFittingType = IfcPipeFittingType; - class IfcPipeSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4231323485; - } - } - IFC2X32.IfcPipeSegmentType = IfcPipeSegmentType; - class IfcPlateType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4017108033; - } - } - IFC2X32.IfcPlateType = IfcPlateType; - class IfcPolyline extends IfcBoundedCurve { - constructor(expressID, Points) { - super(expressID); - this.Points = Points; - this.type = 3724593414; - } - } - IFC2X32.IfcPolyline = IfcPolyline; - class IfcPort extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3740093272; - } - } - IFC2X32.IfcPort = IfcPort; - class IfcProcedure extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ProcedureID, ProcedureType, UserDefinedProcedureType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ProcedureID = ProcedureID; - this.ProcedureType = ProcedureType; - this.UserDefinedProcedureType = UserDefinedProcedureType; - this.type = 2744685151; - } - } - IFC2X32.IfcProcedure = IfcProcedure; - class IfcProjectOrder extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ID, PredefinedType, Status) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ID = ID; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.type = 2904328755; - } - } - IFC2X32.IfcProjectOrder = IfcProjectOrder; - class IfcProjectOrderRecord extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Records, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Records = Records; - this.PredefinedType = PredefinedType; - this.type = 3642467123; - } - } - IFC2X32.IfcProjectOrderRecord = IfcProjectOrderRecord; - class IfcProjectionElement extends IfcFeatureElementAddition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3651124850; - } - } - IFC2X32.IfcProjectionElement = IfcProjectionElement; - class IfcProtectiveDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1842657554; - } - } - IFC2X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; - class IfcPumpType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2250791053; - } - } - IFC2X32.IfcPumpType = IfcPumpType; - class IfcRadiusDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 3248260540; - } - } - IFC2X32.IfcRadiusDimension = IfcRadiusDimension; - class IfcRailingType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2893384427; - } - } - IFC2X32.IfcRailingType = IfcRailingType; - class IfcRampFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2324767716; - } - } - IFC2X32.IfcRampFlightType = IfcRampFlightType; - class IfcRelAggregates extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 160246688; - } - } - IFC2X32.IfcRelAggregates = IfcRelAggregates; - class IfcRelAssignsTasks extends IfcRelAssignsToControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl, TimeForTask) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.TimeForTask = TimeForTask; - this.type = 2863920197; - } - } - IFC2X32.IfcRelAssignsTasks = IfcRelAssignsTasks; - class IfcSanitaryTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1768891740; - } - } - IFC2X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; - class IfcScheduleTimeControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ActualStart, EarlyStart, LateStart, ScheduleStart, ActualFinish, EarlyFinish, LateFinish, ScheduleFinish, ScheduleDuration, ActualDuration, RemainingTime, FreeFloat, TotalFloat, IsCritical, StatusTime, StartFloat, FinishFloat, Completion) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ActualStart = ActualStart; - this.EarlyStart = EarlyStart; - this.LateStart = LateStart; - this.ScheduleStart = ScheduleStart; - this.ActualFinish = ActualFinish; - this.EarlyFinish = EarlyFinish; - this.LateFinish = LateFinish; - this.ScheduleFinish = ScheduleFinish; - this.ScheduleDuration = ScheduleDuration; - this.ActualDuration = ActualDuration; - this.RemainingTime = RemainingTime; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.StartFloat = StartFloat; - this.FinishFloat = FinishFloat; - this.Completion = Completion; - this.type = 3517283431; - } - } - IFC2X32.IfcScheduleTimeControl = IfcScheduleTimeControl; - class IfcServiceLife extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ServiceLifeType, ServiceLifeDuration) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ServiceLifeType = ServiceLifeType; - this.ServiceLifeDuration = ServiceLifeDuration; - this.type = 4105383287; - } - } - IFC2X32.IfcServiceLife = IfcServiceLife; - class IfcSite extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.RefLatitude = RefLatitude; - this.RefLongitude = RefLongitude; - this.RefElevation = RefElevation; - this.LandTitleNumber = LandTitleNumber; - this.SiteAddress = SiteAddress; - this.type = 4097777520; - } - } - IFC2X32.IfcSite = IfcSite; - class IfcSlabType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2533589738; - } - } - IFC2X32.IfcSlabType = IfcSlabType; - class IfcSpace extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, InteriorOrExteriorSpace, ElevationWithFlooring) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.InteriorOrExteriorSpace = InteriorOrExteriorSpace; - this.ElevationWithFlooring = ElevationWithFlooring; - this.type = 3856911033; - } - } - IFC2X32.IfcSpace = IfcSpace; - class IfcSpaceHeaterType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1305183839; - } - } - IFC2X32.IfcSpaceHeaterType = IfcSpaceHeaterType; - class IfcSpaceProgram extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SpaceProgramIdentifier, MaxRequiredArea, MinRequiredArea, RequestedLocation, StandardRequiredArea) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.SpaceProgramIdentifier = SpaceProgramIdentifier; - this.MaxRequiredArea = MaxRequiredArea; - this.MinRequiredArea = MinRequiredArea; - this.RequestedLocation = RequestedLocation; - this.StandardRequiredArea = StandardRequiredArea; - this.type = 652456506; - } - } - IFC2X32.IfcSpaceProgram = IfcSpaceProgram; - class IfcSpaceType extends IfcSpatialStructureElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3812236995; - } - } - IFC2X32.IfcSpaceType = IfcSpaceType; - class IfcStackTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3112655638; - } - } - IFC2X32.IfcStackTerminalType = IfcStackTerminalType; - class IfcStairFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1039846685; - } - } - IFC2X32.IfcStairFlightType = IfcStairFlightType; - class IfcStructuralAction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.type = 682877961; - } - } - IFC2X32.IfcStructuralAction = IfcStructuralAction; - class IfcStructuralConnection extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1179482911; - } - } - IFC2X32.IfcStructuralConnection = IfcStructuralConnection; - class IfcStructuralCurveConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 4243806635; - } - } - IFC2X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; - class IfcStructuralCurveMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 214636428; - } - } - IFC2X32.IfcStructuralCurveMember = IfcStructuralCurveMember; - class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 2445595289; - } - } - IFC2X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; - class IfcStructuralLinearAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.type = 1807405624; - } - } - IFC2X32.IfcStructuralLinearAction = IfcStructuralLinearAction; - class IfcStructuralLinearActionVarying extends IfcStructuralLinearAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; - this.SubsequentAppliedLoads = SubsequentAppliedLoads; - this.type = 1721250024; - } - } - IFC2X32.IfcStructuralLinearActionVarying = IfcStructuralLinearActionVarying; - class IfcStructuralLoadGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.type = 1252848954; - } - } - IFC2X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; - class IfcStructuralPlanarAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.type = 1621171031; - } - } - IFC2X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; - class IfcStructuralPlanarActionVarying extends IfcStructuralPlanarAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; - this.SubsequentAppliedLoads = SubsequentAppliedLoads; - this.type = 3987759626; - } - } - IFC2X32.IfcStructuralPlanarActionVarying = IfcStructuralPlanarActionVarying; - class IfcStructuralPointAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.type = 2082059205; - } - } - IFC2X32.IfcStructuralPointAction = IfcStructuralPointAction; - class IfcStructuralPointConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 734778138; - } - } - IFC2X32.IfcStructuralPointConnection = IfcStructuralPointConnection; - class IfcStructuralPointReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 1235345126; - } - } - IFC2X32.IfcStructuralPointReaction = IfcStructuralPointReaction; - class IfcStructuralResultGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheoryType = TheoryType; - this.ResultForLoadGroup = ResultForLoadGroup; - this.IsLinear = IsLinear; - this.type = 2986769608; - } - } - IFC2X32.IfcStructuralResultGroup = IfcStructuralResultGroup; - class IfcStructuralSurfaceConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1975003073; - } - } - IFC2X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; - class IfcSubContractResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SubContractor, JobDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.SubContractor = SubContractor; - this.JobDescription = JobDescription; - this.type = 148013059; - } - } - IFC2X32.IfcSubContractResource = IfcSubContractResource; - class IfcSwitchingDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2315554128; - } - } - IFC2X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; - class IfcSystem extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2254336722; - } - } - IFC2X32.IfcSystem = IfcSystem; - class IfcTankType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 5716631; - } - } - IFC2X32.IfcTankType = IfcTankType; - class IfcTimeSeriesSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ApplicableDates, TimeSeriesScheduleType, TimeSeries) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ApplicableDates = ApplicableDates; - this.TimeSeriesScheduleType = TimeSeriesScheduleType; - this.TimeSeries = TimeSeries; - this.type = 1637806684; - } - } - IFC2X32.IfcTimeSeriesSchedule = IfcTimeSeriesSchedule; - class IfcTransformerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1692211062; - } - } - IFC2X32.IfcTransformerType = IfcTransformerType; - class IfcTransportElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OperationType, CapacityByWeight, CapacityByNumber) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OperationType = OperationType; - this.CapacityByWeight = CapacityByWeight; - this.CapacityByNumber = CapacityByNumber; - this.type = 1620046519; - } - } - IFC2X32.IfcTransportElement = IfcTransportElement; - class IfcTrimmedCurve extends IfcBoundedCurve { - constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Trim1 = Trim1; - this.Trim2 = Trim2; - this.SenseAgreement = SenseAgreement; - this.MasterRepresentation = MasterRepresentation; - this.type = 3593883385; - } - } - IFC2X32.IfcTrimmedCurve = IfcTrimmedCurve; - class IfcTubeBundleType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1600972822; - } - } - IFC2X32.IfcTubeBundleType = IfcTubeBundleType; - class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1911125066; - } - } - IFC2X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; - class IfcValveType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 728799441; - } - } - IFC2X32.IfcValveType = IfcValveType; - class IfcVirtualElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2769231204; - } - } - IFC2X32.IfcVirtualElement = IfcVirtualElement; - class IfcWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1898987631; - } - } - IFC2X32.IfcWallType = IfcWallType; - class IfcWasteTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1133259667; - } - } - IFC2X32.IfcWasteTerminalType = IfcWasteTerminalType; - class IfcWorkControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identifier = Identifier; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.WorkControlType = WorkControlType; - this.UserDefinedControlType = UserDefinedControlType; - this.type = 1028945134; - } - } - IFC2X32.IfcWorkControl = IfcWorkControl; - class IfcWorkPlan extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identifier = Identifier; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.WorkControlType = WorkControlType; - this.UserDefinedControlType = UserDefinedControlType; - this.type = 4218914973; - } - } - IFC2X32.IfcWorkPlan = IfcWorkPlan; - class IfcWorkSchedule extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identifier = Identifier; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.WorkControlType = WorkControlType; - this.UserDefinedControlType = UserDefinedControlType; - this.type = 3342526732; - } - } - IFC2X32.IfcWorkSchedule = IfcWorkSchedule; - class IfcZone extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 1033361043; - } - } - IFC2X32.IfcZone = IfcZone; - class Ifc2DCompositeCurve extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 1213861670; - } - } - IFC2X32.Ifc2DCompositeCurve = Ifc2DCompositeCurve; - class IfcActionRequest extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, RequestID) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.RequestID = RequestID; - this.type = 3821786052; - } - } - IFC2X32.IfcActionRequest = IfcActionRequest; - class IfcAirTerminalBoxType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1411407467; - } - } - IFC2X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; - class IfcAirTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3352864051; - } - } - IFC2X32.IfcAirTerminalType = IfcAirTerminalType; - class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1871374353; - } - } - IFC2X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; - class IfcAngularDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 2470393545; - } - } - IFC2X32.IfcAngularDimension = IfcAngularDimension; - class IfcAsset extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, AssetID, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.AssetID = AssetID; - this.OriginalValue = OriginalValue; - this.CurrentValue = CurrentValue; - this.TotalReplacementCost = TotalReplacementCost; - this.Owner = Owner; - this.User = User; - this.ResponsiblePerson = ResponsiblePerson; - this.IncorporationDate = IncorporationDate; - this.DepreciatedValue = DepreciatedValue; - this.type = 3460190687; - } - } - IFC2X32.IfcAsset = IfcAsset; - class IfcBSplineCurve extends IfcBoundedCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1967976161; - } - } - IFC2X32.IfcBSplineCurve = IfcBSplineCurve; - class IfcBeamType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 819618141; - } - } - IFC2X32.IfcBeamType = IfcBeamType; - class IfcBezierCurve extends IfcBSplineCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1916977116; - } - } - IFC2X32.IfcBezierCurve = IfcBezierCurve; - class IfcBoilerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 231477066; - } - } - IFC2X32.IfcBoilerType = IfcBoilerType; - class IfcBuildingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3299480353; - } - } - IFC2X32.IfcBuildingElement = IfcBuildingElement; - class IfcBuildingElementComponent extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 52481810; - } - } - IFC2X32.IfcBuildingElementComponent = IfcBuildingElementComponent; - class IfcBuildingElementPart extends IfcBuildingElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2979338954; - } - } - IFC2X32.IfcBuildingElementPart = IfcBuildingElementPart; - class IfcBuildingElementProxy extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.CompositionType = CompositionType; - this.type = 1095909175; - } - } - IFC2X32.IfcBuildingElementProxy = IfcBuildingElementProxy; - class IfcBuildingElementProxyType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1909888760; - } - } - IFC2X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; - class IfcCableCarrierFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 395041908; - } - } - IFC2X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; - class IfcCableCarrierSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3293546465; - } - } - IFC2X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; - class IfcCableSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1285652485; - } - } - IFC2X32.IfcCableSegmentType = IfcCableSegmentType; - class IfcChillerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2951183804; - } - } - IFC2X32.IfcChillerType = IfcChillerType; - class IfcCircle extends IfcConic { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 2611217952; - } - } - IFC2X32.IfcCircle = IfcCircle; - class IfcCoilType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2301859152; - } - } - IFC2X32.IfcCoilType = IfcCoilType; - class IfcColumn extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 843113511; - } - } - IFC2X32.IfcColumn = IfcColumn; - class IfcCompressorType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3850581409; - } - } - IFC2X32.IfcCompressorType = IfcCompressorType; - class IfcCondenserType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2816379211; - } - } - IFC2X32.IfcCondenserType = IfcCondenserType; - class IfcCondition extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2188551683; - } - } - IFC2X32.IfcCondition = IfcCondition; - class IfcConditionCriterion extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Criterion, CriterionDateTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Criterion = Criterion; - this.CriterionDateTime = CriterionDateTime; - this.type = 1163958913; - } - } - IFC2X32.IfcConditionCriterion = IfcConditionCriterion; - class IfcConstructionEquipmentResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 3898045240; - } - } - IFC2X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; - class IfcConstructionMaterialResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, Suppliers, UsageRatio) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.Suppliers = Suppliers; - this.UsageRatio = UsageRatio; - this.type = 1060000209; - } - } - IFC2X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; - class IfcConstructionProductResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 488727124; - } - } - IFC2X32.IfcConstructionProductResource = IfcConstructionProductResource; - class IfcCooledBeamType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 335055490; - } - } - IFC2X32.IfcCooledBeamType = IfcCooledBeamType; - class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2954562838; - } - } - IFC2X32.IfcCoolingTowerType = IfcCoolingTowerType; - class IfcCovering extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1973544240; - } - } - IFC2X32.IfcCovering = IfcCovering; - class IfcCurtainWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3495092785; - } - } - IFC2X32.IfcCurtainWall = IfcCurtainWall; - class IfcDamperType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3961806047; - } - } - IFC2X32.IfcDamperType = IfcDamperType; - class IfcDiameterDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 4147604152; - } - } - IFC2X32.IfcDiameterDimension = IfcDiameterDimension; - class IfcDiscreteAccessory extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1335981549; - } - } - IFC2X32.IfcDiscreteAccessory = IfcDiscreteAccessory; - class IfcDiscreteAccessoryType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2635815018; - } - } - IFC2X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; - class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1599208980; - } - } - IFC2X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; - class IfcDistributionControlElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2063403501; - } - } - IFC2X32.IfcDistributionControlElementType = IfcDistributionControlElementType; - class IfcDistributionElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1945004755; - } - } - IFC2X32.IfcDistributionElement = IfcDistributionElement; - class IfcDistributionFlowElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3040386961; - } - } - IFC2X32.IfcDistributionFlowElement = IfcDistributionFlowElement; - class IfcDistributionPort extends IfcPort { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.FlowDirection = FlowDirection; - this.type = 3041715199; - } - } - IFC2X32.IfcDistributionPort = IfcDistributionPort; - class IfcDoor extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.type = 395920057; - } - } - IFC2X32.IfcDoor = IfcDoor; - class IfcDuctFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 869906466; - } - } - IFC2X32.IfcDuctFittingType = IfcDuctFittingType; - class IfcDuctSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3760055223; - } - } - IFC2X32.IfcDuctSegmentType = IfcDuctSegmentType; - class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2030761528; - } - } - IFC2X32.IfcDuctSilencerType = IfcDuctSilencerType; - class IfcEdgeFeature extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.FeatureLength = FeatureLength; - this.type = 855621170; - } - } - IFC2X32.IfcEdgeFeature = IfcEdgeFeature; - class IfcElectricApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 663422040; - } - } - IFC2X32.IfcElectricApplianceType = IfcElectricApplianceType; - class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3277789161; - } - } - IFC2X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; - class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1534661035; - } - } - IFC2X32.IfcElectricGeneratorType = IfcElectricGeneratorType; - class IfcElectricHeaterType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1365060375; - } - } - IFC2X32.IfcElectricHeaterType = IfcElectricHeaterType; - class IfcElectricMotorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1217240411; - } - } - IFC2X32.IfcElectricMotorType = IfcElectricMotorType; - class IfcElectricTimeControlType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 712377611; - } - } - IFC2X32.IfcElectricTimeControlType = IfcElectricTimeControlType; - class IfcElectricalCircuit extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 1634875225; - } - } - IFC2X32.IfcElectricalCircuit = IfcElectricalCircuit; - class IfcElectricalElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 857184966; - } - } - IFC2X32.IfcElectricalElement = IfcElectricalElement; - class IfcEnergyConversionDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1658829314; - } - } - IFC2X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; - class IfcFanType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 346874300; - } - } - IFC2X32.IfcFanType = IfcFanType; - class IfcFilterType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1810631287; - } - } - IFC2X32.IfcFilterType = IfcFilterType; - class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4222183408; - } - } - IFC2X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; - class IfcFlowController extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2058353004; - } - } - IFC2X32.IfcFlowController = IfcFlowController; - class IfcFlowFitting extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4278956645; - } - } - IFC2X32.IfcFlowFitting = IfcFlowFitting; - class IfcFlowInstrumentType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4037862832; - } - } - IFC2X32.IfcFlowInstrumentType = IfcFlowInstrumentType; - class IfcFlowMovingDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3132237377; - } - } - IFC2X32.IfcFlowMovingDevice = IfcFlowMovingDevice; - class IfcFlowSegment extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 987401354; - } - } - IFC2X32.IfcFlowSegment = IfcFlowSegment; - class IfcFlowStorageDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 707683696; - } - } - IFC2X32.IfcFlowStorageDevice = IfcFlowStorageDevice; - class IfcFlowTerminal extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2223149337; - } - } - IFC2X32.IfcFlowTerminal = IfcFlowTerminal; - class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3508470533; - } - } - IFC2X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; - class IfcFooting extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 900683007; - } - } - IFC2X32.IfcFooting = IfcFooting; - class IfcMember extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1073191201; - } - } - IFC2X32.IfcMember = IfcMember; - class IfcPile extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.ConstructionType = ConstructionType; - this.type = 1687234759; - } - } - IFC2X32.IfcPile = IfcPile; - class IfcPlate extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3171933400; - } - } - IFC2X32.IfcPlate = IfcPlate; - class IfcRailing extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2262370178; - } - } - IFC2X32.IfcRailing = IfcRailing; - class IfcRamp extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ShapeType = ShapeType; - this.type = 3024970846; - } - } - IFC2X32.IfcRamp = IfcRamp; - class IfcRampFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3283111854; - } - } - IFC2X32.IfcRampFlight = IfcRampFlight; - class IfcRationalBezierCurve extends IfcBezierCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, WeightsData) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.WeightsData = WeightsData; - this.type = 3055160366; - } - } - IFC2X32.IfcRationalBezierCurve = IfcRationalBezierCurve; - class IfcReinforcingElement extends IfcBuildingElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 3027567501; - } - } - IFC2X32.IfcReinforcingElement = IfcReinforcingElement; - class IfcReinforcingMesh extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.type = 2320036040; - } - } - IFC2X32.IfcReinforcingMesh = IfcReinforcingMesh; - class IfcRoof extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ShapeType = ShapeType; - this.type = 2016517767; - } - } - IFC2X32.IfcRoof = IfcRoof; - class IfcRoundedEdgeFeature extends IfcEdgeFeature { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Radius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.FeatureLength = FeatureLength; - this.Radius = Radius; - this.type = 1376911519; - } - } - IFC2X32.IfcRoundedEdgeFeature = IfcRoundedEdgeFeature; - class IfcSensorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1783015770; - } - } - IFC2X32.IfcSensorType = IfcSensorType; - class IfcSlab extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1529196076; - } - } - IFC2X32.IfcSlab = IfcSlab; - class IfcStair extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ShapeType = ShapeType; - this.type = 331165859; - } - } - IFC2X32.IfcStair = IfcStair; - class IfcStairFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRiser, NumberOfTreads, RiserHeight, TreadLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NumberOfRiser = NumberOfRiser; - this.NumberOfTreads = NumberOfTreads; - this.RiserHeight = RiserHeight; - this.TreadLength = TreadLength; - this.type = 4252922144; - } - } - IFC2X32.IfcStairFlight = IfcStairFlight; - class IfcStructuralAnalysisModel extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.OrientationOf2DPlane = OrientationOf2DPlane; - this.LoadedBy = LoadedBy; - this.HasResults = HasResults; - this.type = 2515109513; - } - } - IFC2X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; - class IfcTendon extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.TensionForce = TensionForce; - this.PreStress = PreStress; - this.FrictionCoefficient = FrictionCoefficient; - this.AnchorageSlip = AnchorageSlip; - this.MinCurvatureRadius = MinCurvatureRadius; - this.type = 3824725483; - } - } - IFC2X32.IfcTendon = IfcTendon; - class IfcTendonAnchor extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 2347447852; - } - } - IFC2X32.IfcTendonAnchor = IfcTendonAnchor; - class IfcVibrationIsolatorType extends IfcDiscreteAccessoryType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3313531582; - } - } - IFC2X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; - class IfcWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2391406946; - } - } - IFC2X32.IfcWall = IfcWall; - class IfcWallStandardCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3512223829; - } - } - IFC2X32.IfcWallStandardCase = IfcWallStandardCase; - class IfcWindow extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.type = 3304561284; - } - } - IFC2X32.IfcWindow = IfcWindow; - class IfcActuatorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2874132201; - } - } - IFC2X32.IfcActuatorType = IfcActuatorType; - class IfcAlarmType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3001207471; - } - } - IFC2X32.IfcAlarmType = IfcAlarmType; - class IfcBeam extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 753842376; - } - } - IFC2X32.IfcBeam = IfcBeam; - class IfcChamferEdgeFeature extends IfcEdgeFeature { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Width, Height) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.FeatureLength = FeatureLength; - this.Width = Width; - this.Height = Height; - this.type = 2454782716; - } - } - IFC2X32.IfcChamferEdgeFeature = IfcChamferEdgeFeature; - class IfcControllerType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 578613899; - } - } - IFC2X32.IfcControllerType = IfcControllerType; - class IfcDistributionChamberElement extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1052013943; - } - } - IFC2X32.IfcDistributionChamberElement = IfcDistributionChamberElement; - class IfcDistributionControlElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ControlElementId) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ControlElementId = ControlElementId; - this.type = 1062813311; - } - } - IFC2X32.IfcDistributionControlElement = IfcDistributionControlElement; - class IfcElectricDistributionPoint extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, DistributionPointFunction, UserDefinedFunction) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.DistributionPointFunction = DistributionPointFunction; - this.UserDefinedFunction = UserDefinedFunction; - this.type = 3700593921; - } - } - IFC2X32.IfcElectricDistributionPoint = IfcElectricDistributionPoint; - class IfcReinforcingBar extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, BarRole, BarSurface) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.BarRole = BarRole; - this.BarSurface = BarSurface; - this.type = 979691226; - } - } - IFC2X32.IfcReinforcingBar = IfcReinforcingBar; -})(IFC2X3 || (IFC2X3 = {})); -var IFC4; -(function(IFC42) { - class IfcAbsorbedDoseMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; - class IfcAccelerationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAccelerationMeasure = IfcAccelerationMeasure; - class IfcAmountOfSubstanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; - class IfcAngularVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; - class IfcArcIndex { - constructor(value) { - this.value = value; - } - } - IFC42.IfcArcIndex = IfcArcIndex; - class IfcAreaDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAreaDensityMeasure = IfcAreaDensityMeasure; - class IfcAreaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAreaMeasure = IfcAreaMeasure; - class IfcBinary { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcBinary = IfcBinary; - class IfcBoolean { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC42.IfcBoolean = IfcBoolean; - class IfcBoxAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcBoxAlignment = IfcBoxAlignment; - class IfcCardinalPointReference { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcCardinalPointReference = IfcCardinalPointReference; - class IfcComplexNumber { - constructor(value) { - this.value = value; - } - } - IFC42.IfcComplexNumber = IfcComplexNumber; - class IfcCompoundPlaneAngleMeasure { - constructor(value) { - this.value = value; - } - } - IFC42.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; - class IfcContextDependentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcContextDependentMeasure = IfcContextDependentMeasure; - class IfcCountMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcCountMeasure = IfcCountMeasure; - class IfcCurvatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcCurvatureMeasure = IfcCurvatureMeasure; - class IfcDate { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcDate = IfcDate; - class IfcDateTime { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcDateTime = IfcDateTime; - class IfcDayInMonthNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDayInMonthNumber = IfcDayInMonthNumber; - class IfcDayInWeekNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDayInWeekNumber = IfcDayInWeekNumber; - class IfcDescriptiveMeasure { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcDescriptiveMeasure = IfcDescriptiveMeasure; - class IfcDimensionCount { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDimensionCount = IfcDimensionCount; - class IfcDoseEquivalentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; - class IfcDuration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcDuration = IfcDuration; - class IfcDynamicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; - class IfcElectricCapacitanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; - class IfcElectricChargeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricChargeMeasure = IfcElectricChargeMeasure; - class IfcElectricConductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; - class IfcElectricCurrentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; - class IfcElectricResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; - class IfcElectricVoltageMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; - class IfcEnergyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcEnergyMeasure = IfcEnergyMeasure; - class IfcFontStyle { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcFontStyle = IfcFontStyle; - class IfcFontVariant { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcFontVariant = IfcFontVariant; - class IfcFontWeight { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcFontWeight = IfcFontWeight; - class IfcForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcForceMeasure = IfcForceMeasure; - class IfcFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcFrequencyMeasure = IfcFrequencyMeasure; - class IfcGloballyUniqueId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcGloballyUniqueId = IfcGloballyUniqueId; - class IfcHeatFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; - class IfcHeatingValueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcHeatingValueMeasure = IfcHeatingValueMeasure; - class IfcIdentifier { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcIdentifier = IfcIdentifier; - class IfcIlluminanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcIlluminanceMeasure = IfcIlluminanceMeasure; - class IfcInductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcInductanceMeasure = IfcInductanceMeasure; - class IfcInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcInteger = IfcInteger; - class IfcIntegerCountRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; - class IfcIonConcentrationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; - class IfcIsothermalMoistureCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; - class IfcKinematicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; - class IfcLabel { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcLabel = IfcLabel; - class IfcLanguageId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcLanguageId = IfcLanguageId; - class IfcLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLengthMeasure = IfcLengthMeasure; - class IfcLineIndex { - constructor(value) { - this.value = value; - } - } - IFC42.IfcLineIndex = IfcLineIndex; - class IfcLinearForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLinearForceMeasure = IfcLinearForceMeasure; - class IfcLinearMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLinearMomentMeasure = IfcLinearMomentMeasure; - class IfcLinearStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; - class IfcLinearVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; - class IfcLogical { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC42.IfcLogical = IfcLogical; - class IfcLuminousFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; - class IfcLuminousIntensityDistributionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; - class IfcLuminousIntensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; - class IfcMagneticFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; - class IfcMagneticFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; - class IfcMassDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMassDensityMeasure = IfcMassDensityMeasure; - class IfcMassFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; - class IfcMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMassMeasure = IfcMassMeasure; - class IfcMassPerLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; - class IfcModulusOfElasticityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; - class IfcModulusOfLinearSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; - class IfcModulusOfRotationalSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; - class IfcModulusOfSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; - class IfcMoistureDiffusivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; - class IfcMolecularWeightMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; - class IfcMomentOfInertiaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; - class IfcMonetaryMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMonetaryMeasure = IfcMonetaryMeasure; - class IfcMonthInYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMonthInYearNumber = IfcMonthInYearNumber; - class IfcNonNegativeLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; - class IfcNormalisedRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; - class IfcNumericMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcNumericMeasure = IfcNumericMeasure; - class IfcPHMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPHMeasure = IfcPHMeasure; - class IfcParameterValue { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcParameterValue = IfcParameterValue; - class IfcPlanarForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPlanarForceMeasure = IfcPlanarForceMeasure; - class IfcPlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; - class IfcPositiveInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPositiveInteger = IfcPositiveInteger; - class IfcPositiveLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; - class IfcPositivePlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; - class IfcPositiveRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; - class IfcPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPowerMeasure = IfcPowerMeasure; - class IfcPresentableText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcPresentableText = IfcPresentableText; - class IfcPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPressureMeasure = IfcPressureMeasure; - class IfcPropertySetDefinitionSet { - constructor(value) { - this.value = value; - } - } - IFC42.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; - class IfcRadioActivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRadioActivityMeasure = IfcRadioActivityMeasure; - class IfcRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRatioMeasure = IfcRatioMeasure; - class IfcReal { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcReal = IfcReal; - class IfcRotationalFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; - class IfcRotationalMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRotationalMassMeasure = IfcRotationalMassMeasure; - class IfcRotationalStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; - class IfcSectionModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSectionModulusMeasure = IfcSectionModulusMeasure; - class IfcSectionalAreaIntegralMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; - class IfcShearModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcShearModulusMeasure = IfcShearModulusMeasure; - class IfcSolidAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSolidAngleMeasure = IfcSolidAngleMeasure; - class IfcSoundPowerLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; - class IfcSoundPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSoundPowerMeasure = IfcSoundPowerMeasure; - class IfcSoundPressureLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; - class IfcSoundPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSoundPressureMeasure = IfcSoundPressureMeasure; - class IfcSpecificHeatCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; - class IfcSpecularExponent { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSpecularExponent = IfcSpecularExponent; - class IfcSpecularRoughness { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSpecularRoughness = IfcSpecularRoughness; - class IfcTemperatureGradientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; - class IfcTemperatureRateOfChangeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; - class IfcText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcText = IfcText; - class IfcTextAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTextAlignment = IfcTextAlignment; - class IfcTextDecoration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTextDecoration = IfcTextDecoration; - class IfcTextFontName { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTextFontName = IfcTextFontName; - class IfcTextTransformation { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTextTransformation = IfcTextTransformation; - class IfcThermalAdmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; - class IfcThermalConductivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; - class IfcThermalExpansionCoefficientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; - class IfcThermalResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; - class IfcThermalTransmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; - class IfcThermodynamicTemperatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; - class IfcTime { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTime = IfcTime; - class IfcTimeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTimeMeasure = IfcTimeMeasure; - class IfcTimeStamp { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTimeStamp = IfcTimeStamp; - class IfcTorqueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTorqueMeasure = IfcTorqueMeasure; - class IfcURIReference { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcURIReference = IfcURIReference; - class IfcVaporPermeabilityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; - class IfcVolumeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcVolumeMeasure = IfcVolumeMeasure; - class IfcVolumetricFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; - class IfcWarpingConstantMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; - class IfcWarpingMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; - class IfcActionRequestTypeEnum { - } - IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; - IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; - IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; - IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; - IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; - class IfcActionSourceTypeEnum { - } - IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; - IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; - IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; - IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; - IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; - IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; - IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; - IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; - IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; - IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; - IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; - IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; - IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; - IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; - IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; - IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; - IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; - IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; - IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; - IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; - IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; - IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; - IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; - IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; - class IfcActionTypeEnum { - } - IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; - IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; - IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; - IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActionTypeEnum = IfcActionTypeEnum; - class IfcActuatorTypeEnum { - } - IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; - IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; - IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; - IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; - IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; - IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActuatorTypeEnum = IfcActuatorTypeEnum; - class IfcAddressTypeEnum { - } - IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; - IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; - IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcAddressTypeEnum = IfcAddressTypeEnum; - class IfcAirTerminalBoxTypeEnum { - } - IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; - class IfcAirTerminalTypeEnum { - } - IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; - IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; - IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; - IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; - IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; - class IfcAirToAirHeatRecoveryTypeEnum { - } - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; - IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; - IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; - IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; - class IfcAlarmTypeEnum { - } - IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; - IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; - IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; - IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; - IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; - IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; - IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAlarmTypeEnum = IfcAlarmTypeEnum; - class IfcAnalysisModelTypeEnum { - } - IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; - IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; - class IfcAnalysisTheoryTypeEnum { - } - IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; - IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; - class IfcArithmeticOperatorEnum { - } - IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; - IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; - IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; - IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; - IFC42.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; - class IfcAssemblyPlaceEnum { - } - IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; - IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; - IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; - class IfcAudioVisualApplianceTypeEnum { - } - IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; - IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; - IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; - IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; - IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; - IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; - IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; - IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; - IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; - IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; - IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; - class IfcBSplineCurveForm { - } - IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; - IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; - IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; - IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; - IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; - IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcBSplineCurveForm = IfcBSplineCurveForm; - class IfcBSplineSurfaceForm { - } - IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; - IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; - IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; - IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; - IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; - IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; - IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; - IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; - IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; - IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; - IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; - class IfcBeamTypeEnum { - } - IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; - IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; - IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; - IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; - IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; - IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; - IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBeamTypeEnum = IfcBeamTypeEnum; - class IfcBenchmarkEnum { - } - IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; - IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; - IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; - IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; - IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; - IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; - IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; - IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; - IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; - IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; - IFC42.IfcBenchmarkEnum = IfcBenchmarkEnum; - class IfcBoilerTypeEnum { - } - IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; - IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBoilerTypeEnum = IfcBoilerTypeEnum; - class IfcBooleanOperator { - } - IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; - IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; - IFC42.IfcBooleanOperator = IfcBooleanOperator; - class IfcBuildingElementPartTypeEnum { - } - IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; - IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; - class IfcBuildingElementProxyTypeEnum { - } - IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; - IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = { type: 3, value: "PROVISIONFORSPACE" }; - IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; - class IfcBuildingSystemTypeEnum { - } - IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; - IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; - IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; - IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; - IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; - class IfcBurnerTypeEnum { - } - IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBurnerTypeEnum = IfcBurnerTypeEnum; - class IfcCableCarrierFittingTypeEnum { - } - IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; - IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; - IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; - IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; - class IfcCableCarrierSegmentTypeEnum { - } - IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; - class IfcCableFittingTypeEnum { - } - IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; - class IfcCableSegmentTypeEnum { - } - IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; - IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; - IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; - IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; - IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; - class IfcChangeActionEnum { - } - IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; - IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; - IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; - IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; - IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcChangeActionEnum = IfcChangeActionEnum; - class IfcChillerTypeEnum { - } - IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; - IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcChillerTypeEnum = IfcChillerTypeEnum; - class IfcChimneyTypeEnum { - } - IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcChimneyTypeEnum = IfcChimneyTypeEnum; - class IfcCoilTypeEnum { - } - IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; - IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; - IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; - IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; - IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; - IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; - IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; - IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCoilTypeEnum = IfcCoilTypeEnum; - class IfcColumnTypeEnum { - } - IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; - IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; - IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcColumnTypeEnum = IfcColumnTypeEnum; - class IfcCommunicationsApplianceTypeEnum { - } - IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; - IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; - IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; - IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; - IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; - IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; - IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; - IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; - IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; - IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; - class IfcComplexPropertyTemplateTypeEnum { - } - IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; - IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; - IFC42.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; - class IfcCompressorTypeEnum { - } - IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; - IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; - IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; - IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; - IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; - IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; - IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; - IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; - IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; - IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; - IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; - IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; - IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; - IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; - IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; - IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCompressorTypeEnum = IfcCompressorTypeEnum; - class IfcCondenserTypeEnum { - } - IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; - IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; - IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCondenserTypeEnum = IfcCondenserTypeEnum; - class IfcConnectionTypeEnum { - } - IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; - IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; - IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; - IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConnectionTypeEnum = IfcConnectionTypeEnum; - class IfcConstraintEnum { - } - IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; - IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; - IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; - IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConstraintEnum = IfcConstraintEnum; - class IfcConstructionEquipmentResourceTypeEnum { - } - IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; - IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; - IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; - IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; - IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; - IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; - IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; - class IfcConstructionMaterialResourceTypeEnum { - } - IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; - IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; - IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; - IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; - IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; - IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; - class IfcConstructionProductResourceTypeEnum { - } - IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; - IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; - IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; - class IfcControllerTypeEnum { - } - IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; - IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; - IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; - IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; - IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; - IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcControllerTypeEnum = IfcControllerTypeEnum; - class IfcCooledBeamTypeEnum { - } - IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; - IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; - IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; - class IfcCoolingTowerTypeEnum { - } - IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; - IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; - class IfcCostItemTypeEnum { - } - IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCostItemTypeEnum = IfcCostItemTypeEnum; - class IfcCostScheduleTypeEnum { - } - IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; - IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; - IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; - IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; - IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; - IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; - class IfcCoveringTypeEnum { - } - IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; - IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; - IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; - IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; - IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; - IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; - IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; - IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCoveringTypeEnum = IfcCoveringTypeEnum; - class IfcCrewResourceTypeEnum { - } - IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; - class IfcCurtainWallTypeEnum { - } - IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; - class IfcCurveInterpolationEnum { - } - IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; - IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; - IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; - class IfcDamperTypeEnum { - } - IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; - IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; - IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; - IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; - IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; - IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; - IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; - IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; - IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; - IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; - IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; - IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDamperTypeEnum = IfcDamperTypeEnum; - class IfcDataOriginEnum { - } - IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; - IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDataOriginEnum = IfcDataOriginEnum; - class IfcDerivedUnitEnum { - } - IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; - IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; - IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; - IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; - IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; - IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; - IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; - IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; - IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; - IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; - IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; - IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; - IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; - IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; - IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; - IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; - IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; - IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; - IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; - IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; - IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; - IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; - IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; - IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; - IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; - IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; - IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; - IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; - IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; - IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; - IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcDerivedUnitEnum = IfcDerivedUnitEnum; - class IfcDirectionSenseEnum { - } - IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IFC42.IfcDirectionSenseEnum = IfcDirectionSenseEnum; - class IfcDiscreteAccessoryTypeEnum { - } - IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; - IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; - IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; - IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; - class IfcDistributionChamberElementTypeEnum { - } - IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; - IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; - IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; - IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; - IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; - IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; - class IfcDistributionPortTypeEnum { - } - IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; - IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; - IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; - IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; - class IfcDistributionSystemEnum { - } - IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; - IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; - IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; - IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; - IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; - IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; - IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; - IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; - IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; - IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; - IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; - IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; - IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; - IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; - IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; - IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; - IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; - IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; - IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; - IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; - IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; - IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; - IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; - IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; - IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; - IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; - IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; - IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; - IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; - IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; - IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; - IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; - IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; - IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; - IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; - IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; - IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDistributionSystemEnum = IfcDistributionSystemEnum; - class IfcDocumentConfidentialityEnum { - } - IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; - IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; - IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; - IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; - IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; - class IfcDocumentStatusEnum { - } - IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; - IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; - IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; - IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; - IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDocumentStatusEnum = IfcDocumentStatusEnum; - class IfcDoorPanelOperationEnum { - } - IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; - IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; - IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; - IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; - IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; - IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; - class IfcDoorPanelPositionEnum { - } - IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; - class IfcDoorStyleConstructionEnum { - } - IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; - IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; - class IfcDoorStyleOperationEnum { - } - IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; - class IfcDoorTypeEnum { - } - IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; - IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; - IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; - IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorTypeEnum = IfcDoorTypeEnum; - class IfcDoorTypeOperationEnum { - } - IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorTypeOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; - IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; - IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; - class IfcDuctFittingTypeEnum { - } - IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; - class IfcDuctSegmentTypeEnum { - } - IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; - class IfcDuctSilencerTypeEnum { - } - IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; - IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; - IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; - class IfcElectricApplianceTypeEnum { - } - IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; - IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; - IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; - IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; - IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; - IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; - IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; - IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; - IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; - IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; - IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; - IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; - IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; - class IfcElectricDistributionBoardTypeEnum { - } - IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; - class IfcElectricFlowStorageDeviceTypeEnum { - } - IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; - IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; - class IfcElectricGeneratorTypeEnum { - } - IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; - IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; - IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; - IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; - class IfcElectricMotorTypeEnum { - } - IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; - IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; - IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; - IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; - IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; - IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; - class IfcElectricTimeControlTypeEnum { - } - IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; - IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; - IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; - class IfcElementAssemblyTypeEnum { - } - IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; - IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; - IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; - IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; - IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; - IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; - IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; - class IfcElementCompositionEnum { - } - IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IFC42.IfcElementCompositionEnum = IfcElementCompositionEnum; - class IfcEngineTypeEnum { - } - IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; - IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; - IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEngineTypeEnum = IfcEngineTypeEnum; - class IfcEvaporativeCoolerTypeEnum { - } - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; - IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; - class IfcEvaporatorTypeEnum { - } - IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; - IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; - IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; - class IfcEventTriggerTypeEnum { - } - IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; - IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; - IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; - IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; - IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; - class IfcEventTypeEnum { - } - IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; - IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; - IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; - IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEventTypeEnum = IfcEventTypeEnum; - class IfcExternalSpatialElementTypeEnum { - } - IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; - class IfcFanTypeEnum { - } - IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; - IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; - IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; - IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; - IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; - IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFanTypeEnum = IfcFanTypeEnum; - class IfcFastenerTypeEnum { - } - IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; - IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; - IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; - IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFastenerTypeEnum = IfcFastenerTypeEnum; - class IfcFilterTypeEnum { - } - IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; - IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; - IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; - IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; - IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; - IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; - IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFilterTypeEnum = IfcFilterTypeEnum; - class IfcFireSuppressionTerminalTypeEnum { - } - IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; - IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; - IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; - IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; - class IfcFlowDirectionEnum { - } - IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; - IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; - IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; - IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFlowDirectionEnum = IfcFlowDirectionEnum; - class IfcFlowInstrumentTypeEnum { - } - IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; - IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; - IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; - IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; - IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; - IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; - IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; - class IfcFlowMeterTypeEnum { - } - IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; - IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; - IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; - IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; - IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; - class IfcFootingTypeEnum { - } - IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; - IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; - IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; - IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; - IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; - IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFootingTypeEnum = IfcFootingTypeEnum; - class IfcFurnitureTypeEnum { - } - IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; - IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; - IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; - IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; - IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; - IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; - IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; - IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; - class IfcGeographicElementTypeEnum { - } - IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; - IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; - class IfcGeometricProjectionEnum { - } - IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; - IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; - IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; - IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; - IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; - IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; - IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; - IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; - class IfcGlobalOrLocalEnum { - } - IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; - IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; - IFC42.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; - class IfcGridTypeEnum { - } - IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; - IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; - IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; - IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcGridTypeEnum = IfcGridTypeEnum; - class IfcHeatExchangerTypeEnum { - } - IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; - IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; - class IfcHumidifierTypeEnum { - } - IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; - IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; - IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; - IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; - IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; - IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; - IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; - IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; - IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; - IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; - IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; - IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; - IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; - IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; - class IfcInterceptorTypeEnum { - } - IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; - IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; - IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; - IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; - IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; - class IfcInternalOrExternalEnum { - } - IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; - class IfcInventoryTypeEnum { - } - IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; - IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; - IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; - IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcInventoryTypeEnum = IfcInventoryTypeEnum; - class IfcJunctionBoxTypeEnum { - } - IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; - IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; - IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; - class IfcKnotType { - } - IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; - IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; - IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; - IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcKnotType = IfcKnotType; - class IfcLaborResourceTypeEnum { - } - IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; - IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; - IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; - IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; - IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; - IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; - IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; - IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; - IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; - IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; - IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; - IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; - IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; - IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; - class IfcLampTypeEnum { - } - IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; - IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLampTypeEnum.LED = { type: 3, value: "LED" }; - IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; - IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLampTypeEnum = IfcLampTypeEnum; - class IfcLayerSetDirectionEnum { - } - IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; - IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; - IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; - IFC42.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; - class IfcLightDistributionCurveEnum { - } - IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; - IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; - IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; - IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; - class IfcLightEmissionSourceEnum { - } - IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; - IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; - class IfcLightFixtureTypeEnum { - } - IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; - IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; - IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; - IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; - class IfcLoadGroupTypeEnum { - } - IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; - IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; - IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; - class IfcLogicalOperatorEnum { - } - IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; - IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; - IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; - IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; - IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; - IFC42.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; - class IfcMechanicalFastenerTypeEnum { - } - IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; - IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; - IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; - IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; - IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; - IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; - IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; - IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; - IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; - class IfcMedicalDeviceTypeEnum { - } - IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; - IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; - IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; - IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; - IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; - IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; - class IfcMemberTypeEnum { - } - IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; - IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; - IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; - IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; - IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; - IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; - IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; - IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; - IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; - IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; - IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMemberTypeEnum = IfcMemberTypeEnum; - class IfcMotorConnectionTypeEnum { - } - IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; - IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; - IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; - IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; - class IfcNullStyle { - } - IfcNullStyle.NULL = { type: 3, value: "NULL" }; - IFC42.IfcNullStyle = IfcNullStyle; - class IfcObjectTypeEnum { - } - IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; - IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; - IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; - IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; - IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; - IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; - IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcObjectTypeEnum = IfcObjectTypeEnum; - class IfcObjectiveEnum { - } - IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; - IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; - IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; - IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; - IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; - IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; - IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; - IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; - IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; - IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcObjectiveEnum = IfcObjectiveEnum; - class IfcOccupantTypeEnum { - } - IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; - IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; - IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; - IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; - IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; - IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; - IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; - IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcOccupantTypeEnum = IfcOccupantTypeEnum; - class IfcOpeningElementTypeEnum { - } - IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; - IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; - IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; - class IfcOutletTypeEnum { - } - IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; - IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; - IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; - IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; - IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; - IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcOutletTypeEnum = IfcOutletTypeEnum; - class IfcPerformanceHistoryTypeEnum { - } - IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; - class IfcPermeableCoveringOperationEnum { - } - IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; - IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; - IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; - IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; - class IfcPermitTypeEnum { - } - IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; - IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; - IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPermitTypeEnum = IfcPermitTypeEnum; - class IfcPhysicalOrVirtualEnum { - } - IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; - IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; - class IfcPileConstructionEnum { - } - IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; - IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; - IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; - IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; - IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPileConstructionEnum = IfcPileConstructionEnum; - class IfcPileTypeEnum { - } - IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; - IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; - IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; - IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; - IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; - IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPileTypeEnum = IfcPileTypeEnum; - class IfcPipeFittingTypeEnum { - } - IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; - class IfcPipeSegmentTypeEnum { - } - IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; - IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; - IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; - IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; - class IfcPlateTypeEnum { - } - IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; - IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; - IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPlateTypeEnum = IfcPlateTypeEnum; - class IfcPreferredSurfaceCurveRepresentation { - } - IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; - IFC42.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; - class IfcProcedureTypeEnum { - } - IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; - IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; - IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; - IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; - IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProcedureTypeEnum = IfcProcedureTypeEnum; - class IfcProfileTypeEnum { - } - IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; - IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; - IFC42.IfcProfileTypeEnum = IfcProfileTypeEnum; - class IfcProjectOrderTypeEnum { - } - IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; - IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; - IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; - IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; - IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; - IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; - class IfcProjectedOrTrueLengthEnum { - } - IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; - IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; - IFC42.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; - class IfcProjectionElementTypeEnum { - } - IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; - class IfcPropertySetTemplateTypeEnum { - } - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; - class IfcProtectiveDeviceTrippingUnitTypeEnum { - } - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; - class IfcProtectiveDeviceTypeEnum { - } - IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; - IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; - IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; - IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; - class IfcPumpTypeEnum { - } - IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; - IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; - IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; - IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; - IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; - IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; - IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; - IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPumpTypeEnum = IfcPumpTypeEnum; - class IfcRailingTypeEnum { - } - IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; - IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; - IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRailingTypeEnum = IfcRailingTypeEnum; - class IfcRampFlightTypeEnum { - } - IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; - class IfcRampTypeEnum { - } - IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; - IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; - IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRampTypeEnum = IfcRampTypeEnum; - class IfcRecurrenceTypeEnum { - } - IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; - IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; - IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; - IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; - IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; - IFC42.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; - class IfcReflectanceMethodEnum { - } - IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; - IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; - IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; - IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; - IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; - IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; - IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; - IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; - class IfcReinforcingBarRoleEnum { - } - IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; - class IfcReinforcingBarSurfaceEnum { - } - IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; - IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; - IFC42.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; - class IfcReinforcingBarTypeEnum { - } - IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; - class IfcReinforcingMeshTypeEnum { - } - IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; - class IfcRoleEnum { - } - IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; - IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; - IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; - IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; - IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; - IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; - IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; - IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; - IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; - IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; - IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; - IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; - IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; - IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; - IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; - IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; - IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; - IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; - IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; - IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; - IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; - IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; - IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcRoleEnum = IfcRoleEnum; - class IfcRoofTypeEnum { - } - IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; - IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; - IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; - IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; - IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; - IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; - IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; - IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; - IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; - IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; - IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; - IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; - IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRoofTypeEnum = IfcRoofTypeEnum; - class IfcSIPrefix { - } - IfcSIPrefix.EXA = { type: 3, value: "EXA" }; - IfcSIPrefix.PETA = { type: 3, value: "PETA" }; - IfcSIPrefix.TERA = { type: 3, value: "TERA" }; - IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; - IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; - IfcSIPrefix.KILO = { type: 3, value: "KILO" }; - IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; - IfcSIPrefix.DECA = { type: 3, value: "DECA" }; - IfcSIPrefix.DECI = { type: 3, value: "DECI" }; - IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; - IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; - IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; - IfcSIPrefix.NANO = { type: 3, value: "NANO" }; - IfcSIPrefix.PICO = { type: 3, value: "PICO" }; - IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; - IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; - IFC42.IfcSIPrefix = IfcSIPrefix; - class IfcSIUnitName { - } - IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; - IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; - IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; - IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; - IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; - IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; - IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; - IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; - IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; - IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; - IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; - IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; - IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; - IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; - IfcSIUnitName.LUX = { type: 3, value: "LUX" }; - IfcSIUnitName.METRE = { type: 3, value: "METRE" }; - IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; - IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; - IfcSIUnitName.OHM = { type: 3, value: "OHM" }; - IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; - IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; - IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; - IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; - IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; - IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; - IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; - IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; - IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; - IfcSIUnitName.WATT = { type: 3, value: "WATT" }; - IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; - IFC42.IfcSIUnitName = IfcSIUnitName; - class IfcSanitaryTerminalTypeEnum { - } - IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; - IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; - IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; - IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; - IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; - IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; - IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; - IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; - IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; - IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; - IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; - class IfcSectionTypeEnum { - } - IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; - IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; - IFC42.IfcSectionTypeEnum = IfcSectionTypeEnum; - class IfcSensorTypeEnum { - } - IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; - IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; - IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; - IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; - IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; - IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; - IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; - IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; - IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; - IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; - IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; - IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; - IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; - IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; - IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; - IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; - IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; - IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; - IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; - IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; - IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; - IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; - IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; - IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; - IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSensorTypeEnum = IfcSensorTypeEnum; - class IfcSequenceEnum { - } - IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; - IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; - IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; - IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; - IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSequenceEnum = IfcSequenceEnum; - class IfcShadingDeviceTypeEnum { - } - IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; - IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; - IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; - IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; - class IfcSimplePropertyTemplateTypeEnum { - } - IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; - IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; - IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; - IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; - IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; - IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; - IFC42.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; - class IfcSlabTypeEnum { - } - IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; - IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; - IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; - IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; - IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSlabTypeEnum = IfcSlabTypeEnum; - class IfcSolarDeviceTypeEnum { - } - IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; - IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; - IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; - class IfcSpaceHeaterTypeEnum { - } - IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; - IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; - IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; - class IfcSpaceTypeEnum { - } - IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; - IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; - IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; - IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSpaceTypeEnum = IfcSpaceTypeEnum; - class IfcSpatialZoneTypeEnum { - } - IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; - IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; - IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; - class IfcStackTerminalTypeEnum { - } - IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; - IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; - IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; - IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; - class IfcStairFlightTypeEnum { - } - IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; - IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; - IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; - class IfcStairTypeEnum { - } - IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; - IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; - IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; - IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; - IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; - IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStairTypeEnum = IfcStairTypeEnum; - class IfcStateEnum { - } - IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; - IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; - IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; - IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; - IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; - IFC42.IfcStateEnum = IfcStateEnum; - class IfcStructuralCurveActivityTypeEnum { - } - IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; - IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; - IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; - IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; - class IfcStructuralCurveMemberTypeEnum { - } - IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; - class IfcStructuralSurfaceActivityTypeEnum { - } - IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; - IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; - IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; - class IfcStructuralSurfaceMemberTypeEnum { - } - IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; - IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; - class IfcSubContractResourceTypeEnum { - } - IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; - IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; - class IfcSurfaceFeatureTypeEnum { - } - IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; - IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; - IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; - IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; - class IfcSurfaceSide { - } - IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; - IFC42.IfcSurfaceSide = IfcSurfaceSide; - class IfcSwitchingDeviceTypeEnum { - } - IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; - IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; - IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; - IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; - IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; - IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; - IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; - IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; - IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; - IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; - class IfcSystemFurnitureElementTypeEnum { - } - IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; - IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; - IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; - class IfcTankTypeEnum { - } - IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; - IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; - IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; - IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; - IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; - IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; - IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; - IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTankTypeEnum = IfcTankTypeEnum; - class IfcTaskDurationEnum { - } - IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; - IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; - IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTaskDurationEnum = IfcTaskDurationEnum; - class IfcTaskTypeEnum { - } - IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; - IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; - IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; - IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; - IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; - IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; - IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; - IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; - IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; - IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; - IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTaskTypeEnum = IfcTaskTypeEnum; - class IfcTendonAnchorTypeEnum { - } - IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; - IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; - IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; - class IfcTendonTypeEnum { - } - IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; - IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; - IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; - IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; - IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTendonTypeEnum = IfcTendonTypeEnum; - class IfcTextPath { - } - IfcTextPath.LEFT = { type: 3, value: "LEFT" }; - IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; - IfcTextPath.UP = { type: 3, value: "UP" }; - IfcTextPath.DOWN = { type: 3, value: "DOWN" }; - IFC42.IfcTextPath = IfcTextPath; - class IfcTimeSeriesDataTypeEnum { - } - IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; - class IfcTransformerTypeEnum { - } - IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; - IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; - IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; - IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; - IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTransformerTypeEnum = IfcTransformerTypeEnum; - class IfcTransitionCode { - } - IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; - IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; - IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; - IFC42.IfcTransitionCode = IfcTransitionCode; - class IfcTransportElementTypeEnum { - } - IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; - IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; - IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; - IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; - IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; - IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; - class IfcTrimmingPreference { - } - IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; - IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcTrimmingPreference = IfcTrimmingPreference; - class IfcTubeBundleTypeEnum { - } - IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; - IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; - class IfcUnitEnum { - } - IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; - IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; - IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; - IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; - IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; - IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; - IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; - IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; - IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; - IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; - IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; - IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; - IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; - IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; - IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; - IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; - IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; - IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; - IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; - IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; - IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; - IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; - IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; - IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; - IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; - IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; - IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; - IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcUnitEnum = IfcUnitEnum; - class IfcUnitaryControlElementTypeEnum { - } - IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; - IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; - IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; - IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; - IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; - IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; - IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; - IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; - IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; - class IfcUnitaryEquipmentTypeEnum { - } - IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; - IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; - IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; - IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; - IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; - IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; - class IfcValveTypeEnum { - } - IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; - IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; - IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; - IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; - IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; - IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; - IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; - IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; - IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; - IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; - IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; - IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; - IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; - IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; - IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; - IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; - IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; - IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; - IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; - IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; - IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcValveTypeEnum = IfcValveTypeEnum; - class IfcVibrationIsolatorTypeEnum { - } - IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; - IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; - IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; - class IfcVoidingFeatureTypeEnum { - } - IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; - IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; - IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; - IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; - IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; - IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; - class IfcWallTypeEnum { - } - IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; - IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; - IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; - IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; - IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; - IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; - IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; - IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWallTypeEnum = IfcWallTypeEnum; - class IfcWasteTerminalTypeEnum { - } - IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; - IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; - IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; - IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; - IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; - IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; - IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; - IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; - class IfcWindowPanelOperationEnum { - } - IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; - IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; - IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; - IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; - IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; - IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; - IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; - IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; - IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; - IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; - IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; - IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; - class IfcWindowPanelPositionEnum { - } - IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; - IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; - IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; - class IfcWindowStyleConstructionEnum { - } - IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; - IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; - class IfcWindowStyleOperationEnum { - } - IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; - class IfcWindowTypeEnum { - } - IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; - IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; - IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; - IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowTypeEnum = IfcWindowTypeEnum; - class IfcWindowTypePartitioningEnum { - } - IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; - class IfcWorkCalendarTypeEnum { - } - IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; - IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; - IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; - IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; - class IfcWorkPlanTypeEnum { - } - IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; - class IfcWorkScheduleTypeEnum { - } - IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; - class IfcActorRole extends IfcLineObject { - constructor(expressID, Role, UserDefinedRole, Description) { - super(expressID); - this.Role = Role; - this.UserDefinedRole = UserDefinedRole; - this.Description = Description; - this.type = 3630933823; - } - } - IFC42.IfcActorRole = IfcActorRole; - class IfcAddress extends IfcLineObject { - constructor(expressID, Purpose, Description, UserDefinedPurpose) { - super(expressID); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.type = 618182010; - } - } - IFC42.IfcAddress = IfcAddress; - class IfcApplication extends IfcLineObject { - constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { - super(expressID); - this.ApplicationDeveloper = ApplicationDeveloper; - this.Version = Version; - this.ApplicationFullName = ApplicationFullName; - this.ApplicationIdentifier = ApplicationIdentifier; - this.type = 639542469; - } - } - IFC42.IfcApplication = IfcApplication; - class IfcAppliedValue extends IfcLineObject { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 411424972; - } - } - IFC42.IfcAppliedValue = IfcAppliedValue; - class IfcApproval extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { - super(expressID); - this.Identifier = Identifier; - this.Name = Name; - this.Description = Description; - this.TimeOfApproval = TimeOfApproval; - this.Status = Status; - this.Level = Level; - this.Qualifier = Qualifier; - this.RequestingApproval = RequestingApproval; - this.GivingApproval = GivingApproval; - this.type = 130549933; - } - } - IFC42.IfcApproval = IfcApproval; - class IfcBoundaryCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 4037036970; - } - } - IFC42.IfcBoundaryCondition = IfcBoundaryCondition; - class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; - this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; - this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; - this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; - this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; - this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; - this.type = 1560379544; - } - } - IFC42.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; - class IfcBoundaryFaceCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; - this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; - this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; - this.type = 3367102660; - } - } - IFC42.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; - class IfcBoundaryNodeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.type = 1387855156; - } - } - IFC42.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; - class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { - super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); - this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.WarpingStiffness = WarpingStiffness; - this.type = 2069777674; - } - } - IFC42.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; - class IfcConnectionGeometry extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 2859738748; - } - } - IFC42.IfcConnectionGeometry = IfcConnectionGeometry; - class IfcConnectionPointGeometry extends IfcConnectionGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { - super(expressID); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.type = 2614616156; - } - } - IFC42.IfcConnectionPointGeometry = IfcConnectionPointGeometry; - class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { - constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { - super(expressID); - this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; - this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; - this.type = 2732653382; - } - } - IFC42.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; - class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { - constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { - super(expressID); - this.VolumeOnRelatingElement = VolumeOnRelatingElement; - this.VolumeOnRelatedElement = VolumeOnRelatedElement; - this.type = 775493141; - } - } - IFC42.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; - class IfcConstraint extends IfcLineObject { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.type = 1959218052; - } - } - IFC42.IfcConstraint = IfcConstraint; - class IfcCoordinateOperation extends IfcLineObject { - constructor(expressID, SourceCRS, TargetCRS) { - super(expressID); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.type = 1785450214; - } - } - IFC42.IfcCoordinateOperation = IfcCoordinateOperation; - class IfcCoordinateReferenceSystem extends IfcLineObject { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.type = 1466758467; - } - } - IFC42.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; - class IfcCostValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 602808272; - } - } - IFC42.IfcCostValue = IfcCostValue; - class IfcDerivedUnit extends IfcLineObject { - constructor(expressID, Elements, UnitType, UserDefinedType) { - super(expressID); - this.Elements = Elements; - this.UnitType = UnitType; - this.UserDefinedType = UserDefinedType; - this.type = 1765591967; - } - } - IFC42.IfcDerivedUnit = IfcDerivedUnit; - class IfcDerivedUnitElement extends IfcLineObject { - constructor(expressID, Unit, Exponent) { - super(expressID); - this.Unit = Unit; - this.Exponent = Exponent; - this.type = 1045800335; - } - } - IFC42.IfcDerivedUnitElement = IfcDerivedUnitElement; - class IfcDimensionalExponents extends IfcLineObject { - constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { - super(expressID); - this.LengthExponent = LengthExponent; - this.MassExponent = MassExponent; - this.TimeExponent = TimeExponent; - this.ElectricCurrentExponent = ElectricCurrentExponent; - this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; - this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; - this.LuminousIntensityExponent = LuminousIntensityExponent; - this.type = 2949456006; - } - } - IFC42.IfcDimensionalExponents = IfcDimensionalExponents; - class IfcExternalInformation extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 4294318154; - } - } - IFC42.IfcExternalInformation = IfcExternalInformation; - class IfcExternalReference extends IfcLineObject { - constructor(expressID, Location, Identification, Name) { - super(expressID); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 3200245327; - } - } - IFC42.IfcExternalReference = IfcExternalReference; - class IfcExternallyDefinedHatchStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 2242383968; - } - } - IFC42.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; - class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 1040185647; - } - } - IFC42.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; - class IfcExternallyDefinedTextFont extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 3548104201; - } - } - IFC42.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; - class IfcGridAxis extends IfcLineObject { - constructor(expressID, AxisTag, AxisCurve, SameSense) { - super(expressID); - this.AxisTag = AxisTag; - this.AxisCurve = AxisCurve; - this.SameSense = SameSense; - this.type = 852622518; - } - } - IFC42.IfcGridAxis = IfcGridAxis; - class IfcIrregularTimeSeriesValue extends IfcLineObject { - constructor(expressID, TimeStamp, ListValues) { - super(expressID); - this.TimeStamp = TimeStamp; - this.ListValues = ListValues; - this.type = 3020489413; - } - } - IFC42.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; - class IfcLibraryInformation extends IfcExternalInformation { - constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { - super(expressID); - this.Name = Name; - this.Version = Version; - this.Publisher = Publisher; - this.VersionDate = VersionDate; - this.Location = Location; - this.Description = Description; - this.type = 2655187982; - } - } - IFC42.IfcLibraryInformation = IfcLibraryInformation; - class IfcLibraryReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Language = Language; - this.ReferencedLibrary = ReferencedLibrary; - this.type = 3452421091; - } - } - IFC42.IfcLibraryReference = IfcLibraryReference; - class IfcLightDistributionData extends IfcLineObject { - constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { - super(expressID); - this.MainPlaneAngle = MainPlaneAngle; - this.SecondaryPlaneAngle = SecondaryPlaneAngle; - this.LuminousIntensity = LuminousIntensity; - this.type = 4162380809; - } - } - IFC42.IfcLightDistributionData = IfcLightDistributionData; - class IfcLightIntensityDistribution extends IfcLineObject { - constructor(expressID, LightDistributionCurve, DistributionData) { - super(expressID); - this.LightDistributionCurve = LightDistributionCurve; - this.DistributionData = DistributionData; - this.type = 1566485204; - } - } - IFC42.IfcLightIntensityDistribution = IfcLightIntensityDistribution; - class IfcMapConversion extends IfcCoordinateOperation { - constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) { - super(expressID, SourceCRS, TargetCRS); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.Eastings = Eastings; - this.Northings = Northings; - this.OrthogonalHeight = OrthogonalHeight; - this.XAxisAbscissa = XAxisAbscissa; - this.XAxisOrdinate = XAxisOrdinate; - this.Scale = Scale; - this.type = 3057273783; - } - } - IFC42.IfcMapConversion = IfcMapConversion; - class IfcMaterialClassificationRelationship extends IfcLineObject { - constructor(expressID, MaterialClassifications, ClassifiedMaterial) { - super(expressID); - this.MaterialClassifications = MaterialClassifications; - this.ClassifiedMaterial = ClassifiedMaterial; - this.type = 1847130766; - } - } - IFC42.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; - class IfcMaterialDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 760658860; - } - } - IFC42.IfcMaterialDefinition = IfcMaterialDefinition; - class IfcMaterialLayer extends IfcMaterialDefinition { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { - super(expressID); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.type = 248100487; - } - } - IFC42.IfcMaterialLayer = IfcMaterialLayer; - class IfcMaterialLayerSet extends IfcMaterialDefinition { - constructor(expressID, MaterialLayers, LayerSetName, Description) { - super(expressID); - this.MaterialLayers = MaterialLayers; - this.LayerSetName = LayerSetName; - this.Description = Description; - this.type = 3303938423; - } - } - IFC42.IfcMaterialLayerSet = IfcMaterialLayerSet; - class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { - super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.OffsetDirection = OffsetDirection; - this.OffsetValues = OffsetValues; - this.type = 1847252529; - } - } - IFC42.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; - class IfcMaterialList extends IfcLineObject { - constructor(expressID, Materials) { - super(expressID); - this.Materials = Materials; - this.type = 2199411900; - } - } - IFC42.IfcMaterialList = IfcMaterialList; - class IfcMaterialProfile extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Profile, Priority, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.type = 2235152071; - } - } - IFC42.IfcMaterialProfile = IfcMaterialProfile; - class IfcMaterialProfileSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.MaterialProfiles = MaterialProfiles; - this.CompositeProfile = CompositeProfile; - this.type = 164193824; - } - } - IFC42.IfcMaterialProfileSet = IfcMaterialProfileSet; - class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { - constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { - super(expressID, Name, Description, Material, Profile, Priority, Category); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.OffsetValues = OffsetValues; - this.type = 552965576; - } - } - IFC42.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; - class IfcMaterialUsageDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 1507914824; - } - } - IFC42.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; - class IfcMeasureWithUnit extends IfcLineObject { - constructor(expressID, ValueComponent, UnitComponent) { - super(expressID); - this.ValueComponent = ValueComponent; - this.UnitComponent = UnitComponent; - this.type = 2597039031; - } - } - IFC42.IfcMeasureWithUnit = IfcMeasureWithUnit; - class IfcMetric extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.Benchmark = Benchmark; - this.ValueSource = ValueSource; - this.DataValue = DataValue; - this.ReferencePath = ReferencePath; - this.type = 3368373690; - } - } - IFC42.IfcMetric = IfcMetric; - class IfcMonetaryUnit extends IfcLineObject { - constructor(expressID, Currency) { - super(expressID); - this.Currency = Currency; - this.type = 2706619895; - } - } - IFC42.IfcMonetaryUnit = IfcMonetaryUnit; - class IfcNamedUnit extends IfcLineObject { - constructor(expressID, Dimensions, UnitType) { - super(expressID); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.type = 1918398963; - } - } - IFC42.IfcNamedUnit = IfcNamedUnit; - class IfcObjectPlacement extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3701648758; - } - } - IFC42.IfcObjectPlacement = IfcObjectPlacement; - class IfcObjective extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.BenchmarkValues = BenchmarkValues; - this.LogicalAggregator = LogicalAggregator; - this.ObjectiveQualifier = ObjectiveQualifier; - this.UserDefinedQualifier = UserDefinedQualifier; - this.type = 2251480897; - } - } - IFC42.IfcObjective = IfcObjective; - class IfcOrganization extends IfcLineObject { - constructor(expressID, Identification, Name, Description, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 4251960020; - } - } - IFC42.IfcOrganization = IfcOrganization; - class IfcOwnerHistory extends IfcLineObject { - constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { - super(expressID); - this.OwningUser = OwningUser; - this.OwningApplication = OwningApplication; - this.State = State; - this.ChangeAction = ChangeAction; - this.LastModifiedDate = LastModifiedDate; - this.LastModifyingUser = LastModifyingUser; - this.LastModifyingApplication = LastModifyingApplication; - this.CreationDate = CreationDate; - this.type = 1207048766; - } - } - IFC42.IfcOwnerHistory = IfcOwnerHistory; - class IfcPerson extends IfcLineObject { - constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.FamilyName = FamilyName; - this.GivenName = GivenName; - this.MiddleNames = MiddleNames; - this.PrefixTitles = PrefixTitles; - this.SuffixTitles = SuffixTitles; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 2077209135; - } - } - IFC42.IfcPerson = IfcPerson; - class IfcPersonAndOrganization extends IfcLineObject { - constructor(expressID, ThePerson, TheOrganization, Roles) { - super(expressID); - this.ThePerson = ThePerson; - this.TheOrganization = TheOrganization; - this.Roles = Roles; - this.type = 101040310; - } - } - IFC42.IfcPersonAndOrganization = IfcPersonAndOrganization; - class IfcPhysicalQuantity extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2483315170; - } - } - IFC42.IfcPhysicalQuantity = IfcPhysicalQuantity; - class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.type = 2226359599; - } - } - IFC42.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; - class IfcPostalAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.InternalLocation = InternalLocation; - this.AddressLines = AddressLines; - this.PostalBox = PostalBox; - this.Town = Town; - this.Region = Region; - this.PostalCode = PostalCode; - this.Country = Country; - this.type = 3355820592; - } - } - IFC42.IfcPostalAddress = IfcPostalAddress; - class IfcPresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 677532197; - } - } - IFC42.IfcPresentationItem = IfcPresentationItem; - class IfcPresentationLayerAssignment extends IfcLineObject { - constructor(expressID, Name, Description, AssignedItems, Identifier) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.type = 2022622350; - } - } - IFC42.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; - class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { - constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { - super(expressID, Name, Description, AssignedItems, Identifier); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.LayerOn = LayerOn; - this.LayerFrozen = LayerFrozen; - this.LayerBlocked = LayerBlocked; - this.LayerStyles = LayerStyles; - this.type = 1304840413; - } - } - IFC42.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; - class IfcPresentationStyle extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3119450353; - } - } - IFC42.IfcPresentationStyle = IfcPresentationStyle; - class IfcPresentationStyleAssignment extends IfcLineObject { - constructor(expressID, Styles) { - super(expressID); - this.Styles = Styles; - this.type = 2417041796; - } - } - IFC42.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; - class IfcProductRepresentation extends IfcLineObject { - constructor(expressID, Name, Description, Representations) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 2095639259; - } - } - IFC42.IfcProductRepresentation = IfcProductRepresentation; - class IfcProfileDef extends IfcLineObject { - constructor(expressID, ProfileType, ProfileName) { - super(expressID); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.type = 3958567839; - } - } - IFC42.IfcProfileDef = IfcProfileDef; - class IfcProjectedCRS extends IfcCoordinateReferenceSystem { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { - super(expressID, Name, Description, GeodeticDatum, VerticalDatum); - this.Name = Name; - this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.MapProjection = MapProjection; - this.MapZone = MapZone; - this.MapUnit = MapUnit; - this.type = 3843373140; - } - } - IFC42.IfcProjectedCRS = IfcProjectedCRS; - class IfcPropertyAbstraction extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 986844984; - } - } - IFC42.IfcPropertyAbstraction = IfcPropertyAbstraction; - class IfcPropertyEnumeration extends IfcPropertyAbstraction { - constructor(expressID, Name, EnumerationValues, Unit) { - super(expressID); - this.Name = Name; - this.EnumerationValues = EnumerationValues; - this.Unit = Unit; - this.type = 3710013099; - } - } - IFC42.IfcPropertyEnumeration = IfcPropertyEnumeration; - class IfcQuantityArea extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, AreaValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.AreaValue = AreaValue; - this.Formula = Formula; - this.type = 2044713172; - } - } - IFC42.IfcQuantityArea = IfcQuantityArea; - class IfcQuantityCount extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, CountValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.CountValue = CountValue; - this.Formula = Formula; - this.type = 2093928680; - } - } - IFC42.IfcQuantityCount = IfcQuantityCount; - class IfcQuantityLength extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, LengthValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.LengthValue = LengthValue; - this.Formula = Formula; - this.type = 931644368; - } - } - IFC42.IfcQuantityLength = IfcQuantityLength; - class IfcQuantityTime extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, TimeValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.TimeValue = TimeValue; - this.Formula = Formula; - this.type = 3252649465; - } - } - IFC42.IfcQuantityTime = IfcQuantityTime; - class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.VolumeValue = VolumeValue; - this.Formula = Formula; - this.type = 2405470396; - } - } - IFC42.IfcQuantityVolume = IfcQuantityVolume; - class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, WeightValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.WeightValue = WeightValue; - this.Formula = Formula; - this.type = 825690147; - } - } - IFC42.IfcQuantityWeight = IfcQuantityWeight; - class IfcRecurrencePattern extends IfcLineObject { - constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { - super(expressID); - this.RecurrenceType = RecurrenceType; - this.DayComponent = DayComponent; - this.WeekdayComponent = WeekdayComponent; - this.MonthComponent = MonthComponent; - this.Position = Position; - this.Interval = Interval; - this.Occurrences = Occurrences; - this.TimePeriods = TimePeriods; - this.type = 3915482550; - } - } - IFC42.IfcRecurrencePattern = IfcRecurrencePattern; - class IfcReference extends IfcLineObject { - constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { - super(expressID); - this.TypeIdentifier = TypeIdentifier; - this.AttributeIdentifier = AttributeIdentifier; - this.InstanceName = InstanceName; - this.ListPositions = ListPositions; - this.InnerReference = InnerReference; - this.type = 2433181523; - } - } - IFC42.IfcReference = IfcReference; - class IfcRepresentation extends IfcLineObject { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1076942058; - } - } - IFC42.IfcRepresentation = IfcRepresentation; - class IfcRepresentationContext extends IfcLineObject { - constructor(expressID, ContextIdentifier, ContextType) { - super(expressID); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.type = 3377609919; - } - } - IFC42.IfcRepresentationContext = IfcRepresentationContext; - class IfcRepresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3008791417; - } - } - IFC42.IfcRepresentationItem = IfcRepresentationItem; - class IfcRepresentationMap extends IfcLineObject { - constructor(expressID, MappingOrigin, MappedRepresentation) { - super(expressID); - this.MappingOrigin = MappingOrigin; - this.MappedRepresentation = MappedRepresentation; - this.type = 1660063152; - } - } - IFC42.IfcRepresentationMap = IfcRepresentationMap; - class IfcResourceLevelRelationship extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2439245199; - } - } - IFC42.IfcResourceLevelRelationship = IfcResourceLevelRelationship; - class IfcRoot extends IfcLineObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2341007311; - } - } - IFC42.IfcRoot = IfcRoot; - class IfcSIUnit extends IfcNamedUnit { - constructor(expressID, UnitType, Prefix, Name) { - super(expressID, new Handle(0), UnitType); - this.UnitType = UnitType; - this.Prefix = Prefix; - this.Name = Name; - this.type = 448429030; - } - } - IFC42.IfcSIUnit = IfcSIUnit; - class IfcSchedulingTime extends IfcLineObject { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { - super(expressID); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.type = 1054537805; - } - } - IFC42.IfcSchedulingTime = IfcSchedulingTime; - class IfcShapeAspect extends IfcLineObject { - constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { - super(expressID); - this.ShapeRepresentations = ShapeRepresentations; - this.Name = Name; - this.Description = Description; - this.ProductDefinitional = ProductDefinitional; - this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; - this.type = 867548509; - } - } - IFC42.IfcShapeAspect = IfcShapeAspect; - class IfcShapeModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3982875396; - } - } - IFC42.IfcShapeModel = IfcShapeModel; - class IfcShapeRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 4240577450; - } - } - IFC42.IfcShapeRepresentation = IfcShapeRepresentation; - class IfcStructuralConnectionCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2273995522; - } - } - IFC42.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; - class IfcStructuralLoad extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2162789131; - } - } - IFC42.IfcStructuralLoad = IfcStructuralLoad; - class IfcStructuralLoadConfiguration extends IfcStructuralLoad { - constructor(expressID, Name, Values, Locations) { - super(expressID, Name); - this.Name = Name; - this.Values = Values; - this.Locations = Locations; - this.type = 3478079324; - } - } - IFC42.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; - class IfcStructuralLoadOrResult extends IfcStructuralLoad { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 609421318; - } - } - IFC42.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; - class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2525727697; - } - } - IFC42.IfcStructuralLoadStatic = IfcStructuralLoadStatic; - class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { - constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { - super(expressID, Name); - this.Name = Name; - this.DeltaTConstant = DeltaTConstant; - this.DeltaTY = DeltaTY; - this.DeltaTZ = DeltaTZ; - this.type = 3408363356; - } - } - IFC42.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; - class IfcStyleModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 2830218821; - } - } - IFC42.IfcStyleModel = IfcStyleModel; - class IfcStyledItem extends IfcRepresentationItem { - constructor(expressID, Item, Styles, Name) { - super(expressID); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3958052878; - } - } - IFC42.IfcStyledItem = IfcStyledItem; - class IfcStyledRepresentation extends IfcStyleModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3049322572; - } - } - IFC42.IfcStyledRepresentation = IfcStyledRepresentation; - class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { - constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { - super(expressID, Name); - this.Name = Name; - this.SurfaceReinforcement1 = SurfaceReinforcement1; - this.SurfaceReinforcement2 = SurfaceReinforcement2; - this.ShearReinforcement = ShearReinforcement; - this.type = 2934153892; - } - } - IFC42.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; - class IfcSurfaceStyle extends IfcPresentationStyle { - constructor(expressID, Name, Side, Styles) { - super(expressID, Name); - this.Name = Name; - this.Side = Side; - this.Styles = Styles; - this.type = 1300840506; - } - } - IFC42.IfcSurfaceStyle = IfcSurfaceStyle; - class IfcSurfaceStyleLighting extends IfcPresentationItem { - constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { - super(expressID); - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.DiffuseReflectionColour = DiffuseReflectionColour; - this.TransmissionColour = TransmissionColour; - this.ReflectanceColour = ReflectanceColour; - this.type = 3303107099; - } - } - IFC42.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; - class IfcSurfaceStyleRefraction extends IfcPresentationItem { - constructor(expressID, RefractionIndex, DispersionFactor) { - super(expressID); - this.RefractionIndex = RefractionIndex; - this.DispersionFactor = DispersionFactor; - this.type = 1607154358; - } - } - IFC42.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; - class IfcSurfaceStyleShading extends IfcPresentationItem { - constructor(expressID, SurfaceColour, Transparency) { - super(expressID); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.type = 846575682; - } - } - IFC42.IfcSurfaceStyleShading = IfcSurfaceStyleShading; - class IfcSurfaceStyleWithTextures extends IfcPresentationItem { - constructor(expressID, Textures) { - super(expressID); - this.Textures = Textures; - this.type = 1351298697; - } - } - IFC42.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; - class IfcSurfaceTexture extends IfcPresentationItem { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { - super(expressID); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.type = 626085974; - } - } - IFC42.IfcSurfaceTexture = IfcSurfaceTexture; - class IfcTable extends IfcLineObject { - constructor(expressID, Name, Rows, Columns) { - super(expressID); - this.Name = Name; - this.Rows = Rows; - this.Columns = Columns; - this.type = 985171141; - } - } - IFC42.IfcTable = IfcTable; - class IfcTableColumn extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { - super(expressID); - this.Identifier = Identifier; - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.ReferencePath = ReferencePath; - this.type = 2043862942; - } - } - IFC42.IfcTableColumn = IfcTableColumn; - class IfcTableRow extends IfcLineObject { - constructor(expressID, RowCells, IsHeading) { - super(expressID); - this.RowCells = RowCells; - this.IsHeading = IsHeading; - this.type = 531007025; - } - } - IFC42.IfcTableRow = IfcTableRow; - class IfcTaskTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.type = 1549132990; - } - } - IFC42.IfcTaskTime = IfcTaskTime; - class IfcTaskTimeRecurring extends IfcTaskTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.Recurrence = Recurrence; - this.type = 2771591690; - } - } - IFC42.IfcTaskTimeRecurring = IfcTaskTimeRecurring; - class IfcTelecomAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.TelephoneNumbers = TelephoneNumbers; - this.FacsimileNumbers = FacsimileNumbers; - this.PagerNumber = PagerNumber; - this.ElectronicMailAddresses = ElectronicMailAddresses; - this.WWWHomePageURL = WWWHomePageURL; - this.MessagingIDs = MessagingIDs; - this.type = 912023232; - } - } - IFC42.IfcTelecomAddress = IfcTelecomAddress; - class IfcTextStyle extends IfcPresentationStyle { - constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.TextCharacterAppearance = TextCharacterAppearance; - this.TextStyle = TextStyle; - this.TextFontStyle = TextFontStyle; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 1447204868; - } - } - IFC42.IfcTextStyle = IfcTextStyle; - class IfcTextStyleForDefinedFont extends IfcPresentationItem { - constructor(expressID, Colour, BackgroundColour) { - super(expressID); - this.Colour = Colour; - this.BackgroundColour = BackgroundColour; - this.type = 2636378356; - } - } - IFC42.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; - class IfcTextStyleTextModel extends IfcPresentationItem { - constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { - super(expressID); - this.TextIndent = TextIndent; - this.TextAlign = TextAlign; - this.TextDecoration = TextDecoration; - this.LetterSpacing = LetterSpacing; - this.WordSpacing = WordSpacing; - this.TextTransform = TextTransform; - this.LineHeight = LineHeight; - this.type = 1640371178; - } - } - IFC42.IfcTextStyleTextModel = IfcTextStyleTextModel; - class IfcTextureCoordinate extends IfcPresentationItem { - constructor(expressID, Maps) { - super(expressID); - this.Maps = Maps; - this.type = 280115917; - } - } - IFC42.IfcTextureCoordinate = IfcTextureCoordinate; - class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { - constructor(expressID, Maps, Mode, Parameter) { - super(expressID, Maps); - this.Maps = Maps; - this.Mode = Mode; - this.Parameter = Parameter; - this.type = 1742049831; - } - } - IFC42.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; - class IfcTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, Vertices, MappedTo) { - super(expressID, Maps); - this.Maps = Maps; - this.Vertices = Vertices; - this.MappedTo = MappedTo; - this.type = 2552916305; - } - } - IFC42.IfcTextureMap = IfcTextureMap; - class IfcTextureVertex extends IfcPresentationItem { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1210645708; - } - } - IFC42.IfcTextureVertex = IfcTextureVertex; - class IfcTextureVertexList extends IfcPresentationItem { - constructor(expressID, TexCoordsList) { - super(expressID); - this.TexCoordsList = TexCoordsList; - this.type = 3611470254; - } - } - IFC42.IfcTextureVertexList = IfcTextureVertexList; - class IfcTimePeriod extends IfcLineObject { - constructor(expressID, StartTime, EndTime) { - super(expressID); - this.StartTime = StartTime; - this.EndTime = EndTime; - this.type = 1199560280; - } - } - IFC42.IfcTimePeriod = IfcTimePeriod; - class IfcTimeSeries extends IfcLineObject { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.type = 3101149627; - } - } - IFC42.IfcTimeSeries = IfcTimeSeries; - class IfcTimeSeriesValue extends IfcLineObject { - constructor(expressID, ListValues) { - super(expressID); - this.ListValues = ListValues; - this.type = 581633288; - } - } - IFC42.IfcTimeSeriesValue = IfcTimeSeriesValue; - class IfcTopologicalRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1377556343; - } - } - IFC42.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; - class IfcTopologyRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1735638870; - } - } - IFC42.IfcTopologyRepresentation = IfcTopologyRepresentation; - class IfcUnitAssignment extends IfcLineObject { - constructor(expressID, Units) { - super(expressID); - this.Units = Units; - this.type = 180925521; - } - } - IFC42.IfcUnitAssignment = IfcUnitAssignment; - class IfcVertex extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2799835756; - } - } - IFC42.IfcVertex = IfcVertex; - class IfcVertexPoint extends IfcVertex { - constructor(expressID, VertexGeometry) { - super(expressID); - this.VertexGeometry = VertexGeometry; - this.type = 1907098498; - } - } - IFC42.IfcVertexPoint = IfcVertexPoint; - class IfcVirtualGridIntersection extends IfcLineObject { - constructor(expressID, IntersectingAxes, OffsetDistances) { - super(expressID); - this.IntersectingAxes = IntersectingAxes; - this.OffsetDistances = OffsetDistances; - this.type = 891718957; - } - } - IFC42.IfcVirtualGridIntersection = IfcVirtualGridIntersection; - class IfcWorkTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.RecurrencePattern = RecurrencePattern; - this.Start = Start; - this.Finish = Finish; - this.type = 1236880293; - } - } - IFC42.IfcWorkTime = IfcWorkTime; - class IfcApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingApproval = RelatingApproval; - this.RelatedApprovals = RelatedApprovals; - this.type = 3869604511; - } - } - IFC42.IfcApprovalRelationship = IfcApprovalRelationship; - class IfcArbitraryClosedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.type = 3798115385; - } - } - IFC42.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; - class IfcArbitraryOpenProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.type = 1310608509; - } - } - IFC42.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; - class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { - super(expressID, ProfileType, ProfileName, OuterCurve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.InnerCurves = InnerCurves; - this.type = 2705031697; - } - } - IFC42.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; - class IfcBlobTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.RasterFormat = RasterFormat; - this.RasterCode = RasterCode; - this.type = 616511568; - } - } - IFC42.IfcBlobTexture = IfcBlobTexture; - class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { - super(expressID, ProfileType, ProfileName, Curve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.Thickness = Thickness; - this.type = 3150382593; - } - } - IFC42.IfcCenterLineProfileDef = IfcCenterLineProfileDef; - class IfcClassification extends IfcExternalInformation { - constructor(expressID, Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) { - super(expressID); - this.Source = Source; - this.Edition = Edition; - this.EditionDate = EditionDate; - this.Name = Name; - this.Description = Description; - this.Location = Location; - this.ReferenceTokens = ReferenceTokens; - this.type = 747523909; - } - } - IFC42.IfcClassification = IfcClassification; - class IfcClassificationReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.ReferencedSource = ReferencedSource; - this.Description = Description; - this.Sort = Sort; - this.type = 647927063; - } - } - IFC42.IfcClassificationReference = IfcClassificationReference; - class IfcColourRgbList extends IfcPresentationItem { - constructor(expressID, ColourList) { - super(expressID); - this.ColourList = ColourList; - this.type = 3285139300; - } - } - IFC42.IfcColourRgbList = IfcColourRgbList; - class IfcColourSpecification extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3264961684; - } - } - IFC42.IfcColourSpecification = IfcColourSpecification; - class IfcCompositeProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Profiles, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Profiles = Profiles; - this.Label = Label; - this.type = 1485152156; - } - } - IFC42.IfcCompositeProfileDef = IfcCompositeProfileDef; - class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { - constructor(expressID, CfsFaces) { - super(expressID); - this.CfsFaces = CfsFaces; - this.type = 370225590; - } - } - IFC42.IfcConnectedFaceSet = IfcConnectedFaceSet; - class IfcConnectionCurveGeometry extends IfcConnectionGeometry { - constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { - super(expressID); - this.CurveOnRelatingElement = CurveOnRelatingElement; - this.CurveOnRelatedElement = CurveOnRelatedElement; - this.type = 1981873012; - } - } - IFC42.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; - class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { - super(expressID, PointOnRelatingElement, PointOnRelatedElement); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.EccentricityInX = EccentricityInX; - this.EccentricityInY = EccentricityInY; - this.EccentricityInZ = EccentricityInZ; - this.type = 45288368; - } - } - IFC42.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; - class IfcContextDependentUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.type = 3050246964; - } - } - IFC42.IfcContextDependentUnit = IfcContextDependentUnit; - class IfcConversionBasedUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.type = 2889183280; - } - } - IFC42.IfcConversionBasedUnit = IfcConversionBasedUnit; - class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { - super(expressID, Dimensions, UnitType, Name, ConversionFactor); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.ConversionOffset = ConversionOffset; - this.type = 2713554722; - } - } - IFC42.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; - class IfcCurrencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingMonetaryUnit = RelatingMonetaryUnit; - this.RelatedMonetaryUnit = RelatedMonetaryUnit; - this.ExchangeRate = ExchangeRate; - this.RateDateTime = RateDateTime; - this.RateSource = RateSource; - this.type = 539742890; - } - } - IFC42.IfcCurrencyRelationship = IfcCurrencyRelationship; - class IfcCurveStyle extends IfcPresentationStyle { - constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveWidth = CurveWidth; - this.CurveColour = CurveColour; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 3800577675; - } - } - IFC42.IfcCurveStyle = IfcCurveStyle; - class IfcCurveStyleFont extends IfcPresentationItem { - constructor(expressID, Name, PatternList) { - super(expressID); - this.Name = Name; - this.PatternList = PatternList; - this.type = 1105321065; - } - } - IFC42.IfcCurveStyleFont = IfcCurveStyleFont; - class IfcCurveStyleFontAndScaling extends IfcPresentationItem { - constructor(expressID, Name, CurveFont, CurveFontScaling) { - super(expressID); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveFontScaling = CurveFontScaling; - this.type = 2367409068; - } - } - IFC42.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; - class IfcCurveStyleFontPattern extends IfcPresentationItem { - constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { - super(expressID); - this.VisibleSegmentLength = VisibleSegmentLength; - this.InvisibleSegmentLength = InvisibleSegmentLength; - this.type = 3510044353; - } - } - IFC42.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; - class IfcDerivedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 3632507154; - } - } - IFC42.IfcDerivedProfileDef = IfcDerivedProfileDef; - class IfcDocumentInformation extends IfcExternalInformation { - constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { - super(expressID); - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Location = Location; - this.Purpose = Purpose; - this.IntendedUse = IntendedUse; - this.Scope = Scope; - this.Revision = Revision; - this.DocumentOwner = DocumentOwner; - this.Editors = Editors; - this.CreationTime = CreationTime; - this.LastRevisionTime = LastRevisionTime; - this.ElectronicFormat = ElectronicFormat; - this.ValidFrom = ValidFrom; - this.ValidUntil = ValidUntil; - this.Confidentiality = Confidentiality; - this.Status = Status; - this.type = 1154170062; - } - } - IFC42.IfcDocumentInformation = IfcDocumentInformation; - class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingDocument = RelatingDocument; - this.RelatedDocuments = RelatedDocuments; - this.RelationshipType = RelationshipType; - this.type = 770865208; - } - } - IFC42.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; - class IfcDocumentReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.ReferencedDocument = ReferencedDocument; - this.type = 3732053477; - } - } - IFC42.IfcDocumentReference = IfcDocumentReference; - class IfcEdge extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeStart, EdgeEnd) { - super(expressID); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.type = 3900360178; - } - } - IFC42.IfcEdge = IfcEdge; - class IfcEdgeCurve extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.EdgeGeometry = EdgeGeometry; - this.SameSense = SameSense; - this.type = 476780140; - } - } - IFC42.IfcEdgeCurve = IfcEdgeCurve; - class IfcEventTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ActualDate = ActualDate; - this.EarlyDate = EarlyDate; - this.LateDate = LateDate; - this.ScheduleDate = ScheduleDate; - this.type = 211053100; - } - } - IFC42.IfcEventTime = IfcEventTime; - class IfcExtendedProperties extends IfcPropertyAbstraction { - constructor(expressID, Name, Description, Properties2) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.type = 297599258; - } - } - IFC42.IfcExtendedProperties = IfcExtendedProperties; - class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingReference = RelatingReference; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1437805879; - } - } - IFC42.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; - class IfcFace extends IfcTopologicalRepresentationItem { - constructor(expressID, Bounds) { - super(expressID); - this.Bounds = Bounds; - this.type = 2556980723; - } - } - IFC42.IfcFace = IfcFace; - class IfcFaceBound extends IfcTopologicalRepresentationItem { - constructor(expressID, Bound, Orientation) { - super(expressID); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 1809719519; - } - } - IFC42.IfcFaceBound = IfcFaceBound; - class IfcFaceOuterBound extends IfcFaceBound { - constructor(expressID, Bound, Orientation) { - super(expressID, Bound, Orientation); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 803316827; - } - } - IFC42.IfcFaceOuterBound = IfcFaceOuterBound; - class IfcFaceSurface extends IfcFace { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3008276851; - } - } - IFC42.IfcFaceSurface = IfcFaceSurface; - class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { - super(expressID, Name); - this.Name = Name; - this.TensionFailureX = TensionFailureX; - this.TensionFailureY = TensionFailureY; - this.TensionFailureZ = TensionFailureZ; - this.CompressionFailureX = CompressionFailureX; - this.CompressionFailureY = CompressionFailureY; - this.CompressionFailureZ = CompressionFailureZ; - this.type = 4219587988; - } - } - IFC42.IfcFailureConnectionCondition = IfcFailureConnectionCondition; - class IfcFillAreaStyle extends IfcPresentationStyle { - constructor(expressID, Name, FillStyles, ModelorDraughting) { - super(expressID, Name); - this.Name = Name; - this.FillStyles = FillStyles; - this.ModelorDraughting = ModelorDraughting; - this.type = 738692330; - } - } - IFC42.IfcFillAreaStyle = IfcFillAreaStyle; - class IfcGeometricRepresentationContext extends IfcRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { - super(expressID, ContextIdentifier, ContextType); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.CoordinateSpaceDimension = CoordinateSpaceDimension; - this.Precision = Precision; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.TrueNorth = TrueNorth; - this.type = 3448662350; - } - } - IFC42.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; - class IfcGeometricRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2453401579; - } - } - IFC42.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; - class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { - super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.ParentContext = ParentContext; - this.TargetScale = TargetScale; - this.TargetView = TargetView; - this.UserDefinedTargetView = UserDefinedTargetView; - this.type = 4142052618; - } - } - IFC42.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; - class IfcGeometricSet extends IfcGeometricRepresentationItem { - constructor(expressID, Elements) { - super(expressID); - this.Elements = Elements; - this.type = 3590301190; - } - } - IFC42.IfcGeometricSet = IfcGeometricSet; - class IfcGridPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementLocation, PlacementRefDirection) { - super(expressID); - this.PlacementLocation = PlacementLocation; - this.PlacementRefDirection = PlacementRefDirection; - this.type = 178086475; - } - } - IFC42.IfcGridPlacement = IfcGridPlacement; - class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { - constructor(expressID, BaseSurface, AgreementFlag) { - super(expressID); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.type = 812098782; - } - } - IFC42.IfcHalfSpaceSolid = IfcHalfSpaceSolid; - class IfcImageTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.URLReference = URLReference; - this.type = 3905492369; - } - } - IFC42.IfcImageTexture = IfcImageTexture; - class IfcIndexedColourMap extends IfcPresentationItem { - constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { - super(expressID); - this.MappedTo = MappedTo; - this.Opacity = Opacity; - this.Colours = Colours; - this.ColourIndex = ColourIndex; - this.type = 3570813810; - } - } - IFC42.IfcIndexedColourMap = IfcIndexedColourMap; - class IfcIndexedTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, MappedTo, TexCoords) { - super(expressID, Maps); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.type = 1437953363; - } - } - IFC42.IfcIndexedTextureMap = IfcIndexedTextureMap; - class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { - constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { - super(expressID, Maps, MappedTo, TexCoords); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.TexCoordIndex = TexCoordIndex; - this.type = 2133299955; - } - } - IFC42.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; - class IfcIrregularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.Values = Values; - this.type = 3741457305; - } - } - IFC42.IfcIrregularTimeSeries = IfcIrregularTimeSeries; - class IfcLagTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.LagValue = LagValue; - this.DurationType = DurationType; - this.type = 1585845231; - } - } - IFC42.IfcLagTime = IfcLagTime; - class IfcLightSource extends IfcGeometricRepresentationItem { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 1402838566; - } - } - IFC42.IfcLightSource = IfcLightSource; - class IfcLightSourceAmbient extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 125510826; - } - } - IFC42.IfcLightSourceAmbient = IfcLightSourceAmbient; - class IfcLightSourceDirectional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Orientation = Orientation; - this.type = 2604431987; - } - } - IFC42.IfcLightSourceDirectional = IfcLightSourceDirectional; - class IfcLightSourceGoniometric extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.ColourAppearance = ColourAppearance; - this.ColourTemperature = ColourTemperature; - this.LuminousFlux = LuminousFlux; - this.LightEmissionSource = LightEmissionSource; - this.LightDistributionDataSource = LightDistributionDataSource; - this.type = 4266656042; - } - } - IFC42.IfcLightSourceGoniometric = IfcLightSourceGoniometric; - class IfcLightSourcePositional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.type = 1520743889; - } - } - IFC42.IfcLightSourcePositional = IfcLightSourcePositional; - class IfcLightSourceSpot extends IfcLightSourcePositional { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.Orientation = Orientation; - this.ConcentrationExponent = ConcentrationExponent; - this.SpreadAngle = SpreadAngle; - this.BeamWidthAngle = BeamWidthAngle; - this.type = 3422422726; - } - } - IFC42.IfcLightSourceSpot = IfcLightSourceSpot; - class IfcLocalPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement) { - super(expressID); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.type = 2624227202; - } - } - IFC42.IfcLocalPlacement = IfcLocalPlacement; - class IfcLoop extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1008929658; - } - } - IFC42.IfcLoop = IfcLoop; - class IfcMappedItem extends IfcRepresentationItem { - constructor(expressID, MappingSource, MappingTarget) { - super(expressID); - this.MappingSource = MappingSource; - this.MappingTarget = MappingTarget; - this.type = 2347385850; - } - } - IFC42.IfcMappedItem = IfcMappedItem; - class IfcMaterial extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.type = 1838606355; - } - } - IFC42.IfcMaterial = IfcMaterial; - class IfcMaterialConstituent extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Fraction, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Fraction = Fraction; - this.Category = Category; - this.type = 3708119e3; - } - } - IFC42.IfcMaterialConstituent = IfcMaterialConstituent; - class IfcMaterialConstituentSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialConstituents) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.MaterialConstituents = MaterialConstituents; - this.type = 2852063980; - } - } - IFC42.IfcMaterialConstituentSet = IfcMaterialConstituentSet; - class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations, RepresentedMaterial) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.RepresentedMaterial = RepresentedMaterial; - this.type = 2022407955; - } - } - IFC42.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; - class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { - super(expressID); - this.ForLayerSet = ForLayerSet; - this.LayerSetDirection = LayerSetDirection; - this.DirectionSense = DirectionSense; - this.OffsetFromReferenceLine = OffsetFromReferenceLine; - this.ReferenceExtent = ReferenceExtent; - this.type = 1303795690; - } - } - IFC42.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; - class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { - super(expressID); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.type = 3079605661; - } - } - IFC42.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; - class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { - super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.ForProfileEndSet = ForProfileEndSet; - this.CardinalEndPoint = CardinalEndPoint; - this.type = 3404854881; - } - } - IFC42.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; - class IfcMaterialProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, Material) { - super(expressID, Name, Description, Properties2); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.Material = Material; - this.type = 3265635763; - } - } - IFC42.IfcMaterialProperties = IfcMaterialProperties; - class IfcMaterialRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, Expression) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingMaterial = RelatingMaterial; - this.RelatedMaterials = RelatedMaterials; - this.Expression = Expression; - this.type = 853536259; - } - } - IFC42.IfcMaterialRelationship = IfcMaterialRelationship; - class IfcMirroredProfileDef extends IfcDerivedProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Label) { - super(expressID, ProfileType, ProfileName, ParentProfile, new Handle(0), Label); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Label = Label; - this.type = 2998442950; - } - } - IFC42.IfcMirroredProfileDef = IfcMirroredProfileDef; - class IfcObjectDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 219451334; - } - } - IFC42.IfcObjectDefinition = IfcObjectDefinition; - class IfcOpenShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2665983363; - } - } - IFC42.IfcOpenShell = IfcOpenShell; - class IfcOrganizationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingOrganization = RelatingOrganization; - this.RelatedOrganizations = RelatedOrganizations; - this.type = 1411181986; - } - } - IFC42.IfcOrganizationRelationship = IfcOrganizationRelationship; - class IfcOrientedEdge extends IfcEdge { - constructor(expressID, EdgeElement, Orientation) { - super(expressID, new Handle(0), new Handle(0)); - this.EdgeElement = EdgeElement; - this.Orientation = Orientation; - this.type = 1029017970; - } - } - IFC42.IfcOrientedEdge = IfcOrientedEdge; - class IfcParameterizedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Position) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.type = 2529465313; - } - } - IFC42.IfcParameterizedProfileDef = IfcParameterizedProfileDef; - class IfcPath extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 2519244187; - } - } - IFC42.IfcPath = IfcPath; - class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.HasQuantities = HasQuantities; - this.Discrimination = Discrimination; - this.Quality = Quality; - this.Usage = Usage; - this.type = 3021840470; - } - } - IFC42.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; - class IfcPixelTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.Width = Width; - this.Height = Height; - this.ColourComponents = ColourComponents; - this.Pixel = Pixel; - this.type = 597895409; - } - } - IFC42.IfcPixelTexture = IfcPixelTexture; - class IfcPlacement extends IfcGeometricRepresentationItem { - constructor(expressID, Location) { - super(expressID); - this.Location = Location; - this.type = 2004835150; - } - } - IFC42.IfcPlacement = IfcPlacement; - class IfcPlanarExtent extends IfcGeometricRepresentationItem { - constructor(expressID, SizeInX, SizeInY) { - super(expressID); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.type = 1663979128; - } - } - IFC42.IfcPlanarExtent = IfcPlanarExtent; - class IfcPoint extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2067069095; - } - } - IFC42.IfcPoint = IfcPoint; - class IfcPointOnCurve extends IfcPoint { - constructor(expressID, BasisCurve, PointParameter) { - super(expressID); - this.BasisCurve = BasisCurve; - this.PointParameter = PointParameter; - this.type = 4022376103; - } - } - IFC42.IfcPointOnCurve = IfcPointOnCurve; - class IfcPointOnSurface extends IfcPoint { - constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { - super(expressID); - this.BasisSurface = BasisSurface; - this.PointParameterU = PointParameterU; - this.PointParameterV = PointParameterV; - this.type = 1423911732; - } - } - IFC42.IfcPointOnSurface = IfcPointOnSurface; - class IfcPolyLoop extends IfcLoop { - constructor(expressID, Polygon) { - super(expressID); - this.Polygon = Polygon; - this.type = 2924175390; - } - } - IFC42.IfcPolyLoop = IfcPolyLoop; - class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Position = Position; - this.PolygonalBoundary = PolygonalBoundary; - this.type = 2775532180; - } - } - IFC42.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; - class IfcPreDefinedItem extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3727388367; - } - } - IFC42.IfcPreDefinedItem = IfcPreDefinedItem; - class IfcPreDefinedProperties extends IfcPropertyAbstraction { - constructor(expressID) { - super(expressID); - this.type = 3778827333; - } - } - IFC42.IfcPreDefinedProperties = IfcPreDefinedProperties; - class IfcPreDefinedTextFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 1775413392; - } - } - IFC42.IfcPreDefinedTextFont = IfcPreDefinedTextFont; - class IfcProductDefinitionShape extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 673634403; - } - } - IFC42.IfcProductDefinitionShape = IfcProductDefinitionShape; - class IfcProfileProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, ProfileDefinition) { - super(expressID, Name, Description, Properties2); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.ProfileDefinition = ProfileDefinition; - this.type = 2802850158; - } - } - IFC42.IfcProfileProperties = IfcProfileProperties; - class IfcProperty extends IfcPropertyAbstraction { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2598011224; - } - } - IFC42.IfcProperty = IfcProperty; - class IfcPropertyDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1680319473; - } - } - IFC42.IfcPropertyDefinition = IfcPropertyDefinition; - class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.DependingProperty = DependingProperty; - this.DependantProperty = DependantProperty; - this.Expression = Expression; - this.type = 148025276; - } - } - IFC42.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; - class IfcPropertySetDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3357820518; - } - } - IFC42.IfcPropertySetDefinition = IfcPropertySetDefinition; - class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1482703590; - } - } - IFC42.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; - class IfcQuantitySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2090586900; - } - } - IFC42.IfcQuantitySet = IfcQuantitySet; - class IfcRectangleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.type = 3615266464; - } - } - IFC42.IfcRectangleProfileDef = IfcRectangleProfileDef; - class IfcRegularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.TimeStep = TimeStep; - this.Values = Values; - this.type = 3413951693; - } - } - IFC42.IfcRegularTimeSeries = IfcRegularTimeSeries; - class IfcReinforcementBarProperties extends IfcPreDefinedProperties { - constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { - super(expressID); - this.TotalCrossSectionArea = TotalCrossSectionArea; - this.SteelGrade = SteelGrade; - this.BarSurface = BarSurface; - this.EffectiveDepth = EffectiveDepth; - this.NominalBarDiameter = NominalBarDiameter; - this.BarCount = BarCount; - this.type = 1580146022; - } - } - IFC42.IfcReinforcementBarProperties = IfcReinforcementBarProperties; - class IfcRelationship extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 478536968; - } - } - IFC42.IfcRelationship = IfcRelationship; - class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatedResourceObjects = RelatedResourceObjects; - this.RelatingApproval = RelatingApproval; - this.type = 2943643501; - } - } - IFC42.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; - class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1608871552; - } - } - IFC42.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; - class IfcResourceTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ScheduleWork = ScheduleWork; - this.ScheduleUsage = ScheduleUsage; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.ScheduleContour = ScheduleContour; - this.LevelingDelay = LevelingDelay; - this.IsOverAllocated = IsOverAllocated; - this.StatusTime = StatusTime; - this.ActualWork = ActualWork; - this.ActualUsage = ActualUsage; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingWork = RemainingWork; - this.RemainingUsage = RemainingUsage; - this.Completion = Completion; - this.type = 1042787934; - } - } - IFC42.IfcResourceTime = IfcResourceTime; - class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.RoundingRadius = RoundingRadius; - this.type = 2778083089; - } - } - IFC42.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; - class IfcSectionProperties extends IfcPreDefinedProperties { - constructor(expressID, SectionType, StartProfile, EndProfile) { - super(expressID); - this.SectionType = SectionType; - this.StartProfile = StartProfile; - this.EndProfile = EndProfile; - this.type = 2042790032; - } - } - IFC42.IfcSectionProperties = IfcSectionProperties; - class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { - constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { - super(expressID); - this.LongitudinalStartPosition = LongitudinalStartPosition; - this.LongitudinalEndPosition = LongitudinalEndPosition; - this.TransversePosition = TransversePosition; - this.ReinforcementRole = ReinforcementRole; - this.SectionDefinition = SectionDefinition; - this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; - this.type = 4165799628; - } - } - IFC42.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; - class IfcSectionedSpine extends IfcGeometricRepresentationItem { - constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { - super(expressID); - this.SpineCurve = SpineCurve; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1509187699; - } - } - IFC42.IfcSectionedSpine = IfcSectionedSpine; - class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, SbsmBoundary) { - super(expressID); - this.SbsmBoundary = SbsmBoundary; - this.type = 4124623270; - } - } - IFC42.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; - class IfcSimpleProperty extends IfcProperty { - constructor(expressID, Name, Description) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.type = 3692461612; - } - } - IFC42.IfcSimpleProperty = IfcSimpleProperty; - class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { - super(expressID, Name); - this.Name = Name; - this.SlippageX = SlippageX; - this.SlippageY = SlippageY; - this.SlippageZ = SlippageZ; - this.type = 2609359061; - } - } - IFC42.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; - class IfcSolidModel extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 723233188; - } - } - IFC42.IfcSolidModel = IfcSolidModel; - class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { - super(expressID, Name); - this.Name = Name; - this.LinearForceX = LinearForceX; - this.LinearForceY = LinearForceY; - this.LinearForceZ = LinearForceZ; - this.LinearMomentX = LinearMomentX; - this.LinearMomentY = LinearMomentY; - this.LinearMomentZ = LinearMomentZ; - this.type = 1595516126; - } - } - IFC42.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; - class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { - super(expressID, Name); - this.Name = Name; - this.PlanarForceX = PlanarForceX; - this.PlanarForceY = PlanarForceY; - this.PlanarForceZ = PlanarForceZ; - this.type = 2668620305; - } - } - IFC42.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; - class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { - super(expressID, Name); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.type = 2473145415; - } - } - IFC42.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; - class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { - super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.Distortion = Distortion; - this.type = 1973038258; - } - } - IFC42.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; - class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { - super(expressID, Name); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.type = 1597423693; - } - } - IFC42.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; - class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { - super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.WarpingMoment = WarpingMoment; - this.type = 1190533807; - } - } - IFC42.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; - class IfcSubedge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.ParentEdge = ParentEdge; - this.type = 2233826070; - } - } - IFC42.IfcSubedge = IfcSubedge; - class IfcSurface extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2513912981; - } - } - IFC42.IfcSurface = IfcSurface; - class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { - constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { - super(expressID, SurfaceColour, Transparency); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.DiffuseColour = DiffuseColour; - this.TransmissionColour = TransmissionColour; - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.ReflectionColour = ReflectionColour; - this.SpecularColour = SpecularColour; - this.SpecularHighlight = SpecularHighlight; - this.ReflectanceMethod = ReflectanceMethod; - this.type = 1878645084; - } - } - IFC42.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; - class IfcSweptAreaSolid extends IfcSolidModel { - constructor(expressID, SweptArea, Position) { - super(expressID); - this.SweptArea = SweptArea; - this.Position = Position; - this.type = 2247615214; - } - } - IFC42.IfcSweptAreaSolid = IfcSweptAreaSolid; - class IfcSweptDiskSolid extends IfcSolidModel { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { - super(expressID); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 1260650574; - } - } - IFC42.IfcSweptDiskSolid = IfcSweptDiskSolid; - class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { - super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FilletRadius = FilletRadius; - this.type = 1096409881; - } - } - IFC42.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; - class IfcSweptSurface extends IfcSurface { - constructor(expressID, SweptCurve, Position) { - super(expressID); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.type = 230924584; - } - } - IFC42.IfcSweptSurface = IfcSweptSurface; - class IfcTShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.WebEdgeRadius = WebEdgeRadius; - this.WebSlope = WebSlope; - this.FlangeSlope = FlangeSlope; - this.type = 3071757647; - } - } - IFC42.IfcTShapeProfileDef = IfcTShapeProfileDef; - class IfcTessellatedItem extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 901063453; - } - } - IFC42.IfcTessellatedItem = IfcTessellatedItem; - class IfcTextLiteral extends IfcGeometricRepresentationItem { - constructor(expressID, Literal, Placement, Path) { - super(expressID); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.type = 4282788508; - } - } - IFC42.IfcTextLiteral = IfcTextLiteral; - class IfcTextLiteralWithExtent extends IfcTextLiteral { - constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { - super(expressID, Literal, Placement, Path); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.Extent = Extent; - this.BoxAlignment = BoxAlignment; - this.type = 3124975700; - } - } - IFC42.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; - class IfcTextStyleFontModel extends IfcPreDefinedTextFont { - constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { - super(expressID, Name); - this.Name = Name; - this.FontFamily = FontFamily; - this.FontStyle = FontStyle; - this.FontVariant = FontVariant; - this.FontWeight = FontWeight; - this.FontSize = FontSize; - this.type = 1983826977; - } - } - IFC42.IfcTextStyleFontModel = IfcTextStyleFontModel; - class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomXDim = BottomXDim; - this.TopXDim = TopXDim; - this.YDim = YDim; - this.TopXOffset = TopXOffset; - this.type = 2715220739; - } - } - IFC42.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; - class IfcTypeObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.type = 1628702193; - } - } - IFC42.IfcTypeObject = IfcTypeObject; - class IfcTypeProcess extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.type = 3736923433; - } - } - IFC42.IfcTypeProcess = IfcTypeProcess; - class IfcTypeProduct extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.type = 2347495698; - } - } - IFC42.IfcTypeProduct = IfcTypeProduct; - class IfcTypeResource extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.type = 3698973494; - } - } - IFC42.IfcTypeResource = IfcTypeResource; - class IfcUShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 427810014; - } - } - IFC42.IfcUShapeProfileDef = IfcUShapeProfileDef; - class IfcVector extends IfcGeometricRepresentationItem { - constructor(expressID, Orientation, Magnitude) { - super(expressID); - this.Orientation = Orientation; - this.Magnitude = Magnitude; - this.type = 1417489154; - } - } - IFC42.IfcVector = IfcVector; - class IfcVertexLoop extends IfcLoop { - constructor(expressID, LoopVertex) { - super(expressID); - this.LoopVertex = LoopVertex; - this.type = 2759199220; - } - } - IFC42.IfcVertexLoop = IfcVertexLoop; - class IfcWindowStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ConstructionType = ConstructionType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 1299126871; - } - } - IFC42.IfcWindowStyle = IfcWindowStyle; - class IfcZShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.type = 2543172580; - } - } - IFC42.IfcZShapeProfileDef = IfcZShapeProfileDef; - class IfcAdvancedFace extends IfcFaceSurface { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds, FaceSurface, SameSense); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3406155212; - } - } - IFC42.IfcAdvancedFace = IfcAdvancedFace; - class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { - constructor(expressID, OuterBoundary, InnerBoundaries) { - super(expressID); - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 669184980; - } - } - IFC42.IfcAnnotationFillArea = IfcAnnotationFillArea; - class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomFlangeWidth = BottomFlangeWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.BottomFlangeThickness = BottomFlangeThickness; - this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; - this.TopFlangeWidth = TopFlangeWidth; - this.TopFlangeThickness = TopFlangeThickness; - this.TopFlangeFilletRadius = TopFlangeFilletRadius; - this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; - this.BottomFlangeSlope = BottomFlangeSlope; - this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; - this.TopFlangeSlope = TopFlangeSlope; - this.type = 3207858831; - } - } - IFC42.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; - class IfcAxis1Placement extends IfcPlacement { - constructor(expressID, Location, Axis) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.type = 4261334040; - } - } - IFC42.IfcAxis1Placement = IfcAxis1Placement; - class IfcAxis2Placement2D extends IfcPlacement { - constructor(expressID, Location, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.RefDirection = RefDirection; - this.type = 3125803723; - } - } - IFC42.IfcAxis2Placement2D = IfcAxis2Placement2D; - class IfcAxis2Placement3D extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 2740243338; - } - } - IFC42.IfcAxis2Placement3D = IfcAxis2Placement3D; - class IfcBooleanResult extends IfcGeometricRepresentationItem { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 2736907675; - } - } - IFC42.IfcBooleanResult = IfcBooleanResult; - class IfcBoundedSurface extends IfcSurface { - constructor(expressID) { - super(expressID); - this.type = 4182860854; - } - } - IFC42.IfcBoundedSurface = IfcBoundedSurface; - class IfcBoundingBox extends IfcGeometricRepresentationItem { - constructor(expressID, Corner, XDim, YDim, ZDim) { - super(expressID); - this.Corner = Corner; - this.XDim = XDim; - this.YDim = YDim; - this.ZDim = ZDim; - this.type = 2581212453; - } - } - IFC42.IfcBoundingBox = IfcBoundingBox; - class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Enclosure = Enclosure; - this.type = 2713105998; - } - } - IFC42.IfcBoxedHalfSpace = IfcBoxedHalfSpace; - class IfcCShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.WallThickness = WallThickness; - this.Girth = Girth; - this.InternalFilletRadius = InternalFilletRadius; - this.type = 2898889636; - } - } - IFC42.IfcCShapeProfileDef = IfcCShapeProfileDef; - class IfcCartesianPoint extends IfcPoint { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1123145078; - } - } - IFC42.IfcCartesianPoint = IfcCartesianPoint; - class IfcCartesianPointList extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 574549367; - } - } - IFC42.IfcCartesianPointList = IfcCartesianPointList; - class IfcCartesianPointList2D extends IfcCartesianPointList { - constructor(expressID, CoordList) { - super(expressID); - this.CoordList = CoordList; - this.type = 1675464909; - } - } - IFC42.IfcCartesianPointList2D = IfcCartesianPointList2D; - class IfcCartesianPointList3D extends IfcCartesianPointList { - constructor(expressID, CoordList) { - super(expressID); - this.CoordList = CoordList; - this.type = 2059837836; - } - } - IFC42.IfcCartesianPointList3D = IfcCartesianPointList3D; - class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 59481748; - } - } - IFC42.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; - class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 3749851601; - } - } - IFC42.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; - class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Scale2 = Scale2; - this.type = 3486308946; - } - } - IFC42.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; - class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.type = 3331915920; - } - } - IFC42.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; - class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.Scale2 = Scale2; - this.Scale3 = Scale3; - this.type = 1416205885; - } - } - IFC42.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; - class IfcCircleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.type = 1383045692; - } - } - IFC42.IfcCircleProfileDef = IfcCircleProfileDef; - class IfcClosedShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2205249479; - } - } - IFC42.IfcClosedShell = IfcClosedShell; - class IfcColourRgb extends IfcColourSpecification { - constructor(expressID, Name, Red, Green, Blue) { - super(expressID, Name); - this.Name = Name; - this.Red = Red; - this.Green = Green; - this.Blue = Blue; - this.type = 776857604; - } - } - IFC42.IfcColourRgb = IfcColourRgb; - class IfcComplexProperty extends IfcProperty { - constructor(expressID, Name, Description, UsageName, HasProperties) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.HasProperties = HasProperties; - this.type = 2542286263; - } - } - IFC42.IfcComplexProperty = IfcComplexProperty; - class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { - constructor(expressID, Transition, SameSense, ParentCurve) { - super(expressID); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.type = 2485617015; - } - } - IFC42.IfcCompositeCurveSegment = IfcCompositeCurveSegment; - class IfcConstructionResourceType extends IfcTypeResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2574617495; - } - } - IFC42.IfcConstructionResourceType = IfcConstructionResourceType; - class IfcContext extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 3419103109; - } - } - IFC42.IfcContext = IfcContext; - class IfcCrewResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1815067380; - } - } - IFC42.IfcCrewResourceType = IfcCrewResourceType; - class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2506170314; - } - } - IFC42.IfcCsgPrimitive3D = IfcCsgPrimitive3D; - class IfcCsgSolid extends IfcSolidModel { - constructor(expressID, TreeRootExpression) { - super(expressID); - this.TreeRootExpression = TreeRootExpression; - this.type = 2147822146; - } - } - IFC42.IfcCsgSolid = IfcCsgSolid; - class IfcCurve extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2601014836; - } - } - IFC42.IfcCurve = IfcCurve; - class IfcCurveBoundedPlane extends IfcBoundedSurface { - constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { - super(expressID); - this.BasisSurface = BasisSurface; - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 2827736869; - } - } - IFC42.IfcCurveBoundedPlane = IfcCurveBoundedPlane; - class IfcCurveBoundedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { - super(expressID); - this.BasisSurface = BasisSurface; - this.Boundaries = Boundaries; - this.ImplicitOuter = ImplicitOuter; - this.type = 2629017746; - } - } - IFC42.IfcCurveBoundedSurface = IfcCurveBoundedSurface; - class IfcDirection extends IfcGeometricRepresentationItem { - constructor(expressID, DirectionRatios) { - super(expressID); - this.DirectionRatios = DirectionRatios; - this.type = 32440307; - } - } - IFC42.IfcDirection = IfcDirection; - class IfcDoorStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.OperationType = OperationType; - this.ConstructionType = ConstructionType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 526551008; - } - } - IFC42.IfcDoorStyle = IfcDoorStyle; - class IfcEdgeLoop extends IfcLoop { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 1472233963; - } - } - IFC42.IfcEdgeLoop = IfcEdgeLoop; - class IfcElementQuantity extends IfcQuantitySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.MethodOfMeasurement = MethodOfMeasurement; - this.Quantities = Quantities; - this.type = 1883228015; - } - } - IFC42.IfcElementQuantity = IfcElementQuantity; - class IfcElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 339256511; - } - } - IFC42.IfcElementType = IfcElementType; - class IfcElementarySurface extends IfcSurface { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2777663545; - } - } - IFC42.IfcElementarySurface = IfcElementarySurface; - class IfcEllipseProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 2835456948; - } - } - IFC42.IfcEllipseProfileDef = IfcEllipseProfileDef; - class IfcEventType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.type = 4024345920; - } - } - IFC42.IfcEventType = IfcEventType; - class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 477187591; - } - } - IFC42.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; - class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { - super(expressID, SweptArea, Position, ExtrudedDirection, Depth); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.EndSweptArea = EndSweptArea; - this.type = 2804161546; - } - } - IFC42.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; - class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, FbsmFaces) { - super(expressID); - this.FbsmFaces = FbsmFaces; - this.type = 2047409740; - } - } - IFC42.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; - class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { - constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { - super(expressID); - this.HatchLineAppearance = HatchLineAppearance; - this.StartOfNextHatchLine = StartOfNextHatchLine; - this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; - this.PatternStart = PatternStart; - this.HatchLineAngle = HatchLineAngle; - this.type = 374418227; - } - } - IFC42.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; - class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { - constructor(expressID, TilingPattern, Tiles, TilingScale) { - super(expressID); - this.TilingPattern = TilingPattern; - this.Tiles = Tiles; - this.TilingScale = TilingScale; - this.type = 315944413; - } - } - IFC42.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; - class IfcFixedReferenceSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FixedReference = FixedReference; - this.type = 2652556860; - } - } - IFC42.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; - class IfcFurnishingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 4238390223; - } - } - IFC42.IfcFurnishingElementType = IfcFurnishingElementType; - class IfcFurnitureType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 1268542332; - } - } - IFC42.IfcFurnitureType = IfcFurnitureType; - class IfcGeographicElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4095422895; - } - } - IFC42.IfcGeographicElementType = IfcGeographicElementType; - class IfcGeometricCurveSet extends IfcGeometricSet { - constructor(expressID, Elements) { - super(expressID, Elements); - this.Elements = Elements; - this.type = 987898635; - } - } - IFC42.IfcGeometricCurveSet = IfcGeometricCurveSet; - class IfcIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 1484403080; - } - } - IFC42.IfcIShapeProfileDef = IfcIShapeProfileDef; - class IfcIndexedPolygonalFace extends IfcTessellatedItem { - constructor(expressID, CoordIndex) { - super(expressID); - this.CoordIndex = CoordIndex; - this.type = 178912537; - } - } - IFC42.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; - class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { - constructor(expressID, CoordIndex, InnerCoordIndices) { - super(expressID, CoordIndex); - this.CoordIndex = CoordIndex; - this.InnerCoordIndices = InnerCoordIndices; - this.type = 2294589976; - } - } - IFC42.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; - class IfcLShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.Thickness = Thickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.LegSlope = LegSlope; - this.type = 572779678; - } - } - IFC42.IfcLShapeProfileDef = IfcLShapeProfileDef; - class IfcLaborResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 428585644; - } - } - IFC42.IfcLaborResourceType = IfcLaborResourceType; - class IfcLine extends IfcCurve { - constructor(expressID, Pnt, Dir) { - super(expressID); - this.Pnt = Pnt; - this.Dir = Dir; - this.type = 1281925730; - } - } - IFC42.IfcLine = IfcLine; - class IfcManifoldSolidBrep extends IfcSolidModel { - constructor(expressID, Outer) { - super(expressID); - this.Outer = Outer; - this.type = 1425443689; - } - } - IFC42.IfcManifoldSolidBrep = IfcManifoldSolidBrep; - class IfcObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3888040117; - } - } - IFC42.IfcObject = IfcObject; - class IfcOffsetCurve2D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.type = 3388369263; - } - } - IFC42.IfcOffsetCurve2D = IfcOffsetCurve2D; - class IfcOffsetCurve3D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.RefDirection = RefDirection; - this.type = 3505215534; - } - } - IFC42.IfcOffsetCurve3D = IfcOffsetCurve3D; - class IfcPcurve extends IfcCurve { - constructor(expressID, BasisSurface, ReferenceCurve) { - super(expressID); - this.BasisSurface = BasisSurface; - this.ReferenceCurve = ReferenceCurve; - this.type = 1682466193; - } - } - IFC42.IfcPcurve = IfcPcurve; - class IfcPlanarBox extends IfcPlanarExtent { - constructor(expressID, SizeInX, SizeInY, Placement) { - super(expressID, SizeInX, SizeInY); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.Placement = Placement; - this.type = 603570806; - } - } - IFC42.IfcPlanarBox = IfcPlanarBox; - class IfcPlane extends IfcElementarySurface { - constructor(expressID, Position) { - super(expressID, Position); - this.Position = Position; - this.type = 220341763; - } - } - IFC42.IfcPlane = IfcPlane; - class IfcPreDefinedColour extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 759155922; - } - } - IFC42.IfcPreDefinedColour = IfcPreDefinedColour; - class IfcPreDefinedCurveFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2559016684; - } - } - IFC42.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; - class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3967405729; - } - } - IFC42.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; - class IfcProcedureType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.type = 569719735; - } - } - IFC42.IfcProcedureType = IfcProcedureType; - class IfcProcess extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2945172077; - } - } - IFC42.IfcProcess = IfcProcess; - class IfcProduct extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 4208778838; - } - } - IFC42.IfcProduct = IfcProduct; - class IfcProject extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 103090709; - } - } - IFC42.IfcProject = IfcProject; - class IfcProjectLibrary extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 653396225; - } - } - IFC42.IfcProjectLibrary = IfcProjectLibrary; - class IfcPropertyBoundedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UpperBoundValue = UpperBoundValue; - this.LowerBoundValue = LowerBoundValue; - this.Unit = Unit; - this.SetPointValue = SetPointValue; - this.type = 871118103; - } - } - IFC42.IfcPropertyBoundedValue = IfcPropertyBoundedValue; - class IfcPropertyEnumeratedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.EnumerationValues = EnumerationValues; - this.EnumerationReference = EnumerationReference; - this.type = 4166981789; - } - } - IFC42.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; - class IfcPropertyListValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, ListValues, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.ListValues = ListValues; - this.Unit = Unit; - this.type = 2752243245; - } - } - IFC42.IfcPropertyListValue = IfcPropertyListValue; - class IfcPropertyReferenceValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UsageName, PropertyReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.PropertyReference = PropertyReference; - this.type = 941946838; - } - } - IFC42.IfcPropertyReferenceValue = IfcPropertyReferenceValue; - class IfcPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.HasProperties = HasProperties; - this.type = 1451395588; - } - } - IFC42.IfcPropertySet = IfcPropertySet; - class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.ApplicableEntity = ApplicableEntity; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 492091185; - } - } - IFC42.IfcPropertySetTemplate = IfcPropertySetTemplate; - class IfcPropertySingleValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, NominalValue, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.NominalValue = NominalValue; - this.Unit = Unit; - this.type = 3650150729; - } - } - IFC42.IfcPropertySingleValue = IfcPropertySingleValue; - class IfcPropertyTableValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.DefiningValues = DefiningValues; - this.DefinedValues = DefinedValues; - this.Expression = Expression; - this.DefiningUnit = DefiningUnit; - this.DefinedUnit = DefinedUnit; - this.CurveInterpolation = CurveInterpolation; - this.type = 110355661; - } - } - IFC42.IfcPropertyTableValue = IfcPropertyTableValue; - class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3521284610; - } - } - IFC42.IfcPropertyTemplate = IfcPropertyTemplate; - class IfcProxy extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.ProxyType = ProxyType; - this.Tag = Tag; - this.type = 3219374653; - } - } - IFC42.IfcProxy = IfcProxy; - class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.WallThickness = WallThickness; - this.InnerFilletRadius = InnerFilletRadius; - this.OuterFilletRadius = OuterFilletRadius; - this.type = 2770003689; - } - } - IFC42.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; - class IfcRectangularPyramid extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, Height) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.Height = Height; - this.type = 2798486643; - } - } - IFC42.IfcRectangularPyramid = IfcRectangularPyramid; - class IfcRectangularTrimmedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { - super(expressID); - this.BasisSurface = BasisSurface; - this.U1 = U1; - this.V1 = V1; - this.U2 = U2; - this.V2 = V2; - this.Usense = Usense; - this.Vsense = Vsense; - this.type = 3454111270; - } - } - IFC42.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; - class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DefinitionType = DefinitionType; - this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; - this.type = 3765753017; - } - } - IFC42.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; - class IfcRelAssigns extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.type = 3939117080; - } - } - IFC42.IfcRelAssigns = IfcRelAssigns; - class IfcRelAssignsToActor extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 1683148259; - } - } - IFC42.IfcRelAssignsToActor = IfcRelAssignsToActor; - class IfcRelAssignsToControl extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 2495723537; - } - } - IFC42.IfcRelAssignsToControl = IfcRelAssignsToControl; - class IfcRelAssignsToGroup extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.type = 1307041759; - } - } - IFC42.IfcRelAssignsToGroup = IfcRelAssignsToGroup; - class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.Factor = Factor; - this.type = 1027710054; - } - } - IFC42.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; - class IfcRelAssignsToProcess extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProcess = RelatingProcess; - this.QuantityInProcess = QuantityInProcess; - this.type = 4278684876; - } - } - IFC42.IfcRelAssignsToProcess = IfcRelAssignsToProcess; - class IfcRelAssignsToProduct extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProduct = RelatingProduct; - this.type = 2857406711; - } - } - IFC42.IfcRelAssignsToProduct = IfcRelAssignsToProduct; - class IfcRelAssignsToResource extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingResource = RelatingResource; - this.type = 205026976; - } - } - IFC42.IfcRelAssignsToResource = IfcRelAssignsToResource; - class IfcRelAssociates extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 1865459582; - } - } - IFC42.IfcRelAssociates = IfcRelAssociates; - class IfcRelAssociatesApproval extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingApproval = RelatingApproval; - this.type = 4095574036; - } - } - IFC42.IfcRelAssociatesApproval = IfcRelAssociatesApproval; - class IfcRelAssociatesClassification extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingClassification = RelatingClassification; - this.type = 919958153; - } - } - IFC42.IfcRelAssociatesClassification = IfcRelAssociatesClassification; - class IfcRelAssociatesConstraint extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.Intent = Intent; - this.RelatingConstraint = RelatingConstraint; - this.type = 2728634034; - } - } - IFC42.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; - class IfcRelAssociatesDocument extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingDocument = RelatingDocument; - this.type = 982818633; - } - } - IFC42.IfcRelAssociatesDocument = IfcRelAssociatesDocument; - class IfcRelAssociatesLibrary extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingLibrary = RelatingLibrary; - this.type = 3840914261; - } - } - IFC42.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; - class IfcRelAssociatesMaterial extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingMaterial = RelatingMaterial; - this.type = 2655215786; - } - } - IFC42.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; - class IfcRelConnects extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 826625072; - } - } - IFC42.IfcRelConnects = IfcRelConnects; - class IfcRelConnectsElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.type = 1204542856; - } - } - IFC42.IfcRelConnectsElements = IfcRelConnectsElements; - class IfcRelConnectsPathElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RelatingPriorities = RelatingPriorities; - this.RelatedPriorities = RelatedPriorities; - this.RelatedConnectionType = RelatedConnectionType; - this.RelatingConnectionType = RelatingConnectionType; - this.type = 3945020480; - } - } - IFC42.IfcRelConnectsPathElements = IfcRelConnectsPathElements; - class IfcRelConnectsPortToElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedElement = RelatedElement; - this.type = 4201705270; - } - } - IFC42.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; - class IfcRelConnectsPorts extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedPort = RelatedPort; - this.RealizingElement = RealizingElement; - this.type = 3190031847; - } - } - IFC42.IfcRelConnectsPorts = IfcRelConnectsPorts; - class IfcRelConnectsStructuralActivity extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralActivity = RelatedStructuralActivity; - this.type = 2127690289; - } - } - IFC42.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; - class IfcRelConnectsStructuralMember extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 1638771189; - } - } - IFC42.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; - class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.ConnectionConstraint = ConnectionConstraint; - this.type = 504942748; - } - } - IFC42.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; - class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RealizingElements = RealizingElements; - this.ConnectionType = ConnectionType; - this.type = 3678494232; - } - } - IFC42.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; - class IfcRelContainedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 3242617779; - } - } - IFC42.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; - class IfcRelCoversBldgElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedCoverings = RelatedCoverings; - this.type = 886880790; - } - } - IFC42.IfcRelCoversBldgElements = IfcRelCoversBldgElements; - class IfcRelCoversSpaces extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedCoverings = RelatedCoverings; - this.type = 2802773753; - } - } - IFC42.IfcRelCoversSpaces = IfcRelCoversSpaces; - class IfcRelDeclares extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingContext = RelatingContext; - this.RelatedDefinitions = RelatedDefinitions; - this.type = 2565941209; - } - } - IFC42.IfcRelDeclares = IfcRelDeclares; - class IfcRelDecomposes extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2551354335; - } - } - IFC42.IfcRelDecomposes = IfcRelDecomposes; - class IfcRelDefines extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 693640335; - } - } - IFC42.IfcRelDefines = IfcRelDefines; - class IfcRelDefinesByObject extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingObject = RelatingObject; - this.type = 1462361463; - } - } - IFC42.IfcRelDefinesByObject = IfcRelDefinesByObject; - class IfcRelDefinesByProperties extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.type = 4186316022; - } - } - IFC42.IfcRelDefinesByProperties = IfcRelDefinesByProperties; - class IfcRelDefinesByTemplate extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedPropertySets = RelatedPropertySets; - this.RelatingTemplate = RelatingTemplate; - this.type = 307848117; - } - } - IFC42.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; - class IfcRelDefinesByType extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingType = RelatingType; - this.type = 781010003; - } - } - IFC42.IfcRelDefinesByType = IfcRelDefinesByType; - class IfcRelFillsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingOpeningElement = RelatingOpeningElement; - this.RelatedBuildingElement = RelatedBuildingElement; - this.type = 3940055652; - } - } - IFC42.IfcRelFillsElement = IfcRelFillsElement; - class IfcRelFlowControlElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedControlElements = RelatedControlElements; - this.RelatingFlowElement = RelatingFlowElement; - this.type = 279856033; - } - } - IFC42.IfcRelFlowControlElements = IfcRelFlowControlElements; - class IfcRelInterferesElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.InterferenceGeometry = InterferenceGeometry; - this.InterferenceType = InterferenceType; - this.ImpliedOrder = ImpliedOrder; - this.type = 427948657; - } - } - IFC42.IfcRelInterferesElements = IfcRelInterferesElements; - class IfcRelNests extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 3268803585; - } - } - IFC42.IfcRelNests = IfcRelNests; - class IfcRelProjectsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedFeatureElement = RelatedFeatureElement; - this.type = 750771296; - } - } - IFC42.IfcRelProjectsElement = IfcRelProjectsElement; - class IfcRelReferencedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 1245217292; - } - } - IFC42.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; - class IfcRelSequence extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingProcess = RelatingProcess; - this.RelatedProcess = RelatedProcess; - this.TimeLag = TimeLag; - this.SequenceType = SequenceType; - this.UserDefinedSequenceType = UserDefinedSequenceType; - this.type = 4122056220; - } - } - IFC42.IfcRelSequence = IfcRelSequence; - class IfcRelServicesBuildings extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSystem = RelatingSystem; - this.RelatedBuildings = RelatedBuildings; - this.type = 366585022; - } - } - IFC42.IfcRelServicesBuildings = IfcRelServicesBuildings; - class IfcRelSpaceBoundary extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.type = 3451746338; - } - } - IFC42.IfcRelSpaceBoundary = IfcRelSpaceBoundary; - class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.type = 3523091289; - } - } - IFC42.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; - class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.CorrespondingBoundary = CorrespondingBoundary; - this.type = 1521410863; - } - } - IFC42.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; - class IfcRelVoidsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedOpeningElement = RelatedOpeningElement; - this.type = 1401173127; - } - } - IFC42.IfcRelVoidsElement = IfcRelVoidsElement; - class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { - constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { - super(expressID, Transition, SameSense, ParentCurve); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.ParamLength = ParamLength; - this.type = 816062949; - } - } - IFC42.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; - class IfcResource extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2914609552; - } - } - IFC42.IfcResource = IfcResource; - class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.type = 1856042241; - } - } - IFC42.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; - class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { - super(expressID, SweptArea, Position, Axis, Angle); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.EndSweptArea = EndSweptArea; - this.type = 3243963512; - } - } - IFC42.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; - class IfcRightCircularCone extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, BottomRadius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.BottomRadius = BottomRadius; - this.type = 4158566097; - } - } - IFC42.IfcRightCircularCone = IfcRightCircularCone; - class IfcRightCircularCylinder extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, Radius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.Radius = Radius; - this.type = 3626867408; - } - } - IFC42.IfcRightCircularCylinder = IfcRightCircularCylinder; - class IfcSimplePropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.PrimaryMeasureType = PrimaryMeasureType; - this.SecondaryMeasureType = SecondaryMeasureType; - this.Enumerators = Enumerators; - this.PrimaryUnit = PrimaryUnit; - this.SecondaryUnit = SecondaryUnit; - this.Expression = Expression; - this.AccessState = AccessState; - this.type = 3663146110; - } - } - IFC42.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; - class IfcSpatialElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 1412071761; - } - } - IFC42.IfcSpatialElement = IfcSpatialElement; - class IfcSpatialElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 710998568; - } - } - IFC42.IfcSpatialElementType = IfcSpatialElementType; - class IfcSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 2706606064; - } - } - IFC42.IfcSpatialStructureElement = IfcSpatialStructureElement; - class IfcSpatialStructureElementType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893378262; - } - } - IFC42.IfcSpatialStructureElementType = IfcSpatialStructureElementType; - class IfcSpatialZone extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 463610769; - } - } - IFC42.IfcSpatialZone = IfcSpatialZone; - class IfcSpatialZoneType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 2481509218; - } - } - IFC42.IfcSpatialZoneType = IfcSpatialZoneType; - class IfcSphere extends IfcCsgPrimitive3D { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 451544542; - } - } - IFC42.IfcSphere = IfcSphere; - class IfcSphericalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 4015995234; - } - } - IFC42.IfcSphericalSurface = IfcSphericalSurface; - class IfcStructuralActivity extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3544373492; - } - } - IFC42.IfcStructuralActivity = IfcStructuralActivity; - class IfcStructuralItem extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3136571912; - } - } - IFC42.IfcStructuralItem = IfcStructuralItem; - class IfcStructuralMember extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 530289379; - } - } - IFC42.IfcStructuralMember = IfcStructuralMember; - class IfcStructuralReaction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3689010777; - } - } - IFC42.IfcStructuralReaction = IfcStructuralReaction; - class IfcStructuralSurfaceMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 3979015343; - } - } - IFC42.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; - class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 2218152070; - } - } - IFC42.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; - class IfcStructuralSurfaceReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 603775116; - } - } - IFC42.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; - class IfcSubContractResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4095615324; - } - } - IFC42.IfcSubContractResourceType = IfcSubContractResourceType; - class IfcSurfaceCurve extends IfcCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 699246055; - } - } - IFC42.IfcSurfaceCurve = IfcSurfaceCurve; - class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.ReferenceSurface = ReferenceSurface; - this.type = 2028607225; - } - } - IFC42.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; - class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 2809605785; - } - } - IFC42.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; - class IfcSurfaceOfRevolution extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, AxisPosition) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.AxisPosition = AxisPosition; - this.type = 4124788165; - } - } - IFC42.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; - class IfcSystemFurnitureElementType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1580310250; - } - } - IFC42.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; - class IfcTask extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.TaskTime = TaskTime; - this.PredefinedType = PredefinedType; - this.type = 3473067441; - } - } - IFC42.IfcTask = IfcTask; - class IfcTaskType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.WorkMethod = WorkMethod; - this.type = 3206491090; - } - } - IFC42.IfcTaskType = IfcTaskType; - class IfcTessellatedFaceSet extends IfcTessellatedItem { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 2387106220; - } - } - IFC42.IfcTessellatedFaceSet = IfcTessellatedFaceSet; - class IfcToroidalSurface extends IfcElementarySurface { - constructor(expressID, Position, MajorRadius, MinorRadius) { - super(expressID, Position); - this.Position = Position; - this.MajorRadius = MajorRadius; - this.MinorRadius = MinorRadius; - this.type = 1935646853; - } - } - IFC42.IfcToroidalSurface = IfcToroidalSurface; - class IfcTransportElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2097647324; - } - } - IFC42.IfcTransportElementType = IfcTransportElementType; - class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Normals, Closed, CoordIndex, PnIndex) { - super(expressID, Coordinates); - this.Coordinates = Coordinates; - this.Normals = Normals; - this.Closed = Closed; - this.CoordIndex = CoordIndex; - this.PnIndex = PnIndex; - this.type = 2916149573; - } - } - IFC42.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; - class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.TransomThickness = TransomThickness; - this.MullionThickness = MullionThickness; - this.FirstTransomOffset = FirstTransomOffset; - this.SecondTransomOffset = SecondTransomOffset; - this.FirstMullionOffset = FirstMullionOffset; - this.SecondMullionOffset = SecondMullionOffset; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningOffset = LiningOffset; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 336235671; - } - } - IFC42.IfcWindowLiningProperties = IfcWindowLiningProperties; - class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 512836454; - } - } - IFC42.IfcWindowPanelProperties = IfcWindowPanelProperties; - class IfcActor extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.type = 2296667514; - } - } - IFC42.IfcActor = IfcActor; - class IfcAdvancedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 1635779807; - } - } - IFC42.IfcAdvancedBrep = IfcAdvancedBrep; - class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 2603310189; - } - } - IFC42.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; - class IfcAnnotation extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1674181508; - } - } - IFC42.IfcAnnotation = IfcAnnotation; - class IfcBSplineSurface extends IfcBoundedSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { - super(expressID); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.type = 2887950389; - } - } - IFC42.IfcBSplineSurface = IfcBSplineSurface; - class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.type = 167062518; - } - } - IFC42.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; - class IfcBlock extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, ZLength) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.ZLength = ZLength; - this.type = 1334484129; - } - } - IFC42.IfcBlock = IfcBlock; - class IfcBooleanClippingResult extends IfcBooleanResult { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID, Operator, FirstOperand, SecondOperand); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 3649129432; - } - } - IFC42.IfcBooleanClippingResult = IfcBooleanClippingResult; - class IfcBoundedCurve extends IfcCurve { - constructor(expressID) { - super(expressID); - this.type = 1260505505; - } - } - IFC42.IfcBoundedCurve = IfcBoundedCurve; - class IfcBuilding extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.ElevationOfRefHeight = ElevationOfRefHeight; - this.ElevationOfTerrain = ElevationOfTerrain; - this.BuildingAddress = BuildingAddress; - this.type = 4031249490; - } - } - IFC42.IfcBuilding = IfcBuilding; - class IfcBuildingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1950629157; - } - } - IFC42.IfcBuildingElementType = IfcBuildingElementType; - class IfcBuildingStorey extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.Elevation = Elevation; - this.type = 3124254112; - } - } - IFC42.IfcBuildingStorey = IfcBuildingStorey; - class IfcChimneyType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2197970202; - } - } - IFC42.IfcChimneyType = IfcChimneyType; - class IfcCircleHollowProfileDef extends IfcCircleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { - super(expressID, ProfileType, ProfileName, Position, Radius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.WallThickness = WallThickness; - this.type = 2937912522; - } - } - IFC42.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; - class IfcCivilElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893394355; - } - } - IFC42.IfcCivilElementType = IfcCivilElementType; - class IfcColumnType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 300633059; - } - } - IFC42.IfcColumnType = IfcColumnType; - class IfcComplexPropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.TemplateType = TemplateType; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 3875453745; - } - } - IFC42.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; - class IfcCompositeCurve extends IfcBoundedCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 3732776249; - } - } - IFC42.IfcCompositeCurve = IfcCompositeCurve; - class IfcCompositeCurveOnSurface extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 15328376; - } - } - IFC42.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; - class IfcConic extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2510884976; - } - } - IFC42.IfcConic = IfcConic; - class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 2185764099; - } - } - IFC42.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; - class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4105962743; - } - } - IFC42.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; - class IfcConstructionProductResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1525564444; - } - } - IFC42.IfcConstructionProductResourceType = IfcConstructionProductResourceType; - class IfcConstructionResource extends IfcResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2559216714; - } - } - IFC42.IfcConstructionResource = IfcConstructionResource; - class IfcControl extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.type = 3293443760; - } - } - IFC42.IfcControl = IfcControl; - class IfcCostItem extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.CostValues = CostValues; - this.CostQuantities = CostQuantities; - this.type = 3895139033; - } - } - IFC42.IfcCostItem = IfcCostItem; - class IfcCostSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.SubmittedOn = SubmittedOn; - this.UpdateDate = UpdateDate; - this.type = 1419761937; - } - } - IFC42.IfcCostSchedule = IfcCostSchedule; - class IfcCoveringType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1916426348; - } - } - IFC42.IfcCoveringType = IfcCoveringType; - class IfcCrewResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3295246426; - } - } - IFC42.IfcCrewResource = IfcCrewResource; - class IfcCurtainWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1457835157; - } - } - IFC42.IfcCurtainWallType = IfcCurtainWallType; - class IfcCylindricalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 1213902940; - } - } - IFC42.IfcCylindricalSurface = IfcCylindricalSurface; - class IfcDistributionElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3256556792; - } - } - IFC42.IfcDistributionElementType = IfcDistributionElementType; - class IfcDistributionFlowElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3849074793; - } - } - IFC42.IfcDistributionFlowElementType = IfcDistributionFlowElementType; - class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.ThresholdDepth = ThresholdDepth; - this.ThresholdThickness = ThresholdThickness; - this.TransomThickness = TransomThickness; - this.TransomOffset = TransomOffset; - this.LiningOffset = LiningOffset; - this.ThresholdOffset = ThresholdOffset; - this.CasingThickness = CasingThickness; - this.CasingDepth = CasingDepth; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 2963535650; - } - } - IFC42.IfcDoorLiningProperties = IfcDoorLiningProperties; - class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PanelDepth = PanelDepth; - this.PanelOperation = PanelOperation; - this.PanelWidth = PanelWidth; - this.PanelPosition = PanelPosition; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 1714330368; - } - } - IFC42.IfcDoorPanelProperties = IfcDoorPanelProperties; - class IfcDoorType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 2323601079; - } - } - IFC42.IfcDoorType = IfcDoorType; - class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 445594917; - } - } - IFC42.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; - class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4006246654; - } - } - IFC42.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; - class IfcElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1758889154; - } - } - IFC42.IfcElement = IfcElement; - class IfcElementAssembly extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 4123344466; - } - } - IFC42.IfcElementAssembly = IfcElementAssembly; - class IfcElementAssemblyType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2397081782; - } - } - IFC42.IfcElementAssemblyType = IfcElementAssemblyType; - class IfcElementComponent extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1623761950; - } - } - IFC42.IfcElementComponent = IfcElementComponent; - class IfcElementComponentType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2590856083; - } - } - IFC42.IfcElementComponentType = IfcElementComponentType; - class IfcEllipse extends IfcConic { - constructor(expressID, Position, SemiAxis1, SemiAxis2) { - super(expressID, Position); - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 1704287377; - } - } - IFC42.IfcEllipse = IfcEllipse; - class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2107101300; - } - } - IFC42.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; - class IfcEngineType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 132023988; - } - } - IFC42.IfcEngineType = IfcEngineType; - class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3174744832; - } - } - IFC42.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; - class IfcEvaporatorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3390157468; - } - } - IFC42.IfcEvaporatorType = IfcEvaporatorType; - class IfcEvent extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.EventOccurenceTime = EventOccurenceTime; - this.type = 4148101412; - } - } - IFC42.IfcEvent = IfcEvent; - class IfcExternalSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 2853485674; - } - } - IFC42.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; - class IfcFacetedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 807026263; - } - } - IFC42.IfcFacetedBrep = IfcFacetedBrep; - class IfcFacetedBrepWithVoids extends IfcFacetedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 3737207727; - } - } - IFC42.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; - class IfcFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 647756555; - } - } - IFC42.IfcFastener = IfcFastener; - class IfcFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2489546625; - } - } - IFC42.IfcFastenerType = IfcFastenerType; - class IfcFeatureElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2827207264; - } - } - IFC42.IfcFeatureElement = IfcFeatureElement; - class IfcFeatureElementAddition extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2143335405; - } - } - IFC42.IfcFeatureElementAddition = IfcFeatureElementAddition; - class IfcFeatureElementSubtraction extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1287392070; - } - } - IFC42.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; - class IfcFlowControllerType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3907093117; - } - } - IFC42.IfcFlowControllerType = IfcFlowControllerType; - class IfcFlowFittingType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3198132628; - } - } - IFC42.IfcFlowFittingType = IfcFlowFittingType; - class IfcFlowMeterType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3815607619; - } - } - IFC42.IfcFlowMeterType = IfcFlowMeterType; - class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1482959167; - } - } - IFC42.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; - class IfcFlowSegmentType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1834744321; - } - } - IFC42.IfcFlowSegmentType = IfcFlowSegmentType; - class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1339347760; - } - } - IFC42.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; - class IfcFlowTerminalType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2297155007; - } - } - IFC42.IfcFlowTerminalType = IfcFlowTerminalType; - class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3009222698; - } - } - IFC42.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; - class IfcFootingType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1893162501; - } - } - IFC42.IfcFootingType = IfcFootingType; - class IfcFurnishingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 263784265; - } - } - IFC42.IfcFurnishingElement = IfcFurnishingElement; - class IfcFurniture extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1509553395; - } - } - IFC42.IfcFurniture = IfcFurniture; - class IfcGeographicElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3493046030; - } - } - IFC42.IfcGeographicElement = IfcGeographicElement; - class IfcGrid extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.UAxes = UAxes; - this.VAxes = VAxes; - this.WAxes = WAxes; - this.PredefinedType = PredefinedType; - this.type = 3009204131; - } - } - IFC42.IfcGrid = IfcGrid; - class IfcGroup extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2706460486; - } - } - IFC42.IfcGroup = IfcGroup; - class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1251058090; - } - } - IFC42.IfcHeatExchangerType = IfcHeatExchangerType; - class IfcHumidifierType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1806887404; - } - } - IFC42.IfcHumidifierType = IfcHumidifierType; - class IfcIndexedPolyCurve extends IfcBoundedCurve { - constructor(expressID, Points, Segments, SelfIntersect) { - super(expressID); - this.Points = Points; - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 2571569899; - } - } - IFC42.IfcIndexedPolyCurve = IfcIndexedPolyCurve; - class IfcInterceptorType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3946677679; - } - } - IFC42.IfcInterceptorType = IfcInterceptorType; - class IfcIntersectionCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 3113134337; - } - } - IFC42.IfcIntersectionCurve = IfcIntersectionCurve; - class IfcInventory extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.Jurisdiction = Jurisdiction; - this.ResponsiblePersons = ResponsiblePersons; - this.LastUpdateDate = LastUpdateDate; - this.CurrentValue = CurrentValue; - this.OriginalValue = OriginalValue; - this.type = 2391368822; - } - } - IFC42.IfcInventory = IfcInventory; - class IfcJunctionBoxType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4288270099; - } - } - IFC42.IfcJunctionBoxType = IfcJunctionBoxType; - class IfcLaborResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3827777499; - } - } - IFC42.IfcLaborResource = IfcLaborResource; - class IfcLampType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1051575348; - } - } - IFC42.IfcLampType = IfcLampType; - class IfcLightFixtureType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1161773419; - } - } - IFC42.IfcLightFixtureType = IfcLightFixtureType; - class IfcMechanicalFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.PredefinedType = PredefinedType; - this.type = 377706215; - } - } - IFC42.IfcMechanicalFastener = IfcMechanicalFastener; - class IfcMechanicalFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.type = 2108223431; - } - } - IFC42.IfcMechanicalFastenerType = IfcMechanicalFastenerType; - class IfcMedicalDeviceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1114901282; - } - } - IFC42.IfcMedicalDeviceType = IfcMedicalDeviceType; - class IfcMemberType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3181161470; - } - } - IFC42.IfcMemberType = IfcMemberType; - class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 977012517; - } - } - IFC42.IfcMotorConnectionType = IfcMotorConnectionType; - class IfcOccupant extends IfcActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.PredefinedType = PredefinedType; - this.type = 4143007308; - } - } - IFC42.IfcOccupant = IfcOccupant; - class IfcOpeningElement extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3588315303; - } - } - IFC42.IfcOpeningElement = IfcOpeningElement; - class IfcOpeningStandardCase extends IfcOpeningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3079942009; - } - } - IFC42.IfcOpeningStandardCase = IfcOpeningStandardCase; - class IfcOutletType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2837617999; - } - } - IFC42.IfcOutletType = IfcOutletType; - class IfcPerformanceHistory extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LifeCyclePhase = LifeCyclePhase; - this.PredefinedType = PredefinedType; - this.type = 2382730787; - } - } - IFC42.IfcPerformanceHistory = IfcPerformanceHistory; - class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 3566463478; - } - } - IFC42.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; - class IfcPermit extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3327091369; - } - } - IFC42.IfcPermit = IfcPermit; - class IfcPileType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1158309216; - } - } - IFC42.IfcPileType = IfcPileType; - class IfcPipeFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 804291784; - } - } - IFC42.IfcPipeFittingType = IfcPipeFittingType; - class IfcPipeSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4231323485; - } - } - IFC42.IfcPipeSegmentType = IfcPipeSegmentType; - class IfcPlateType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4017108033; - } - } - IFC42.IfcPlateType = IfcPlateType; - class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Closed, Faces, PnIndex) { - super(expressID, Coordinates); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Faces = Faces; - this.PnIndex = PnIndex; - this.type = 2839578677; - } - } - IFC42.IfcPolygonalFaceSet = IfcPolygonalFaceSet; - class IfcPolyline extends IfcBoundedCurve { - constructor(expressID, Points) { - super(expressID); - this.Points = Points; - this.type = 3724593414; - } - } - IFC42.IfcPolyline = IfcPolyline; - class IfcPort extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3740093272; - } - } - IFC42.IfcPort = IfcPort; - class IfcProcedure extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.type = 2744685151; - } - } - IFC42.IfcProcedure = IfcProcedure; - class IfcProjectOrder extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 2904328755; - } - } - IFC42.IfcProjectOrder = IfcProjectOrder; - class IfcProjectionElement extends IfcFeatureElementAddition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3651124850; - } - } - IFC42.IfcProjectionElement = IfcProjectionElement; - class IfcProtectiveDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1842657554; - } - } - IFC42.IfcProtectiveDeviceType = IfcProtectiveDeviceType; - class IfcPumpType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2250791053; - } - } - IFC42.IfcPumpType = IfcPumpType; - class IfcRailingType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2893384427; - } - } - IFC42.IfcRailingType = IfcRailingType; - class IfcRampFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2324767716; - } - } - IFC42.IfcRampFlightType = IfcRampFlightType; - class IfcRampType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1469900589; - } - } - IFC42.IfcRampType = IfcRampType; - class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 683857671; - } - } - IFC42.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; - class IfcReinforcingElement extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 3027567501; - } - } - IFC42.IfcReinforcingElement = IfcReinforcingElement; - class IfcReinforcingElementType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 964333572; - } - } - IFC42.IfcReinforcingElementType = IfcReinforcingElementType; - class IfcReinforcingMesh extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.PredefinedType = PredefinedType; - this.type = 2320036040; - } - } - IFC42.IfcReinforcingMesh = IfcReinforcingMesh; - class IfcReinforcingMeshType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2310774935; - } - } - IFC42.IfcReinforcingMeshType = IfcReinforcingMeshType; - class IfcRelAggregates extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 160246688; - } - } - IFC42.IfcRelAggregates = IfcRelAggregates; - class IfcRoofType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2781568857; - } - } - IFC42.IfcRoofType = IfcRoofType; - class IfcSanitaryTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1768891740; - } - } - IFC42.IfcSanitaryTerminalType = IfcSanitaryTerminalType; - class IfcSeamCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 2157484638; - } - } - IFC42.IfcSeamCurve = IfcSeamCurve; - class IfcShadingDeviceType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4074543187; - } - } - IFC42.IfcShadingDeviceType = IfcShadingDeviceType; - class IfcSite extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.RefLatitude = RefLatitude; - this.RefLongitude = RefLongitude; - this.RefElevation = RefElevation; - this.LandTitleNumber = LandTitleNumber; - this.SiteAddress = SiteAddress; - this.type = 4097777520; - } - } - IFC42.IfcSite = IfcSite; - class IfcSlabType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2533589738; - } - } - IFC42.IfcSlabType = IfcSlabType; - class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1072016465; - } - } - IFC42.IfcSolarDeviceType = IfcSolarDeviceType; - class IfcSpace extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.ElevationWithFlooring = ElevationWithFlooring; - this.type = 3856911033; - } - } - IFC42.IfcSpace = IfcSpace; - class IfcSpaceHeaterType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1305183839; - } - } - IFC42.IfcSpaceHeaterType = IfcSpaceHeaterType; - class IfcSpaceType extends IfcSpatialStructureElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 3812236995; - } - } - IFC42.IfcSpaceType = IfcSpaceType; - class IfcStackTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3112655638; - } - } - IFC42.IfcStackTerminalType = IfcStackTerminalType; - class IfcStairFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1039846685; - } - } - IFC42.IfcStairFlightType = IfcStairFlightType; - class IfcStairType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 338393293; - } - } - IFC42.IfcStairType = IfcStairType; - class IfcStructuralAction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 682877961; - } - } - IFC42.IfcStructuralAction = IfcStructuralAction; - class IfcStructuralConnection extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1179482911; - } - } - IFC42.IfcStructuralConnection = IfcStructuralConnection; - class IfcStructuralCurveAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1004757350; - } - } - IFC42.IfcStructuralCurveAction = IfcStructuralCurveAction; - class IfcStructuralCurveConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.Axis = Axis; - this.type = 4243806635; - } - } - IFC42.IfcStructuralCurveConnection = IfcStructuralCurveConnection; - class IfcStructuralCurveMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 214636428; - } - } - IFC42.IfcStructuralCurveMember = IfcStructuralCurveMember; - class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 2445595289; - } - } - IFC42.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; - class IfcStructuralCurveReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 2757150158; - } - } - IFC42.IfcStructuralCurveReaction = IfcStructuralCurveReaction; - class IfcStructuralLinearAction extends IfcStructuralCurveAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1807405624; - } - } - IFC42.IfcStructuralLinearAction = IfcStructuralLinearAction; - class IfcStructuralLoadGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.type = 1252848954; - } - } - IFC42.IfcStructuralLoadGroup = IfcStructuralLoadGroup; - class IfcStructuralPointAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 2082059205; - } - } - IFC42.IfcStructuralPointAction = IfcStructuralPointAction; - class IfcStructuralPointConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 734778138; - } - } - IFC42.IfcStructuralPointConnection = IfcStructuralPointConnection; - class IfcStructuralPointReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 1235345126; - } - } - IFC42.IfcStructuralPointReaction = IfcStructuralPointReaction; - class IfcStructuralResultGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheoryType = TheoryType; - this.ResultForLoadGroup = ResultForLoadGroup; - this.IsLinear = IsLinear; - this.type = 2986769608; - } - } - IFC42.IfcStructuralResultGroup = IfcStructuralResultGroup; - class IfcStructuralSurfaceAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 3657597509; - } - } - IFC42.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; - class IfcStructuralSurfaceConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1975003073; - } - } - IFC42.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; - class IfcSubContractResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 148013059; - } - } - IFC42.IfcSubContractResource = IfcSubContractResource; - class IfcSurfaceFeature extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3101698114; - } - } - IFC42.IfcSurfaceFeature = IfcSurfaceFeature; - class IfcSwitchingDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2315554128; - } - } - IFC42.IfcSwitchingDeviceType = IfcSwitchingDeviceType; - class IfcSystem extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2254336722; - } - } - IFC42.IfcSystem = IfcSystem; - class IfcSystemFurnitureElement extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 413509423; - } - } - IFC42.IfcSystemFurnitureElement = IfcSystemFurnitureElement; - class IfcTankType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 5716631; - } - } - IFC42.IfcTankType = IfcTankType; - class IfcTendon extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.TensionForce = TensionForce; - this.PreStress = PreStress; - this.FrictionCoefficient = FrictionCoefficient; - this.AnchorageSlip = AnchorageSlip; - this.MinCurvatureRadius = MinCurvatureRadius; - this.type = 3824725483; - } - } - IFC42.IfcTendon = IfcTendon; - class IfcTendonAnchor extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.type = 2347447852; - } - } - IFC42.IfcTendonAnchor = IfcTendonAnchor; - class IfcTendonAnchorType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3081323446; - } - } - IFC42.IfcTendonAnchorType = IfcTendonAnchorType; - class IfcTendonType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.SheathDiameter = SheathDiameter; - this.type = 2415094496; - } - } - IFC42.IfcTendonType = IfcTendonType; - class IfcTransformerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1692211062; - } - } - IFC42.IfcTransformerType = IfcTransformerType; - class IfcTransportElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1620046519; - } - } - IFC42.IfcTransportElement = IfcTransportElement; - class IfcTrimmedCurve extends IfcBoundedCurve { - constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Trim1 = Trim1; - this.Trim2 = Trim2; - this.SenseAgreement = SenseAgreement; - this.MasterRepresentation = MasterRepresentation; - this.type = 3593883385; - } - } - IFC42.IfcTrimmedCurve = IfcTrimmedCurve; - class IfcTubeBundleType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1600972822; - } - } - IFC42.IfcTubeBundleType = IfcTubeBundleType; - class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1911125066; - } - } - IFC42.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; - class IfcValveType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 728799441; - } - } - IFC42.IfcValveType = IfcValveType; - class IfcVibrationIsolator extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391383451; - } - } - IFC42.IfcVibrationIsolator = IfcVibrationIsolator; - class IfcVibrationIsolatorType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3313531582; - } - } - IFC42.IfcVibrationIsolatorType = IfcVibrationIsolatorType; - class IfcVirtualElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2769231204; - } - } - IFC42.IfcVirtualElement = IfcVirtualElement; - class IfcVoidingFeature extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 926996030; - } - } - IFC42.IfcVoidingFeature = IfcVoidingFeature; - class IfcWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1898987631; - } - } - IFC42.IfcWallType = IfcWallType; - class IfcWasteTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1133259667; - } - } - IFC42.IfcWasteTerminalType = IfcWasteTerminalType; - class IfcWindowType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 4009809668; - } - } - IFC42.IfcWindowType = IfcWindowType; - class IfcWorkCalendar extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.WorkingTimes = WorkingTimes; - this.ExceptionTimes = ExceptionTimes; - this.PredefinedType = PredefinedType; - this.type = 4088093105; - } - } - IFC42.IfcWorkCalendar = IfcWorkCalendar; - class IfcWorkControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.type = 1028945134; - } - } - IFC42.IfcWorkControl = IfcWorkControl; - class IfcWorkPlan extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 4218914973; - } - } - IFC42.IfcWorkPlan = IfcWorkPlan; - class IfcWorkSchedule extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 3342526732; - } - } - IFC42.IfcWorkSchedule = IfcWorkSchedule; - class IfcZone extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.type = 1033361043; - } - } - IFC42.IfcZone = IfcZone; - class IfcActionRequest extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3821786052; - } - } - IFC42.IfcActionRequest = IfcActionRequest; - class IfcAirTerminalBoxType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1411407467; - } - } - IFC42.IfcAirTerminalBoxType = IfcAirTerminalBoxType; - class IfcAirTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3352864051; - } - } - IFC42.IfcAirTerminalType = IfcAirTerminalType; - class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1871374353; - } - } - IFC42.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; - class IfcAsset extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.OriginalValue = OriginalValue; - this.CurrentValue = CurrentValue; - this.TotalReplacementCost = TotalReplacementCost; - this.Owner = Owner; - this.User = User; - this.ResponsiblePerson = ResponsiblePerson; - this.IncorporationDate = IncorporationDate; - this.DepreciatedValue = DepreciatedValue; - this.type = 3460190687; - } - } - IFC42.IfcAsset = IfcAsset; - class IfcAudioVisualApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1532957894; - } - } - IFC42.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; - class IfcBSplineCurve extends IfcBoundedCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1967976161; - } - } - IFC42.IfcBSplineCurve = IfcBSplineCurve; - class IfcBSplineCurveWithKnots extends IfcBSplineCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.type = 2461110595; - } - } - IFC42.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; - class IfcBeamType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 819618141; - } - } - IFC42.IfcBeamType = IfcBeamType; - class IfcBoilerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 231477066; - } - } - IFC42.IfcBoilerType = IfcBoilerType; - class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 1136057603; - } - } - IFC42.IfcBoundaryCurve = IfcBoundaryCurve; - class IfcBuildingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3299480353; - } - } - IFC42.IfcBuildingElement = IfcBuildingElement; - class IfcBuildingElementPart extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2979338954; - } - } - IFC42.IfcBuildingElementPart = IfcBuildingElementPart; - class IfcBuildingElementPartType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 39481116; - } - } - IFC42.IfcBuildingElementPartType = IfcBuildingElementPartType; - class IfcBuildingElementProxy extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1095909175; - } - } - IFC42.IfcBuildingElementProxy = IfcBuildingElementProxy; - class IfcBuildingElementProxyType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1909888760; - } - } - IFC42.IfcBuildingElementProxyType = IfcBuildingElementProxyType; - class IfcBuildingSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 1177604601; - } - } - IFC42.IfcBuildingSystem = IfcBuildingSystem; - class IfcBurnerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2188180465; - } - } - IFC42.IfcBurnerType = IfcBurnerType; - class IfcCableCarrierFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 395041908; - } - } - IFC42.IfcCableCarrierFittingType = IfcCableCarrierFittingType; - class IfcCableCarrierSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3293546465; - } - } - IFC42.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; - class IfcCableFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2674252688; - } - } - IFC42.IfcCableFittingType = IfcCableFittingType; - class IfcCableSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1285652485; - } - } - IFC42.IfcCableSegmentType = IfcCableSegmentType; - class IfcChillerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2951183804; - } - } - IFC42.IfcChillerType = IfcChillerType; - class IfcChimney extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3296154744; - } - } - IFC42.IfcChimney = IfcChimney; - class IfcCircle extends IfcConic { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 2611217952; - } - } - IFC42.IfcCircle = IfcCircle; - class IfcCivilElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1677625105; - } - } - IFC42.IfcCivilElement = IfcCivilElement; - class IfcCoilType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2301859152; - } - } - IFC42.IfcCoilType = IfcCoilType; - class IfcColumn extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 843113511; - } - } - IFC42.IfcColumn = IfcColumn; - class IfcColumnStandardCase extends IfcColumn { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 905975707; - } - } - IFC42.IfcColumnStandardCase = IfcColumnStandardCase; - class IfcCommunicationsApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 400855858; - } - } - IFC42.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; - class IfcCompressorType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3850581409; - } - } - IFC42.IfcCompressorType = IfcCompressorType; - class IfcCondenserType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2816379211; - } - } - IFC42.IfcCondenserType = IfcCondenserType; - class IfcConstructionEquipmentResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3898045240; - } - } - IFC42.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; - class IfcConstructionMaterialResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1060000209; - } - } - IFC42.IfcConstructionMaterialResource = IfcConstructionMaterialResource; - class IfcConstructionProductResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 488727124; - } - } - IFC42.IfcConstructionProductResource = IfcConstructionProductResource; - class IfcCooledBeamType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 335055490; - } - } - IFC42.IfcCooledBeamType = IfcCooledBeamType; - class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2954562838; - } - } - IFC42.IfcCoolingTowerType = IfcCoolingTowerType; - class IfcCovering extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1973544240; - } - } - IFC42.IfcCovering = IfcCovering; - class IfcCurtainWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3495092785; - } - } - IFC42.IfcCurtainWall = IfcCurtainWall; - class IfcDamperType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3961806047; - } - } - IFC42.IfcDamperType = IfcDamperType; - class IfcDiscreteAccessory extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1335981549; - } - } - IFC42.IfcDiscreteAccessory = IfcDiscreteAccessory; - class IfcDiscreteAccessoryType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2635815018; - } - } - IFC42.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; - class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1599208980; - } - } - IFC42.IfcDistributionChamberElementType = IfcDistributionChamberElementType; - class IfcDistributionControlElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2063403501; - } - } - IFC42.IfcDistributionControlElementType = IfcDistributionControlElementType; - class IfcDistributionElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1945004755; - } - } - IFC42.IfcDistributionElement = IfcDistributionElement; - class IfcDistributionFlowElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3040386961; - } - } - IFC42.IfcDistributionFlowElement = IfcDistributionFlowElement; - class IfcDistributionPort extends IfcPort { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.FlowDirection = FlowDirection; - this.PredefinedType = PredefinedType; - this.SystemType = SystemType; - this.type = 3041715199; - } - } - IFC42.IfcDistributionPort = IfcDistributionPort; - class IfcDistributionSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 3205830791; - } - } - IFC42.IfcDistributionSystem = IfcDistributionSystem; - class IfcDoor extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 395920057; - } - } - IFC42.IfcDoor = IfcDoor; - class IfcDoorStandardCase extends IfcDoor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 3242481149; - } - } - IFC42.IfcDoorStandardCase = IfcDoorStandardCase; - class IfcDuctFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 869906466; - } - } - IFC42.IfcDuctFittingType = IfcDuctFittingType; - class IfcDuctSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3760055223; - } - } - IFC42.IfcDuctSegmentType = IfcDuctSegmentType; - class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2030761528; - } - } - IFC42.IfcDuctSilencerType = IfcDuctSilencerType; - class IfcElectricApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 663422040; - } - } - IFC42.IfcElectricApplianceType = IfcElectricApplianceType; - class IfcElectricDistributionBoardType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2417008758; - } - } - IFC42.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; - class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3277789161; - } - } - IFC42.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; - class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1534661035; - } - } - IFC42.IfcElectricGeneratorType = IfcElectricGeneratorType; - class IfcElectricMotorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1217240411; - } - } - IFC42.IfcElectricMotorType = IfcElectricMotorType; - class IfcElectricTimeControlType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 712377611; - } - } - IFC42.IfcElectricTimeControlType = IfcElectricTimeControlType; - class IfcEnergyConversionDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1658829314; - } - } - IFC42.IfcEnergyConversionDevice = IfcEnergyConversionDevice; - class IfcEngine extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2814081492; - } - } - IFC42.IfcEngine = IfcEngine; - class IfcEvaporativeCooler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3747195512; - } - } - IFC42.IfcEvaporativeCooler = IfcEvaporativeCooler; - class IfcEvaporator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 484807127; - } - } - IFC42.IfcEvaporator = IfcEvaporator; - class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 1209101575; - } - } - IFC42.IfcExternalSpatialElement = IfcExternalSpatialElement; - class IfcFanType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 346874300; - } - } - IFC42.IfcFanType = IfcFanType; - class IfcFilterType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1810631287; - } - } - IFC42.IfcFilterType = IfcFilterType; - class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4222183408; - } - } - IFC42.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; - class IfcFlowController extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2058353004; - } - } - IFC42.IfcFlowController = IfcFlowController; - class IfcFlowFitting extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4278956645; - } - } - IFC42.IfcFlowFitting = IfcFlowFitting; - class IfcFlowInstrumentType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4037862832; - } - } - IFC42.IfcFlowInstrumentType = IfcFlowInstrumentType; - class IfcFlowMeter extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2188021234; - } - } - IFC42.IfcFlowMeter = IfcFlowMeter; - class IfcFlowMovingDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3132237377; - } - } - IFC42.IfcFlowMovingDevice = IfcFlowMovingDevice; - class IfcFlowSegment extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 987401354; - } - } - IFC42.IfcFlowSegment = IfcFlowSegment; - class IfcFlowStorageDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 707683696; - } - } - IFC42.IfcFlowStorageDevice = IfcFlowStorageDevice; - class IfcFlowTerminal extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2223149337; - } - } - IFC42.IfcFlowTerminal = IfcFlowTerminal; - class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3508470533; - } - } - IFC42.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; - class IfcFooting extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 900683007; - } - } - IFC42.IfcFooting = IfcFooting; - class IfcHeatExchanger extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3319311131; - } - } - IFC42.IfcHeatExchanger = IfcHeatExchanger; - class IfcHumidifier extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2068733104; - } - } - IFC42.IfcHumidifier = IfcHumidifier; - class IfcInterceptor extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4175244083; - } - } - IFC42.IfcInterceptor = IfcInterceptor; - class IfcJunctionBox extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2176052936; - } - } - IFC42.IfcJunctionBox = IfcJunctionBox; - class IfcLamp extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 76236018; - } - } - IFC42.IfcLamp = IfcLamp; - class IfcLightFixture extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 629592764; - } - } - IFC42.IfcLightFixture = IfcLightFixture; - class IfcMedicalDevice extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1437502449; - } - } - IFC42.IfcMedicalDevice = IfcMedicalDevice; - class IfcMember extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1073191201; - } - } - IFC42.IfcMember = IfcMember; - class IfcMemberStandardCase extends IfcMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1911478936; - } - } - IFC42.IfcMemberStandardCase = IfcMemberStandardCase; - class IfcMotorConnection extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2474470126; - } - } - IFC42.IfcMotorConnection = IfcMotorConnection; - class IfcOuterBoundaryCurve extends IfcBoundaryCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 144952367; - } - } - IFC42.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; - class IfcOutlet extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3694346114; - } - } - IFC42.IfcOutlet = IfcOutlet; - class IfcPile extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.ConstructionType = ConstructionType; - this.type = 1687234759; - } - } - IFC42.IfcPile = IfcPile; - class IfcPipeFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 310824031; - } - } - IFC42.IfcPipeFitting = IfcPipeFitting; - class IfcPipeSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3612865200; - } - } - IFC42.IfcPipeSegment = IfcPipeSegment; - class IfcPlate extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3171933400; - } - } - IFC42.IfcPlate = IfcPlate; - class IfcPlateStandardCase extends IfcPlate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1156407060; - } - } - IFC42.IfcPlateStandardCase = IfcPlateStandardCase; - class IfcProtectiveDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 738039164; - } - } - IFC42.IfcProtectiveDevice = IfcProtectiveDevice; - class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 655969474; - } - } - IFC42.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; - class IfcPump extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 90941305; - } - } - IFC42.IfcPump = IfcPump; - class IfcRailing extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2262370178; - } - } - IFC42.IfcRailing = IfcRailing; - class IfcRamp extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3024970846; - } - } - IFC42.IfcRamp = IfcRamp; - class IfcRampFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3283111854; - } - } - IFC42.IfcRampFlight = IfcRampFlight; - class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 1232101972; - } - } - IFC42.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; - class IfcReinforcingBar extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.PredefinedType = PredefinedType; - this.BarSurface = BarSurface; - this.type = 979691226; - } - } - IFC42.IfcReinforcingBar = IfcReinforcingBar; - class IfcReinforcingBarType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.BarSurface = BarSurface; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2572171363; - } - } - IFC42.IfcReinforcingBarType = IfcReinforcingBarType; - class IfcRoof extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2016517767; - } - } - IFC42.IfcRoof = IfcRoof; - class IfcSanitaryTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3053780830; - } - } - IFC42.IfcSanitaryTerminal = IfcSanitaryTerminal; - class IfcSensorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1783015770; - } - } - IFC42.IfcSensorType = IfcSensorType; - class IfcShadingDevice extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1329646415; - } - } - IFC42.IfcShadingDevice = IfcShadingDevice; - class IfcSlab extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1529196076; - } - } - IFC42.IfcSlab = IfcSlab; - class IfcSlabElementedCase extends IfcSlab { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3127900445; - } - } - IFC42.IfcSlabElementedCase = IfcSlabElementedCase; - class IfcSlabStandardCase extends IfcSlab { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3027962421; - } - } - IFC42.IfcSlabStandardCase = IfcSlabStandardCase; - class IfcSolarDevice extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3420628829; - } - } - IFC42.IfcSolarDevice = IfcSolarDevice; - class IfcSpaceHeater extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1999602285; - } - } - IFC42.IfcSpaceHeater = IfcSpaceHeater; - class IfcStackTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1404847402; - } - } - IFC42.IfcStackTerminal = IfcStackTerminal; - class IfcStair extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 331165859; - } - } - IFC42.IfcStair = IfcStair; - class IfcStairFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NumberOfRisers = NumberOfRisers; - this.NumberOfTreads = NumberOfTreads; - this.RiserHeight = RiserHeight; - this.TreadLength = TreadLength; - this.PredefinedType = PredefinedType; - this.type = 4252922144; - } - } - IFC42.IfcStairFlight = IfcStairFlight; - class IfcStructuralAnalysisModel extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.OrientationOf2DPlane = OrientationOf2DPlane; - this.LoadedBy = LoadedBy; - this.HasResults = HasResults; - this.SharedPlacement = SharedPlacement; - this.type = 2515109513; - } - } - IFC42.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; - class IfcStructuralLoadCase extends IfcStructuralLoadGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.SelfWeightCoefficients = SelfWeightCoefficients; - this.type = 385403989; - } - } - IFC42.IfcStructuralLoadCase = IfcStructuralLoadCase; - class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1621171031; - } - } - IFC42.IfcStructuralPlanarAction = IfcStructuralPlanarAction; - class IfcSwitchingDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1162798199; - } - } - IFC42.IfcSwitchingDevice = IfcSwitchingDevice; - class IfcTank extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 812556717; - } - } - IFC42.IfcTank = IfcTank; - class IfcTransformer extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3825984169; - } - } - IFC42.IfcTransformer = IfcTransformer; - class IfcTubeBundle extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3026737570; - } - } - IFC42.IfcTubeBundle = IfcTubeBundle; - class IfcUnitaryControlElementType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3179687236; - } - } - IFC42.IfcUnitaryControlElementType = IfcUnitaryControlElementType; - class IfcUnitaryEquipment extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4292641817; - } - } - IFC42.IfcUnitaryEquipment = IfcUnitaryEquipment; - class IfcValve extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4207607924; - } - } - IFC42.IfcValve = IfcValve; - class IfcWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391406946; - } - } - IFC42.IfcWall = IfcWall; - class IfcWallElementedCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4156078855; - } - } - IFC42.IfcWallElementedCase = IfcWallElementedCase; - class IfcWallStandardCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3512223829; - } - } - IFC42.IfcWallStandardCase = IfcWallStandardCase; - class IfcWasteTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4237592921; - } - } - IFC42.IfcWasteTerminal = IfcWasteTerminal; - class IfcWindow extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 3304561284; - } - } - IFC42.IfcWindow = IfcWindow; - class IfcWindowStandardCase extends IfcWindow { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 486154966; - } - } - IFC42.IfcWindowStandardCase = IfcWindowStandardCase; - class IfcActuatorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2874132201; - } - } - IFC42.IfcActuatorType = IfcActuatorType; - class IfcAirTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1634111441; - } - } - IFC42.IfcAirTerminal = IfcAirTerminal; - class IfcAirTerminalBox extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 177149247; - } - } - IFC42.IfcAirTerminalBox = IfcAirTerminalBox; - class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2056796094; - } - } - IFC42.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; - class IfcAlarmType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3001207471; - } - } - IFC42.IfcAlarmType = IfcAlarmType; - class IfcAudioVisualAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 277319702; - } - } - IFC42.IfcAudioVisualAppliance = IfcAudioVisualAppliance; - class IfcBeam extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 753842376; - } - } - IFC42.IfcBeam = IfcBeam; - class IfcBeamStandardCase extends IfcBeam { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2906023776; - } - } - IFC42.IfcBeamStandardCase = IfcBeamStandardCase; - class IfcBoiler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 32344328; - } - } - IFC42.IfcBoiler = IfcBoiler; - class IfcBurner extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2938176219; - } - } - IFC42.IfcBurner = IfcBurner; - class IfcCableCarrierFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 635142910; - } - } - IFC42.IfcCableCarrierFitting = IfcCableCarrierFitting; - class IfcCableCarrierSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3758799889; - } - } - IFC42.IfcCableCarrierSegment = IfcCableCarrierSegment; - class IfcCableFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1051757585; - } - } - IFC42.IfcCableFitting = IfcCableFitting; - class IfcCableSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4217484030; - } - } - IFC42.IfcCableSegment = IfcCableSegment; - class IfcChiller extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3902619387; - } - } - IFC42.IfcChiller = IfcChiller; - class IfcCoil extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 639361253; - } - } - IFC42.IfcCoil = IfcCoil; - class IfcCommunicationsAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3221913625; - } - } - IFC42.IfcCommunicationsAppliance = IfcCommunicationsAppliance; - class IfcCompressor extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3571504051; - } - } - IFC42.IfcCompressor = IfcCompressor; - class IfcCondenser extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2272882330; - } - } - IFC42.IfcCondenser = IfcCondenser; - class IfcControllerType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 578613899; - } - } - IFC42.IfcControllerType = IfcControllerType; - class IfcCooledBeam extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4136498852; - } - } - IFC42.IfcCooledBeam = IfcCooledBeam; - class IfcCoolingTower extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3640358203; - } - } - IFC42.IfcCoolingTower = IfcCoolingTower; - class IfcDamper extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4074379575; - } - } - IFC42.IfcDamper = IfcDamper; - class IfcDistributionChamberElement extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1052013943; - } - } - IFC42.IfcDistributionChamberElement = IfcDistributionChamberElement; - class IfcDistributionCircuit extends IfcDistributionSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 562808652; - } - } - IFC42.IfcDistributionCircuit = IfcDistributionCircuit; - class IfcDistributionControlElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1062813311; - } - } - IFC42.IfcDistributionControlElement = IfcDistributionControlElement; - class IfcDuctFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 342316401; - } - } - IFC42.IfcDuctFitting = IfcDuctFitting; - class IfcDuctSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3518393246; - } - } - IFC42.IfcDuctSegment = IfcDuctSegment; - class IfcDuctSilencer extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1360408905; - } - } - IFC42.IfcDuctSilencer = IfcDuctSilencer; - class IfcElectricAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1904799276; - } - } - IFC42.IfcElectricAppliance = IfcElectricAppliance; - class IfcElectricDistributionBoard extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 862014818; - } - } - IFC42.IfcElectricDistributionBoard = IfcElectricDistributionBoard; - class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3310460725; - } - } - IFC42.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; - class IfcElectricGenerator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 264262732; - } - } - IFC42.IfcElectricGenerator = IfcElectricGenerator; - class IfcElectricMotor extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 402227799; - } - } - IFC42.IfcElectricMotor = IfcElectricMotor; - class IfcElectricTimeControl extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1003880860; - } - } - IFC42.IfcElectricTimeControl = IfcElectricTimeControl; - class IfcFan extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3415622556; - } - } - IFC42.IfcFan = IfcFan; - class IfcFilter extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 819412036; - } - } - IFC42.IfcFilter = IfcFilter; - class IfcFireSuppressionTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1426591983; - } - } - IFC42.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; - class IfcFlowInstrument extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 182646315; - } - } - IFC42.IfcFlowInstrument = IfcFlowInstrument; - class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2295281155; - } - } - IFC42.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; - class IfcSensor extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4086658281; - } - } - IFC42.IfcSensor = IfcSensor; - class IfcUnitaryControlElement extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 630975310; - } - } - IFC42.IfcUnitaryControlElement = IfcUnitaryControlElement; - class IfcActuator extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4288193352; - } - } - IFC42.IfcActuator = IfcActuator; - class IfcAlarm extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3087945054; - } - } - IFC42.IfcAlarm = IfcAlarm; - class IfcController extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 25142252; - } - } - IFC42.IfcController = IfcController; -})(IFC4 || (IFC4 = {})); -var IFC4X3; -(function(IFC4X32) { - class IfcAbsorbedDoseMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; - class IfcAccelerationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAccelerationMeasure = IfcAccelerationMeasure; - class IfcAmountOfSubstanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; - class IfcAngularVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; - class IfcArcIndex { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcArcIndex = IfcArcIndex; - class IfcAreaDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAreaDensityMeasure = IfcAreaDensityMeasure; - class IfcAreaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAreaMeasure = IfcAreaMeasure; - class IfcBinary { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcBinary = IfcBinary; - class IfcBoolean { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC4X32.IfcBoolean = IfcBoolean; - class IfcBoxAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcBoxAlignment = IfcBoxAlignment; - class IfcCardinalPointReference { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcCardinalPointReference = IfcCardinalPointReference; - class IfcComplexNumber { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcComplexNumber = IfcComplexNumber; - class IfcCompoundPlaneAngleMeasure { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; - class IfcContextDependentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcContextDependentMeasure = IfcContextDependentMeasure; - class IfcCountMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcCountMeasure = IfcCountMeasure; - class IfcCurvatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcCurvatureMeasure = IfcCurvatureMeasure; - class IfcDate { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcDate = IfcDate; - class IfcDateTime { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcDateTime = IfcDateTime; - class IfcDayInMonthNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDayInMonthNumber = IfcDayInMonthNumber; - class IfcDayInWeekNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDayInWeekNumber = IfcDayInWeekNumber; - class IfcDescriptiveMeasure { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; - class IfcDimensionCount { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDimensionCount = IfcDimensionCount; - class IfcDoseEquivalentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; - class IfcDuration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcDuration = IfcDuration; - class IfcDynamicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; - class IfcElectricCapacitanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; - class IfcElectricChargeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; - class IfcElectricConductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; - class IfcElectricCurrentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; - class IfcElectricResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; - class IfcElectricVoltageMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; - class IfcEnergyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcEnergyMeasure = IfcEnergyMeasure; - class IfcFontStyle { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcFontStyle = IfcFontStyle; - class IfcFontVariant { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcFontVariant = IfcFontVariant; - class IfcFontWeight { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcFontWeight = IfcFontWeight; - class IfcForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcForceMeasure = IfcForceMeasure; - class IfcFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcFrequencyMeasure = IfcFrequencyMeasure; - class IfcGloballyUniqueId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcGloballyUniqueId = IfcGloballyUniqueId; - class IfcHeatFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; - class IfcHeatingValueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; - class IfcIdentifier { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcIdentifier = IfcIdentifier; - class IfcIlluminanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; - class IfcInductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcInductanceMeasure = IfcInductanceMeasure; - class IfcInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcInteger = IfcInteger; - class IfcIntegerCountRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; - class IfcIonConcentrationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; - class IfcIsothermalMoistureCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; - class IfcKinematicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; - class IfcLabel { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcLabel = IfcLabel; - class IfcLanguageId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcLanguageId = IfcLanguageId; - class IfcLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLengthMeasure = IfcLengthMeasure; - class IfcLineIndex { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcLineIndex = IfcLineIndex; - class IfcLinearForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLinearForceMeasure = IfcLinearForceMeasure; - class IfcLinearMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; - class IfcLinearStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; - class IfcLinearVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; - class IfcLogical { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC4X32.IfcLogical = IfcLogical; - class IfcLuminousFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; - class IfcLuminousIntensityDistributionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; - class IfcLuminousIntensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; - class IfcMagneticFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; - class IfcMagneticFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; - class IfcMassDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMassDensityMeasure = IfcMassDensityMeasure; - class IfcMassFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; - class IfcMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMassMeasure = IfcMassMeasure; - class IfcMassPerLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; - class IfcModulusOfElasticityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; - class IfcModulusOfLinearSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; - class IfcModulusOfRotationalSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; - class IfcModulusOfSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; - class IfcMoistureDiffusivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; - class IfcMolecularWeightMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; - class IfcMomentOfInertiaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; - class IfcMonetaryMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMonetaryMeasure = IfcMonetaryMeasure; - class IfcMonthInYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMonthInYearNumber = IfcMonthInYearNumber; - class IfcNonNegativeLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; - class IfcNormalisedRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; - class IfcNumericMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcNumericMeasure = IfcNumericMeasure; - class IfcPHMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPHMeasure = IfcPHMeasure; - class IfcParameterValue { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcParameterValue = IfcParameterValue; - class IfcPlanarForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; - class IfcPlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; - class IfcPositiveInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPositiveInteger = IfcPositiveInteger; - class IfcPositiveLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; - class IfcPositivePlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; - class IfcPositiveRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; - class IfcPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPowerMeasure = IfcPowerMeasure; - class IfcPresentableText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcPresentableText = IfcPresentableText; - class IfcPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPressureMeasure = IfcPressureMeasure; - class IfcPropertySetDefinitionSet { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; - class IfcRadioActivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; - class IfcRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRatioMeasure = IfcRatioMeasure; - class IfcReal { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcReal = IfcReal; - class IfcRotationalFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; - class IfcRotationalMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; - class IfcRotationalStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; - class IfcSectionModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; - class IfcSectionalAreaIntegralMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; - class IfcShearModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcShearModulusMeasure = IfcShearModulusMeasure; - class IfcSolidAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; - class IfcSoundPowerLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; - class IfcSoundPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; - class IfcSoundPressureLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; - class IfcSoundPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; - class IfcSpecificHeatCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; - class IfcSpecularExponent { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSpecularExponent = IfcSpecularExponent; - class IfcSpecularRoughness { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSpecularRoughness = IfcSpecularRoughness; - class IfcTemperatureGradientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; - class IfcTemperatureRateOfChangeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; - class IfcText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcText = IfcText; - class IfcTextAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTextAlignment = IfcTextAlignment; - class IfcTextDecoration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTextDecoration = IfcTextDecoration; - class IfcTextFontName { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTextFontName = IfcTextFontName; - class IfcTextTransformation { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTextTransformation = IfcTextTransformation; - class IfcThermalAdmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; - class IfcThermalConductivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; - class IfcThermalExpansionCoefficientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; - class IfcThermalResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; - class IfcThermalTransmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; - class IfcThermodynamicTemperatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; - class IfcTime { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTime = IfcTime; - class IfcTimeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTimeMeasure = IfcTimeMeasure; - class IfcTimeStamp { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTimeStamp = IfcTimeStamp; - class IfcTorqueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTorqueMeasure = IfcTorqueMeasure; - class IfcURIReference { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcURIReference = IfcURIReference; - class IfcVaporPermeabilityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; - class IfcVolumeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcVolumeMeasure = IfcVolumeMeasure; - class IfcVolumetricFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; - class IfcWarpingConstantMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; - class IfcWarpingMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; - class IfcActionRequestTypeEnum { - } - IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; - IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; - IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; - IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; - IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; - class IfcActionSourceTypeEnum { - } - IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; - IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; - IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; - IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; - IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; - IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; - IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; - IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; - IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; - IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; - IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; - IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; - IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; - IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; - IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; - IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; - IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; - IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; - IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; - IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; - IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; - IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; - IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; - IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; - class IfcActionTypeEnum { - } - IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; - IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; - IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; - IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActionTypeEnum = IfcActionTypeEnum; - class IfcActuatorTypeEnum { - } - IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; - IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; - IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; - IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; - IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; - IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; - class IfcAddressTypeEnum { - } - IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; - IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; - IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcAddressTypeEnum = IfcAddressTypeEnum; - class IfcAirTerminalBoxTypeEnum { - } - IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; - class IfcAirTerminalTypeEnum { - } - IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; - IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; - IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; - IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; - IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; - class IfcAirToAirHeatRecoveryTypeEnum { - } - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; - IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; - IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; - IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; - class IfcAlarmTypeEnum { - } - IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; - IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; - IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; - IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; - IfcAlarmTypeEnum.RAILWAYCROCODILE = { type: 3, value: "RAILWAYCROCODILE" }; - IfcAlarmTypeEnum.RAILWAYDETONATOR = { type: 3, value: "RAILWAYDETONATOR" }; - IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; - IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; - IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; - class IfcAlignmentCantSegmentTypeEnum { - } - IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; - IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT = { type: 3, value: "CONSTANTCANT" }; - IfcAlignmentCantSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; - IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; - IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION = { type: 3, value: "LINEARTRANSITION" }; - IfcAlignmentCantSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; - IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; - IFC4X32.IfcAlignmentCantSegmentTypeEnum = IfcAlignmentCantSegmentTypeEnum; - class IfcAlignmentHorizontalSegmentTypeEnum { - } - IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; - IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; - IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.CUBIC = { type: 3, value: "CUBIC" }; - IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.LINE = { type: 3, value: "LINE" }; - IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; - IFC4X32.IfcAlignmentHorizontalSegmentTypeEnum = IfcAlignmentHorizontalSegmentTypeEnum; - class IfcAlignmentTypeEnum { - } - IfcAlignmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlignmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum; - class IfcAlignmentVerticalSegmentTypeEnum { - } - IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; - IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; - IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT = { type: 3, value: "CONSTANTGRADIENT" }; - IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC = { type: 3, value: "PARABOLICARC" }; - IFC4X32.IfcAlignmentVerticalSegmentTypeEnum = IfcAlignmentVerticalSegmentTypeEnum; - class IfcAnalysisModelTypeEnum { - } - IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; - IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; - class IfcAnalysisTheoryTypeEnum { - } - IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; - IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; - class IfcAnnotationTypeEnum { - } - IfcAnnotationTypeEnum.ASBUILTAREA = { type: 3, value: "ASBUILTAREA" }; - IfcAnnotationTypeEnum.ASBUILTLINE = { type: 3, value: "ASBUILTLINE" }; - IfcAnnotationTypeEnum.ASBUILTPOINT = { type: 3, value: "ASBUILTPOINT" }; - IfcAnnotationTypeEnum.ASSUMEDAREA = { type: 3, value: "ASSUMEDAREA" }; - IfcAnnotationTypeEnum.ASSUMEDLINE = { type: 3, value: "ASSUMEDLINE" }; - IfcAnnotationTypeEnum.ASSUMEDPOINT = { type: 3, value: "ASSUMEDPOINT" }; - IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL = { type: 3, value: "NON_PHYSICAL_SIGNAL" }; - IfcAnnotationTypeEnum.SUPERELEVATIONEVENT = { type: 3, value: "SUPERELEVATIONEVENT" }; - IfcAnnotationTypeEnum.WIDTHEVENT = { type: 3, value: "WIDTHEVENT" }; - IfcAnnotationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnnotationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAnnotationTypeEnum = IfcAnnotationTypeEnum; - class IfcArithmeticOperatorEnum { - } - IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; - IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; - IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; - IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; - IFC4X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; - class IfcAssemblyPlaceEnum { - } - IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; - IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; - IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; - class IfcAudioVisualApplianceTypeEnum { - } - IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; - IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; - IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL = { type: 3, value: "COMMUNICATIONTERMINAL" }; - IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; - IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; - IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; - IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; - IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; - IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT = { type: 3, value: "RECORDINGEQUIPMENT" }; - IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; - IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; - IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; - IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; - class IfcBSplineCurveForm { - } - IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; - IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; - IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; - IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; - IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; - IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcBSplineCurveForm = IfcBSplineCurveForm; - class IfcBSplineSurfaceForm { - } - IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; - IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; - IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; - IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; - IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; - IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; - IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; - IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; - IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; - IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; - IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; - class IfcBeamTypeEnum { - } - IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; - IfcBeamTypeEnum.CORNICE = { type: 3, value: "CORNICE" }; - IfcBeamTypeEnum.DIAPHRAGM = { type: 3, value: "DIAPHRAGM" }; - IfcBeamTypeEnum.EDGEBEAM = { type: 3, value: "EDGEBEAM" }; - IfcBeamTypeEnum.GIRDER_SEGMENT = { type: 3, value: "GIRDER_SEGMENT" }; - IfcBeamTypeEnum.HATSTONE = { type: 3, value: "HATSTONE" }; - IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; - IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; - IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; - IfcBeamTypeEnum.PIERCAP = { type: 3, value: "PIERCAP" }; - IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; - IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; - IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBeamTypeEnum = IfcBeamTypeEnum; - class IfcBearingTypeDisplacementEnum { - } - IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = { type: 3, value: "FIXED_MOVEMENT" }; - IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = { type: 3, value: "FREE_MOVEMENT" }; - IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = { type: 3, value: "GUIDED_LONGITUDINAL" }; - IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = { type: 3, value: "GUIDED_TRANSVERSAL" }; - IfcBearingTypeDisplacementEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum; - class IfcBearingTypeEnum { - } - IfcBearingTypeEnum.CYLINDRICAL = { type: 3, value: "CYLINDRICAL" }; - IfcBearingTypeEnum.DISK = { type: 3, value: "DISK" }; - IfcBearingTypeEnum.ELASTOMERIC = { type: 3, value: "ELASTOMERIC" }; - IfcBearingTypeEnum.GUIDE = { type: 3, value: "GUIDE" }; - IfcBearingTypeEnum.POT = { type: 3, value: "POT" }; - IfcBearingTypeEnum.ROCKER = { type: 3, value: "ROCKER" }; - IfcBearingTypeEnum.ROLLER = { type: 3, value: "ROLLER" }; - IfcBearingTypeEnum.SPHERICAL = { type: 3, value: "SPHERICAL" }; - IfcBearingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBearingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBearingTypeEnum = IfcBearingTypeEnum; - class IfcBenchmarkEnum { - } - IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; - IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; - IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; - IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; - IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; - IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; - IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; - IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; - IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; - IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; - IFC4X32.IfcBenchmarkEnum = IfcBenchmarkEnum; - class IfcBoilerTypeEnum { - } - IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; - IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; - class IfcBooleanOperator { - } - IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; - IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; - IFC4X32.IfcBooleanOperator = IfcBooleanOperator; - class IfcBridgePartTypeEnum { - } - IfcBridgePartTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; - IfcBridgePartTypeEnum.DECK = { type: 3, value: "DECK" }; - IfcBridgePartTypeEnum.DECK_SEGMENT = { type: 3, value: "DECK_SEGMENT" }; - IfcBridgePartTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBridgePartTypeEnum.PIER = { type: 3, value: "PIER" }; - IfcBridgePartTypeEnum.PIER_SEGMENT = { type: 3, value: "PIER_SEGMENT" }; - IfcBridgePartTypeEnum.PYLON = { type: 3, value: "PYLON" }; - IfcBridgePartTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; - IfcBridgePartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; - IfcBridgePartTypeEnum.SURFACESTRUCTURE = { type: 3, value: "SURFACESTRUCTURE" }; - IfcBridgePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBridgePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum; - class IfcBridgeTypeEnum { - } - IfcBridgeTypeEnum.ARCHED = { type: 3, value: "ARCHED" }; - IfcBridgeTypeEnum.CABLE_STAYED = { type: 3, value: "CABLE_STAYED" }; - IfcBridgeTypeEnum.CANTILEVER = { type: 3, value: "CANTILEVER" }; - IfcBridgeTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; - IfcBridgeTypeEnum.FRAMEWORK = { type: 3, value: "FRAMEWORK" }; - IfcBridgeTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcBridgeTypeEnum.SUSPENSION = { type: 3, value: "SUSPENSION" }; - IfcBridgeTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcBridgeTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBridgeTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBridgeTypeEnum = IfcBridgeTypeEnum; - class IfcBuildingElementPartTypeEnum { - } - IfcBuildingElementPartTypeEnum.APRON = { type: 3, value: "APRON" }; - IfcBuildingElementPartTypeEnum.ARMOURUNIT = { type: 3, value: "ARMOURUNIT" }; - IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; - IfcBuildingElementPartTypeEnum.SAFETYCAGE = { type: 3, value: "SAFETYCAGE" }; - IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; - class IfcBuildingElementProxyTypeEnum { - } - IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; - class IfcBuildingSystemTypeEnum { - } - IfcBuildingSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; - IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; - IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; - IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; - IfcBuildingSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; - IfcBuildingSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; - IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; - IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; - class IfcBuiltSystemTypeEnum { - } - IfcBuiltSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; - IfcBuiltSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; - IfcBuiltSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBuiltSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; - IfcBuiltSystemTypeEnum.MOORING = { type: 3, value: "MOORING" }; - IfcBuiltSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; - IfcBuiltSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; - IfcBuiltSystemTypeEnum.RAILWAYLINE = { type: 3, value: "RAILWAYLINE" }; - IfcBuiltSystemTypeEnum.RAILWAYTRACK = { type: 3, value: "RAILWAYTRACK" }; - IfcBuiltSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; - IfcBuiltSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; - IfcBuiltSystemTypeEnum.TRACKCIRCUIT = { type: 3, value: "TRACKCIRCUIT" }; - IfcBuiltSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcBuiltSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuiltSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuiltSystemTypeEnum = IfcBuiltSystemTypeEnum; - class IfcBurnerTypeEnum { - } - IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBurnerTypeEnum = IfcBurnerTypeEnum; - class IfcCableCarrierFittingTypeEnum { - } - IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcCableCarrierFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; - IfcCableCarrierFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; - IfcCableCarrierFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; - class IfcCableCarrierSegmentTypeEnum { - } - IfcCableCarrierSegmentTypeEnum.CABLEBRACKET = { type: 3, value: "CABLEBRACKET" }; - IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CATENARYWIRE = { type: 3, value: "CATENARYWIRE" }; - IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.DROPPER = { type: 3, value: "DROPPER" }; - IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; - class IfcCableFittingTypeEnum { - } - IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcCableFittingTypeEnum.FANOUT = { type: 3, value: "FANOUT" }; - IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; - class IfcCableSegmentTypeEnum { - } - IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; - IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; - IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; - IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT = { type: 3, value: "CONTACTWIRESEGMENT" }; - IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; - IfcCableSegmentTypeEnum.FIBERSEGMENT = { type: 3, value: "FIBERSEGMENT" }; - IfcCableSegmentTypeEnum.FIBERTUBE = { type: 3, value: "FIBERTUBE" }; - IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT = { type: 3, value: "OPTICALCABLESEGMENT" }; - IfcCableSegmentTypeEnum.STITCHWIRE = { type: 3, value: "STITCHWIRE" }; - IfcCableSegmentTypeEnum.WIREPAIRSEGMENT = { type: 3, value: "WIREPAIRSEGMENT" }; - IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; - class IfcCaissonFoundationTypeEnum { - } - IfcCaissonFoundationTypeEnum.CAISSON = { type: 3, value: "CAISSON" }; - IfcCaissonFoundationTypeEnum.WELL = { type: 3, value: "WELL" }; - IfcCaissonFoundationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCaissonFoundationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum; - class IfcChangeActionEnum { - } - IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; - IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; - IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; - IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; - IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcChangeActionEnum = IfcChangeActionEnum; - class IfcChillerTypeEnum { - } - IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; - IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcChillerTypeEnum = IfcChillerTypeEnum; - class IfcChimneyTypeEnum { - } - IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcChimneyTypeEnum = IfcChimneyTypeEnum; - class IfcCoilTypeEnum { - } - IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; - IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; - IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; - IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; - IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; - IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; - IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; - IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCoilTypeEnum = IfcCoilTypeEnum; - class IfcColumnTypeEnum { - } - IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; - IfcColumnTypeEnum.PIERSTEM = { type: 3, value: "PIERSTEM" }; - IfcColumnTypeEnum.PIERSTEM_SEGMENT = { type: 3, value: "PIERSTEM_SEGMENT" }; - IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; - IfcColumnTypeEnum.STANDCOLUMN = { type: 3, value: "STANDCOLUMN" }; - IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcColumnTypeEnum = IfcColumnTypeEnum; - class IfcCommunicationsApplianceTypeEnum { - } - IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; - IfcCommunicationsApplianceTypeEnum.AUTOMATON = { type: 3, value: "AUTOMATON" }; - IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; - IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; - IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL = { type: 3, value: "INTELLIGENTPERIPHERAL" }; - IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT = { type: 3, value: "IPNETWORKEQUIPMENT" }; - IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT = { type: 3, value: "LINESIDEELECTRONICUNIT" }; - IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; - IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; - IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL = { type: 3, value: "OPTICALLINETERMINAL" }; - IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT = { type: 3, value: "OPTICALNETWORKUNIT" }; - IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; - IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER = { type: 3, value: "RADIOBLOCKCENTER" }; - IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; - IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; - IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; - IfcCommunicationsApplianceTypeEnum.TELECOMMAND = { type: 3, value: "TELECOMMAND" }; - IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE = { type: 3, value: "TELEPHONYEXCHANGE" }; - IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT = { type: 3, value: "TRANSITIONCOMPONENT" }; - IfcCommunicationsApplianceTypeEnum.TRANSPONDER = { type: 3, value: "TRANSPONDER" }; - IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT = { type: 3, value: "TRANSPORTEQUIPMENT" }; - IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; - class IfcComplexPropertyTemplateTypeEnum { - } - IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; - IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; - IFC4X32.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; - class IfcCompressorTypeEnum { - } - IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; - IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; - IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; - IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; - IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; - IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; - IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; - IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; - IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; - IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; - IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; - IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; - IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; - IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; - IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; - IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; - class IfcCondenserTypeEnum { - } - IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; - IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; - IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; - class IfcConnectionTypeEnum { - } - IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; - IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; - IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; - IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; - class IfcConstraintEnum { - } - IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; - IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; - IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; - IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstraintEnum = IfcConstraintEnum; - class IfcConstructionEquipmentResourceTypeEnum { - } - IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; - IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; - IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; - IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; - IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; - IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; - IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; - class IfcConstructionMaterialResourceTypeEnum { - } - IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; - IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; - IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; - IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; - IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; - IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; - class IfcConstructionProductResourceTypeEnum { - } - IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; - IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; - IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; - class IfcControllerTypeEnum { - } - IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; - IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; - IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; - IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; - IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; - IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcControllerTypeEnum = IfcControllerTypeEnum; - class IfcConveyorSegmentTypeEnum { - } - IfcConveyorSegmentTypeEnum.BELTCONVEYOR = { type: 3, value: "BELTCONVEYOR" }; - IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR = { type: 3, value: "BUCKETCONVEYOR" }; - IfcConveyorSegmentTypeEnum.CHUTECONVEYOR = { type: 3, value: "CHUTECONVEYOR" }; - IfcConveyorSegmentTypeEnum.SCREWCONVEYOR = { type: 3, value: "SCREWCONVEYOR" }; - IfcConveyorSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConveyorSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConveyorSegmentTypeEnum = IfcConveyorSegmentTypeEnum; - class IfcCooledBeamTypeEnum { - } - IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; - IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; - IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; - class IfcCoolingTowerTypeEnum { - } - IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; - IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; - IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; - class IfcCostItemTypeEnum { - } - IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCostItemTypeEnum = IfcCostItemTypeEnum; - class IfcCostScheduleTypeEnum { - } - IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; - IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; - IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; - IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; - IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; - IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; - class IfcCourseTypeEnum { - } - IfcCourseTypeEnum.ARMOUR = { type: 3, value: "ARMOUR" }; - IfcCourseTypeEnum.BALLASTBED = { type: 3, value: "BALLASTBED" }; - IfcCourseTypeEnum.CORE = { type: 3, value: "CORE" }; - IfcCourseTypeEnum.FILTER = { type: 3, value: "FILTER" }; - IfcCourseTypeEnum.PAVEMENT = { type: 3, value: "PAVEMENT" }; - IfcCourseTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; - IfcCourseTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCourseTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCourseTypeEnum = IfcCourseTypeEnum; - class IfcCoveringTypeEnum { - } - IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; - IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; - IfcCoveringTypeEnum.COPING = { type: 3, value: "COPING" }; - IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; - IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; - IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; - IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; - IfcCoveringTypeEnum.TOPPING = { type: 3, value: "TOPPING" }; - IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; - IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; - class IfcCrewResourceTypeEnum { - } - IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; - class IfcCurtainWallTypeEnum { - } - IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; - class IfcCurveInterpolationEnum { - } - IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; - IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; - IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; - class IfcDamperTypeEnum { - } - IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; - IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; - IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; - IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; - IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; - IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; - IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; - IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; - IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; - IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; - IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; - IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDamperTypeEnum = IfcDamperTypeEnum; - class IfcDataOriginEnum { - } - IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; - IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDataOriginEnum = IfcDataOriginEnum; - class IfcDerivedUnitEnum { - } - IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; - IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; - IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; - IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; - IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; - IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; - IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; - IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; - IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; - IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; - IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; - IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; - IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; - IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; - IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; - IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; - IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; - IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; - IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; - IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; - IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; - IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; - IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; - IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; - IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; - IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; - IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; - IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; - IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; - IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; - IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; - IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; - class IfcDirectionSenseEnum { - } - IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; - IFC4X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; - class IfcDiscreteAccessoryTypeEnum { - } - IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; - IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION = { type: 3, value: "BIRDPROTECTION" }; - IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; - IfcDiscreteAccessoryTypeEnum.CABLEARRANGER = { type: 3, value: "CABLEARRANGER" }; - IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION = { type: 3, value: "ELASTIC_CUSHION" }; - IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = { type: 3, value: "EXPANSION_JOINT_DEVICE" }; - IfcDiscreteAccessoryTypeEnum.FILLER = { type: 3, value: "FILLER" }; - IfcDiscreteAccessoryTypeEnum.FLASHING = { type: 3, value: "FLASHING" }; - IfcDiscreteAccessoryTypeEnum.INSULATOR = { type: 3, value: "INSULATOR" }; - IfcDiscreteAccessoryTypeEnum.LOCK = { type: 3, value: "LOCK" }; - IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING = { type: 3, value: "PANEL_STRENGTHENING" }; - IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE = { type: 3, value: "POINTMACHINEMOUNTINGDEVICE" }; - IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE = { type: 3, value: "POINT_MACHINE_LOCKING_DEVICE" }; - IfcDiscreteAccessoryTypeEnum.RAILBRACE = { type: 3, value: "RAILBRACE" }; - IfcDiscreteAccessoryTypeEnum.RAILPAD = { type: 3, value: "RAILPAD" }; - IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION = { type: 3, value: "RAIL_LUBRICATION" }; - IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT" }; - IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; - IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR = { type: 3, value: "SLIDINGCHAIR" }; - IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION = { type: 3, value: "SOUNDABSORPTION" }; - IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT = { type: 3, value: "TENSIONINGEQUIPMENT" }; - IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; - class IfcDistributionBoardTypeEnum { - } - IfcDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcDistributionBoardTypeEnum.DISPATCHINGBOARD = { type: 3, value: "DISPATCHINGBOARD" }; - IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME = { type: 3, value: "DISTRIBUTIONFRAME" }; - IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionBoardTypeEnum = IfcDistributionBoardTypeEnum; - class IfcDistributionChamberElementTypeEnum { - } - IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; - IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; - IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; - IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; - IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; - IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; - class IfcDistributionPortTypeEnum { - } - IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; - IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; - IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; - IfcDistributionPortTypeEnum.WIRELESS = { type: 3, value: "WIRELESS" }; - IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; - class IfcDistributionSystemEnum { - } - IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; - IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; - IfcDistributionSystemEnum.CATENARY_SYSTEM = { type: 3, value: "CATENARY_SYSTEM" }; - IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; - IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; - IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; - IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; - IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; - IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; - IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; - IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; - IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; - IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; - IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; - IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; - IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; - IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; - IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; - IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK = { type: 3, value: "FIXEDTRANSMISSIONNETWORK" }; - IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; - IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; - IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; - IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; - IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; - IfcDistributionSystemEnum.MOBILENETWORK = { type: 3, value: "MOBILENETWORK" }; - IfcDistributionSystemEnum.MONITORINGSYSTEM = { type: 3, value: "MONITORINGSYSTEM" }; - IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; - IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; - IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; - IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM = { type: 3, value: "OPERATIONALTELEPHONYSYSTEM" }; - IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM = { type: 3, value: "OVERHEAD_CONTACTLINE_SYSTEM" }; - IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; - IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; - IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; - IfcDistributionSystemEnum.RETURN_CIRCUIT = { type: 3, value: "RETURN_CIRCUIT" }; - IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; - IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; - IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; - IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; - IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; - IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; - IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; - IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; - IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionSystemEnum = IfcDistributionSystemEnum; - class IfcDocumentConfidentialityEnum { - } - IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; - IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; - IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; - IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; - IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; - class IfcDocumentStatusEnum { - } - IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; - IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; - IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; - IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; - IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; - class IfcDoorPanelOperationEnum { - } - IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; - IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; - IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; - IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; - IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; - IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; - class IfcDoorPanelPositionEnum { - } - IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; - class IfcDoorStyleConstructionEnum { - } - IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; - class IfcDoorStyleOperationEnum { - } - IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; - class IfcDoorTypeEnum { - } - IfcDoorTypeEnum.BOOM_BARRIER = { type: 3, value: "BOOM_BARRIER" }; - IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; - IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; - IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; - IfcDoorTypeEnum.TURNSTILE = { type: 3, value: "TURNSTILE" }; - IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorTypeEnum = IfcDoorTypeEnum; - class IfcDoorTypeOperationEnum { - } - IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING = { type: 3, value: "DOUBLE_PANEL_DOUBLE_SWING" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING = { type: 3, value: "DOUBLE_PANEL_FOLDING" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL = { type: 3, value: "DOUBLE_PANEL_LIFTING_VERTICAL" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING = { type: 3, value: "DOUBLE_PANEL_SLIDING" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL = { type: 3, value: "LIFTING_HORIZONTAL" }; - IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT = { type: 3, value: "LIFTING_VERTICAL_LEFT" }; - IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT = { type: 3, value: "LIFTING_VERTICAL_RIGHT" }; - IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL = { type: 3, value: "REVOLVING_HORIZONTAL" }; - IfcDoorTypeOperationEnum.REVOLVING_VERTICAL = { type: 3, value: "REVOLVING_VERTICAL" }; - IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; - IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; - IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; - class IfcDuctFittingTypeEnum { - } - IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; - class IfcDuctSegmentTypeEnum { - } - IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; - class IfcDuctSilencerTypeEnum { - } - IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; - IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; - IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; - class IfcEarthworksCutTypeEnum { - } - IfcEarthworksCutTypeEnum.BASE_EXCAVATION = { type: 3, value: "BASE_EXCAVATION" }; - IfcEarthworksCutTypeEnum.CUT = { type: 3, value: "CUT" }; - IfcEarthworksCutTypeEnum.DREDGING = { type: 3, value: "DREDGING" }; - IfcEarthworksCutTypeEnum.EXCAVATION = { type: 3, value: "EXCAVATION" }; - IfcEarthworksCutTypeEnum.OVEREXCAVATION = { type: 3, value: "OVEREXCAVATION" }; - IfcEarthworksCutTypeEnum.PAVEMENTMILLING = { type: 3, value: "PAVEMENTMILLING" }; - IfcEarthworksCutTypeEnum.STEPEXCAVATION = { type: 3, value: "STEPEXCAVATION" }; - IfcEarthworksCutTypeEnum.TOPSOILREMOVAL = { type: 3, value: "TOPSOILREMOVAL" }; - IfcEarthworksCutTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcEarthworksCutTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEarthworksCutTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEarthworksCutTypeEnum = IfcEarthworksCutTypeEnum; - class IfcEarthworksFillTypeEnum { - } - IfcEarthworksFillTypeEnum.BACKFILL = { type: 3, value: "BACKFILL" }; - IfcEarthworksFillTypeEnum.COUNTERWEIGHT = { type: 3, value: "COUNTERWEIGHT" }; - IfcEarthworksFillTypeEnum.EMBANKMENT = { type: 3, value: "EMBANKMENT" }; - IfcEarthworksFillTypeEnum.SLOPEFILL = { type: 3, value: "SLOPEFILL" }; - IfcEarthworksFillTypeEnum.SUBGRADE = { type: 3, value: "SUBGRADE" }; - IfcEarthworksFillTypeEnum.SUBGRADEBED = { type: 3, value: "SUBGRADEBED" }; - IfcEarthworksFillTypeEnum.TRANSITIONSECTION = { type: 3, value: "TRANSITIONSECTION" }; - IfcEarthworksFillTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEarthworksFillTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEarthworksFillTypeEnum = IfcEarthworksFillTypeEnum; - class IfcElectricApplianceTypeEnum { - } - IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; - IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; - IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; - IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; - IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; - IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; - IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; - IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; - IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; - IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; - IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; - IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; - IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; - class IfcElectricDistributionBoardTypeEnum { - } - IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; - class IfcElectricFlowStorageDeviceTypeEnum { - } - IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR = { type: 3, value: "CAPACITOR" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR = { type: 3, value: "COMPENSATOR" }; - IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR = { type: 3, value: "INDUCTOR" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.RECHARGER = { type: 3, value: "RECHARGER" }; - IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; - IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; - class IfcElectricFlowTreatmentDeviceTypeEnum { - } - IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER = { type: 3, value: "ELECTRONICFILTER" }; - IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricFlowTreatmentDeviceTypeEnum = IfcElectricFlowTreatmentDeviceTypeEnum; - class IfcElectricGeneratorTypeEnum { - } - IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; - IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; - IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; - IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; - class IfcElectricMotorTypeEnum { - } - IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; - IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; - IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; - IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; - IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; - IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; - class IfcElectricTimeControlTypeEnum { - } - IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; - IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; - IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; - class IfcElementAssemblyTypeEnum { - } - IfcElementAssemblyTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; - IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; - IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; - IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; - IfcElementAssemblyTypeEnum.CROSS_BRACING = { type: 3, value: "CROSS_BRACING" }; - IfcElementAssemblyTypeEnum.DECK = { type: 3, value: "DECK" }; - IfcElementAssemblyTypeEnum.DILATATIONPANEL = { type: 3, value: "DILATATIONPANEL" }; - IfcElementAssemblyTypeEnum.ENTRANCEWORKS = { type: 3, value: "ENTRANCEWORKS" }; - IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcElementAssemblyTypeEnum.GRID = { type: 3, value: "GRID" }; - IfcElementAssemblyTypeEnum.MAST = { type: 3, value: "MAST" }; - IfcElementAssemblyTypeEnum.PIER = { type: 3, value: "PIER" }; - IfcElementAssemblyTypeEnum.PYLON = { type: 3, value: "PYLON" }; - IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; - IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; - IfcElementAssemblyTypeEnum.SHELTER = { type: 3, value: "SHELTER" }; - IfcElementAssemblyTypeEnum.SIGNALASSEMBLY = { type: 3, value: "SIGNALASSEMBLY" }; - IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; - IfcElementAssemblyTypeEnum.SUMPBUSTER = { type: 3, value: "SUMPBUSTER" }; - IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY = { type: 3, value: "SUPPORTINGASSEMBLY" }; - IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY = { type: 3, value: "SUSPENSIONASSEMBLY" }; - IfcElementAssemblyTypeEnum.TRACKPANEL = { type: 3, value: "TRACKPANEL" }; - IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY = { type: 3, value: "TRACTION_SWITCHING_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE = { type: 3, value: "TRAFFIC_CALMING_DEVICE" }; - IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcElementAssemblyTypeEnum.TURNOUTPANEL = { type: 3, value: "TURNOUTPANEL" }; - IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; - class IfcElementCompositionEnum { - } - IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IFC4X32.IfcElementCompositionEnum = IfcElementCompositionEnum; - class IfcEngineTypeEnum { - } - IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; - IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; - IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEngineTypeEnum = IfcEngineTypeEnum; - class IfcEvaporativeCoolerTypeEnum { - } - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; - IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; - class IfcEvaporatorTypeEnum { - } - IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; - IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; - IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; - class IfcEventTriggerTypeEnum { - } - IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; - IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; - IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; - IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; - IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; - class IfcEventTypeEnum { - } - IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; - IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; - IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; - IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEventTypeEnum = IfcEventTypeEnum; - class IfcExternalSpatialElementTypeEnum { - } - IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; - class IfcFacilityPartCommonTypeEnum { - } - IfcFacilityPartCommonTypeEnum.ABOVEGROUND = { type: 3, value: "ABOVEGROUND" }; - IfcFacilityPartCommonTypeEnum.BELOWGROUND = { type: 3, value: "BELOWGROUND" }; - IfcFacilityPartCommonTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcFacilityPartCommonTypeEnum.LEVELCROSSING = { type: 3, value: "LEVELCROSSING" }; - IfcFacilityPartCommonTypeEnum.SEGMENT = { type: 3, value: "SEGMENT" }; - IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; - IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; - IfcFacilityPartCommonTypeEnum.TERMINAL = { type: 3, value: "TERMINAL" }; - IfcFacilityPartCommonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFacilityPartCommonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFacilityPartCommonTypeEnum = IfcFacilityPartCommonTypeEnum; - class IfcFacilityUsageEnum { - } - IfcFacilityUsageEnum.LATERAL = { type: 3, value: "LATERAL" }; - IfcFacilityUsageEnum.LONGITUDINAL = { type: 3, value: "LONGITUDINAL" }; - IfcFacilityUsageEnum.REGION = { type: 3, value: "REGION" }; - IfcFacilityUsageEnum.VERTICAL = { type: 3, value: "VERTICAL" }; - IfcFacilityUsageEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFacilityUsageEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFacilityUsageEnum = IfcFacilityUsageEnum; - class IfcFanTypeEnum { - } - IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; - IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; - IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; - IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; - IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; - IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFanTypeEnum = IfcFanTypeEnum; - class IfcFastenerTypeEnum { - } - IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; - IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; - IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; - IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFastenerTypeEnum = IfcFastenerTypeEnum; - class IfcFilterTypeEnum { - } - IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; - IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; - IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; - IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; - IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; - IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; - IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFilterTypeEnum = IfcFilterTypeEnum; - class IfcFireSuppressionTerminalTypeEnum { - } - IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; - IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; - IfcFireSuppressionTerminalTypeEnum.FIREMONITOR = { type: 3, value: "FIREMONITOR" }; - IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; - IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; - class IfcFlowDirectionEnum { - } - IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; - IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; - IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; - IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; - class IfcFlowInstrumentTypeEnum { - } - IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; - IfcFlowInstrumentTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; - IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; - IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; - IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; - IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; - IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER = { type: 3, value: "VOLTMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; - IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; - class IfcFlowMeterTypeEnum { - } - IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; - IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; - IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; - IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; - IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; - class IfcFootingTypeEnum { - } - IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; - IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; - IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; - IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; - IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; - IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFootingTypeEnum = IfcFootingTypeEnum; - class IfcFurnitureTypeEnum { - } - IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; - IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; - IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; - IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; - IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; - IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; - IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; - IfcFurnitureTypeEnum.TECHNICALCABINET = { type: 3, value: "TECHNICALCABINET" }; - IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; - class IfcGeographicElementTypeEnum { - } - IfcGeographicElementTypeEnum.SOIL_BORING_POINT = { type: 3, value: "SOIL_BORING_POINT" }; - IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; - IfcGeographicElementTypeEnum.VEGETATION = { type: 3, value: "VEGETATION" }; - IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; - class IfcGeometricProjectionEnum { - } - IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; - IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; - IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; - IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; - IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; - IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; - IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; - IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; - class IfcGeotechnicalStratumTypeEnum { - } - IfcGeotechnicalStratumTypeEnum.SOLID = { type: 3, value: "SOLID" }; - IfcGeotechnicalStratumTypeEnum.VOID = { type: 3, value: "VOID" }; - IfcGeotechnicalStratumTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcGeotechnicalStratumTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeotechnicalStratumTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGeotechnicalStratumTypeEnum = IfcGeotechnicalStratumTypeEnum; - class IfcGlobalOrLocalEnum { - } - IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; - IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; - IFC4X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; - class IfcGridTypeEnum { - } - IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; - IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; - IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; - IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGridTypeEnum = IfcGridTypeEnum; - class IfcHeatExchangerTypeEnum { - } - IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; - IfcHeatExchangerTypeEnum.TURNOUTHEATING = { type: 3, value: "TURNOUTHEATING" }; - IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; - class IfcHumidifierTypeEnum { - } - IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; - IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; - IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; - IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; - IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; - IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; - IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; - IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; - IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; - IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; - IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; - IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; - IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; - IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; - class IfcImpactProtectionDeviceTypeEnum { - } - IfcImpactProtectionDeviceTypeEnum.BUMPER = { type: 3, value: "BUMPER" }; - IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION = { type: 3, value: "CRASHCUSHION" }; - IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM = { type: 3, value: "DAMPINGSYSTEM" }; - IfcImpactProtectionDeviceTypeEnum.FENDER = { type: 3, value: "FENDER" }; - IfcImpactProtectionDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcImpactProtectionDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcImpactProtectionDeviceTypeEnum = IfcImpactProtectionDeviceTypeEnum; - class IfcInterceptorTypeEnum { - } - IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; - IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; - IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; - IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; - IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; - class IfcInternalOrExternalEnum { - } - IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; - class IfcInventoryTypeEnum { - } - IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; - IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; - IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; - IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; - class IfcJunctionBoxTypeEnum { - } - IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; - IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; - IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; - class IfcKnotType { - } - IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; - IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; - IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; - IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcKnotType = IfcKnotType; - class IfcLaborResourceTypeEnum { - } - IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; - IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; - IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; - IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; - IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; - IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; - IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; - IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; - IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; - IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; - IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; - IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; - IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; - IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; - class IfcLampTypeEnum { - } - IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; - IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLampTypeEnum.LED = { type: 3, value: "LED" }; - IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; - IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLampTypeEnum = IfcLampTypeEnum; - class IfcLayerSetDirectionEnum { - } - IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; - IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; - IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; - IFC4X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; - class IfcLightDistributionCurveEnum { - } - IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; - IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; - IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; - IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; - class IfcLightEmissionSourceEnum { - } - IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; - IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; - class IfcLightFixtureTypeEnum { - } - IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; - IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; - IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; - IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; - class IfcLiquidTerminalTypeEnum { - } - IfcLiquidTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcLiquidTerminalTypeEnum.LOADINGARM = { type: 3, value: "LOADINGARM" }; - IfcLiquidTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLiquidTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLiquidTerminalTypeEnum = IfcLiquidTerminalTypeEnum; - class IfcLoadGroupTypeEnum { - } - IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; - IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; - IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; - class IfcLogicalOperatorEnum { - } - IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; - IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; - IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; - IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; - IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; - IFC4X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; - class IfcMarineFacilityTypeEnum { - } - IfcMarineFacilityTypeEnum.BARRIERBEACH = { type: 3, value: "BARRIERBEACH" }; - IfcMarineFacilityTypeEnum.BREAKWATER = { type: 3, value: "BREAKWATER" }; - IfcMarineFacilityTypeEnum.CANAL = { type: 3, value: "CANAL" }; - IfcMarineFacilityTypeEnum.DRYDOCK = { type: 3, value: "DRYDOCK" }; - IfcMarineFacilityTypeEnum.FLOATINGDOCK = { type: 3, value: "FLOATINGDOCK" }; - IfcMarineFacilityTypeEnum.HYDROLIFT = { type: 3, value: "HYDROLIFT" }; - IfcMarineFacilityTypeEnum.JETTY = { type: 3, value: "JETTY" }; - IfcMarineFacilityTypeEnum.LAUNCHRECOVERY = { type: 3, value: "LAUNCHRECOVERY" }; - IfcMarineFacilityTypeEnum.MARINEDEFENCE = { type: 3, value: "MARINEDEFENCE" }; - IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL = { type: 3, value: "NAVIGATIONALCHANNEL" }; - IfcMarineFacilityTypeEnum.PORT = { type: 3, value: "PORT" }; - IfcMarineFacilityTypeEnum.QUAY = { type: 3, value: "QUAY" }; - IfcMarineFacilityTypeEnum.REVETMENT = { type: 3, value: "REVETMENT" }; - IfcMarineFacilityTypeEnum.SHIPLIFT = { type: 3, value: "SHIPLIFT" }; - IfcMarineFacilityTypeEnum.SHIPLOCK = { type: 3, value: "SHIPLOCK" }; - IfcMarineFacilityTypeEnum.SHIPYARD = { type: 3, value: "SHIPYARD" }; - IfcMarineFacilityTypeEnum.SLIPWAY = { type: 3, value: "SLIPWAY" }; - IfcMarineFacilityTypeEnum.WATERWAY = { type: 3, value: "WATERWAY" }; - IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT = { type: 3, value: "WATERWAYSHIPLIFT" }; - IfcMarineFacilityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMarineFacilityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMarineFacilityTypeEnum = IfcMarineFacilityTypeEnum; - class IfcMarinePartTypeEnum { - } - IfcMarinePartTypeEnum.ABOVEWATERLINE = { type: 3, value: "ABOVEWATERLINE" }; - IfcMarinePartTypeEnum.ANCHORAGE = { type: 3, value: "ANCHORAGE" }; - IfcMarinePartTypeEnum.APPROACHCHANNEL = { type: 3, value: "APPROACHCHANNEL" }; - IfcMarinePartTypeEnum.BELOWWATERLINE = { type: 3, value: "BELOWWATERLINE" }; - IfcMarinePartTypeEnum.BERTHINGSTRUCTURE = { type: 3, value: "BERTHINGSTRUCTURE" }; - IfcMarinePartTypeEnum.CHAMBER = { type: 3, value: "CHAMBER" }; - IfcMarinePartTypeEnum.CILL_LEVEL = { type: 3, value: "CILL_LEVEL" }; - IfcMarinePartTypeEnum.COPELEVEL = { type: 3, value: "COPELEVEL" }; - IfcMarinePartTypeEnum.CORE = { type: 3, value: "CORE" }; - IfcMarinePartTypeEnum.CREST = { type: 3, value: "CREST" }; - IfcMarinePartTypeEnum.GATEHEAD = { type: 3, value: "GATEHEAD" }; - IfcMarinePartTypeEnum.GUDINGSTRUCTURE = { type: 3, value: "GUDINGSTRUCTURE" }; - IfcMarinePartTypeEnum.HIGHWATERLINE = { type: 3, value: "HIGHWATERLINE" }; - IfcMarinePartTypeEnum.LANDFIELD = { type: 3, value: "LANDFIELD" }; - IfcMarinePartTypeEnum.LEEWARDSIDE = { type: 3, value: "LEEWARDSIDE" }; - IfcMarinePartTypeEnum.LOWWATERLINE = { type: 3, value: "LOWWATERLINE" }; - IfcMarinePartTypeEnum.MANUFACTURING = { type: 3, value: "MANUFACTURING" }; - IfcMarinePartTypeEnum.NAVIGATIONALAREA = { type: 3, value: "NAVIGATIONALAREA" }; - IfcMarinePartTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; - IfcMarinePartTypeEnum.SHIPTRANSFER = { type: 3, value: "SHIPTRANSFER" }; - IfcMarinePartTypeEnum.STORAGEAREA = { type: 3, value: "STORAGEAREA" }; - IfcMarinePartTypeEnum.VEHICLESERVICING = { type: 3, value: "VEHICLESERVICING" }; - IfcMarinePartTypeEnum.WATERFIELD = { type: 3, value: "WATERFIELD" }; - IfcMarinePartTypeEnum.WEATHERSIDE = { type: 3, value: "WEATHERSIDE" }; - IfcMarinePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMarinePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMarinePartTypeEnum = IfcMarinePartTypeEnum; - class IfcMechanicalFastenerTypeEnum { - } - IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; - IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; - IfcMechanicalFastenerTypeEnum.CHAIN = { type: 3, value: "CHAIN" }; - IfcMechanicalFastenerTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; - IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; - IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; - IfcMechanicalFastenerTypeEnum.RAILFASTENING = { type: 3, value: "RAILFASTENING" }; - IfcMechanicalFastenerTypeEnum.RAILJOINT = { type: 3, value: "RAILJOINT" }; - IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; - IfcMechanicalFastenerTypeEnum.ROPE = { type: 3, value: "ROPE" }; - IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; - IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; - IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; - class IfcMedicalDeviceTypeEnum { - } - IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; - IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; - IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; - IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; - IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; - IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; - class IfcMemberTypeEnum { - } - IfcMemberTypeEnum.ARCH_SEGMENT = { type: 3, value: "ARCH_SEGMENT" }; - IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; - IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; - IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; - IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; - IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; - IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; - IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; - IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; - IfcMemberTypeEnum.STAY_CABLE = { type: 3, value: "STAY_CABLE" }; - IfcMemberTypeEnum.STIFFENING_RIB = { type: 3, value: "STIFFENING_RIB" }; - IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; - IfcMemberTypeEnum.STRUCTURALCABLE = { type: 3, value: "STRUCTURALCABLE" }; - IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; - IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcMemberTypeEnum.SUSPENDER = { type: 3, value: "SUSPENDER" }; - IfcMemberTypeEnum.SUSPENSION_CABLE = { type: 3, value: "SUSPENSION_CABLE" }; - IfcMemberTypeEnum.TIEBAR = { type: 3, value: "TIEBAR" }; - IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMemberTypeEnum = IfcMemberTypeEnum; - class IfcMobileTelecommunicationsApplianceTypeEnum { - } - IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT = { type: 3, value: "ACCESSPOINT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT = { type: 3, value: "BASEBANDUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION = { type: 3, value: "BASETRANSCEIVERSTATION" }; - IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B = { type: 3, value: "E_UTRAN_NODE_B" }; - IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE = { type: 3, value: "GATEWAY_GPRS_SUPPORT_NODE" }; - IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT = { type: 3, value: "MASTERUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER = { type: 3, value: "MOBILESWITCHINGCENTER" }; - IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER = { type: 3, value: "MSCSERVER" }; - IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT = { type: 3, value: "PACKETCONTROLUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT = { type: 3, value: "REMOTERADIOUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT = { type: 3, value: "REMOTEUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE = { type: 3, value: "SERVICE_GPRS_SUPPORT_NODE" }; - IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER = { type: 3, value: "SUBSCRIBERSERVER" }; - IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMobileTelecommunicationsApplianceTypeEnum = IfcMobileTelecommunicationsApplianceTypeEnum; - class IfcMooringDeviceTypeEnum { - } - IfcMooringDeviceTypeEnum.BOLLARD = { type: 3, value: "BOLLARD" }; - IfcMooringDeviceTypeEnum.LINETENSIONER = { type: 3, value: "LINETENSIONER" }; - IfcMooringDeviceTypeEnum.MAGNETICDEVICE = { type: 3, value: "MAGNETICDEVICE" }; - IfcMooringDeviceTypeEnum.MOORINGHOOKS = { type: 3, value: "MOORINGHOOKS" }; - IfcMooringDeviceTypeEnum.VACUUMDEVICE = { type: 3, value: "VACUUMDEVICE" }; - IfcMooringDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMooringDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMooringDeviceTypeEnum = IfcMooringDeviceTypeEnum; - class IfcMotorConnectionTypeEnum { - } - IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; - IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; - IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; - IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; - class IfcNavigationElementTypeEnum { - } - IfcNavigationElementTypeEnum.BEACON = { type: 3, value: "BEACON" }; - IfcNavigationElementTypeEnum.BUOY = { type: 3, value: "BUOY" }; - IfcNavigationElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcNavigationElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcNavigationElementTypeEnum = IfcNavigationElementTypeEnum; - class IfcObjectTypeEnum { - } - IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; - IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; - IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; - IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; - IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; - IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; - IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcObjectTypeEnum = IfcObjectTypeEnum; - class IfcObjectiveEnum { - } - IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; - IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; - IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; - IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; - IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; - IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; - IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; - IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; - IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; - IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcObjectiveEnum = IfcObjectiveEnum; - class IfcOccupantTypeEnum { - } - IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; - IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; - IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; - IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; - IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; - IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; - IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; - IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; - class IfcOpeningElementTypeEnum { - } - IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; - IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; - IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; - class IfcOutletTypeEnum { - } - IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; - IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; - IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; - IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; - IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; - IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcOutletTypeEnum = IfcOutletTypeEnum; - class IfcPavementTypeEnum { - } - IfcPavementTypeEnum.FLEXIBLE = { type: 3, value: "FLEXIBLE" }; - IfcPavementTypeEnum.RIGID = { type: 3, value: "RIGID" }; - IfcPavementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPavementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPavementTypeEnum = IfcPavementTypeEnum; - class IfcPerformanceHistoryTypeEnum { - } - IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; - class IfcPermeableCoveringOperationEnum { - } - IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; - IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; - IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; - IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; - class IfcPermitTypeEnum { - } - IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; - IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; - IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPermitTypeEnum = IfcPermitTypeEnum; - class IfcPhysicalOrVirtualEnum { - } - IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; - IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; - class IfcPileConstructionEnum { - } - IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; - IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; - IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; - IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; - IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPileConstructionEnum = IfcPileConstructionEnum; - class IfcPileTypeEnum { - } - IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; - IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; - IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; - IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; - IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; - IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPileTypeEnum = IfcPileTypeEnum; - class IfcPipeFittingTypeEnum { - } - IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; - class IfcPipeSegmentTypeEnum { - } - IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; - IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; - IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; - IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; - class IfcPlateTypeEnum { - } - IfcPlateTypeEnum.BASE_PLATE = { type: 3, value: "BASE_PLATE" }; - IfcPlateTypeEnum.COVER_PLATE = { type: 3, value: "COVER_PLATE" }; - IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; - IfcPlateTypeEnum.FLANGE_PLATE = { type: 3, value: "FLANGE_PLATE" }; - IfcPlateTypeEnum.GUSSET_PLATE = { type: 3, value: "GUSSET_PLATE" }; - IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; - IfcPlateTypeEnum.SPLICE_PLATE = { type: 3, value: "SPLICE_PLATE" }; - IfcPlateTypeEnum.STIFFENER_PLATE = { type: 3, value: "STIFFENER_PLATE" }; - IfcPlateTypeEnum.WEB_PLATE = { type: 3, value: "WEB_PLATE" }; - IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPlateTypeEnum = IfcPlateTypeEnum; - class IfcPreferredSurfaceCurveRepresentation { - } - IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; - IFC4X32.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; - class IfcProcedureTypeEnum { - } - IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; - IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; - IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; - IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; - IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; - class IfcProfileTypeEnum { - } - IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; - IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; - IFC4X32.IfcProfileTypeEnum = IfcProfileTypeEnum; - class IfcProjectOrderTypeEnum { - } - IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; - IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; - IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; - IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; - IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; - IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; - class IfcProjectedOrTrueLengthEnum { - } - IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; - IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; - IFC4X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; - class IfcProjectionElementTypeEnum { - } - IfcProjectionElementTypeEnum.BLISTER = { type: 3, value: "BLISTER" }; - IfcProjectionElementTypeEnum.DEVIATOR = { type: 3, value: "DEVIATOR" }; - IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; - class IfcPropertySetTemplateTypeEnum { - } - IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN = { type: 3, value: "PSET_MATERIALDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN = { type: 3, value: "PSET_PROFILEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; - class IfcProtectiveDeviceTrippingUnitTypeEnum { - } - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; - class IfcProtectiveDeviceTypeEnum { - } - IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE = { type: 3, value: "ANTI_ARCING_DEVICE" }; - IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; - IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; - IfcProtectiveDeviceTypeEnum.SPARKGAP = { type: 3, value: "SPARKGAP" }; - IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; - IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER = { type: 3, value: "VOLTAGELIMITER" }; - IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; - class IfcPumpTypeEnum { - } - IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; - IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; - IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; - IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; - IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; - IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; - IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; - IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPumpTypeEnum = IfcPumpTypeEnum; - class IfcRailTypeEnum { - } - IfcRailTypeEnum.BLADE = { type: 3, value: "BLADE" }; - IfcRailTypeEnum.CHECKRAIL = { type: 3, value: "CHECKRAIL" }; - IfcRailTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailTypeEnum.RACKRAIL = { type: 3, value: "RACKRAIL" }; - IfcRailTypeEnum.RAIL = { type: 3, value: "RAIL" }; - IfcRailTypeEnum.STOCKRAIL = { type: 3, value: "STOCKRAIL" }; - IfcRailTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailTypeEnum = IfcRailTypeEnum; - class IfcRailingTypeEnum { - } - IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; - IfcRailingTypeEnum.FENCE = { type: 3, value: "FENCE" }; - IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; - IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailingTypeEnum = IfcRailingTypeEnum; - class IfcRailwayPartTypeEnum { - } - IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE = { type: 3, value: "DILATATIONSUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.LINESIDESTRUCTURE = { type: 3, value: "LINESIDESTRUCTURE" }; - IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART = { type: 3, value: "LINESIDESTRUCTUREPART" }; - IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE = { type: 3, value: "PLAINTRACKSUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.TRACKSTRUCTURE = { type: 3, value: "TRACKSTRUCTURE" }; - IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART = { type: 3, value: "TRACKSTRUCTUREPART" }; - IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE = { type: 3, value: "TURNOUTSUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailwayPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailwayPartTypeEnum = IfcRailwayPartTypeEnum; - class IfcRailwayTypeEnum { - } - IfcRailwayTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailwayTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailwayTypeEnum = IfcRailwayTypeEnum; - class IfcRampFlightTypeEnum { - } - IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; - class IfcRampTypeEnum { - } - IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; - IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; - IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRampTypeEnum = IfcRampTypeEnum; - class IfcRecurrenceTypeEnum { - } - IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; - IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; - IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; - IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; - IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; - IFC4X32.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; - class IfcReferentTypeEnum { - } - IfcReferentTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; - IfcReferentTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcReferentTypeEnum.KILOPOINT = { type: 3, value: "KILOPOINT" }; - IfcReferentTypeEnum.LANDMARK = { type: 3, value: "LANDMARK" }; - IfcReferentTypeEnum.MILEPOINT = { type: 3, value: "MILEPOINT" }; - IfcReferentTypeEnum.POSITION = { type: 3, value: "POSITION" }; - IfcReferentTypeEnum.REFERENCEMARKER = { type: 3, value: "REFERENCEMARKER" }; - IfcReferentTypeEnum.STATION = { type: 3, value: "STATION" }; - IfcReferentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReferentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReferentTypeEnum = IfcReferentTypeEnum; - class IfcReflectanceMethodEnum { - } - IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; - IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; - IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; - IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; - IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; - IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; - IfcReflectanceMethodEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; - IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; - class IfcReinforcedSoilTypeEnum { - } - IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED = { type: 3, value: "DYNAMICALLYCOMPACTED" }; - IfcReinforcedSoilTypeEnum.GROUTED = { type: 3, value: "GROUTED" }; - IfcReinforcedSoilTypeEnum.REPLACED = { type: 3, value: "REPLACED" }; - IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED = { type: 3, value: "ROLLERCOMPACTED" }; - IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED = { type: 3, value: "SURCHARGEPRELOADED" }; - IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED = { type: 3, value: "VERTICALLYDRAINED" }; - IfcReinforcedSoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcedSoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcedSoilTypeEnum = IfcReinforcedSoilTypeEnum; - class IfcReinforcingBarRoleEnum { - } - IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; - class IfcReinforcingBarSurfaceEnum { - } - IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; - IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; - IFC4X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; - class IfcReinforcingBarTypeEnum { - } - IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarTypeEnum.SPACEBAR = { type: 3, value: "SPACEBAR" }; - IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; - class IfcReinforcingMeshTypeEnum { - } - IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; - class IfcRoadPartTypeEnum { - } - IfcRoadPartTypeEnum.BICYCLECROSSING = { type: 3, value: "BICYCLECROSSING" }; - IfcRoadPartTypeEnum.BUS_STOP = { type: 3, value: "BUS_STOP" }; - IfcRoadPartTypeEnum.CARRIAGEWAY = { type: 3, value: "CARRIAGEWAY" }; - IfcRoadPartTypeEnum.CENTRALISLAND = { type: 3, value: "CENTRALISLAND" }; - IfcRoadPartTypeEnum.CENTRALRESERVE = { type: 3, value: "CENTRALRESERVE" }; - IfcRoadPartTypeEnum.HARDSHOULDER = { type: 3, value: "HARDSHOULDER" }; - IfcRoadPartTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcRoadPartTypeEnum.LAYBY = { type: 3, value: "LAYBY" }; - IfcRoadPartTypeEnum.PARKINGBAY = { type: 3, value: "PARKINGBAY" }; - IfcRoadPartTypeEnum.PASSINGBAY = { type: 3, value: "PASSINGBAY" }; - IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING = { type: 3, value: "PEDESTRIAN_CROSSING" }; - IfcRoadPartTypeEnum.RAILWAYCROSSING = { type: 3, value: "RAILWAYCROSSING" }; - IfcRoadPartTypeEnum.REFUGEISLAND = { type: 3, value: "REFUGEISLAND" }; - IfcRoadPartTypeEnum.ROADSEGMENT = { type: 3, value: "ROADSEGMENT" }; - IfcRoadPartTypeEnum.ROADSIDE = { type: 3, value: "ROADSIDE" }; - IfcRoadPartTypeEnum.ROADSIDEPART = { type: 3, value: "ROADSIDEPART" }; - IfcRoadPartTypeEnum.ROADWAYPLATEAU = { type: 3, value: "ROADWAYPLATEAU" }; - IfcRoadPartTypeEnum.ROUNDABOUT = { type: 3, value: "ROUNDABOUT" }; - IfcRoadPartTypeEnum.SHOULDER = { type: 3, value: "SHOULDER" }; - IfcRoadPartTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; - IfcRoadPartTypeEnum.SOFTSHOULDER = { type: 3, value: "SOFTSHOULDER" }; - IfcRoadPartTypeEnum.TOLLPLAZA = { type: 3, value: "TOLLPLAZA" }; - IfcRoadPartTypeEnum.TRAFFICISLAND = { type: 3, value: "TRAFFICISLAND" }; - IfcRoadPartTypeEnum.TRAFFICLANE = { type: 3, value: "TRAFFICLANE" }; - IfcRoadPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoadPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRoadPartTypeEnum = IfcRoadPartTypeEnum; - class IfcRoadTypeEnum { - } - IfcRoadTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRoadTypeEnum = IfcRoadTypeEnum; - class IfcRoleEnum { - } - IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; - IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; - IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; - IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; - IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; - IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; - IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; - IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; - IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; - IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; - IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; - IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; - IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; - IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; - IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; - IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; - IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; - IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; - IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; - IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; - IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; - IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; - IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcRoleEnum = IfcRoleEnum; - class IfcRoofTypeEnum { - } - IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; - IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; - IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; - IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; - IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; - IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; - IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; - IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; - IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; - IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; - IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; - IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; - IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRoofTypeEnum = IfcRoofTypeEnum; - class IfcSIPrefix { - } - IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; - IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; - IfcSIPrefix.DECA = { type: 3, value: "DECA" }; - IfcSIPrefix.DECI = { type: 3, value: "DECI" }; - IfcSIPrefix.EXA = { type: 3, value: "EXA" }; - IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; - IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; - IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; - IfcSIPrefix.KILO = { type: 3, value: "KILO" }; - IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; - IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; - IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; - IfcSIPrefix.NANO = { type: 3, value: "NANO" }; - IfcSIPrefix.PETA = { type: 3, value: "PETA" }; - IfcSIPrefix.PICO = { type: 3, value: "PICO" }; - IfcSIPrefix.TERA = { type: 3, value: "TERA" }; - IFC4X32.IfcSIPrefix = IfcSIPrefix; - class IfcSIUnitName { - } - IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; - IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; - IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; - IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; - IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; - IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; - IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; - IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; - IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; - IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; - IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; - IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; - IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; - IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; - IfcSIUnitName.LUX = { type: 3, value: "LUX" }; - IfcSIUnitName.METRE = { type: 3, value: "METRE" }; - IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; - IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; - IfcSIUnitName.OHM = { type: 3, value: "OHM" }; - IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; - IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; - IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; - IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; - IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; - IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; - IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; - IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; - IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; - IfcSIUnitName.WATT = { type: 3, value: "WATT" }; - IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; - IFC4X32.IfcSIUnitName = IfcSIUnitName; - class IfcSanitaryTerminalTypeEnum { - } - IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; - IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; - IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; - IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; - IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; - IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; - IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; - IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; - IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; - IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; - IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; - class IfcSectionTypeEnum { - } - IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; - IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; - IFC4X32.IfcSectionTypeEnum = IfcSectionTypeEnum; - class IfcSensorTypeEnum { - } - IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; - IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; - IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; - IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; - IfcSensorTypeEnum.EARTHQUAKESENSOR = { type: 3, value: "EARTHQUAKESENSOR" }; - IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; - IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; - IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR = { type: 3, value: "FOREIGNOBJECTDETECTIONSENSOR" }; - IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; - IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; - IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; - IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; - IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; - IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; - IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; - IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; - IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; - IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; - IfcSensorTypeEnum.OBSTACLESENSOR = { type: 3, value: "OBSTACLESENSOR" }; - IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; - IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; - IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; - IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; - IfcSensorTypeEnum.RAINSENSOR = { type: 3, value: "RAINSENSOR" }; - IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; - IfcSensorTypeEnum.SNOWDEPTHSENSOR = { type: 3, value: "SNOWDEPTHSENSOR" }; - IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; - IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; - IfcSensorTypeEnum.TRAINSENSOR = { type: 3, value: "TRAINSENSOR" }; - IfcSensorTypeEnum.TURNOUTCLOSURESENSOR = { type: 3, value: "TURNOUTCLOSURESENSOR" }; - IfcSensorTypeEnum.WHEELSENSOR = { type: 3, value: "WHEELSENSOR" }; - IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; - IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSensorTypeEnum = IfcSensorTypeEnum; - class IfcSequenceEnum { - } - IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; - IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; - IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; - IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; - IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSequenceEnum = IfcSequenceEnum; - class IfcShadingDeviceTypeEnum { - } - IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; - IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; - IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; - IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; - class IfcSignTypeEnum { - } - IfcSignTypeEnum.MARKER = { type: 3, value: "MARKER" }; - IfcSignTypeEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcSignTypeEnum.PICTORAL = { type: 3, value: "PICTORAL" }; - IfcSignTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSignTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSignTypeEnum = IfcSignTypeEnum; - class IfcSignalTypeEnum { - } - IfcSignalTypeEnum.AUDIO = { type: 3, value: "AUDIO" }; - IfcSignalTypeEnum.MIXED = { type: 3, value: "MIXED" }; - IfcSignalTypeEnum.VISUAL = { type: 3, value: "VISUAL" }; - IfcSignalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSignalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSignalTypeEnum = IfcSignalTypeEnum; - class IfcSimplePropertyTemplateTypeEnum { - } - IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; - IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; - IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; - IfcSimplePropertyTemplateTypeEnum.Q_NUMBER = { type: 3, value: "Q_NUMBER" }; - IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; - IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; - IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; - IFC4X32.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; - class IfcSlabTypeEnum { - } - IfcSlabTypeEnum.APPROACH_SLAB = { type: 3, value: "APPROACH_SLAB" }; - IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; - IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; - IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; - IfcSlabTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; - IfcSlabTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; - IfcSlabTypeEnum.TRACKSLAB = { type: 3, value: "TRACKSLAB" }; - IfcSlabTypeEnum.WEARING = { type: 3, value: "WEARING" }; - IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSlabTypeEnum = IfcSlabTypeEnum; - class IfcSolarDeviceTypeEnum { - } - IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; - IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; - IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; - class IfcSpaceHeaterTypeEnum { - } - IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; - IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; - IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; - class IfcSpaceTypeEnum { - } - IfcSpaceTypeEnum.BERTH = { type: 3, value: "BERTH" }; - IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; - IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; - IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; - IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; - class IfcSpatialZoneTypeEnum { - } - IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; - IfcSpatialZoneTypeEnum.INTERFERENCE = { type: 3, value: "INTERFERENCE" }; - IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; - IfcSpatialZoneTypeEnum.RESERVATION = { type: 3, value: "RESERVATION" }; - IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; - class IfcStackTerminalTypeEnum { - } - IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; - IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; - IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; - IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; - class IfcStairFlightTypeEnum { - } - IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; - IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; - IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; - class IfcStairTypeEnum { - } - IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; - IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; - IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; - IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; - IfcStairTypeEnum.LADDER = { type: 3, value: "LADDER" }; - IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; - IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStairTypeEnum = IfcStairTypeEnum; - class IfcStateEnum { - } - IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; - IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; - IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; - IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; - IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; - IFC4X32.IfcStateEnum = IfcStateEnum; - class IfcStructuralCurveActivityTypeEnum { - } - IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; - IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; - IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; - IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; - class IfcStructuralCurveMemberTypeEnum { - } - IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; - class IfcStructuralSurfaceActivityTypeEnum { - } - IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; - IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; - IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; - class IfcStructuralSurfaceMemberTypeEnum { - } - IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; - IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; - class IfcSubContractResourceTypeEnum { - } - IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; - IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; - class IfcSurfaceFeatureTypeEnum { - } - IfcSurfaceFeatureTypeEnum.DEFECT = { type: 3, value: "DEFECT" }; - IfcSurfaceFeatureTypeEnum.HATCHMARKING = { type: 3, value: "HATCHMARKING" }; - IfcSurfaceFeatureTypeEnum.LINEMARKING = { type: 3, value: "LINEMARKING" }; - IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; - IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING = { type: 3, value: "NONSKIDSURFACING" }; - IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING = { type: 3, value: "PAVEMENTSURFACEMARKING" }; - IfcSurfaceFeatureTypeEnum.RUMBLESTRIP = { type: 3, value: "RUMBLESTRIP" }; - IfcSurfaceFeatureTypeEnum.SYMBOLMARKING = { type: 3, value: "SYMBOLMARKING" }; - IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; - IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP = { type: 3, value: "TRANSVERSERUMBLESTRIP" }; - IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; - IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; - class IfcSurfaceSide { - } - IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; - IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; - IFC4X32.IfcSurfaceSide = IfcSurfaceSide; - class IfcSwitchingDeviceTypeEnum { - } - IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; - IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; - IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; - IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; - IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; - IfcSwitchingDeviceTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; - IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; - IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT = { type: 3, value: "START_AND_STOP_EQUIPMENT" }; - IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; - IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; - IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; - class IfcSystemFurnitureElementTypeEnum { - } - IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; - IfcSystemFurnitureElementTypeEnum.SUBRACK = { type: 3, value: "SUBRACK" }; - IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; - IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; - class IfcTankTypeEnum { - } - IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; - IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; - IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; - IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; - IfcTankTypeEnum.OILRETENTIONTRAY = { type: 3, value: "OILRETENTIONTRAY" }; - IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; - IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; - IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; - IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTankTypeEnum = IfcTankTypeEnum; - class IfcTaskDurationEnum { - } - IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; - IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; - IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTaskDurationEnum = IfcTaskDurationEnum; - class IfcTaskTypeEnum { - } - IfcTaskTypeEnum.ADJUSTMENT = { type: 3, value: "ADJUSTMENT" }; - IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; - IfcTaskTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; - IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; - IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcTaskTypeEnum.EMERGENCY = { type: 3, value: "EMERGENCY" }; - IfcTaskTypeEnum.INSPECTION = { type: 3, value: "INSPECTION" }; - IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; - IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; - IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; - IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; - IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; - IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; - IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; - IfcTaskTypeEnum.SAFETY = { type: 3, value: "SAFETY" }; - IfcTaskTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcTaskTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcTaskTypeEnum.TESTING = { type: 3, value: "TESTING" }; - IfcTaskTypeEnum.TROUBLESHOOTING = { type: 3, value: "TROUBLESHOOTING" }; - IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTaskTypeEnum = IfcTaskTypeEnum; - class IfcTendonAnchorTypeEnum { - } - IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; - IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; - IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; - class IfcTendonConduitTypeEnum { - } - IfcTendonConduitTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcTendonConduitTypeEnum.DIABOLO = { type: 3, value: "DIABOLO" }; - IfcTendonConduitTypeEnum.DUCT = { type: 3, value: "DUCT" }; - IfcTendonConduitTypeEnum.GROUTING_DUCT = { type: 3, value: "GROUTING_DUCT" }; - IfcTendonConduitTypeEnum.TRUMPET = { type: 3, value: "TRUMPET" }; - IfcTendonConduitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonConduitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum; - class IfcTendonTypeEnum { - } - IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; - IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; - IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; - IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; - IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTendonTypeEnum = IfcTendonTypeEnum; - class IfcTextPath { - } - IfcTextPath.DOWN = { type: 3, value: "DOWN" }; - IfcTextPath.LEFT = { type: 3, value: "LEFT" }; - IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; - IfcTextPath.UP = { type: 3, value: "UP" }; - IFC4X32.IfcTextPath = IfcTextPath; - class IfcTimeSeriesDataTypeEnum { - } - IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; - class IfcTrackElementTypeEnum { - } - IfcTrackElementTypeEnum.BLOCKINGDEVICE = { type: 3, value: "BLOCKINGDEVICE" }; - IfcTrackElementTypeEnum.DERAILER = { type: 3, value: "DERAILER" }; - IfcTrackElementTypeEnum.FROG = { type: 3, value: "FROG" }; - IfcTrackElementTypeEnum.HALF_SET_OF_BLADES = { type: 3, value: "HALF_SET_OF_BLADES" }; - IfcTrackElementTypeEnum.SLEEPER = { type: 3, value: "SLEEPER" }; - IfcTrackElementTypeEnum.SPEEDREGULATOR = { type: 3, value: "SPEEDREGULATOR" }; - IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT = { type: 3, value: "TRACKENDOFALIGNMENT" }; - IfcTrackElementTypeEnum.VEHICLESTOP = { type: 3, value: "VEHICLESTOP" }; - IfcTrackElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTrackElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTrackElementTypeEnum = IfcTrackElementTypeEnum; - class IfcTransformerTypeEnum { - } - IfcTransformerTypeEnum.CHOPPER = { type: 3, value: "CHOPPER" }; - IfcTransformerTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; - IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; - IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; - IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; - IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; - IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; - class IfcTransitionCode { - } - IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; - IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; - IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; - IFC4X32.IfcTransitionCode = IfcTransitionCode; - class IfcTransportElementTypeEnum { - } - IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; - IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; - IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; - IfcTransportElementTypeEnum.HAULINGGEAR = { type: 3, value: "HAULINGGEAR" }; - IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; - IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; - IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; - class IfcTrimmingPreference { - } - IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; - IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcTrimmingPreference = IfcTrimmingPreference; - class IfcTubeBundleTypeEnum { - } - IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; - IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; - class IfcUnitEnum { - } - IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; - IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; - IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; - IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; - IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; - IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; - IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; - IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; - IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; - IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; - IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; - IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; - IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; - IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; - IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; - IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; - IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; - IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; - IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; - IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; - IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; - IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; - IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; - IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; - IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; - IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; - IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; - IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcUnitEnum = IfcUnitEnum; - class IfcUnitaryControlElementTypeEnum { - } - IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; - IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER = { type: 3, value: "BASESTATIONCONTROLLER" }; - IfcUnitaryControlElementTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; - IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; - IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; - IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; - IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; - IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; - IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; - IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; - IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; - class IfcUnitaryEquipmentTypeEnum { - } - IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; - IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; - IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; - IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; - IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; - IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; - class IfcValveTypeEnum { - } - IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; - IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; - IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; - IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; - IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; - IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; - IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; - IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; - IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; - IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; - IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; - IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; - IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; - IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; - IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; - IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; - IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; - IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; - IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; - IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; - IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcValveTypeEnum = IfcValveTypeEnum; - class IfcVehicleTypeEnum { - } - IfcVehicleTypeEnum.CARGO = { type: 3, value: "CARGO" }; - IfcVehicleTypeEnum.ROLLINGSTOCK = { type: 3, value: "ROLLINGSTOCK" }; - IfcVehicleTypeEnum.VEHICLE = { type: 3, value: "VEHICLE" }; - IfcVehicleTypeEnum.VEHICLEAIR = { type: 3, value: "VEHICLEAIR" }; - IfcVehicleTypeEnum.VEHICLEMARINE = { type: 3, value: "VEHICLEMARINE" }; - IfcVehicleTypeEnum.VEHICLETRACKED = { type: 3, value: "VEHICLETRACKED" }; - IfcVehicleTypeEnum.VEHICLEWHEELED = { type: 3, value: "VEHICLEWHEELED" }; - IfcVehicleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVehicleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVehicleTypeEnum = IfcVehicleTypeEnum; - class IfcVibrationDamperTypeEnum { - } - IfcVibrationDamperTypeEnum.AXIAL_YIELD = { type: 3, value: "AXIAL_YIELD" }; - IfcVibrationDamperTypeEnum.BENDING_YIELD = { type: 3, value: "BENDING_YIELD" }; - IfcVibrationDamperTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcVibrationDamperTypeEnum.RUBBER = { type: 3, value: "RUBBER" }; - IfcVibrationDamperTypeEnum.SHEAR_YIELD = { type: 3, value: "SHEAR_YIELD" }; - IfcVibrationDamperTypeEnum.VISCOUS = { type: 3, value: "VISCOUS" }; - IfcVibrationDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum; - class IfcVibrationIsolatorTypeEnum { - } - IfcVibrationIsolatorTypeEnum.BASE = { type: 3, value: "BASE" }; - IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; - IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; - IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; - class IfcVirtualElementTypeEnum { - } - IfcVirtualElementTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; - IfcVirtualElementTypeEnum.CLEARANCE = { type: 3, value: "CLEARANCE" }; - IfcVirtualElementTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; - IfcVirtualElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVirtualElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVirtualElementTypeEnum = IfcVirtualElementTypeEnum; - class IfcVoidingFeatureTypeEnum { - } - IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; - IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; - IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; - IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; - IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; - IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; - class IfcWallTypeEnum { - } - IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; - IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; - IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; - IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; - IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; - IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcWallTypeEnum.RETAININGWALL = { type: 3, value: "RETAININGWALL" }; - IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; - IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; - IfcWallTypeEnum.WAVEWALL = { type: 3, value: "WAVEWALL" }; - IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWallTypeEnum = IfcWallTypeEnum; - class IfcWasteTerminalTypeEnum { - } - IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; - IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; - IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; - IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; - IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; - IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; - IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; - IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; - class IfcWindowPanelOperationEnum { - } - IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; - IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; - IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; - IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; - IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; - IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; - IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; - IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; - IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; - IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; - IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; - IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; - IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; - class IfcWindowPanelPositionEnum { - } - IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; - IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; - IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; - class IfcWindowStyleConstructionEnum { - } - IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; - IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; - class IfcWindowStyleOperationEnum { - } - IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; - class IfcWindowTypeEnum { - } - IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; - IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; - IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; - IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowTypeEnum = IfcWindowTypeEnum; - class IfcWindowTypePartitioningEnum { - } - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; - class IfcWorkCalendarTypeEnum { - } - IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; - IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; - IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; - IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; - class IfcWorkPlanTypeEnum { - } - IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; - class IfcWorkScheduleTypeEnum { - } - IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; - class IfcActorRole extends IfcLineObject { - constructor(expressID, Role, UserDefinedRole, Description) { - super(expressID); - this.Role = Role; - this.UserDefinedRole = UserDefinedRole; - this.Description = Description; - this.type = 3630933823; - } - } - IFC4X32.IfcActorRole = IfcActorRole; - class IfcAddress extends IfcLineObject { - constructor(expressID, Purpose, Description, UserDefinedPurpose) { - super(expressID); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.type = 618182010; - } - } - IFC4X32.IfcAddress = IfcAddress; - class IfcAlignmentParameterSegment extends IfcLineObject { - constructor(expressID, StartTag, EndTag) { - super(expressID); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.type = 2879124712; - } - } - IFC4X32.IfcAlignmentParameterSegment = IfcAlignmentParameterSegment; - class IfcAlignmentVerticalSegment extends IfcAlignmentParameterSegment { - constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, EndGradient, RadiusOfCurvature, PredefinedType) { - super(expressID, StartTag, EndTag); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.StartDistAlong = StartDistAlong; - this.HorizontalLength = HorizontalLength; - this.StartHeight = StartHeight; - this.StartGradient = StartGradient; - this.EndGradient = EndGradient; - this.RadiusOfCurvature = RadiusOfCurvature; - this.PredefinedType = PredefinedType; - this.type = 3633395639; - } - } - IFC4X32.IfcAlignmentVerticalSegment = IfcAlignmentVerticalSegment; - class IfcApplication extends IfcLineObject { - constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { - super(expressID); - this.ApplicationDeveloper = ApplicationDeveloper; - this.Version = Version; - this.ApplicationFullName = ApplicationFullName; - this.ApplicationIdentifier = ApplicationIdentifier; - this.type = 639542469; - } - } - IFC4X32.IfcApplication = IfcApplication; - class IfcAppliedValue extends IfcLineObject { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 411424972; - } - } - IFC4X32.IfcAppliedValue = IfcAppliedValue; - class IfcApproval extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { - super(expressID); - this.Identifier = Identifier; - this.Name = Name; - this.Description = Description; - this.TimeOfApproval = TimeOfApproval; - this.Status = Status; - this.Level = Level; - this.Qualifier = Qualifier; - this.RequestingApproval = RequestingApproval; - this.GivingApproval = GivingApproval; - this.type = 130549933; - } - } - IFC4X32.IfcApproval = IfcApproval; - class IfcBoundaryCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 4037036970; - } - } - IFC4X32.IfcBoundaryCondition = IfcBoundaryCondition; - class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; - this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; - this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; - this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; - this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; - this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; - this.type = 1560379544; - } - } - IFC4X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; - class IfcBoundaryFaceCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; - this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; - this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; - this.type = 3367102660; - } - } - IFC4X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; - class IfcBoundaryNodeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.type = 1387855156; - } - } - IFC4X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; - class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { - super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); - this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.WarpingStiffness = WarpingStiffness; - this.type = 2069777674; - } - } - IFC4X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; - class IfcConnectionGeometry extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 2859738748; - } - } - IFC4X32.IfcConnectionGeometry = IfcConnectionGeometry; - class IfcConnectionPointGeometry extends IfcConnectionGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { - super(expressID); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.type = 2614616156; - } - } - IFC4X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; - class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { - constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { - super(expressID); - this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; - this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; - this.type = 2732653382; - } - } - IFC4X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; - class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { - constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { - super(expressID); - this.VolumeOnRelatingElement = VolumeOnRelatingElement; - this.VolumeOnRelatedElement = VolumeOnRelatedElement; - this.type = 775493141; - } - } - IFC4X32.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; - class IfcConstraint extends IfcLineObject { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.type = 1959218052; - } - } - IFC4X32.IfcConstraint = IfcConstraint; - class IfcCoordinateOperation extends IfcLineObject { - constructor(expressID, SourceCRS, TargetCRS) { - super(expressID); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.type = 1785450214; - } - } - IFC4X32.IfcCoordinateOperation = IfcCoordinateOperation; - class IfcCoordinateReferenceSystem extends IfcLineObject { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.type = 1466758467; - } - } - IFC4X32.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; - class IfcCostValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 602808272; - } - } - IFC4X32.IfcCostValue = IfcCostValue; - class IfcDerivedUnit extends IfcLineObject { - constructor(expressID, Elements, UnitType, UserDefinedType, Name) { - super(expressID); - this.Elements = Elements; - this.UnitType = UnitType; - this.UserDefinedType = UserDefinedType; - this.Name = Name; - this.type = 1765591967; - } - } - IFC4X32.IfcDerivedUnit = IfcDerivedUnit; - class IfcDerivedUnitElement extends IfcLineObject { - constructor(expressID, Unit, Exponent) { - super(expressID); - this.Unit = Unit; - this.Exponent = Exponent; - this.type = 1045800335; - } - } - IFC4X32.IfcDerivedUnitElement = IfcDerivedUnitElement; - class IfcDimensionalExponents extends IfcLineObject { - constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { - super(expressID); - this.LengthExponent = LengthExponent; - this.MassExponent = MassExponent; - this.TimeExponent = TimeExponent; - this.ElectricCurrentExponent = ElectricCurrentExponent; - this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; - this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; - this.LuminousIntensityExponent = LuminousIntensityExponent; - this.type = 2949456006; - } - } - IFC4X32.IfcDimensionalExponents = IfcDimensionalExponents; - class IfcExternalInformation extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 4294318154; - } - } - IFC4X32.IfcExternalInformation = IfcExternalInformation; - class IfcExternalReference extends IfcLineObject { - constructor(expressID, Location, Identification, Name) { - super(expressID); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 3200245327; - } - } - IFC4X32.IfcExternalReference = IfcExternalReference; - class IfcExternallyDefinedHatchStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 2242383968; - } - } - IFC4X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; - class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 1040185647; - } - } - IFC4X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; - class IfcExternallyDefinedTextFont extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 3548104201; - } - } - IFC4X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; - class IfcGridAxis extends IfcLineObject { - constructor(expressID, AxisTag, AxisCurve, SameSense) { - super(expressID); - this.AxisTag = AxisTag; - this.AxisCurve = AxisCurve; - this.SameSense = SameSense; - this.type = 852622518; - } - } - IFC4X32.IfcGridAxis = IfcGridAxis; - class IfcIrregularTimeSeriesValue extends IfcLineObject { - constructor(expressID, TimeStamp, ListValues) { - super(expressID); - this.TimeStamp = TimeStamp; - this.ListValues = ListValues; - this.type = 3020489413; - } - } - IFC4X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; - class IfcLibraryInformation extends IfcExternalInformation { - constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { - super(expressID); - this.Name = Name; - this.Version = Version; - this.Publisher = Publisher; - this.VersionDate = VersionDate; - this.Location = Location; - this.Description = Description; - this.type = 2655187982; - } - } - IFC4X32.IfcLibraryInformation = IfcLibraryInformation; - class IfcLibraryReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Language = Language; - this.ReferencedLibrary = ReferencedLibrary; - this.type = 3452421091; - } - } - IFC4X32.IfcLibraryReference = IfcLibraryReference; - class IfcLightDistributionData extends IfcLineObject { - constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { - super(expressID); - this.MainPlaneAngle = MainPlaneAngle; - this.SecondaryPlaneAngle = SecondaryPlaneAngle; - this.LuminousIntensity = LuminousIntensity; - this.type = 4162380809; - } - } - IFC4X32.IfcLightDistributionData = IfcLightDistributionData; - class IfcLightIntensityDistribution extends IfcLineObject { - constructor(expressID, LightDistributionCurve, DistributionData) { - super(expressID); - this.LightDistributionCurve = LightDistributionCurve; - this.DistributionData = DistributionData; - this.type = 1566485204; - } - } - IFC4X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; - class IfcMapConversion extends IfcCoordinateOperation { - constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale, ScaleY, ScaleZ) { - super(expressID, SourceCRS, TargetCRS); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.Eastings = Eastings; - this.Northings = Northings; - this.OrthogonalHeight = OrthogonalHeight; - this.XAxisAbscissa = XAxisAbscissa; - this.XAxisOrdinate = XAxisOrdinate; - this.Scale = Scale; - this.ScaleY = ScaleY; - this.ScaleZ = ScaleZ; - this.type = 3057273783; - } - } - IFC4X32.IfcMapConversion = IfcMapConversion; - class IfcMaterialClassificationRelationship extends IfcLineObject { - constructor(expressID, MaterialClassifications, ClassifiedMaterial) { - super(expressID); - this.MaterialClassifications = MaterialClassifications; - this.ClassifiedMaterial = ClassifiedMaterial; - this.type = 1847130766; - } - } - IFC4X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; - class IfcMaterialDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 760658860; - } - } - IFC4X32.IfcMaterialDefinition = IfcMaterialDefinition; - class IfcMaterialLayer extends IfcMaterialDefinition { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { - super(expressID); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.type = 248100487; - } - } - IFC4X32.IfcMaterialLayer = IfcMaterialLayer; - class IfcMaterialLayerSet extends IfcMaterialDefinition { - constructor(expressID, MaterialLayers, LayerSetName, Description) { - super(expressID); - this.MaterialLayers = MaterialLayers; - this.LayerSetName = LayerSetName; - this.Description = Description; - this.type = 3303938423; - } - } - IFC4X32.IfcMaterialLayerSet = IfcMaterialLayerSet; - class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { - super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.OffsetDirection = OffsetDirection; - this.OffsetValues = OffsetValues; - this.type = 1847252529; - } - } - IFC4X32.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; - class IfcMaterialList extends IfcLineObject { - constructor(expressID, Materials) { - super(expressID); - this.Materials = Materials; - this.type = 2199411900; - } - } - IFC4X32.IfcMaterialList = IfcMaterialList; - class IfcMaterialProfile extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Profile, Priority, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.type = 2235152071; - } - } - IFC4X32.IfcMaterialProfile = IfcMaterialProfile; - class IfcMaterialProfileSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.MaterialProfiles = MaterialProfiles; - this.CompositeProfile = CompositeProfile; - this.type = 164193824; - } - } - IFC4X32.IfcMaterialProfileSet = IfcMaterialProfileSet; - class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { - constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { - super(expressID, Name, Description, Material, Profile, Priority, Category); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.OffsetValues = OffsetValues; - this.type = 552965576; - } - } - IFC4X32.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; - class IfcMaterialUsageDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 1507914824; - } - } - IFC4X32.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; - class IfcMeasureWithUnit extends IfcLineObject { - constructor(expressID, ValueComponent, UnitComponent) { - super(expressID); - this.ValueComponent = ValueComponent; - this.UnitComponent = UnitComponent; - this.type = 2597039031; - } - } - IFC4X32.IfcMeasureWithUnit = IfcMeasureWithUnit; - class IfcMetric extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.Benchmark = Benchmark; - this.ValueSource = ValueSource; - this.DataValue = DataValue; - this.ReferencePath = ReferencePath; - this.type = 3368373690; - } - } - IFC4X32.IfcMetric = IfcMetric; - class IfcMonetaryUnit extends IfcLineObject { - constructor(expressID, Currency) { - super(expressID); - this.Currency = Currency; - this.type = 2706619895; - } - } - IFC4X32.IfcMonetaryUnit = IfcMonetaryUnit; - class IfcNamedUnit extends IfcLineObject { - constructor(expressID, Dimensions, UnitType) { - super(expressID); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.type = 1918398963; - } - } - IFC4X32.IfcNamedUnit = IfcNamedUnit; - class IfcObjectPlacement extends IfcLineObject { - constructor(expressID, PlacementRelTo) { - super(expressID); - this.PlacementRelTo = PlacementRelTo; - this.type = 3701648758; - } - } - IFC4X32.IfcObjectPlacement = IfcObjectPlacement; - class IfcObjective extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.BenchmarkValues = BenchmarkValues; - this.LogicalAggregator = LogicalAggregator; - this.ObjectiveQualifier = ObjectiveQualifier; - this.UserDefinedQualifier = UserDefinedQualifier; - this.type = 2251480897; - } - } - IFC4X32.IfcObjective = IfcObjective; - class IfcOrganization extends IfcLineObject { - constructor(expressID, Identification, Name, Description, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 4251960020; - } - } - IFC4X32.IfcOrganization = IfcOrganization; - class IfcOwnerHistory extends IfcLineObject { - constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { - super(expressID); - this.OwningUser = OwningUser; - this.OwningApplication = OwningApplication; - this.State = State; - this.ChangeAction = ChangeAction; - this.LastModifiedDate = LastModifiedDate; - this.LastModifyingUser = LastModifyingUser; - this.LastModifyingApplication = LastModifyingApplication; - this.CreationDate = CreationDate; - this.type = 1207048766; - } - } - IFC4X32.IfcOwnerHistory = IfcOwnerHistory; - class IfcPerson extends IfcLineObject { - constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.FamilyName = FamilyName; - this.GivenName = GivenName; - this.MiddleNames = MiddleNames; - this.PrefixTitles = PrefixTitles; - this.SuffixTitles = SuffixTitles; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 2077209135; - } - } - IFC4X32.IfcPerson = IfcPerson; - class IfcPersonAndOrganization extends IfcLineObject { - constructor(expressID, ThePerson, TheOrganization, Roles) { - super(expressID); - this.ThePerson = ThePerson; - this.TheOrganization = TheOrganization; - this.Roles = Roles; - this.type = 101040310; - } - } - IFC4X32.IfcPersonAndOrganization = IfcPersonAndOrganization; - class IfcPhysicalQuantity extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2483315170; - } - } - IFC4X32.IfcPhysicalQuantity = IfcPhysicalQuantity; - class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.type = 2226359599; - } - } - IFC4X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; - class IfcPostalAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.InternalLocation = InternalLocation; - this.AddressLines = AddressLines; - this.PostalBox = PostalBox; - this.Town = Town; - this.Region = Region; - this.PostalCode = PostalCode; - this.Country = Country; - this.type = 3355820592; - } - } - IFC4X32.IfcPostalAddress = IfcPostalAddress; - class IfcPresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 677532197; - } - } - IFC4X32.IfcPresentationItem = IfcPresentationItem; - class IfcPresentationLayerAssignment extends IfcLineObject { - constructor(expressID, Name, Description, AssignedItems, Identifier) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.type = 2022622350; - } - } - IFC4X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; - class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { - constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { - super(expressID, Name, Description, AssignedItems, Identifier); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.LayerOn = LayerOn; - this.LayerFrozen = LayerFrozen; - this.LayerBlocked = LayerBlocked; - this.LayerStyles = LayerStyles; - this.type = 1304840413; - } - } - IFC4X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; - class IfcPresentationStyle extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3119450353; - } - } - IFC4X32.IfcPresentationStyle = IfcPresentationStyle; - class IfcProductRepresentation extends IfcLineObject { - constructor(expressID, Name, Description, Representations) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 2095639259; - } - } - IFC4X32.IfcProductRepresentation = IfcProductRepresentation; - class IfcProfileDef extends IfcLineObject { - constructor(expressID, ProfileType, ProfileName) { - super(expressID); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.type = 3958567839; - } - } - IFC4X32.IfcProfileDef = IfcProfileDef; - class IfcProjectedCRS extends IfcCoordinateReferenceSystem { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { - super(expressID, Name, Description, GeodeticDatum, VerticalDatum); - this.Name = Name; - this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.MapProjection = MapProjection; - this.MapZone = MapZone; - this.MapUnit = MapUnit; - this.type = 3843373140; - } - } - IFC4X32.IfcProjectedCRS = IfcProjectedCRS; - class IfcPropertyAbstraction extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 986844984; - } - } - IFC4X32.IfcPropertyAbstraction = IfcPropertyAbstraction; - class IfcPropertyEnumeration extends IfcPropertyAbstraction { - constructor(expressID, Name, EnumerationValues, Unit) { - super(expressID); - this.Name = Name; - this.EnumerationValues = EnumerationValues; - this.Unit = Unit; - this.type = 3710013099; - } - } - IFC4X32.IfcPropertyEnumeration = IfcPropertyEnumeration; - class IfcQuantityArea extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, AreaValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.AreaValue = AreaValue; - this.Formula = Formula; - this.type = 2044713172; - } - } - IFC4X32.IfcQuantityArea = IfcQuantityArea; - class IfcQuantityCount extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, CountValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.CountValue = CountValue; - this.Formula = Formula; - this.type = 2093928680; - } - } - IFC4X32.IfcQuantityCount = IfcQuantityCount; - class IfcQuantityLength extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, LengthValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.LengthValue = LengthValue; - this.Formula = Formula; - this.type = 931644368; - } - } - IFC4X32.IfcQuantityLength = IfcQuantityLength; - class IfcQuantityNumber extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, NumberValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.NumberValue = NumberValue; - this.Formula = Formula; - this.type = 2691318326; - } - } - IFC4X32.IfcQuantityNumber = IfcQuantityNumber; - class IfcQuantityTime extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, TimeValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.TimeValue = TimeValue; - this.Formula = Formula; - this.type = 3252649465; - } - } - IFC4X32.IfcQuantityTime = IfcQuantityTime; - class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.VolumeValue = VolumeValue; - this.Formula = Formula; - this.type = 2405470396; - } - } - IFC4X32.IfcQuantityVolume = IfcQuantityVolume; - class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, WeightValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.WeightValue = WeightValue; - this.Formula = Formula; - this.type = 825690147; - } - } - IFC4X32.IfcQuantityWeight = IfcQuantityWeight; - class IfcRecurrencePattern extends IfcLineObject { - constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { - super(expressID); - this.RecurrenceType = RecurrenceType; - this.DayComponent = DayComponent; - this.WeekdayComponent = WeekdayComponent; - this.MonthComponent = MonthComponent; - this.Position = Position; - this.Interval = Interval; - this.Occurrences = Occurrences; - this.TimePeriods = TimePeriods; - this.type = 3915482550; - } - } - IFC4X32.IfcRecurrencePattern = IfcRecurrencePattern; - class IfcReference extends IfcLineObject { - constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { - super(expressID); - this.TypeIdentifier = TypeIdentifier; - this.AttributeIdentifier = AttributeIdentifier; - this.InstanceName = InstanceName; - this.ListPositions = ListPositions; - this.InnerReference = InnerReference; - this.type = 2433181523; - } - } - IFC4X32.IfcReference = IfcReference; - class IfcRepresentation extends IfcLineObject { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1076942058; - } - } - IFC4X32.IfcRepresentation = IfcRepresentation; - class IfcRepresentationContext extends IfcLineObject { - constructor(expressID, ContextIdentifier, ContextType) { - super(expressID); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.type = 3377609919; - } - } - IFC4X32.IfcRepresentationContext = IfcRepresentationContext; - class IfcRepresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3008791417; - } - } - IFC4X32.IfcRepresentationItem = IfcRepresentationItem; - class IfcRepresentationMap extends IfcLineObject { - constructor(expressID, MappingOrigin, MappedRepresentation) { - super(expressID); - this.MappingOrigin = MappingOrigin; - this.MappedRepresentation = MappedRepresentation; - this.type = 1660063152; - } - } - IFC4X32.IfcRepresentationMap = IfcRepresentationMap; - class IfcResourceLevelRelationship extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2439245199; - } - } - IFC4X32.IfcResourceLevelRelationship = IfcResourceLevelRelationship; - class IfcRoot extends IfcLineObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2341007311; - } - } - IFC4X32.IfcRoot = IfcRoot; - class IfcSIUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Prefix, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Prefix = Prefix; - this.Name = Name; - this.type = 448429030; - } - } - IFC4X32.IfcSIUnit = IfcSIUnit; - class IfcSchedulingTime extends IfcLineObject { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { - super(expressID); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.type = 1054537805; - } - } - IFC4X32.IfcSchedulingTime = IfcSchedulingTime; - class IfcShapeAspect extends IfcLineObject { - constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { - super(expressID); - this.ShapeRepresentations = ShapeRepresentations; - this.Name = Name; - this.Description = Description; - this.ProductDefinitional = ProductDefinitional; - this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; - this.type = 867548509; - } - } - IFC4X32.IfcShapeAspect = IfcShapeAspect; - class IfcShapeModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3982875396; - } - } - IFC4X32.IfcShapeModel = IfcShapeModel; - class IfcShapeRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 4240577450; - } - } - IFC4X32.IfcShapeRepresentation = IfcShapeRepresentation; - class IfcStructuralConnectionCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2273995522; - } - } - IFC4X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; - class IfcStructuralLoad extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2162789131; - } - } - IFC4X32.IfcStructuralLoad = IfcStructuralLoad; - class IfcStructuralLoadConfiguration extends IfcStructuralLoad { - constructor(expressID, Name, Values, Locations) { - super(expressID, Name); - this.Name = Name; - this.Values = Values; - this.Locations = Locations; - this.type = 3478079324; - } - } - IFC4X32.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; - class IfcStructuralLoadOrResult extends IfcStructuralLoad { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 609421318; - } - } - IFC4X32.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; - class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2525727697; - } - } - IFC4X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; - class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { - constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { - super(expressID, Name); - this.Name = Name; - this.DeltaTConstant = DeltaTConstant; - this.DeltaTY = DeltaTY; - this.DeltaTZ = DeltaTZ; - this.type = 3408363356; - } - } - IFC4X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; - class IfcStyleModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 2830218821; - } - } - IFC4X32.IfcStyleModel = IfcStyleModel; - class IfcStyledItem extends IfcRepresentationItem { - constructor(expressID, Item, Styles, Name) { - super(expressID); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3958052878; - } - } - IFC4X32.IfcStyledItem = IfcStyledItem; - class IfcStyledRepresentation extends IfcStyleModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3049322572; - } - } - IFC4X32.IfcStyledRepresentation = IfcStyledRepresentation; - class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { - constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { - super(expressID, Name); - this.Name = Name; - this.SurfaceReinforcement1 = SurfaceReinforcement1; - this.SurfaceReinforcement2 = SurfaceReinforcement2; - this.ShearReinforcement = ShearReinforcement; - this.type = 2934153892; - } - } - IFC4X32.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; - class IfcSurfaceStyle extends IfcPresentationStyle { - constructor(expressID, Name, Side, Styles) { - super(expressID, Name); - this.Name = Name; - this.Side = Side; - this.Styles = Styles; - this.type = 1300840506; - } - } - IFC4X32.IfcSurfaceStyle = IfcSurfaceStyle; - class IfcSurfaceStyleLighting extends IfcPresentationItem { - constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { - super(expressID); - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.DiffuseReflectionColour = DiffuseReflectionColour; - this.TransmissionColour = TransmissionColour; - this.ReflectanceColour = ReflectanceColour; - this.type = 3303107099; - } - } - IFC4X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; - class IfcSurfaceStyleRefraction extends IfcPresentationItem { - constructor(expressID, RefractionIndex, DispersionFactor) { - super(expressID); - this.RefractionIndex = RefractionIndex; - this.DispersionFactor = DispersionFactor; - this.type = 1607154358; - } - } - IFC4X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; - class IfcSurfaceStyleShading extends IfcPresentationItem { - constructor(expressID, SurfaceColour, Transparency) { - super(expressID); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.type = 846575682; - } - } - IFC4X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; - class IfcSurfaceStyleWithTextures extends IfcPresentationItem { - constructor(expressID, Textures) { - super(expressID); - this.Textures = Textures; - this.type = 1351298697; - } - } - IFC4X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; - class IfcSurfaceTexture extends IfcPresentationItem { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { - super(expressID); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.type = 626085974; - } - } - IFC4X32.IfcSurfaceTexture = IfcSurfaceTexture; - class IfcTable extends IfcLineObject { - constructor(expressID, Name, Rows, Columns) { - super(expressID); - this.Name = Name; - this.Rows = Rows; - this.Columns = Columns; - this.type = 985171141; - } - } - IFC4X32.IfcTable = IfcTable; - class IfcTableColumn extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { - super(expressID); - this.Identifier = Identifier; - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.ReferencePath = ReferencePath; - this.type = 2043862942; - } - } - IFC4X32.IfcTableColumn = IfcTableColumn; - class IfcTableRow extends IfcLineObject { - constructor(expressID, RowCells, IsHeading) { - super(expressID); - this.RowCells = RowCells; - this.IsHeading = IsHeading; - this.type = 531007025; - } - } - IFC4X32.IfcTableRow = IfcTableRow; - class IfcTaskTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.type = 1549132990; - } - } - IFC4X32.IfcTaskTime = IfcTaskTime; - class IfcTaskTimeRecurring extends IfcTaskTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.Recurrence = Recurrence; - this.type = 2771591690; - } - } - IFC4X32.IfcTaskTimeRecurring = IfcTaskTimeRecurring; - class IfcTelecomAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.TelephoneNumbers = TelephoneNumbers; - this.FacsimileNumbers = FacsimileNumbers; - this.PagerNumber = PagerNumber; - this.ElectronicMailAddresses = ElectronicMailAddresses; - this.WWWHomePageURL = WWWHomePageURL; - this.MessagingIDs = MessagingIDs; - this.type = 912023232; - } - } - IFC4X32.IfcTelecomAddress = IfcTelecomAddress; - class IfcTextStyle extends IfcPresentationStyle { - constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.TextCharacterAppearance = TextCharacterAppearance; - this.TextStyle = TextStyle; - this.TextFontStyle = TextFontStyle; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 1447204868; - } - } - IFC4X32.IfcTextStyle = IfcTextStyle; - class IfcTextStyleForDefinedFont extends IfcPresentationItem { - constructor(expressID, Colour, BackgroundColour) { - super(expressID); - this.Colour = Colour; - this.BackgroundColour = BackgroundColour; - this.type = 2636378356; - } - } - IFC4X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; - class IfcTextStyleTextModel extends IfcPresentationItem { - constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { - super(expressID); - this.TextIndent = TextIndent; - this.TextAlign = TextAlign; - this.TextDecoration = TextDecoration; - this.LetterSpacing = LetterSpacing; - this.WordSpacing = WordSpacing; - this.TextTransform = TextTransform; - this.LineHeight = LineHeight; - this.type = 1640371178; - } - } - IFC4X32.IfcTextStyleTextModel = IfcTextStyleTextModel; - class IfcTextureCoordinate extends IfcPresentationItem { - constructor(expressID, Maps) { - super(expressID); - this.Maps = Maps; - this.type = 280115917; - } - } - IFC4X32.IfcTextureCoordinate = IfcTextureCoordinate; - class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { - constructor(expressID, Maps, Mode, Parameter) { - super(expressID, Maps); - this.Maps = Maps; - this.Mode = Mode; - this.Parameter = Parameter; - this.type = 1742049831; - } - } - IFC4X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; - class IfcTextureCoordinateIndices extends IfcLineObject { - constructor(expressID, TexCoordIndex, TexCoordsOf) { - super(expressID); - this.TexCoordIndex = TexCoordIndex; - this.TexCoordsOf = TexCoordsOf; - this.type = 222769930; - } - } - IFC4X32.IfcTextureCoordinateIndices = IfcTextureCoordinateIndices; - class IfcTextureCoordinateIndicesWithVoids extends IfcTextureCoordinateIndices { - constructor(expressID, TexCoordIndex, TexCoordsOf, InnerTexCoordIndices) { - super(expressID, TexCoordIndex, TexCoordsOf); - this.TexCoordIndex = TexCoordIndex; - this.TexCoordsOf = TexCoordsOf; - this.InnerTexCoordIndices = InnerTexCoordIndices; - this.type = 1010789467; - } - } - IFC4X32.IfcTextureCoordinateIndicesWithVoids = IfcTextureCoordinateIndicesWithVoids; - class IfcTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, Vertices, MappedTo) { - super(expressID, Maps); - this.Maps = Maps; - this.Vertices = Vertices; - this.MappedTo = MappedTo; - this.type = 2552916305; - } - } - IFC4X32.IfcTextureMap = IfcTextureMap; - class IfcTextureVertex extends IfcPresentationItem { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1210645708; - } - } - IFC4X32.IfcTextureVertex = IfcTextureVertex; - class IfcTextureVertexList extends IfcPresentationItem { - constructor(expressID, TexCoordsList) { - super(expressID); - this.TexCoordsList = TexCoordsList; - this.type = 3611470254; - } - } - IFC4X32.IfcTextureVertexList = IfcTextureVertexList; - class IfcTimePeriod extends IfcLineObject { - constructor(expressID, StartTime, EndTime) { - super(expressID); - this.StartTime = StartTime; - this.EndTime = EndTime; - this.type = 1199560280; - } - } - IFC4X32.IfcTimePeriod = IfcTimePeriod; - class IfcTimeSeries extends IfcLineObject { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.type = 3101149627; - } - } - IFC4X32.IfcTimeSeries = IfcTimeSeries; - class IfcTimeSeriesValue extends IfcLineObject { - constructor(expressID, ListValues) { - super(expressID); - this.ListValues = ListValues; - this.type = 581633288; - } - } - IFC4X32.IfcTimeSeriesValue = IfcTimeSeriesValue; - class IfcTopologicalRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1377556343; - } - } - IFC4X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; - class IfcTopologyRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1735638870; - } - } - IFC4X32.IfcTopologyRepresentation = IfcTopologyRepresentation; - class IfcUnitAssignment extends IfcLineObject { - constructor(expressID, Units) { - super(expressID); - this.Units = Units; - this.type = 180925521; - } - } - IFC4X32.IfcUnitAssignment = IfcUnitAssignment; - class IfcVertex extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2799835756; - } - } - IFC4X32.IfcVertex = IfcVertex; - class IfcVertexPoint extends IfcVertex { - constructor(expressID, VertexGeometry) { - super(expressID); - this.VertexGeometry = VertexGeometry; - this.type = 1907098498; - } - } - IFC4X32.IfcVertexPoint = IfcVertexPoint; - class IfcVirtualGridIntersection extends IfcLineObject { - constructor(expressID, IntersectingAxes, OffsetDistances) { - super(expressID); - this.IntersectingAxes = IntersectingAxes; - this.OffsetDistances = OffsetDistances; - this.type = 891718957; - } - } - IFC4X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; - class IfcWorkTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, StartDate, FinishDate) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.RecurrencePattern = RecurrencePattern; - this.StartDate = StartDate; - this.FinishDate = FinishDate; - this.type = 1236880293; - } - } - IFC4X32.IfcWorkTime = IfcWorkTime; - class IfcAlignmentCantSegment extends IfcAlignmentParameterSegment { - constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartCantLeft, EndCantLeft, StartCantRight, EndCantRight, PredefinedType) { - super(expressID, StartTag, EndTag); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.StartDistAlong = StartDistAlong; - this.HorizontalLength = HorizontalLength; - this.StartCantLeft = StartCantLeft; - this.EndCantLeft = EndCantLeft; - this.StartCantRight = StartCantRight; - this.EndCantRight = EndCantRight; - this.PredefinedType = PredefinedType; - this.type = 3752311538; - } - } - IFC4X32.IfcAlignmentCantSegment = IfcAlignmentCantSegment; - class IfcAlignmentHorizontalSegment extends IfcAlignmentParameterSegment { - constructor(expressID, StartTag, EndTag, StartPoint, StartDirection, StartRadiusOfCurvature, EndRadiusOfCurvature, SegmentLength, GravityCenterLineHeight, PredefinedType) { - super(expressID, StartTag, EndTag); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.StartPoint = StartPoint; - this.StartDirection = StartDirection; - this.StartRadiusOfCurvature = StartRadiusOfCurvature; - this.EndRadiusOfCurvature = EndRadiusOfCurvature; - this.SegmentLength = SegmentLength; - this.GravityCenterLineHeight = GravityCenterLineHeight; - this.PredefinedType = PredefinedType; - this.type = 536804194; - } - } - IFC4X32.IfcAlignmentHorizontalSegment = IfcAlignmentHorizontalSegment; - class IfcApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingApproval = RelatingApproval; - this.RelatedApprovals = RelatedApprovals; - this.type = 3869604511; - } - } - IFC4X32.IfcApprovalRelationship = IfcApprovalRelationship; - class IfcArbitraryClosedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.type = 3798115385; - } - } - IFC4X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; - class IfcArbitraryOpenProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.type = 1310608509; - } - } - IFC4X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; - class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { - super(expressID, ProfileType, ProfileName, OuterCurve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.InnerCurves = InnerCurves; - this.type = 2705031697; - } - } - IFC4X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; - class IfcBlobTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.RasterFormat = RasterFormat; - this.RasterCode = RasterCode; - this.type = 616511568; - } - } - IFC4X32.IfcBlobTexture = IfcBlobTexture; - class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { - super(expressID, ProfileType, ProfileName, Curve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.Thickness = Thickness; - this.type = 3150382593; - } - } - IFC4X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; - class IfcClassification extends IfcExternalInformation { - constructor(expressID, Source, Edition, EditionDate, Name, Description, Specification, ReferenceTokens) { - super(expressID); - this.Source = Source; - this.Edition = Edition; - this.EditionDate = EditionDate; - this.Name = Name; - this.Description = Description; - this.Specification = Specification; - this.ReferenceTokens = ReferenceTokens; - this.type = 747523909; - } - } - IFC4X32.IfcClassification = IfcClassification; - class IfcClassificationReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.ReferencedSource = ReferencedSource; - this.Description = Description; - this.Sort = Sort; - this.type = 647927063; - } - } - IFC4X32.IfcClassificationReference = IfcClassificationReference; - class IfcColourRgbList extends IfcPresentationItem { - constructor(expressID, ColourList) { - super(expressID); - this.ColourList = ColourList; - this.type = 3285139300; - } - } - IFC4X32.IfcColourRgbList = IfcColourRgbList; - class IfcColourSpecification extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3264961684; - } - } - IFC4X32.IfcColourSpecification = IfcColourSpecification; - class IfcCompositeProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Profiles, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Profiles = Profiles; - this.Label = Label; - this.type = 1485152156; - } - } - IFC4X32.IfcCompositeProfileDef = IfcCompositeProfileDef; - class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { - constructor(expressID, CfsFaces) { - super(expressID); - this.CfsFaces = CfsFaces; - this.type = 370225590; - } - } - IFC4X32.IfcConnectedFaceSet = IfcConnectedFaceSet; - class IfcConnectionCurveGeometry extends IfcConnectionGeometry { - constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { - super(expressID); - this.CurveOnRelatingElement = CurveOnRelatingElement; - this.CurveOnRelatedElement = CurveOnRelatedElement; - this.type = 1981873012; - } - } - IFC4X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; - class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { - super(expressID, PointOnRelatingElement, PointOnRelatedElement); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.EccentricityInX = EccentricityInX; - this.EccentricityInY = EccentricityInY; - this.EccentricityInZ = EccentricityInZ; - this.type = 45288368; - } - } - IFC4X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; - class IfcContextDependentUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.type = 3050246964; - } - } - IFC4X32.IfcContextDependentUnit = IfcContextDependentUnit; - class IfcConversionBasedUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.type = 2889183280; - } - } - IFC4X32.IfcConversionBasedUnit = IfcConversionBasedUnit; - class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { - super(expressID, Dimensions, UnitType, Name, ConversionFactor); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.ConversionOffset = ConversionOffset; - this.type = 2713554722; - } - } - IFC4X32.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; - class IfcCurrencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingMonetaryUnit = RelatingMonetaryUnit; - this.RelatedMonetaryUnit = RelatedMonetaryUnit; - this.ExchangeRate = ExchangeRate; - this.RateDateTime = RateDateTime; - this.RateSource = RateSource; - this.type = 539742890; - } - } - IFC4X32.IfcCurrencyRelationship = IfcCurrencyRelationship; - class IfcCurveStyle extends IfcPresentationStyle { - constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveWidth = CurveWidth; - this.CurveColour = CurveColour; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 3800577675; - } - } - IFC4X32.IfcCurveStyle = IfcCurveStyle; - class IfcCurveStyleFont extends IfcPresentationItem { - constructor(expressID, Name, PatternList) { - super(expressID); - this.Name = Name; - this.PatternList = PatternList; - this.type = 1105321065; - } - } - IFC4X32.IfcCurveStyleFont = IfcCurveStyleFont; - class IfcCurveStyleFontAndScaling extends IfcPresentationItem { - constructor(expressID, Name, CurveStyleFont, CurveFontScaling) { - super(expressID); - this.Name = Name; - this.CurveStyleFont = CurveStyleFont; - this.CurveFontScaling = CurveFontScaling; - this.type = 2367409068; - } - } - IFC4X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; - class IfcCurveStyleFontPattern extends IfcPresentationItem { - constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { - super(expressID); - this.VisibleSegmentLength = VisibleSegmentLength; - this.InvisibleSegmentLength = InvisibleSegmentLength; - this.type = 3510044353; - } - } - IFC4X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; - class IfcDerivedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 3632507154; - } - } - IFC4X32.IfcDerivedProfileDef = IfcDerivedProfileDef; - class IfcDocumentInformation extends IfcExternalInformation { - constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { - super(expressID); - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Location = Location; - this.Purpose = Purpose; - this.IntendedUse = IntendedUse; - this.Scope = Scope; - this.Revision = Revision; - this.DocumentOwner = DocumentOwner; - this.Editors = Editors; - this.CreationTime = CreationTime; - this.LastRevisionTime = LastRevisionTime; - this.ElectronicFormat = ElectronicFormat; - this.ValidFrom = ValidFrom; - this.ValidUntil = ValidUntil; - this.Confidentiality = Confidentiality; - this.Status = Status; - this.type = 1154170062; - } - } - IFC4X32.IfcDocumentInformation = IfcDocumentInformation; - class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingDocument = RelatingDocument; - this.RelatedDocuments = RelatedDocuments; - this.RelationshipType = RelationshipType; - this.type = 770865208; - } - } - IFC4X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; - class IfcDocumentReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.ReferencedDocument = ReferencedDocument; - this.type = 3732053477; - } - } - IFC4X32.IfcDocumentReference = IfcDocumentReference; - class IfcEdge extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeStart, EdgeEnd) { - super(expressID); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.type = 3900360178; - } - } - IFC4X32.IfcEdge = IfcEdge; - class IfcEdgeCurve extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.EdgeGeometry = EdgeGeometry; - this.SameSense = SameSense; - this.type = 476780140; - } - } - IFC4X32.IfcEdgeCurve = IfcEdgeCurve; - class IfcEventTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ActualDate = ActualDate; - this.EarlyDate = EarlyDate; - this.LateDate = LateDate; - this.ScheduleDate = ScheduleDate; - this.type = 211053100; - } - } - IFC4X32.IfcEventTime = IfcEventTime; - class IfcExtendedProperties extends IfcPropertyAbstraction { - constructor(expressID, Name, Description, Properties2) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.type = 297599258; - } - } - IFC4X32.IfcExtendedProperties = IfcExtendedProperties; - class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingReference = RelatingReference; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1437805879; - } - } - IFC4X32.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; - class IfcFace extends IfcTopologicalRepresentationItem { - constructor(expressID, Bounds) { - super(expressID); - this.Bounds = Bounds; - this.type = 2556980723; - } - } - IFC4X32.IfcFace = IfcFace; - class IfcFaceBound extends IfcTopologicalRepresentationItem { - constructor(expressID, Bound, Orientation) { - super(expressID); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 1809719519; - } - } - IFC4X32.IfcFaceBound = IfcFaceBound; - class IfcFaceOuterBound extends IfcFaceBound { - constructor(expressID, Bound, Orientation) { - super(expressID, Bound, Orientation); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 803316827; - } - } - IFC4X32.IfcFaceOuterBound = IfcFaceOuterBound; - class IfcFaceSurface extends IfcFace { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3008276851; - } - } - IFC4X32.IfcFaceSurface = IfcFaceSurface; - class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { - super(expressID, Name); - this.Name = Name; - this.TensionFailureX = TensionFailureX; - this.TensionFailureY = TensionFailureY; - this.TensionFailureZ = TensionFailureZ; - this.CompressionFailureX = CompressionFailureX; - this.CompressionFailureY = CompressionFailureY; - this.CompressionFailureZ = CompressionFailureZ; - this.type = 4219587988; - } - } - IFC4X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; - class IfcFillAreaStyle extends IfcPresentationStyle { - constructor(expressID, Name, FillStyles, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.FillStyles = FillStyles; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 738692330; - } - } - IFC4X32.IfcFillAreaStyle = IfcFillAreaStyle; - class IfcGeometricRepresentationContext extends IfcRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { - super(expressID, ContextIdentifier, ContextType); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.CoordinateSpaceDimension = CoordinateSpaceDimension; - this.Precision = Precision; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.TrueNorth = TrueNorth; - this.type = 3448662350; - } - } - IFC4X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; - class IfcGeometricRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2453401579; - } - } - IFC4X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; - class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, WorldCoordinateSystem, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { - super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, WorldCoordinateSystem, null); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.ParentContext = ParentContext; - this.TargetScale = TargetScale; - this.TargetView = TargetView; - this.UserDefinedTargetView = UserDefinedTargetView; - this.type = 4142052618; - } - } - IFC4X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; - class IfcGeometricSet extends IfcGeometricRepresentationItem { - constructor(expressID, Elements) { - super(expressID); - this.Elements = Elements; - this.type = 3590301190; - } - } - IFC4X32.IfcGeometricSet = IfcGeometricSet; - class IfcGridPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, PlacementLocation, PlacementRefDirection) { - super(expressID, PlacementRelTo); - this.PlacementRelTo = PlacementRelTo; - this.PlacementLocation = PlacementLocation; - this.PlacementRefDirection = PlacementRefDirection; - this.type = 178086475; - } - } - IFC4X32.IfcGridPlacement = IfcGridPlacement; - class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { - constructor(expressID, BaseSurface, AgreementFlag) { - super(expressID); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.type = 812098782; - } - } - IFC4X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; - class IfcImageTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.URLReference = URLReference; - this.type = 3905492369; - } - } - IFC4X32.IfcImageTexture = IfcImageTexture; - class IfcIndexedColourMap extends IfcPresentationItem { - constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { - super(expressID); - this.MappedTo = MappedTo; - this.Opacity = Opacity; - this.Colours = Colours; - this.ColourIndex = ColourIndex; - this.type = 3570813810; - } - } - IFC4X32.IfcIndexedColourMap = IfcIndexedColourMap; - class IfcIndexedTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, MappedTo, TexCoords) { - super(expressID, Maps); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.type = 1437953363; - } - } - IFC4X32.IfcIndexedTextureMap = IfcIndexedTextureMap; - class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { - constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { - super(expressID, Maps, MappedTo, TexCoords); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.TexCoordIndex = TexCoordIndex; - this.type = 2133299955; - } - } - IFC4X32.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; - class IfcIrregularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.Values = Values; - this.type = 3741457305; - } - } - IFC4X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; - class IfcLagTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.LagValue = LagValue; - this.DurationType = DurationType; - this.type = 1585845231; - } - } - IFC4X32.IfcLagTime = IfcLagTime; - class IfcLightSource extends IfcGeometricRepresentationItem { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 1402838566; - } - } - IFC4X32.IfcLightSource = IfcLightSource; - class IfcLightSourceAmbient extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 125510826; - } - } - IFC4X32.IfcLightSourceAmbient = IfcLightSourceAmbient; - class IfcLightSourceDirectional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Orientation = Orientation; - this.type = 2604431987; - } - } - IFC4X32.IfcLightSourceDirectional = IfcLightSourceDirectional; - class IfcLightSourceGoniometric extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.ColourAppearance = ColourAppearance; - this.ColourTemperature = ColourTemperature; - this.LuminousFlux = LuminousFlux; - this.LightEmissionSource = LightEmissionSource; - this.LightDistributionDataSource = LightDistributionDataSource; - this.type = 4266656042; - } - } - IFC4X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; - class IfcLightSourcePositional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.type = 1520743889; - } - } - IFC4X32.IfcLightSourcePositional = IfcLightSourcePositional; - class IfcLightSourceSpot extends IfcLightSourcePositional { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.Orientation = Orientation; - this.ConcentrationExponent = ConcentrationExponent; - this.SpreadAngle = SpreadAngle; - this.BeamWidthAngle = BeamWidthAngle; - this.type = 3422422726; - } - } - IFC4X32.IfcLightSourceSpot = IfcLightSourceSpot; - class IfcLinearPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement, CartesianPosition) { - super(expressID, PlacementRelTo); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.CartesianPosition = CartesianPosition; - this.type = 388784114; - } - } - IFC4X32.IfcLinearPlacement = IfcLinearPlacement; - class IfcLocalPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement) { - super(expressID, PlacementRelTo); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.type = 2624227202; - } - } - IFC4X32.IfcLocalPlacement = IfcLocalPlacement; - class IfcLoop extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1008929658; - } - } - IFC4X32.IfcLoop = IfcLoop; - class IfcMappedItem extends IfcRepresentationItem { - constructor(expressID, MappingSource, MappingTarget) { - super(expressID); - this.MappingSource = MappingSource; - this.MappingTarget = MappingTarget; - this.type = 2347385850; - } - } - IFC4X32.IfcMappedItem = IfcMappedItem; - class IfcMaterial extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.type = 1838606355; - } - } - IFC4X32.IfcMaterial = IfcMaterial; - class IfcMaterialConstituent extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Fraction, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Fraction = Fraction; - this.Category = Category; - this.type = 3708119e3; - } - } - IFC4X32.IfcMaterialConstituent = IfcMaterialConstituent; - class IfcMaterialConstituentSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialConstituents) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.MaterialConstituents = MaterialConstituents; - this.type = 2852063980; - } - } - IFC4X32.IfcMaterialConstituentSet = IfcMaterialConstituentSet; - class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations, RepresentedMaterial) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.RepresentedMaterial = RepresentedMaterial; - this.type = 2022407955; - } - } - IFC4X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; - class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { - super(expressID); - this.ForLayerSet = ForLayerSet; - this.LayerSetDirection = LayerSetDirection; - this.DirectionSense = DirectionSense; - this.OffsetFromReferenceLine = OffsetFromReferenceLine; - this.ReferenceExtent = ReferenceExtent; - this.type = 1303795690; - } - } - IFC4X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; - class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { - super(expressID); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.type = 3079605661; - } - } - IFC4X32.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; - class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { - super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.ForProfileEndSet = ForProfileEndSet; - this.CardinalEndPoint = CardinalEndPoint; - this.type = 3404854881; - } - } - IFC4X32.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; - class IfcMaterialProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, Material) { - super(expressID, Name, Description, Properties2); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.Material = Material; - this.type = 3265635763; - } - } - IFC4X32.IfcMaterialProperties = IfcMaterialProperties; - class IfcMaterialRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, MaterialExpression) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingMaterial = RelatingMaterial; - this.RelatedMaterials = RelatedMaterials; - this.MaterialExpression = MaterialExpression; - this.type = 853536259; - } - } - IFC4X32.IfcMaterialRelationship = IfcMaterialRelationship; - class IfcMirroredProfileDef extends IfcDerivedProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 2998442950; - } - } - IFC4X32.IfcMirroredProfileDef = IfcMirroredProfileDef; - class IfcObjectDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 219451334; - } - } - IFC4X32.IfcObjectDefinition = IfcObjectDefinition; - class IfcOpenCrossProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, HorizontalWidths, Widths, Slopes, Tags, OffsetPoint) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.HorizontalWidths = HorizontalWidths; - this.Widths = Widths; - this.Slopes = Slopes; - this.Tags = Tags; - this.OffsetPoint = OffsetPoint; - this.type = 182550632; - } - } - IFC4X32.IfcOpenCrossProfileDef = IfcOpenCrossProfileDef; - class IfcOpenShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2665983363; - } - } - IFC4X32.IfcOpenShell = IfcOpenShell; - class IfcOrganizationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingOrganization = RelatingOrganization; - this.RelatedOrganizations = RelatedOrganizations; - this.type = 1411181986; - } - } - IFC4X32.IfcOrganizationRelationship = IfcOrganizationRelationship; - class IfcOrientedEdge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeElement, Orientation) { - super(expressID, EdgeStart, new Handle(0)); - this.EdgeStart = EdgeStart; - this.EdgeElement = EdgeElement; - this.Orientation = Orientation; - this.type = 1029017970; - } - } - IFC4X32.IfcOrientedEdge = IfcOrientedEdge; - class IfcParameterizedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Position) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.type = 2529465313; - } - } - IFC4X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; - class IfcPath extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 2519244187; - } - } - IFC4X32.IfcPath = IfcPath; - class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.HasQuantities = HasQuantities; - this.Discrimination = Discrimination; - this.Quality = Quality; - this.Usage = Usage; - this.type = 3021840470; - } - } - IFC4X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; - class IfcPixelTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.Width = Width; - this.Height = Height; - this.ColourComponents = ColourComponents; - this.Pixel = Pixel; - this.type = 597895409; - } - } - IFC4X32.IfcPixelTexture = IfcPixelTexture; - class IfcPlacement extends IfcGeometricRepresentationItem { - constructor(expressID, Location) { - super(expressID); - this.Location = Location; - this.type = 2004835150; - } - } - IFC4X32.IfcPlacement = IfcPlacement; - class IfcPlanarExtent extends IfcGeometricRepresentationItem { - constructor(expressID, SizeInX, SizeInY) { - super(expressID); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.type = 1663979128; - } - } - IFC4X32.IfcPlanarExtent = IfcPlanarExtent; - class IfcPoint extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2067069095; - } - } - IFC4X32.IfcPoint = IfcPoint; - class IfcPointByDistanceExpression extends IfcPoint { - constructor(expressID, DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, BasisCurve) { - super(expressID); - this.DistanceAlong = DistanceAlong; - this.OffsetLateral = OffsetLateral; - this.OffsetVertical = OffsetVertical; - this.OffsetLongitudinal = OffsetLongitudinal; - this.BasisCurve = BasisCurve; - this.type = 2165702409; - } - } - IFC4X32.IfcPointByDistanceExpression = IfcPointByDistanceExpression; - class IfcPointOnCurve extends IfcPoint { - constructor(expressID, BasisCurve, PointParameter) { - super(expressID); - this.BasisCurve = BasisCurve; - this.PointParameter = PointParameter; - this.type = 4022376103; - } - } - IFC4X32.IfcPointOnCurve = IfcPointOnCurve; - class IfcPointOnSurface extends IfcPoint { - constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { - super(expressID); - this.BasisSurface = BasisSurface; - this.PointParameterU = PointParameterU; - this.PointParameterV = PointParameterV; - this.type = 1423911732; - } - } - IFC4X32.IfcPointOnSurface = IfcPointOnSurface; - class IfcPolyLoop extends IfcLoop { - constructor(expressID, Polygon) { - super(expressID); - this.Polygon = Polygon; - this.type = 2924175390; - } - } - IFC4X32.IfcPolyLoop = IfcPolyLoop; - class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Position = Position; - this.PolygonalBoundary = PolygonalBoundary; - this.type = 2775532180; - } - } - IFC4X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; - class IfcPreDefinedItem extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3727388367; - } - } - IFC4X32.IfcPreDefinedItem = IfcPreDefinedItem; - class IfcPreDefinedProperties extends IfcPropertyAbstraction { - constructor(expressID) { - super(expressID); - this.type = 3778827333; - } - } - IFC4X32.IfcPreDefinedProperties = IfcPreDefinedProperties; - class IfcPreDefinedTextFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 1775413392; - } - } - IFC4X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; - class IfcProductDefinitionShape extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 673634403; - } - } - IFC4X32.IfcProductDefinitionShape = IfcProductDefinitionShape; - class IfcProfileProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, ProfileDefinition) { - super(expressID, Name, Description, Properties2); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.ProfileDefinition = ProfileDefinition; - this.type = 2802850158; - } - } - IFC4X32.IfcProfileProperties = IfcProfileProperties; - class IfcProperty extends IfcPropertyAbstraction { - constructor(expressID, Name, Specification) { - super(expressID); - this.Name = Name; - this.Specification = Specification; - this.type = 2598011224; - } - } - IFC4X32.IfcProperty = IfcProperty; - class IfcPropertyDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1680319473; - } - } - IFC4X32.IfcPropertyDefinition = IfcPropertyDefinition; - class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.DependingProperty = DependingProperty; - this.DependantProperty = DependantProperty; - this.Expression = Expression; - this.type = 148025276; - } - } - IFC4X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; - class IfcPropertySetDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3357820518; - } - } - IFC4X32.IfcPropertySetDefinition = IfcPropertySetDefinition; - class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1482703590; - } - } - IFC4X32.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; - class IfcQuantitySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2090586900; - } - } - IFC4X32.IfcQuantitySet = IfcQuantitySet; - class IfcRectangleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.type = 3615266464; - } - } - IFC4X32.IfcRectangleProfileDef = IfcRectangleProfileDef; - class IfcRegularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.TimeStep = TimeStep; - this.Values = Values; - this.type = 3413951693; - } - } - IFC4X32.IfcRegularTimeSeries = IfcRegularTimeSeries; - class IfcReinforcementBarProperties extends IfcPreDefinedProperties { - constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { - super(expressID); - this.TotalCrossSectionArea = TotalCrossSectionArea; - this.SteelGrade = SteelGrade; - this.BarSurface = BarSurface; - this.EffectiveDepth = EffectiveDepth; - this.NominalBarDiameter = NominalBarDiameter; - this.BarCount = BarCount; - this.type = 1580146022; - } - } - IFC4X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; - class IfcRelationship extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 478536968; - } - } - IFC4X32.IfcRelationship = IfcRelationship; - class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatedResourceObjects = RelatedResourceObjects; - this.RelatingApproval = RelatingApproval; - this.type = 2943643501; - } - } - IFC4X32.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; - class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1608871552; - } - } - IFC4X32.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; - class IfcResourceTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ScheduleWork = ScheduleWork; - this.ScheduleUsage = ScheduleUsage; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.ScheduleContour = ScheduleContour; - this.LevelingDelay = LevelingDelay; - this.IsOverAllocated = IsOverAllocated; - this.StatusTime = StatusTime; - this.ActualWork = ActualWork; - this.ActualUsage = ActualUsage; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingWork = RemainingWork; - this.RemainingUsage = RemainingUsage; - this.Completion = Completion; - this.type = 1042787934; - } - } - IFC4X32.IfcResourceTime = IfcResourceTime; - class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.RoundingRadius = RoundingRadius; - this.type = 2778083089; - } - } - IFC4X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; - class IfcSectionProperties extends IfcPreDefinedProperties { - constructor(expressID, SectionType, StartProfile, EndProfile) { - super(expressID); - this.SectionType = SectionType; - this.StartProfile = StartProfile; - this.EndProfile = EndProfile; - this.type = 2042790032; - } - } - IFC4X32.IfcSectionProperties = IfcSectionProperties; - class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { - constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { - super(expressID); - this.LongitudinalStartPosition = LongitudinalStartPosition; - this.LongitudinalEndPosition = LongitudinalEndPosition; - this.TransversePosition = TransversePosition; - this.ReinforcementRole = ReinforcementRole; - this.SectionDefinition = SectionDefinition; - this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; - this.type = 4165799628; - } - } - IFC4X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; - class IfcSectionedSpine extends IfcGeometricRepresentationItem { - constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { - super(expressID); - this.SpineCurve = SpineCurve; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1509187699; - } - } - IFC4X32.IfcSectionedSpine = IfcSectionedSpine; - class IfcSegment extends IfcGeometricRepresentationItem { - constructor(expressID, Transition) { - super(expressID); - this.Transition = Transition; - this.type = 823603102; - } - } - IFC4X32.IfcSegment = IfcSegment; - class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, SbsmBoundary) { - super(expressID); - this.SbsmBoundary = SbsmBoundary; - this.type = 4124623270; - } - } - IFC4X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; - class IfcSimpleProperty extends IfcProperty { - constructor(expressID, Name, Specification) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.type = 3692461612; - } - } - IFC4X32.IfcSimpleProperty = IfcSimpleProperty; - class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { - super(expressID, Name); - this.Name = Name; - this.SlippageX = SlippageX; - this.SlippageY = SlippageY; - this.SlippageZ = SlippageZ; - this.type = 2609359061; - } - } - IFC4X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; - class IfcSolidModel extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 723233188; - } - } - IFC4X32.IfcSolidModel = IfcSolidModel; - class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { - super(expressID, Name); - this.Name = Name; - this.LinearForceX = LinearForceX; - this.LinearForceY = LinearForceY; - this.LinearForceZ = LinearForceZ; - this.LinearMomentX = LinearMomentX; - this.LinearMomentY = LinearMomentY; - this.LinearMomentZ = LinearMomentZ; - this.type = 1595516126; - } - } - IFC4X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; - class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { - super(expressID, Name); - this.Name = Name; - this.PlanarForceX = PlanarForceX; - this.PlanarForceY = PlanarForceY; - this.PlanarForceZ = PlanarForceZ; - this.type = 2668620305; - } - } - IFC4X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; - class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { - super(expressID, Name); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.type = 2473145415; - } - } - IFC4X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; - class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { - super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.Distortion = Distortion; - this.type = 1973038258; - } - } - IFC4X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; - class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { - super(expressID, Name); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.type = 1597423693; - } - } - IFC4X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; - class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { - super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.WarpingMoment = WarpingMoment; - this.type = 1190533807; - } - } - IFC4X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; - class IfcSubedge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.ParentEdge = ParentEdge; - this.type = 2233826070; - } - } - IFC4X32.IfcSubedge = IfcSubedge; - class IfcSurface extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2513912981; - } - } - IFC4X32.IfcSurface = IfcSurface; - class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { - constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { - super(expressID, SurfaceColour, Transparency); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.DiffuseColour = DiffuseColour; - this.TransmissionColour = TransmissionColour; - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.ReflectionColour = ReflectionColour; - this.SpecularColour = SpecularColour; - this.SpecularHighlight = SpecularHighlight; - this.ReflectanceMethod = ReflectanceMethod; - this.type = 1878645084; - } - } - IFC4X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; - class IfcSweptAreaSolid extends IfcSolidModel { - constructor(expressID, SweptArea, Position) { - super(expressID); - this.SweptArea = SweptArea; - this.Position = Position; - this.type = 2247615214; - } - } - IFC4X32.IfcSweptAreaSolid = IfcSweptAreaSolid; - class IfcSweptDiskSolid extends IfcSolidModel { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { - super(expressID); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 1260650574; - } - } - IFC4X32.IfcSweptDiskSolid = IfcSweptDiskSolid; - class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { - super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FilletRadius = FilletRadius; - this.type = 1096409881; - } - } - IFC4X32.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; - class IfcSweptSurface extends IfcSurface { - constructor(expressID, SweptCurve, Position) { - super(expressID); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.type = 230924584; - } - } - IFC4X32.IfcSweptSurface = IfcSweptSurface; - class IfcTShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.WebEdgeRadius = WebEdgeRadius; - this.WebSlope = WebSlope; - this.FlangeSlope = FlangeSlope; - this.type = 3071757647; - } - } - IFC4X32.IfcTShapeProfileDef = IfcTShapeProfileDef; - class IfcTessellatedItem extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 901063453; - } - } - IFC4X32.IfcTessellatedItem = IfcTessellatedItem; - class IfcTextLiteral extends IfcGeometricRepresentationItem { - constructor(expressID, Literal, Placement, Path) { - super(expressID); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.type = 4282788508; - } - } - IFC4X32.IfcTextLiteral = IfcTextLiteral; - class IfcTextLiteralWithExtent extends IfcTextLiteral { - constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { - super(expressID, Literal, Placement, Path); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.Extent = Extent; - this.BoxAlignment = BoxAlignment; - this.type = 3124975700; - } - } - IFC4X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; - class IfcTextStyleFontModel extends IfcPreDefinedTextFont { - constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { - super(expressID, Name); - this.Name = Name; - this.FontFamily = FontFamily; - this.FontStyle = FontStyle; - this.FontVariant = FontVariant; - this.FontWeight = FontWeight; - this.FontSize = FontSize; - this.type = 1983826977; - } - } - IFC4X32.IfcTextStyleFontModel = IfcTextStyleFontModel; - class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomXDim = BottomXDim; - this.TopXDim = TopXDim; - this.YDim = YDim; - this.TopXOffset = TopXOffset; - this.type = 2715220739; - } - } - IFC4X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; - class IfcTypeObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.type = 1628702193; - } - } - IFC4X32.IfcTypeObject = IfcTypeObject; - class IfcTypeProcess extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.type = 3736923433; - } - } - IFC4X32.IfcTypeProcess = IfcTypeProcess; - class IfcTypeProduct extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.type = 2347495698; - } - } - IFC4X32.IfcTypeProduct = IfcTypeProduct; - class IfcTypeResource extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.type = 3698973494; - } - } - IFC4X32.IfcTypeResource = IfcTypeResource; - class IfcUShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 427810014; - } - } - IFC4X32.IfcUShapeProfileDef = IfcUShapeProfileDef; - class IfcVector extends IfcGeometricRepresentationItem { - constructor(expressID, Orientation, Magnitude) { - super(expressID); - this.Orientation = Orientation; - this.Magnitude = Magnitude; - this.type = 1417489154; - } - } - IFC4X32.IfcVector = IfcVector; - class IfcVertexLoop extends IfcLoop { - constructor(expressID, LoopVertex) { - super(expressID); - this.LoopVertex = LoopVertex; - this.type = 2759199220; - } - } - IFC4X32.IfcVertexLoop = IfcVertexLoop; - class IfcZShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.type = 2543172580; - } - } - IFC4X32.IfcZShapeProfileDef = IfcZShapeProfileDef; - class IfcAdvancedFace extends IfcFaceSurface { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds, FaceSurface, SameSense); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3406155212; - } - } - IFC4X32.IfcAdvancedFace = IfcAdvancedFace; - class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { - constructor(expressID, OuterBoundary, InnerBoundaries) { - super(expressID); - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 669184980; - } - } - IFC4X32.IfcAnnotationFillArea = IfcAnnotationFillArea; - class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomFlangeWidth = BottomFlangeWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.BottomFlangeThickness = BottomFlangeThickness; - this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; - this.TopFlangeWidth = TopFlangeWidth; - this.TopFlangeThickness = TopFlangeThickness; - this.TopFlangeFilletRadius = TopFlangeFilletRadius; - this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; - this.BottomFlangeSlope = BottomFlangeSlope; - this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; - this.TopFlangeSlope = TopFlangeSlope; - this.type = 3207858831; - } - } - IFC4X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; - class IfcAxis1Placement extends IfcPlacement { - constructor(expressID, Location, Axis) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.type = 4261334040; - } - } - IFC4X32.IfcAxis1Placement = IfcAxis1Placement; - class IfcAxis2Placement2D extends IfcPlacement { - constructor(expressID, Location, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.RefDirection = RefDirection; - this.type = 3125803723; - } - } - IFC4X32.IfcAxis2Placement2D = IfcAxis2Placement2D; - class IfcAxis2Placement3D extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 2740243338; - } - } - IFC4X32.IfcAxis2Placement3D = IfcAxis2Placement3D; - class IfcAxis2PlacementLinear extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 3425423356; - } - } - IFC4X32.IfcAxis2PlacementLinear = IfcAxis2PlacementLinear; - class IfcBooleanResult extends IfcGeometricRepresentationItem { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 2736907675; - } - } - IFC4X32.IfcBooleanResult = IfcBooleanResult; - class IfcBoundedSurface extends IfcSurface { - constructor(expressID) { - super(expressID); - this.type = 4182860854; - } - } - IFC4X32.IfcBoundedSurface = IfcBoundedSurface; - class IfcBoundingBox extends IfcGeometricRepresentationItem { - constructor(expressID, Corner, XDim, YDim, ZDim) { - super(expressID); - this.Corner = Corner; - this.XDim = XDim; - this.YDim = YDim; - this.ZDim = ZDim; - this.type = 2581212453; - } - } - IFC4X32.IfcBoundingBox = IfcBoundingBox; - class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Enclosure = Enclosure; - this.type = 2713105998; - } - } - IFC4X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; - class IfcCShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.WallThickness = WallThickness; - this.Girth = Girth; - this.InternalFilletRadius = InternalFilletRadius; - this.type = 2898889636; - } - } - IFC4X32.IfcCShapeProfileDef = IfcCShapeProfileDef; - class IfcCartesianPoint extends IfcPoint { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1123145078; - } - } - IFC4X32.IfcCartesianPoint = IfcCartesianPoint; - class IfcCartesianPointList extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 574549367; - } - } - IFC4X32.IfcCartesianPointList = IfcCartesianPointList; - class IfcCartesianPointList2D extends IfcCartesianPointList { - constructor(expressID, CoordList, TagList) { - super(expressID); - this.CoordList = CoordList; - this.TagList = TagList; - this.type = 1675464909; - } - } - IFC4X32.IfcCartesianPointList2D = IfcCartesianPointList2D; - class IfcCartesianPointList3D extends IfcCartesianPointList { - constructor(expressID, CoordList, TagList) { - super(expressID); - this.CoordList = CoordList; - this.TagList = TagList; - this.type = 2059837836; - } - } - IFC4X32.IfcCartesianPointList3D = IfcCartesianPointList3D; - class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 59481748; - } - } - IFC4X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; - class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 3749851601; - } - } - IFC4X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; - class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Scale2 = Scale2; - this.type = 3486308946; - } - } - IFC4X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; - class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.type = 3331915920; - } - } - IFC4X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; - class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.Scale2 = Scale2; - this.Scale3 = Scale3; - this.type = 1416205885; - } - } - IFC4X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; - class IfcCircleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.type = 1383045692; - } - } - IFC4X32.IfcCircleProfileDef = IfcCircleProfileDef; - class IfcClosedShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2205249479; - } - } - IFC4X32.IfcClosedShell = IfcClosedShell; - class IfcColourRgb extends IfcColourSpecification { - constructor(expressID, Name, Red, Green, Blue) { - super(expressID, Name); - this.Name = Name; - this.Red = Red; - this.Green = Green; - this.Blue = Blue; - this.type = 776857604; - } - } - IFC4X32.IfcColourRgb = IfcColourRgb; - class IfcComplexProperty extends IfcProperty { - constructor(expressID, Name, Specification, UsageName, HasProperties) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.UsageName = UsageName; - this.HasProperties = HasProperties; - this.type = 2542286263; - } - } - IFC4X32.IfcComplexProperty = IfcComplexProperty; - class IfcCompositeCurveSegment extends IfcSegment { - constructor(expressID, Transition, SameSense, ParentCurve) { - super(expressID, Transition); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.type = 2485617015; - } - } - IFC4X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; - class IfcConstructionResourceType extends IfcTypeResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2574617495; - } - } - IFC4X32.IfcConstructionResourceType = IfcConstructionResourceType; - class IfcContext extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 3419103109; - } - } - IFC4X32.IfcContext = IfcContext; - class IfcCrewResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1815067380; - } - } - IFC4X32.IfcCrewResourceType = IfcCrewResourceType; - class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2506170314; - } - } - IFC4X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; - class IfcCsgSolid extends IfcSolidModel { - constructor(expressID, TreeRootExpression) { - super(expressID); - this.TreeRootExpression = TreeRootExpression; - this.type = 2147822146; - } - } - IFC4X32.IfcCsgSolid = IfcCsgSolid; - class IfcCurve extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2601014836; - } - } - IFC4X32.IfcCurve = IfcCurve; - class IfcCurveBoundedPlane extends IfcBoundedSurface { - constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { - super(expressID); - this.BasisSurface = BasisSurface; - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 2827736869; - } - } - IFC4X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; - class IfcCurveBoundedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { - super(expressID); - this.BasisSurface = BasisSurface; - this.Boundaries = Boundaries; - this.ImplicitOuter = ImplicitOuter; - this.type = 2629017746; - } - } - IFC4X32.IfcCurveBoundedSurface = IfcCurveBoundedSurface; - class IfcCurveSegment extends IfcSegment { - constructor(expressID, Transition, Placement, SegmentStart, SegmentLength, ParentCurve) { - super(expressID, Transition); - this.Transition = Transition; - this.Placement = Placement; - this.SegmentStart = SegmentStart; - this.SegmentLength = SegmentLength; - this.ParentCurve = ParentCurve; - this.type = 4212018352; - } - } - IFC4X32.IfcCurveSegment = IfcCurveSegment; - class IfcDirection extends IfcGeometricRepresentationItem { - constructor(expressID, DirectionRatios) { - super(expressID); - this.DirectionRatios = DirectionRatios; - this.type = 32440307; - } - } - IFC4X32.IfcDirection = IfcDirection; - class IfcDirectrixCurveSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 593015953; - } - } - IFC4X32.IfcDirectrixCurveSweptAreaSolid = IfcDirectrixCurveSweptAreaSolid; - class IfcEdgeLoop extends IfcLoop { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 1472233963; - } - } - IFC4X32.IfcEdgeLoop = IfcEdgeLoop; - class IfcElementQuantity extends IfcQuantitySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.MethodOfMeasurement = MethodOfMeasurement; - this.Quantities = Quantities; - this.type = 1883228015; - } - } - IFC4X32.IfcElementQuantity = IfcElementQuantity; - class IfcElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 339256511; - } - } - IFC4X32.IfcElementType = IfcElementType; - class IfcElementarySurface extends IfcSurface { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2777663545; - } - } - IFC4X32.IfcElementarySurface = IfcElementarySurface; - class IfcEllipseProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 2835456948; - } - } - IFC4X32.IfcEllipseProfileDef = IfcEllipseProfileDef; - class IfcEventType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.type = 4024345920; - } - } - IFC4X32.IfcEventType = IfcEventType; - class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 477187591; - } - } - IFC4X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; - class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { - super(expressID, SweptArea, Position, ExtrudedDirection, Depth); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.EndSweptArea = EndSweptArea; - this.type = 2804161546; - } - } - IFC4X32.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; - class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, FbsmFaces) { - super(expressID); - this.FbsmFaces = FbsmFaces; - this.type = 2047409740; - } - } - IFC4X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; - class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { - constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { - super(expressID); - this.HatchLineAppearance = HatchLineAppearance; - this.StartOfNextHatchLine = StartOfNextHatchLine; - this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; - this.PatternStart = PatternStart; - this.HatchLineAngle = HatchLineAngle; - this.type = 374418227; - } - } - IFC4X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; - class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { - constructor(expressID, TilingPattern, Tiles, TilingScale) { - super(expressID); - this.TilingPattern = TilingPattern; - this.Tiles = Tiles; - this.TilingScale = TilingScale; - this.type = 315944413; - } - } - IFC4X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; - class IfcFixedReferenceSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { - super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FixedReference = FixedReference; - this.type = 2652556860; - } - } - IFC4X32.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; - class IfcFurnishingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 4238390223; - } - } - IFC4X32.IfcFurnishingElementType = IfcFurnishingElementType; - class IfcFurnitureType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 1268542332; - } - } - IFC4X32.IfcFurnitureType = IfcFurnitureType; - class IfcGeographicElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4095422895; - } - } - IFC4X32.IfcGeographicElementType = IfcGeographicElementType; - class IfcGeometricCurveSet extends IfcGeometricSet { - constructor(expressID, Elements) { - super(expressID, Elements); - this.Elements = Elements; - this.type = 987898635; - } - } - IFC4X32.IfcGeometricCurveSet = IfcGeometricCurveSet; - class IfcIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 1484403080; - } - } - IFC4X32.IfcIShapeProfileDef = IfcIShapeProfileDef; - class IfcIndexedPolygonalFace extends IfcTessellatedItem { - constructor(expressID, CoordIndex) { - super(expressID); - this.CoordIndex = CoordIndex; - this.type = 178912537; - } - } - IFC4X32.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; - class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { - constructor(expressID, CoordIndex, InnerCoordIndices) { - super(expressID, CoordIndex); - this.CoordIndex = CoordIndex; - this.InnerCoordIndices = InnerCoordIndices; - this.type = 2294589976; - } - } - IFC4X32.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; - class IfcIndexedPolygonalTextureMap extends IfcIndexedTextureMap { - constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndices) { - super(expressID, Maps, MappedTo, TexCoords); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.TexCoordIndices = TexCoordIndices; - this.type = 3465909080; - } - } - IFC4X32.IfcIndexedPolygonalTextureMap = IfcIndexedPolygonalTextureMap; - class IfcLShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.Thickness = Thickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.LegSlope = LegSlope; - this.type = 572779678; - } - } - IFC4X32.IfcLShapeProfileDef = IfcLShapeProfileDef; - class IfcLaborResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 428585644; - } - } - IFC4X32.IfcLaborResourceType = IfcLaborResourceType; - class IfcLine extends IfcCurve { - constructor(expressID, Pnt, Dir) { - super(expressID); - this.Pnt = Pnt; - this.Dir = Dir; - this.type = 1281925730; - } - } - IFC4X32.IfcLine = IfcLine; - class IfcManifoldSolidBrep extends IfcSolidModel { - constructor(expressID, Outer) { - super(expressID); - this.Outer = Outer; - this.type = 1425443689; - } - } - IFC4X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; - class IfcObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3888040117; - } - } - IFC4X32.IfcObject = IfcObject; - class IfcOffsetCurve extends IfcCurve { - constructor(expressID, BasisCurve) { - super(expressID); - this.BasisCurve = BasisCurve; - this.type = 590820931; - } - } - IFC4X32.IfcOffsetCurve = IfcOffsetCurve; - class IfcOffsetCurve2D extends IfcOffsetCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect) { - super(expressID, BasisCurve); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.type = 3388369263; - } - } - IFC4X32.IfcOffsetCurve2D = IfcOffsetCurve2D; - class IfcOffsetCurve3D extends IfcOffsetCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { - super(expressID, BasisCurve); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.RefDirection = RefDirection; - this.type = 3505215534; - } - } - IFC4X32.IfcOffsetCurve3D = IfcOffsetCurve3D; - class IfcOffsetCurveByDistances extends IfcOffsetCurve { - constructor(expressID, BasisCurve, OffsetValues, Tag) { - super(expressID, BasisCurve); - this.BasisCurve = BasisCurve; - this.OffsetValues = OffsetValues; - this.Tag = Tag; - this.type = 2485787929; - } - } - IFC4X32.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances; - class IfcPcurve extends IfcCurve { - constructor(expressID, BasisSurface, ReferenceCurve) { - super(expressID); - this.BasisSurface = BasisSurface; - this.ReferenceCurve = ReferenceCurve; - this.type = 1682466193; - } - } - IFC4X32.IfcPcurve = IfcPcurve; - class IfcPlanarBox extends IfcPlanarExtent { - constructor(expressID, SizeInX, SizeInY, Placement) { - super(expressID, SizeInX, SizeInY); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.Placement = Placement; - this.type = 603570806; - } - } - IFC4X32.IfcPlanarBox = IfcPlanarBox; - class IfcPlane extends IfcElementarySurface { - constructor(expressID, Position) { - super(expressID, Position); - this.Position = Position; - this.type = 220341763; - } - } - IFC4X32.IfcPlane = IfcPlane; - class IfcPolynomialCurve extends IfcCurve { - constructor(expressID, Position, CoefficientsX, CoefficientsY, CoefficientsZ) { - super(expressID); - this.Position = Position; - this.CoefficientsX = CoefficientsX; - this.CoefficientsY = CoefficientsY; - this.CoefficientsZ = CoefficientsZ; - this.type = 3381221214; - } - } - IFC4X32.IfcPolynomialCurve = IfcPolynomialCurve; - class IfcPreDefinedColour extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 759155922; - } - } - IFC4X32.IfcPreDefinedColour = IfcPreDefinedColour; - class IfcPreDefinedCurveFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2559016684; - } - } - IFC4X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; - class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3967405729; - } - } - IFC4X32.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; - class IfcProcedureType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.type = 569719735; - } - } - IFC4X32.IfcProcedureType = IfcProcedureType; - class IfcProcess extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2945172077; - } - } - IFC4X32.IfcProcess = IfcProcess; - class IfcProduct extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 4208778838; - } - } - IFC4X32.IfcProduct = IfcProduct; - class IfcProject extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 103090709; - } - } - IFC4X32.IfcProject = IfcProject; - class IfcProjectLibrary extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 653396225; - } - } - IFC4X32.IfcProjectLibrary = IfcProjectLibrary; - class IfcPropertyBoundedValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.UpperBoundValue = UpperBoundValue; - this.LowerBoundValue = LowerBoundValue; - this.Unit = Unit; - this.SetPointValue = SetPointValue; - this.type = 871118103; - } - } - IFC4X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; - class IfcPropertyEnumeratedValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, EnumerationValues, EnumerationReference) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.EnumerationValues = EnumerationValues; - this.EnumerationReference = EnumerationReference; - this.type = 4166981789; - } - } - IFC4X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; - class IfcPropertyListValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, ListValues, Unit) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.ListValues = ListValues; - this.Unit = Unit; - this.type = 2752243245; - } - } - IFC4X32.IfcPropertyListValue = IfcPropertyListValue; - class IfcPropertyReferenceValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, UsageName, PropertyReference) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.UsageName = UsageName; - this.PropertyReference = PropertyReference; - this.type = 941946838; - } - } - IFC4X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; - class IfcPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.HasProperties = HasProperties; - this.type = 1451395588; - } - } - IFC4X32.IfcPropertySet = IfcPropertySet; - class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.ApplicableEntity = ApplicableEntity; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 492091185; - } - } - IFC4X32.IfcPropertySetTemplate = IfcPropertySetTemplate; - class IfcPropertySingleValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, NominalValue, Unit) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.NominalValue = NominalValue; - this.Unit = Unit; - this.type = 3650150729; - } - } - IFC4X32.IfcPropertySingleValue = IfcPropertySingleValue; - class IfcPropertyTableValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.DefiningValues = DefiningValues; - this.DefinedValues = DefinedValues; - this.Expression = Expression; - this.DefiningUnit = DefiningUnit; - this.DefinedUnit = DefinedUnit; - this.CurveInterpolation = CurveInterpolation; - this.type = 110355661; - } - } - IFC4X32.IfcPropertyTableValue = IfcPropertyTableValue; - class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3521284610; - } - } - IFC4X32.IfcPropertyTemplate = IfcPropertyTemplate; - class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.WallThickness = WallThickness; - this.InnerFilletRadius = InnerFilletRadius; - this.OuterFilletRadius = OuterFilletRadius; - this.type = 2770003689; - } - } - IFC4X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; - class IfcRectangularPyramid extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, Height) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.Height = Height; - this.type = 2798486643; - } - } - IFC4X32.IfcRectangularPyramid = IfcRectangularPyramid; - class IfcRectangularTrimmedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { - super(expressID); - this.BasisSurface = BasisSurface; - this.U1 = U1; - this.V1 = V1; - this.U2 = U2; - this.V2 = V2; - this.Usense = Usense; - this.Vsense = Vsense; - this.type = 3454111270; - } - } - IFC4X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; - class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DefinitionType = DefinitionType; - this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; - this.type = 3765753017; - } - } - IFC4X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; - class IfcRelAssigns extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.type = 3939117080; - } - } - IFC4X32.IfcRelAssigns = IfcRelAssigns; - class IfcRelAssignsToActor extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 1683148259; - } - } - IFC4X32.IfcRelAssignsToActor = IfcRelAssignsToActor; - class IfcRelAssignsToControl extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 2495723537; - } - } - IFC4X32.IfcRelAssignsToControl = IfcRelAssignsToControl; - class IfcRelAssignsToGroup extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.type = 1307041759; - } - } - IFC4X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; - class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.Factor = Factor; - this.type = 1027710054; - } - } - IFC4X32.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; - class IfcRelAssignsToProcess extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProcess = RelatingProcess; - this.QuantityInProcess = QuantityInProcess; - this.type = 4278684876; - } - } - IFC4X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; - class IfcRelAssignsToProduct extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProduct = RelatingProduct; - this.type = 2857406711; - } - } - IFC4X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; - class IfcRelAssignsToResource extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingResource = RelatingResource; - this.type = 205026976; - } - } - IFC4X32.IfcRelAssignsToResource = IfcRelAssignsToResource; - class IfcRelAssociates extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 1865459582; - } - } - IFC4X32.IfcRelAssociates = IfcRelAssociates; - class IfcRelAssociatesApproval extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingApproval = RelatingApproval; - this.type = 4095574036; - } - } - IFC4X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; - class IfcRelAssociatesClassification extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingClassification = RelatingClassification; - this.type = 919958153; - } - } - IFC4X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; - class IfcRelAssociatesConstraint extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.Intent = Intent; - this.RelatingConstraint = RelatingConstraint; - this.type = 2728634034; - } - } - IFC4X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; - class IfcRelAssociatesDocument extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingDocument = RelatingDocument; - this.type = 982818633; - } - } - IFC4X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; - class IfcRelAssociatesLibrary extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingLibrary = RelatingLibrary; - this.type = 3840914261; - } - } - IFC4X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; - class IfcRelAssociatesMaterial extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingMaterial = RelatingMaterial; - this.type = 2655215786; - } - } - IFC4X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; - class IfcRelAssociatesProfileDef extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileDef) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingProfileDef = RelatingProfileDef; - this.type = 1033248425; - } - } - IFC4X32.IfcRelAssociatesProfileDef = IfcRelAssociatesProfileDef; - class IfcRelConnects extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 826625072; - } - } - IFC4X32.IfcRelConnects = IfcRelConnects; - class IfcRelConnectsElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.type = 1204542856; - } - } - IFC4X32.IfcRelConnectsElements = IfcRelConnectsElements; - class IfcRelConnectsPathElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RelatingPriorities = RelatingPriorities; - this.RelatedPriorities = RelatedPriorities; - this.RelatedConnectionType = RelatedConnectionType; - this.RelatingConnectionType = RelatingConnectionType; - this.type = 3945020480; - } - } - IFC4X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; - class IfcRelConnectsPortToElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedElement = RelatedElement; - this.type = 4201705270; - } - } - IFC4X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; - class IfcRelConnectsPorts extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedPort = RelatedPort; - this.RealizingElement = RealizingElement; - this.type = 3190031847; - } - } - IFC4X32.IfcRelConnectsPorts = IfcRelConnectsPorts; - class IfcRelConnectsStructuralActivity extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralActivity = RelatedStructuralActivity; - this.type = 2127690289; - } - } - IFC4X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; - class IfcRelConnectsStructuralMember extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 1638771189; - } - } - IFC4X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; - class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.ConnectionConstraint = ConnectionConstraint; - this.type = 504942748; - } - } - IFC4X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; - class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RealizingElements = RealizingElements; - this.ConnectionType = ConnectionType; - this.type = 3678494232; - } - } - IFC4X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; - class IfcRelContainedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 3242617779; - } - } - IFC4X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; - class IfcRelCoversBldgElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedCoverings = RelatedCoverings; - this.type = 886880790; - } - } - IFC4X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; - class IfcRelCoversSpaces extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedCoverings = RelatedCoverings; - this.type = 2802773753; - } - } - IFC4X32.IfcRelCoversSpaces = IfcRelCoversSpaces; - class IfcRelDeclares extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingContext = RelatingContext; - this.RelatedDefinitions = RelatedDefinitions; - this.type = 2565941209; - } - } - IFC4X32.IfcRelDeclares = IfcRelDeclares; - class IfcRelDecomposes extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2551354335; - } - } - IFC4X32.IfcRelDecomposes = IfcRelDecomposes; - class IfcRelDefines extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 693640335; - } - } - IFC4X32.IfcRelDefines = IfcRelDefines; - class IfcRelDefinesByObject extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingObject = RelatingObject; - this.type = 1462361463; - } - } - IFC4X32.IfcRelDefinesByObject = IfcRelDefinesByObject; - class IfcRelDefinesByProperties extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.type = 4186316022; - } - } - IFC4X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; - class IfcRelDefinesByTemplate extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedPropertySets = RelatedPropertySets; - this.RelatingTemplate = RelatingTemplate; - this.type = 307848117; - } - } - IFC4X32.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; - class IfcRelDefinesByType extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingType = RelatingType; - this.type = 781010003; - } - } - IFC4X32.IfcRelDefinesByType = IfcRelDefinesByType; - class IfcRelFillsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingOpeningElement = RelatingOpeningElement; - this.RelatedBuildingElement = RelatedBuildingElement; - this.type = 3940055652; - } - } - IFC4X32.IfcRelFillsElement = IfcRelFillsElement; - class IfcRelFlowControlElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedControlElements = RelatedControlElements; - this.RelatingFlowElement = RelatingFlowElement; - this.type = 279856033; - } - } - IFC4X32.IfcRelFlowControlElements = IfcRelFlowControlElements; - class IfcRelInterferesElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceSpace, InterferenceType, ImpliedOrder) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.InterferenceGeometry = InterferenceGeometry; - this.InterferenceSpace = InterferenceSpace; - this.InterferenceType = InterferenceType; - this.ImpliedOrder = ImpliedOrder; - this.type = 427948657; - } - } - IFC4X32.IfcRelInterferesElements = IfcRelInterferesElements; - class IfcRelNests extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 3268803585; - } - } - IFC4X32.IfcRelNests = IfcRelNests; - class IfcRelPositions extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPositioningElement = RelatingPositioningElement; - this.RelatedProducts = RelatedProducts; - this.type = 1441486842; - } - } - IFC4X32.IfcRelPositions = IfcRelPositions; - class IfcRelProjectsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedFeatureElement = RelatedFeatureElement; - this.type = 750771296; - } - } - IFC4X32.IfcRelProjectsElement = IfcRelProjectsElement; - class IfcRelReferencedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 1245217292; - } - } - IFC4X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; - class IfcRelSequence extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingProcess = RelatingProcess; - this.RelatedProcess = RelatedProcess; - this.TimeLag = TimeLag; - this.SequenceType = SequenceType; - this.UserDefinedSequenceType = UserDefinedSequenceType; - this.type = 4122056220; - } - } - IFC4X32.IfcRelSequence = IfcRelSequence; - class IfcRelServicesBuildings extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSystem = RelatingSystem; - this.RelatedBuildings = RelatedBuildings; - this.type = 366585022; - } - } - IFC4X32.IfcRelServicesBuildings = IfcRelServicesBuildings; - class IfcRelSpaceBoundary extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.type = 3451746338; - } - } - IFC4X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; - class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.type = 3523091289; - } - } - IFC4X32.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; - class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.CorrespondingBoundary = CorrespondingBoundary; - this.type = 1521410863; - } - } - IFC4X32.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; - class IfcRelVoidsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedOpeningElement = RelatedOpeningElement; - this.type = 1401173127; - } - } - IFC4X32.IfcRelVoidsElement = IfcRelVoidsElement; - class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { - constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { - super(expressID, Transition, SameSense, ParentCurve); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.ParamLength = ParamLength; - this.type = 816062949; - } - } - IFC4X32.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; - class IfcResource extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2914609552; - } - } - IFC4X32.IfcResource = IfcResource; - class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.type = 1856042241; - } - } - IFC4X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; - class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { - super(expressID, SweptArea, Position, Axis, Angle); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.EndSweptArea = EndSweptArea; - this.type = 3243963512; - } - } - IFC4X32.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; - class IfcRightCircularCone extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, BottomRadius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.BottomRadius = BottomRadius; - this.type = 4158566097; - } - } - IFC4X32.IfcRightCircularCone = IfcRightCircularCone; - class IfcRightCircularCylinder extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, Radius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.Radius = Radius; - this.type = 3626867408; - } - } - IFC4X32.IfcRightCircularCylinder = IfcRightCircularCylinder; - class IfcSectionedSolid extends IfcSolidModel { - constructor(expressID, Directrix, CrossSections) { - super(expressID); - this.Directrix = Directrix; - this.CrossSections = CrossSections; - this.type = 1862484736; - } - } - IFC4X32.IfcSectionedSolid = IfcSectionedSolid; - class IfcSectionedSolidHorizontal extends IfcSectionedSolid { - constructor(expressID, Directrix, CrossSections, CrossSectionPositions) { - super(expressID, Directrix, CrossSections); - this.Directrix = Directrix; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1290935644; - } - } - IFC4X32.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal; - class IfcSectionedSurface extends IfcSurface { - constructor(expressID, Directrix, CrossSectionPositions, CrossSections) { - super(expressID); - this.Directrix = Directrix; - this.CrossSectionPositions = CrossSectionPositions; - this.CrossSections = CrossSections; - this.type = 1356537516; - } - } - IFC4X32.IfcSectionedSurface = IfcSectionedSurface; - class IfcSimplePropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.PrimaryMeasureType = PrimaryMeasureType; - this.SecondaryMeasureType = SecondaryMeasureType; - this.Enumerators = Enumerators; - this.PrimaryUnit = PrimaryUnit; - this.SecondaryUnit = SecondaryUnit; - this.Expression = Expression; - this.AccessState = AccessState; - this.type = 3663146110; - } - } - IFC4X32.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; - class IfcSpatialElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 1412071761; - } - } - IFC4X32.IfcSpatialElement = IfcSpatialElement; - class IfcSpatialElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 710998568; - } - } - IFC4X32.IfcSpatialElementType = IfcSpatialElementType; - class IfcSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 2706606064; - } - } - IFC4X32.IfcSpatialStructureElement = IfcSpatialStructureElement; - class IfcSpatialStructureElementType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893378262; - } - } - IFC4X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; - class IfcSpatialZone extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 463610769; - } - } - IFC4X32.IfcSpatialZone = IfcSpatialZone; - class IfcSpatialZoneType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 2481509218; - } - } - IFC4X32.IfcSpatialZoneType = IfcSpatialZoneType; - class IfcSphere extends IfcCsgPrimitive3D { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 451544542; - } - } - IFC4X32.IfcSphere = IfcSphere; - class IfcSphericalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 4015995234; - } - } - IFC4X32.IfcSphericalSurface = IfcSphericalSurface; - class IfcSpiral extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2735484536; - } - } - IFC4X32.IfcSpiral = IfcSpiral; - class IfcStructuralActivity extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3544373492; - } - } - IFC4X32.IfcStructuralActivity = IfcStructuralActivity; - class IfcStructuralItem extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3136571912; - } - } - IFC4X32.IfcStructuralItem = IfcStructuralItem; - class IfcStructuralMember extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 530289379; - } - } - IFC4X32.IfcStructuralMember = IfcStructuralMember; - class IfcStructuralReaction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3689010777; - } - } - IFC4X32.IfcStructuralReaction = IfcStructuralReaction; - class IfcStructuralSurfaceMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 3979015343; - } - } - IFC4X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; - class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 2218152070; - } - } - IFC4X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; - class IfcStructuralSurfaceReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 603775116; - } - } - IFC4X32.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; - class IfcSubContractResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4095615324; - } - } - IFC4X32.IfcSubContractResourceType = IfcSubContractResourceType; - class IfcSurfaceCurve extends IfcCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 699246055; - } - } - IFC4X32.IfcSurfaceCurve = IfcSurfaceCurve; - class IfcSurfaceCurveSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { - super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.ReferenceSurface = ReferenceSurface; - this.type = 2028607225; - } - } - IFC4X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; - class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 2809605785; - } - } - IFC4X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; - class IfcSurfaceOfRevolution extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, AxisPosition) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.AxisPosition = AxisPosition; - this.type = 4124788165; - } - } - IFC4X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; - class IfcSystemFurnitureElementType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1580310250; - } - } - IFC4X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; - class IfcTask extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.TaskTime = TaskTime; - this.PredefinedType = PredefinedType; - this.type = 3473067441; - } - } - IFC4X32.IfcTask = IfcTask; - class IfcTaskType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.WorkMethod = WorkMethod; - this.type = 3206491090; - } - } - IFC4X32.IfcTaskType = IfcTaskType; - class IfcTessellatedFaceSet extends IfcTessellatedItem { - constructor(expressID, Coordinates, Closed) { - super(expressID); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.type = 2387106220; - } - } - IFC4X32.IfcTessellatedFaceSet = IfcTessellatedFaceSet; - class IfcThirdOrderPolynomialSpiral extends IfcSpiral { - constructor(expressID, Position, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.CubicTerm = CubicTerm; - this.QuadraticTerm = QuadraticTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 782932809; - } - } - IFC4X32.IfcThirdOrderPolynomialSpiral = IfcThirdOrderPolynomialSpiral; - class IfcToroidalSurface extends IfcElementarySurface { - constructor(expressID, Position, MajorRadius, MinorRadius) { - super(expressID, Position); - this.Position = Position; - this.MajorRadius = MajorRadius; - this.MinorRadius = MinorRadius; - this.type = 1935646853; - } - } - IFC4X32.IfcToroidalSurface = IfcToroidalSurface; - class IfcTransportationDeviceType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3665877780; - } - } - IFC4X32.IfcTransportationDeviceType = IfcTransportationDeviceType; - class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex) { - super(expressID, Coordinates, Closed); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Normals = Normals; - this.CoordIndex = CoordIndex; - this.PnIndex = PnIndex; - this.type = 2916149573; - } - } - IFC4X32.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; - class IfcTriangulatedIrregularNetwork extends IfcTriangulatedFaceSet { - constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex, Flags) { - super(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Normals = Normals; - this.CoordIndex = CoordIndex; - this.PnIndex = PnIndex; - this.Flags = Flags; - this.type = 1229763772; - } - } - IFC4X32.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork; - class IfcVehicleType extends IfcTransportationDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3651464721; - } - } - IFC4X32.IfcVehicleType = IfcVehicleType; - class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.TransomThickness = TransomThickness; - this.MullionThickness = MullionThickness; - this.FirstTransomOffset = FirstTransomOffset; - this.SecondTransomOffset = SecondTransomOffset; - this.FirstMullionOffset = FirstMullionOffset; - this.SecondMullionOffset = SecondMullionOffset; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningOffset = LiningOffset; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 336235671; - } - } - IFC4X32.IfcWindowLiningProperties = IfcWindowLiningProperties; - class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 512836454; - } - } - IFC4X32.IfcWindowPanelProperties = IfcWindowPanelProperties; - class IfcActor extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.type = 2296667514; - } - } - IFC4X32.IfcActor = IfcActor; - class IfcAdvancedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 1635779807; - } - } - IFC4X32.IfcAdvancedBrep = IfcAdvancedBrep; - class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 2603310189; - } - } - IFC4X32.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; - class IfcAnnotation extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 1674181508; - } - } - IFC4X32.IfcAnnotation = IfcAnnotation; - class IfcBSplineSurface extends IfcBoundedSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { - super(expressID); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.type = 2887950389; - } - } - IFC4X32.IfcBSplineSurface = IfcBSplineSurface; - class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.type = 167062518; - } - } - IFC4X32.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; - class IfcBlock extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, ZLength) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.ZLength = ZLength; - this.type = 1334484129; - } - } - IFC4X32.IfcBlock = IfcBlock; - class IfcBooleanClippingResult extends IfcBooleanResult { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID, Operator, FirstOperand, SecondOperand); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 3649129432; - } - } - IFC4X32.IfcBooleanClippingResult = IfcBooleanClippingResult; - class IfcBoundedCurve extends IfcCurve { - constructor(expressID) { - super(expressID); - this.type = 1260505505; - } - } - IFC4X32.IfcBoundedCurve = IfcBoundedCurve; - class IfcBuildingStorey extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.Elevation = Elevation; - this.type = 3124254112; - } - } - IFC4X32.IfcBuildingStorey = IfcBuildingStorey; - class IfcBuiltElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1626504194; - } - } - IFC4X32.IfcBuiltElementType = IfcBuiltElementType; - class IfcChimneyType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2197970202; - } - } - IFC4X32.IfcChimneyType = IfcChimneyType; - class IfcCircleHollowProfileDef extends IfcCircleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { - super(expressID, ProfileType, ProfileName, Position, Radius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.WallThickness = WallThickness; - this.type = 2937912522; - } - } - IFC4X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; - class IfcCivilElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893394355; - } - } - IFC4X32.IfcCivilElementType = IfcCivilElementType; - class IfcClothoid extends IfcSpiral { - constructor(expressID, Position, ClothoidConstant) { - super(expressID, Position); - this.Position = Position; - this.ClothoidConstant = ClothoidConstant; - this.type = 3497074424; - } - } - IFC4X32.IfcClothoid = IfcClothoid; - class IfcColumnType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 300633059; - } - } - IFC4X32.IfcColumnType = IfcColumnType; - class IfcComplexPropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.TemplateType = TemplateType; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 3875453745; - } - } - IFC4X32.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; - class IfcCompositeCurve extends IfcBoundedCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 3732776249; - } - } - IFC4X32.IfcCompositeCurve = IfcCompositeCurve; - class IfcCompositeCurveOnSurface extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 15328376; - } - } - IFC4X32.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; - class IfcConic extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2510884976; - } - } - IFC4X32.IfcConic = IfcConic; - class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 2185764099; - } - } - IFC4X32.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; - class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4105962743; - } - } - IFC4X32.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; - class IfcConstructionProductResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1525564444; - } - } - IFC4X32.IfcConstructionProductResourceType = IfcConstructionProductResourceType; - class IfcConstructionResource extends IfcResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2559216714; - } - } - IFC4X32.IfcConstructionResource = IfcConstructionResource; - class IfcControl extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.type = 3293443760; - } - } - IFC4X32.IfcControl = IfcControl; - class IfcCosineSpiral extends IfcSpiral { - constructor(expressID, Position, CosineTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.CosineTerm = CosineTerm; - this.ConstantTerm = ConstantTerm; - this.type = 2000195564; - } - } - IFC4X32.IfcCosineSpiral = IfcCosineSpiral; - class IfcCostItem extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.CostValues = CostValues; - this.CostQuantities = CostQuantities; - this.type = 3895139033; - } - } - IFC4X32.IfcCostItem = IfcCostItem; - class IfcCostSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.SubmittedOn = SubmittedOn; - this.UpdateDate = UpdateDate; - this.type = 1419761937; - } - } - IFC4X32.IfcCostSchedule = IfcCostSchedule; - class IfcCourseType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4189326743; - } - } - IFC4X32.IfcCourseType = IfcCourseType; - class IfcCoveringType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1916426348; - } - } - IFC4X32.IfcCoveringType = IfcCoveringType; - class IfcCrewResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3295246426; - } - } - IFC4X32.IfcCrewResource = IfcCrewResource; - class IfcCurtainWallType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1457835157; - } - } - IFC4X32.IfcCurtainWallType = IfcCurtainWallType; - class IfcCylindricalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 1213902940; - } - } - IFC4X32.IfcCylindricalSurface = IfcCylindricalSurface; - class IfcDeepFoundationType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1306400036; - } - } - IFC4X32.IfcDeepFoundationType = IfcDeepFoundationType; - class IfcDirectrixDerivedReferenceSweptAreaSolid extends IfcFixedReferenceSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { - super(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FixedReference = FixedReference; - this.type = 4234616927; - } - } - IFC4X32.IfcDirectrixDerivedReferenceSweptAreaSolid = IfcDirectrixDerivedReferenceSweptAreaSolid; - class IfcDistributionElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3256556792; - } - } - IFC4X32.IfcDistributionElementType = IfcDistributionElementType; - class IfcDistributionFlowElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3849074793; - } - } - IFC4X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; - class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.ThresholdDepth = ThresholdDepth; - this.ThresholdThickness = ThresholdThickness; - this.TransomThickness = TransomThickness; - this.TransomOffset = TransomOffset; - this.LiningOffset = LiningOffset; - this.ThresholdOffset = ThresholdOffset; - this.CasingThickness = CasingThickness; - this.CasingDepth = CasingDepth; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 2963535650; - } - } - IFC4X32.IfcDoorLiningProperties = IfcDoorLiningProperties; - class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PanelDepth = PanelDepth; - this.PanelOperation = PanelOperation; - this.PanelWidth = PanelWidth; - this.PanelPosition = PanelPosition; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 1714330368; - } - } - IFC4X32.IfcDoorPanelProperties = IfcDoorPanelProperties; - class IfcDoorType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 2323601079; - } - } - IFC4X32.IfcDoorType = IfcDoorType; - class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 445594917; - } - } - IFC4X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; - class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4006246654; - } - } - IFC4X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; - class IfcElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1758889154; - } - } - IFC4X32.IfcElement = IfcElement; - class IfcElementAssembly extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 4123344466; - } - } - IFC4X32.IfcElementAssembly = IfcElementAssembly; - class IfcElementAssemblyType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2397081782; - } - } - IFC4X32.IfcElementAssemblyType = IfcElementAssemblyType; - class IfcElementComponent extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1623761950; - } - } - IFC4X32.IfcElementComponent = IfcElementComponent; - class IfcElementComponentType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2590856083; - } - } - IFC4X32.IfcElementComponentType = IfcElementComponentType; - class IfcEllipse extends IfcConic { - constructor(expressID, Position, SemiAxis1, SemiAxis2) { - super(expressID, Position); - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 1704287377; - } - } - IFC4X32.IfcEllipse = IfcEllipse; - class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2107101300; - } - } - IFC4X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; - class IfcEngineType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 132023988; - } - } - IFC4X32.IfcEngineType = IfcEngineType; - class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3174744832; - } - } - IFC4X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; - class IfcEvaporatorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3390157468; - } - } - IFC4X32.IfcEvaporatorType = IfcEvaporatorType; - class IfcEvent extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.EventOccurenceTime = EventOccurenceTime; - this.type = 4148101412; - } - } - IFC4X32.IfcEvent = IfcEvent; - class IfcExternalSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 2853485674; - } - } - IFC4X32.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; - class IfcFacetedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 807026263; - } - } - IFC4X32.IfcFacetedBrep = IfcFacetedBrep; - class IfcFacetedBrepWithVoids extends IfcFacetedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 3737207727; - } - } - IFC4X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; - class IfcFacility extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 24185140; - } - } - IFC4X32.IfcFacility = IfcFacility; - class IfcFacilityPart extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.type = 1310830890; - } - } - IFC4X32.IfcFacilityPart = IfcFacilityPart; - class IfcFacilityPartCommon extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 4228831410; - } - } - IFC4X32.IfcFacilityPartCommon = IfcFacilityPartCommon; - class IfcFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 647756555; - } - } - IFC4X32.IfcFastener = IfcFastener; - class IfcFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2489546625; - } - } - IFC4X32.IfcFastenerType = IfcFastenerType; - class IfcFeatureElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2827207264; - } - } - IFC4X32.IfcFeatureElement = IfcFeatureElement; - class IfcFeatureElementAddition extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2143335405; - } - } - IFC4X32.IfcFeatureElementAddition = IfcFeatureElementAddition; - class IfcFeatureElementSubtraction extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1287392070; - } - } - IFC4X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; - class IfcFlowControllerType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3907093117; - } - } - IFC4X32.IfcFlowControllerType = IfcFlowControllerType; - class IfcFlowFittingType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3198132628; - } - } - IFC4X32.IfcFlowFittingType = IfcFlowFittingType; - class IfcFlowMeterType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3815607619; - } - } - IFC4X32.IfcFlowMeterType = IfcFlowMeterType; - class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1482959167; - } - } - IFC4X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; - class IfcFlowSegmentType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1834744321; - } - } - IFC4X32.IfcFlowSegmentType = IfcFlowSegmentType; - class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1339347760; - } - } - IFC4X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; - class IfcFlowTerminalType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2297155007; - } - } - IFC4X32.IfcFlowTerminalType = IfcFlowTerminalType; - class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3009222698; - } - } - IFC4X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; - class IfcFootingType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1893162501; - } - } - IFC4X32.IfcFootingType = IfcFootingType; - class IfcFurnishingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 263784265; - } - } - IFC4X32.IfcFurnishingElement = IfcFurnishingElement; - class IfcFurniture extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1509553395; - } - } - IFC4X32.IfcFurniture = IfcFurniture; - class IfcGeographicElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3493046030; - } - } - IFC4X32.IfcGeographicElement = IfcGeographicElement; - class IfcGeotechnicalElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4230923436; - } - } - IFC4X32.IfcGeotechnicalElement = IfcGeotechnicalElement; - class IfcGeotechnicalStratum extends IfcGeotechnicalElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1594536857; - } - } - IFC4X32.IfcGeotechnicalStratum = IfcGeotechnicalStratum; - class IfcGradientCurve extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.BaseCurve = BaseCurve; - this.EndPoint = EndPoint; - this.type = 2898700619; - } - } - IFC4X32.IfcGradientCurve = IfcGradientCurve; - class IfcGroup extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2706460486; - } - } - IFC4X32.IfcGroup = IfcGroup; - class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1251058090; - } - } - IFC4X32.IfcHeatExchangerType = IfcHeatExchangerType; - class IfcHumidifierType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1806887404; - } - } - IFC4X32.IfcHumidifierType = IfcHumidifierType; - class IfcImpactProtectionDevice extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2568555532; - } - } - IFC4X32.IfcImpactProtectionDevice = IfcImpactProtectionDevice; - class IfcImpactProtectionDeviceType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3948183225; - } - } - IFC4X32.IfcImpactProtectionDeviceType = IfcImpactProtectionDeviceType; - class IfcIndexedPolyCurve extends IfcBoundedCurve { - constructor(expressID, Points, Segments, SelfIntersect) { - super(expressID); - this.Points = Points; - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 2571569899; - } - } - IFC4X32.IfcIndexedPolyCurve = IfcIndexedPolyCurve; - class IfcInterceptorType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3946677679; - } - } - IFC4X32.IfcInterceptorType = IfcInterceptorType; - class IfcIntersectionCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 3113134337; - } - } - IFC4X32.IfcIntersectionCurve = IfcIntersectionCurve; - class IfcInventory extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.Jurisdiction = Jurisdiction; - this.ResponsiblePersons = ResponsiblePersons; - this.LastUpdateDate = LastUpdateDate; - this.CurrentValue = CurrentValue; - this.OriginalValue = OriginalValue; - this.type = 2391368822; - } - } - IFC4X32.IfcInventory = IfcInventory; - class IfcJunctionBoxType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4288270099; - } - } - IFC4X32.IfcJunctionBoxType = IfcJunctionBoxType; - class IfcKerbType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, Mountable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.Mountable = Mountable; - this.type = 679976338; - } - } - IFC4X32.IfcKerbType = IfcKerbType; - class IfcLaborResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3827777499; - } - } - IFC4X32.IfcLaborResource = IfcLaborResource; - class IfcLampType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1051575348; - } - } - IFC4X32.IfcLampType = IfcLampType; - class IfcLightFixtureType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1161773419; - } - } - IFC4X32.IfcLightFixtureType = IfcLightFixtureType; - class IfcLinearElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 2176059722; - } - } - IFC4X32.IfcLinearElement = IfcLinearElement; - class IfcLiquidTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1770583370; - } - } - IFC4X32.IfcLiquidTerminalType = IfcLiquidTerminalType; - class IfcMarineFacility extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 525669439; - } - } - IFC4X32.IfcMarineFacility = IfcMarineFacility; - class IfcMarinePart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 976884017; - } - } - IFC4X32.IfcMarinePart = IfcMarinePart; - class IfcMechanicalFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.PredefinedType = PredefinedType; - this.type = 377706215; - } - } - IFC4X32.IfcMechanicalFastener = IfcMechanicalFastener; - class IfcMechanicalFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.type = 2108223431; - } - } - IFC4X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; - class IfcMedicalDeviceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1114901282; - } - } - IFC4X32.IfcMedicalDeviceType = IfcMedicalDeviceType; - class IfcMemberType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3181161470; - } - } - IFC4X32.IfcMemberType = IfcMemberType; - class IfcMobileTelecommunicationsApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1950438474; - } - } - IFC4X32.IfcMobileTelecommunicationsApplianceType = IfcMobileTelecommunicationsApplianceType; - class IfcMooringDeviceType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 710110818; - } - } - IFC4X32.IfcMooringDeviceType = IfcMooringDeviceType; - class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 977012517; - } - } - IFC4X32.IfcMotorConnectionType = IfcMotorConnectionType; - class IfcNavigationElementType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 506776471; - } - } - IFC4X32.IfcNavigationElementType = IfcNavigationElementType; - class IfcOccupant extends IfcActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.PredefinedType = PredefinedType; - this.type = 4143007308; - } - } - IFC4X32.IfcOccupant = IfcOccupant; - class IfcOpeningElement extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3588315303; - } - } - IFC4X32.IfcOpeningElement = IfcOpeningElement; - class IfcOutletType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2837617999; - } - } - IFC4X32.IfcOutletType = IfcOutletType; - class IfcPavementType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 514975943; - } - } - IFC4X32.IfcPavementType = IfcPavementType; - class IfcPerformanceHistory extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LifeCyclePhase = LifeCyclePhase; - this.PredefinedType = PredefinedType; - this.type = 2382730787; - } - } - IFC4X32.IfcPerformanceHistory = IfcPerformanceHistory; - class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 3566463478; - } - } - IFC4X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; - class IfcPermit extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3327091369; - } - } - IFC4X32.IfcPermit = IfcPermit; - class IfcPileType extends IfcDeepFoundationType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1158309216; - } - } - IFC4X32.IfcPileType = IfcPileType; - class IfcPipeFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 804291784; - } - } - IFC4X32.IfcPipeFittingType = IfcPipeFittingType; - class IfcPipeSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4231323485; - } - } - IFC4X32.IfcPipeSegmentType = IfcPipeSegmentType; - class IfcPlateType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4017108033; - } - } - IFC4X32.IfcPlateType = IfcPlateType; - class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Closed, Faces, PnIndex) { - super(expressID, Coordinates, Closed); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Faces = Faces; - this.PnIndex = PnIndex; - this.type = 2839578677; - } - } - IFC4X32.IfcPolygonalFaceSet = IfcPolygonalFaceSet; - class IfcPolyline extends IfcBoundedCurve { - constructor(expressID, Points) { - super(expressID); - this.Points = Points; - this.type = 3724593414; - } - } - IFC4X32.IfcPolyline = IfcPolyline; - class IfcPort extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3740093272; - } - } - IFC4X32.IfcPort = IfcPort; - class IfcPositioningElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1946335990; - } - } - IFC4X32.IfcPositioningElement = IfcPositioningElement; - class IfcProcedure extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.type = 2744685151; - } - } - IFC4X32.IfcProcedure = IfcProcedure; - class IfcProjectOrder extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 2904328755; - } - } - IFC4X32.IfcProjectOrder = IfcProjectOrder; - class IfcProjectionElement extends IfcFeatureElementAddition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3651124850; - } - } - IFC4X32.IfcProjectionElement = IfcProjectionElement; - class IfcProtectiveDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1842657554; - } - } - IFC4X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; - class IfcPumpType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2250791053; - } - } - IFC4X32.IfcPumpType = IfcPumpType; - class IfcRailType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1763565496; - } - } - IFC4X32.IfcRailType = IfcRailType; - class IfcRailingType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2893384427; - } - } - IFC4X32.IfcRailingType = IfcRailingType; - class IfcRailway extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 3992365140; - } - } - IFC4X32.IfcRailway = IfcRailway; - class IfcRailwayPart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 1891881377; - } - } - IFC4X32.IfcRailwayPart = IfcRailwayPart; - class IfcRampFlightType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2324767716; - } - } - IFC4X32.IfcRampFlightType = IfcRampFlightType; - class IfcRampType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1469900589; - } - } - IFC4X32.IfcRampType = IfcRampType; - class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 683857671; - } - } - IFC4X32.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; - class IfcReferent extends IfcPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 4021432810; - } - } - IFC4X32.IfcReferent = IfcReferent; - class IfcReinforcingElement extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 3027567501; - } - } - IFC4X32.IfcReinforcingElement = IfcReinforcingElement; - class IfcReinforcingElementType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 964333572; - } - } - IFC4X32.IfcReinforcingElementType = IfcReinforcingElementType; - class IfcReinforcingMesh extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.PredefinedType = PredefinedType; - this.type = 2320036040; - } - } - IFC4X32.IfcReinforcingMesh = IfcReinforcingMesh; - class IfcReinforcingMeshType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2310774935; - } - } - IFC4X32.IfcReinforcingMeshType = IfcReinforcingMeshType; - class IfcRelAdheresToElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedSurfaceFeatures) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedSurfaceFeatures = RelatedSurfaceFeatures; - this.type = 3818125796; - } - } - IFC4X32.IfcRelAdheresToElement = IfcRelAdheresToElement; - class IfcRelAggregates extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 160246688; - } - } - IFC4X32.IfcRelAggregates = IfcRelAggregates; - class IfcRoad extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 146592293; - } - } - IFC4X32.IfcRoad = IfcRoad; - class IfcRoadPart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 550521510; - } - } - IFC4X32.IfcRoadPart = IfcRoadPart; - class IfcRoofType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2781568857; - } - } - IFC4X32.IfcRoofType = IfcRoofType; - class IfcSanitaryTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1768891740; - } - } - IFC4X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; - class IfcSeamCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 2157484638; - } - } - IFC4X32.IfcSeamCurve = IfcSeamCurve; - class IfcSecondOrderPolynomialSpiral extends IfcSpiral { - constructor(expressID, Position, QuadraticTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.QuadraticTerm = QuadraticTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 3649235739; - } - } - IFC4X32.IfcSecondOrderPolynomialSpiral = IfcSecondOrderPolynomialSpiral; - class IfcSegmentedReferenceCurve extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.BaseCurve = BaseCurve; - this.EndPoint = EndPoint; - this.type = 544395925; - } - } - IFC4X32.IfcSegmentedReferenceCurve = IfcSegmentedReferenceCurve; - class IfcSeventhOrderPolynomialSpiral extends IfcSpiral { - constructor(expressID, Position, SepticTerm, SexticTerm, QuinticTerm, QuarticTerm, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.SepticTerm = SepticTerm; - this.SexticTerm = SexticTerm; - this.QuinticTerm = QuinticTerm; - this.QuarticTerm = QuarticTerm; - this.CubicTerm = CubicTerm; - this.QuadraticTerm = QuadraticTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 1027922057; - } - } - IFC4X32.IfcSeventhOrderPolynomialSpiral = IfcSeventhOrderPolynomialSpiral; - class IfcShadingDeviceType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4074543187; - } - } - IFC4X32.IfcShadingDeviceType = IfcShadingDeviceType; - class IfcSign extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 33720170; - } - } - IFC4X32.IfcSign = IfcSign; - class IfcSignType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3599934289; - } - } - IFC4X32.IfcSignType = IfcSignType; - class IfcSignalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1894708472; - } - } - IFC4X32.IfcSignalType = IfcSignalType; - class IfcSineSpiral extends IfcSpiral { - constructor(expressID, Position, SineTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.SineTerm = SineTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 42703149; - } - } - IFC4X32.IfcSineSpiral = IfcSineSpiral; - class IfcSite extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.RefLatitude = RefLatitude; - this.RefLongitude = RefLongitude; - this.RefElevation = RefElevation; - this.LandTitleNumber = LandTitleNumber; - this.SiteAddress = SiteAddress; - this.type = 4097777520; - } - } - IFC4X32.IfcSite = IfcSite; - class IfcSlabType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2533589738; - } - } - IFC4X32.IfcSlabType = IfcSlabType; - class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1072016465; - } - } - IFC4X32.IfcSolarDeviceType = IfcSolarDeviceType; - class IfcSpace extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.ElevationWithFlooring = ElevationWithFlooring; - this.type = 3856911033; - } - } - IFC4X32.IfcSpace = IfcSpace; - class IfcSpaceHeaterType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1305183839; - } - } - IFC4X32.IfcSpaceHeaterType = IfcSpaceHeaterType; - class IfcSpaceType extends IfcSpatialStructureElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 3812236995; - } - } - IFC4X32.IfcSpaceType = IfcSpaceType; - class IfcStackTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3112655638; - } - } - IFC4X32.IfcStackTerminalType = IfcStackTerminalType; - class IfcStairFlightType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1039846685; - } - } - IFC4X32.IfcStairFlightType = IfcStairFlightType; - class IfcStairType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 338393293; - } - } - IFC4X32.IfcStairType = IfcStairType; - class IfcStructuralAction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 682877961; - } - } - IFC4X32.IfcStructuralAction = IfcStructuralAction; - class IfcStructuralConnection extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1179482911; - } - } - IFC4X32.IfcStructuralConnection = IfcStructuralConnection; - class IfcStructuralCurveAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1004757350; - } - } - IFC4X32.IfcStructuralCurveAction = IfcStructuralCurveAction; - class IfcStructuralCurveConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, AxisDirection) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.AxisDirection = AxisDirection; - this.type = 4243806635; - } - } - IFC4X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; - class IfcStructuralCurveMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 214636428; - } - } - IFC4X32.IfcStructuralCurveMember = IfcStructuralCurveMember; - class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 2445595289; - } - } - IFC4X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; - class IfcStructuralCurveReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 2757150158; - } - } - IFC4X32.IfcStructuralCurveReaction = IfcStructuralCurveReaction; - class IfcStructuralLinearAction extends IfcStructuralCurveAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1807405624; - } - } - IFC4X32.IfcStructuralLinearAction = IfcStructuralLinearAction; - class IfcStructuralLoadGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.type = 1252848954; - } - } - IFC4X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; - class IfcStructuralPointAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 2082059205; - } - } - IFC4X32.IfcStructuralPointAction = IfcStructuralPointAction; - class IfcStructuralPointConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 734778138; - } - } - IFC4X32.IfcStructuralPointConnection = IfcStructuralPointConnection; - class IfcStructuralPointReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 1235345126; - } - } - IFC4X32.IfcStructuralPointReaction = IfcStructuralPointReaction; - class IfcStructuralResultGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheoryType = TheoryType; - this.ResultForLoadGroup = ResultForLoadGroup; - this.IsLinear = IsLinear; - this.type = 2986769608; - } - } - IFC4X32.IfcStructuralResultGroup = IfcStructuralResultGroup; - class IfcStructuralSurfaceAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 3657597509; - } - } - IFC4X32.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; - class IfcStructuralSurfaceConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1975003073; - } - } - IFC4X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; - class IfcSubContractResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 148013059; - } - } - IFC4X32.IfcSubContractResource = IfcSubContractResource; - class IfcSurfaceFeature extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3101698114; - } - } - IFC4X32.IfcSurfaceFeature = IfcSurfaceFeature; - class IfcSwitchingDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2315554128; - } - } - IFC4X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; - class IfcSystem extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2254336722; - } - } - IFC4X32.IfcSystem = IfcSystem; - class IfcSystemFurnitureElement extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 413509423; - } - } - IFC4X32.IfcSystemFurnitureElement = IfcSystemFurnitureElement; - class IfcTankType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 5716631; - } - } - IFC4X32.IfcTankType = IfcTankType; - class IfcTendon extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.TensionForce = TensionForce; - this.PreStress = PreStress; - this.FrictionCoefficient = FrictionCoefficient; - this.AnchorageSlip = AnchorageSlip; - this.MinCurvatureRadius = MinCurvatureRadius; - this.type = 3824725483; - } - } - IFC4X32.IfcTendon = IfcTendon; - class IfcTendonAnchor extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.type = 2347447852; - } - } - IFC4X32.IfcTendonAnchor = IfcTendonAnchor; - class IfcTendonAnchorType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3081323446; - } - } - IFC4X32.IfcTendonAnchorType = IfcTendonAnchorType; - class IfcTendonConduit extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.type = 3663046924; - } - } - IFC4X32.IfcTendonConduit = IfcTendonConduit; - class IfcTendonConduitType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2281632017; - } - } - IFC4X32.IfcTendonConduitType = IfcTendonConduitType; - class IfcTendonType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.SheathDiameter = SheathDiameter; - this.type = 2415094496; - } - } - IFC4X32.IfcTendonType = IfcTendonType; - class IfcTrackElementType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 618700268; - } - } - IFC4X32.IfcTrackElementType = IfcTrackElementType; - class IfcTransformerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1692211062; - } - } - IFC4X32.IfcTransformerType = IfcTransformerType; - class IfcTransportElementType extends IfcTransportationDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2097647324; - } - } - IFC4X32.IfcTransportElementType = IfcTransportElementType; - class IfcTransportationDevice extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1953115116; - } - } - IFC4X32.IfcTransportationDevice = IfcTransportationDevice; - class IfcTrimmedCurve extends IfcBoundedCurve { - constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Trim1 = Trim1; - this.Trim2 = Trim2; - this.SenseAgreement = SenseAgreement; - this.MasterRepresentation = MasterRepresentation; - this.type = 3593883385; - } - } - IFC4X32.IfcTrimmedCurve = IfcTrimmedCurve; - class IfcTubeBundleType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1600972822; - } - } - IFC4X32.IfcTubeBundleType = IfcTubeBundleType; - class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1911125066; - } - } - IFC4X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; - class IfcValveType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 728799441; - } - } - IFC4X32.IfcValveType = IfcValveType; - class IfcVehicle extends IfcTransportationDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 840318589; - } - } - IFC4X32.IfcVehicle = IfcVehicle; - class IfcVibrationDamper extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1530820697; - } - } - IFC4X32.IfcVibrationDamper = IfcVibrationDamper; - class IfcVibrationDamperType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3956297820; - } - } - IFC4X32.IfcVibrationDamperType = IfcVibrationDamperType; - class IfcVibrationIsolator extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391383451; - } - } - IFC4X32.IfcVibrationIsolator = IfcVibrationIsolator; - class IfcVibrationIsolatorType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3313531582; - } - } - IFC4X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; - class IfcVirtualElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2769231204; - } - } - IFC4X32.IfcVirtualElement = IfcVirtualElement; - class IfcVoidingFeature extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 926996030; - } - } - IFC4X32.IfcVoidingFeature = IfcVoidingFeature; - class IfcWallType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1898987631; - } - } - IFC4X32.IfcWallType = IfcWallType; - class IfcWasteTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1133259667; - } - } - IFC4X32.IfcWasteTerminalType = IfcWasteTerminalType; - class IfcWindowType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 4009809668; - } - } - IFC4X32.IfcWindowType = IfcWindowType; - class IfcWorkCalendar extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.WorkingTimes = WorkingTimes; - this.ExceptionTimes = ExceptionTimes; - this.PredefinedType = PredefinedType; - this.type = 4088093105; - } - } - IFC4X32.IfcWorkCalendar = IfcWorkCalendar; - class IfcWorkControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.type = 1028945134; - } - } - IFC4X32.IfcWorkControl = IfcWorkControl; - class IfcWorkPlan extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 4218914973; - } - } - IFC4X32.IfcWorkPlan = IfcWorkPlan; - class IfcWorkSchedule extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 3342526732; - } - } - IFC4X32.IfcWorkSchedule = IfcWorkSchedule; - class IfcZone extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.type = 1033361043; - } - } - IFC4X32.IfcZone = IfcZone; - class IfcActionRequest extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3821786052; - } - } - IFC4X32.IfcActionRequest = IfcActionRequest; - class IfcAirTerminalBoxType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1411407467; - } - } - IFC4X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; - class IfcAirTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3352864051; - } - } - IFC4X32.IfcAirTerminalType = IfcAirTerminalType; - class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1871374353; - } - } - IFC4X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; - class IfcAlignmentCant extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, RailHeadDistance) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.RailHeadDistance = RailHeadDistance; - this.type = 4266260250; - } - } - IFC4X32.IfcAlignmentCant = IfcAlignmentCant; - class IfcAlignmentHorizontal extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1545765605; - } - } - IFC4X32.IfcAlignmentHorizontal = IfcAlignmentHorizontal; - class IfcAlignmentSegment extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, DesignParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.DesignParameters = DesignParameters; - this.type = 317615605; - } - } - IFC4X32.IfcAlignmentSegment = IfcAlignmentSegment; - class IfcAlignmentVertical extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1662888072; - } - } - IFC4X32.IfcAlignmentVertical = IfcAlignmentVertical; - class IfcAsset extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.OriginalValue = OriginalValue; - this.CurrentValue = CurrentValue; - this.TotalReplacementCost = TotalReplacementCost; - this.Owner = Owner; - this.User = User; - this.ResponsiblePerson = ResponsiblePerson; - this.IncorporationDate = IncorporationDate; - this.DepreciatedValue = DepreciatedValue; - this.type = 3460190687; - } - } - IFC4X32.IfcAsset = IfcAsset; - class IfcAudioVisualApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1532957894; - } - } - IFC4X32.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; - class IfcBSplineCurve extends IfcBoundedCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1967976161; - } - } - IFC4X32.IfcBSplineCurve = IfcBSplineCurve; - class IfcBSplineCurveWithKnots extends IfcBSplineCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.type = 2461110595; - } - } - IFC4X32.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; - class IfcBeamType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 819618141; - } - } - IFC4X32.IfcBeamType = IfcBeamType; - class IfcBearingType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3649138523; - } - } - IFC4X32.IfcBearingType = IfcBearingType; - class IfcBoilerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 231477066; - } - } - IFC4X32.IfcBoilerType = IfcBoilerType; - class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 1136057603; - } - } - IFC4X32.IfcBoundaryCurve = IfcBoundaryCurve; - class IfcBridge extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 644574406; - } - } - IFC4X32.IfcBridge = IfcBridge; - class IfcBridgePart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 963979645; - } - } - IFC4X32.IfcBridgePart = IfcBridgePart; - class IfcBuilding extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.ElevationOfRefHeight = ElevationOfRefHeight; - this.ElevationOfTerrain = ElevationOfTerrain; - this.BuildingAddress = BuildingAddress; - this.type = 4031249490; - } - } - IFC4X32.IfcBuilding = IfcBuilding; - class IfcBuildingElementPart extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2979338954; - } - } - IFC4X32.IfcBuildingElementPart = IfcBuildingElementPart; - class IfcBuildingElementPartType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 39481116; - } - } - IFC4X32.IfcBuildingElementPartType = IfcBuildingElementPartType; - class IfcBuildingElementProxyType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1909888760; - } - } - IFC4X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; - class IfcBuildingSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 1177604601; - } - } - IFC4X32.IfcBuildingSystem = IfcBuildingSystem; - class IfcBuiltElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1876633798; - } - } - IFC4X32.IfcBuiltElement = IfcBuiltElement; - class IfcBuiltSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 3862327254; - } - } - IFC4X32.IfcBuiltSystem = IfcBuiltSystem; - class IfcBurnerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2188180465; - } - } - IFC4X32.IfcBurnerType = IfcBurnerType; - class IfcCableCarrierFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 395041908; - } - } - IFC4X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; - class IfcCableCarrierSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3293546465; - } - } - IFC4X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; - class IfcCableFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2674252688; - } - } - IFC4X32.IfcCableFittingType = IfcCableFittingType; - class IfcCableSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1285652485; - } - } - IFC4X32.IfcCableSegmentType = IfcCableSegmentType; - class IfcCaissonFoundationType extends IfcDeepFoundationType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3203706013; - } - } - IFC4X32.IfcCaissonFoundationType = IfcCaissonFoundationType; - class IfcChillerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2951183804; - } - } - IFC4X32.IfcChillerType = IfcChillerType; - class IfcChimney extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3296154744; - } - } - IFC4X32.IfcChimney = IfcChimney; - class IfcCircle extends IfcConic { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 2611217952; - } - } - IFC4X32.IfcCircle = IfcCircle; - class IfcCivilElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1677625105; - } - } - IFC4X32.IfcCivilElement = IfcCivilElement; - class IfcCoilType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2301859152; - } - } - IFC4X32.IfcCoilType = IfcCoilType; - class IfcColumn extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 843113511; - } - } - IFC4X32.IfcColumn = IfcColumn; - class IfcCommunicationsApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 400855858; - } - } - IFC4X32.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; - class IfcCompressorType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3850581409; - } - } - IFC4X32.IfcCompressorType = IfcCompressorType; - class IfcCondenserType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2816379211; - } - } - IFC4X32.IfcCondenserType = IfcCondenserType; - class IfcConstructionEquipmentResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3898045240; - } - } - IFC4X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; - class IfcConstructionMaterialResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1060000209; - } - } - IFC4X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; - class IfcConstructionProductResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 488727124; - } - } - IFC4X32.IfcConstructionProductResource = IfcConstructionProductResource; - class IfcConveyorSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2940368186; - } - } - IFC4X32.IfcConveyorSegmentType = IfcConveyorSegmentType; - class IfcCooledBeamType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 335055490; - } - } - IFC4X32.IfcCooledBeamType = IfcCooledBeamType; - class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2954562838; - } - } - IFC4X32.IfcCoolingTowerType = IfcCoolingTowerType; - class IfcCourse extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1502416096; - } - } - IFC4X32.IfcCourse = IfcCourse; - class IfcCovering extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1973544240; - } - } - IFC4X32.IfcCovering = IfcCovering; - class IfcCurtainWall extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3495092785; - } - } - IFC4X32.IfcCurtainWall = IfcCurtainWall; - class IfcDamperType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3961806047; - } - } - IFC4X32.IfcDamperType = IfcDamperType; - class IfcDeepFoundation extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3426335179; - } - } - IFC4X32.IfcDeepFoundation = IfcDeepFoundation; - class IfcDiscreteAccessory extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1335981549; - } - } - IFC4X32.IfcDiscreteAccessory = IfcDiscreteAccessory; - class IfcDiscreteAccessoryType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2635815018; - } - } - IFC4X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; - class IfcDistributionBoardType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 479945903; - } - } - IFC4X32.IfcDistributionBoardType = IfcDistributionBoardType; - class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1599208980; - } - } - IFC4X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; - class IfcDistributionControlElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2063403501; - } - } - IFC4X32.IfcDistributionControlElementType = IfcDistributionControlElementType; - class IfcDistributionElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1945004755; - } - } - IFC4X32.IfcDistributionElement = IfcDistributionElement; - class IfcDistributionFlowElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3040386961; - } - } - IFC4X32.IfcDistributionFlowElement = IfcDistributionFlowElement; - class IfcDistributionPort extends IfcPort { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.FlowDirection = FlowDirection; - this.PredefinedType = PredefinedType; - this.SystemType = SystemType; - this.type = 3041715199; - } - } - IFC4X32.IfcDistributionPort = IfcDistributionPort; - class IfcDistributionSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 3205830791; - } - } - IFC4X32.IfcDistributionSystem = IfcDistributionSystem; - class IfcDoor extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 395920057; - } - } - IFC4X32.IfcDoor = IfcDoor; - class IfcDuctFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 869906466; - } - } - IFC4X32.IfcDuctFittingType = IfcDuctFittingType; - class IfcDuctSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3760055223; - } - } - IFC4X32.IfcDuctSegmentType = IfcDuctSegmentType; - class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2030761528; - } - } - IFC4X32.IfcDuctSilencerType = IfcDuctSilencerType; - class IfcEarthworksCut extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3071239417; - } - } - IFC4X32.IfcEarthworksCut = IfcEarthworksCut; - class IfcEarthworksElement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1077100507; - } - } - IFC4X32.IfcEarthworksElement = IfcEarthworksElement; - class IfcEarthworksFill extends IfcEarthworksElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3376911765; - } - } - IFC4X32.IfcEarthworksFill = IfcEarthworksFill; - class IfcElectricApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 663422040; - } - } - IFC4X32.IfcElectricApplianceType = IfcElectricApplianceType; - class IfcElectricDistributionBoardType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2417008758; - } - } - IFC4X32.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; - class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3277789161; - } - } - IFC4X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; - class IfcElectricFlowTreatmentDeviceType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2142170206; - } - } - IFC4X32.IfcElectricFlowTreatmentDeviceType = IfcElectricFlowTreatmentDeviceType; - class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1534661035; - } - } - IFC4X32.IfcElectricGeneratorType = IfcElectricGeneratorType; - class IfcElectricMotorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1217240411; - } - } - IFC4X32.IfcElectricMotorType = IfcElectricMotorType; - class IfcElectricTimeControlType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 712377611; - } - } - IFC4X32.IfcElectricTimeControlType = IfcElectricTimeControlType; - class IfcEnergyConversionDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1658829314; - } - } - IFC4X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; - class IfcEngine extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2814081492; - } - } - IFC4X32.IfcEngine = IfcEngine; - class IfcEvaporativeCooler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3747195512; - } - } - IFC4X32.IfcEvaporativeCooler = IfcEvaporativeCooler; - class IfcEvaporator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 484807127; - } - } - IFC4X32.IfcEvaporator = IfcEvaporator; - class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 1209101575; - } - } - IFC4X32.IfcExternalSpatialElement = IfcExternalSpatialElement; - class IfcFanType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 346874300; - } - } - IFC4X32.IfcFanType = IfcFanType; - class IfcFilterType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1810631287; - } - } - IFC4X32.IfcFilterType = IfcFilterType; - class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4222183408; - } - } - IFC4X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; - class IfcFlowController extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2058353004; - } - } - IFC4X32.IfcFlowController = IfcFlowController; - class IfcFlowFitting extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4278956645; - } - } - IFC4X32.IfcFlowFitting = IfcFlowFitting; - class IfcFlowInstrumentType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4037862832; - } - } - IFC4X32.IfcFlowInstrumentType = IfcFlowInstrumentType; - class IfcFlowMeter extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2188021234; - } - } - IFC4X32.IfcFlowMeter = IfcFlowMeter; - class IfcFlowMovingDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3132237377; - } - } - IFC4X32.IfcFlowMovingDevice = IfcFlowMovingDevice; - class IfcFlowSegment extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 987401354; - } - } - IFC4X32.IfcFlowSegment = IfcFlowSegment; - class IfcFlowStorageDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 707683696; - } - } - IFC4X32.IfcFlowStorageDevice = IfcFlowStorageDevice; - class IfcFlowTerminal extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2223149337; - } - } - IFC4X32.IfcFlowTerminal = IfcFlowTerminal; - class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3508470533; - } - } - IFC4X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; - class IfcFooting extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 900683007; - } - } - IFC4X32.IfcFooting = IfcFooting; - class IfcGeotechnicalAssembly extends IfcGeotechnicalElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2713699986; - } - } - IFC4X32.IfcGeotechnicalAssembly = IfcGeotechnicalAssembly; - class IfcGrid extends IfcPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.UAxes = UAxes; - this.VAxes = VAxes; - this.WAxes = WAxes; - this.PredefinedType = PredefinedType; - this.type = 3009204131; - } - } - IFC4X32.IfcGrid = IfcGrid; - class IfcHeatExchanger extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3319311131; - } - } - IFC4X32.IfcHeatExchanger = IfcHeatExchanger; - class IfcHumidifier extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2068733104; - } - } - IFC4X32.IfcHumidifier = IfcHumidifier; - class IfcInterceptor extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4175244083; - } - } - IFC4X32.IfcInterceptor = IfcInterceptor; - class IfcJunctionBox extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2176052936; - } - } - IFC4X32.IfcJunctionBox = IfcJunctionBox; - class IfcKerb extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, Mountable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.Mountable = Mountable; - this.type = 2696325953; - } - } - IFC4X32.IfcKerb = IfcKerb; - class IfcLamp extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 76236018; - } - } - IFC4X32.IfcLamp = IfcLamp; - class IfcLightFixture extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 629592764; - } - } - IFC4X32.IfcLightFixture = IfcLightFixture; - class IfcLinearPositioningElement extends IfcPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1154579445; - } - } - IFC4X32.IfcLinearPositioningElement = IfcLinearPositioningElement; - class IfcLiquidTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1638804497; - } - } - IFC4X32.IfcLiquidTerminal = IfcLiquidTerminal; - class IfcMedicalDevice extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1437502449; - } - } - IFC4X32.IfcMedicalDevice = IfcMedicalDevice; - class IfcMember extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1073191201; - } - } - IFC4X32.IfcMember = IfcMember; - class IfcMobileTelecommunicationsAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2078563270; - } - } - IFC4X32.IfcMobileTelecommunicationsAppliance = IfcMobileTelecommunicationsAppliance; - class IfcMooringDevice extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 234836483; - } - } - IFC4X32.IfcMooringDevice = IfcMooringDevice; - class IfcMotorConnection extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2474470126; - } - } - IFC4X32.IfcMotorConnection = IfcMotorConnection; - class IfcNavigationElement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2182337498; - } - } - IFC4X32.IfcNavigationElement = IfcNavigationElement; - class IfcOuterBoundaryCurve extends IfcBoundaryCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 144952367; - } - } - IFC4X32.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; - class IfcOutlet extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3694346114; - } - } - IFC4X32.IfcOutlet = IfcOutlet; - class IfcPavement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1383356374; - } - } - IFC4X32.IfcPavement = IfcPavement; - class IfcPile extends IfcDeepFoundation { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.ConstructionType = ConstructionType; - this.type = 1687234759; - } - } - IFC4X32.IfcPile = IfcPile; - class IfcPipeFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 310824031; - } - } - IFC4X32.IfcPipeFitting = IfcPipeFitting; - class IfcPipeSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3612865200; - } - } - IFC4X32.IfcPipeSegment = IfcPipeSegment; - class IfcPlate extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3171933400; - } - } - IFC4X32.IfcPlate = IfcPlate; - class IfcProtectiveDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 738039164; - } - } - IFC4X32.IfcProtectiveDevice = IfcProtectiveDevice; - class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 655969474; - } - } - IFC4X32.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; - class IfcPump extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 90941305; - } - } - IFC4X32.IfcPump = IfcPump; - class IfcRail extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3290496277; - } - } - IFC4X32.IfcRail = IfcRail; - class IfcRailing extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2262370178; - } - } - IFC4X32.IfcRailing = IfcRailing; - class IfcRamp extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3024970846; - } - } - IFC4X32.IfcRamp = IfcRamp; - class IfcRampFlight extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3283111854; - } - } - IFC4X32.IfcRampFlight = IfcRampFlight; - class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 1232101972; - } - } - IFC4X32.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; - class IfcReinforcedSoil extends IfcEarthworksElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3798194928; - } - } - IFC4X32.IfcReinforcedSoil = IfcReinforcedSoil; - class IfcReinforcingBar extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.PredefinedType = PredefinedType; - this.BarSurface = BarSurface; - this.type = 979691226; - } - } - IFC4X32.IfcReinforcingBar = IfcReinforcingBar; - class IfcReinforcingBarType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.BarSurface = BarSurface; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2572171363; - } - } - IFC4X32.IfcReinforcingBarType = IfcReinforcingBarType; - class IfcRoof extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2016517767; - } - } - IFC4X32.IfcRoof = IfcRoof; - class IfcSanitaryTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3053780830; - } - } - IFC4X32.IfcSanitaryTerminal = IfcSanitaryTerminal; - class IfcSensorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1783015770; - } - } - IFC4X32.IfcSensorType = IfcSensorType; - class IfcShadingDevice extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1329646415; - } - } - IFC4X32.IfcShadingDevice = IfcShadingDevice; - class IfcSignal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 991950508; - } - } - IFC4X32.IfcSignal = IfcSignal; - class IfcSlab extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1529196076; - } - } - IFC4X32.IfcSlab = IfcSlab; - class IfcSolarDevice extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3420628829; - } - } - IFC4X32.IfcSolarDevice = IfcSolarDevice; - class IfcSpaceHeater extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1999602285; - } - } - IFC4X32.IfcSpaceHeater = IfcSpaceHeater; - class IfcStackTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1404847402; - } - } - IFC4X32.IfcStackTerminal = IfcStackTerminal; - class IfcStair extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 331165859; - } - } - IFC4X32.IfcStair = IfcStair; - class IfcStairFlight extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NumberOfRisers = NumberOfRisers; - this.NumberOfTreads = NumberOfTreads; - this.RiserHeight = RiserHeight; - this.TreadLength = TreadLength; - this.PredefinedType = PredefinedType; - this.type = 4252922144; - } - } - IFC4X32.IfcStairFlight = IfcStairFlight; - class IfcStructuralAnalysisModel extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.OrientationOf2DPlane = OrientationOf2DPlane; - this.LoadedBy = LoadedBy; - this.HasResults = HasResults; - this.SharedPlacement = SharedPlacement; - this.type = 2515109513; - } - } - IFC4X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; - class IfcStructuralLoadCase extends IfcStructuralLoadGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.SelfWeightCoefficients = SelfWeightCoefficients; - this.type = 385403989; - } - } - IFC4X32.IfcStructuralLoadCase = IfcStructuralLoadCase; - class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1621171031; - } - } - IFC4X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; - class IfcSwitchingDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1162798199; - } - } - IFC4X32.IfcSwitchingDevice = IfcSwitchingDevice; - class IfcTank extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 812556717; - } - } - IFC4X32.IfcTank = IfcTank; - class IfcTrackElement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3425753595; - } - } - IFC4X32.IfcTrackElement = IfcTrackElement; - class IfcTransformer extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3825984169; - } - } - IFC4X32.IfcTransformer = IfcTransformer; - class IfcTransportElement extends IfcTransportationDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1620046519; - } - } - IFC4X32.IfcTransportElement = IfcTransportElement; - class IfcTubeBundle extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3026737570; - } - } - IFC4X32.IfcTubeBundle = IfcTubeBundle; - class IfcUnitaryControlElementType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3179687236; - } - } - IFC4X32.IfcUnitaryControlElementType = IfcUnitaryControlElementType; - class IfcUnitaryEquipment extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4292641817; - } - } - IFC4X32.IfcUnitaryEquipment = IfcUnitaryEquipment; - class IfcValve extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4207607924; - } - } - IFC4X32.IfcValve = IfcValve; - class IfcWall extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391406946; - } - } - IFC4X32.IfcWall = IfcWall; - class IfcWallStandardCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3512223829; - } - } - IFC4X32.IfcWallStandardCase = IfcWallStandardCase; - class IfcWasteTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4237592921; - } - } - IFC4X32.IfcWasteTerminal = IfcWasteTerminal; - class IfcWindow extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 3304561284; - } - } - IFC4X32.IfcWindow = IfcWindow; - class IfcActuatorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2874132201; - } - } - IFC4X32.IfcActuatorType = IfcActuatorType; - class IfcAirTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1634111441; - } - } - IFC4X32.IfcAirTerminal = IfcAirTerminal; - class IfcAirTerminalBox extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 177149247; - } - } - IFC4X32.IfcAirTerminalBox = IfcAirTerminalBox; - class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2056796094; - } - } - IFC4X32.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; - class IfcAlarmType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3001207471; - } - } - IFC4X32.IfcAlarmType = IfcAlarmType; - class IfcAlignment extends IfcLinearPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 325726236; - } - } - IFC4X32.IfcAlignment = IfcAlignment; - class IfcAudioVisualAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 277319702; - } - } - IFC4X32.IfcAudioVisualAppliance = IfcAudioVisualAppliance; - class IfcBeam extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 753842376; - } - } - IFC4X32.IfcBeam = IfcBeam; - class IfcBearing extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4196446775; - } - } - IFC4X32.IfcBearing = IfcBearing; - class IfcBoiler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 32344328; - } - } - IFC4X32.IfcBoiler = IfcBoiler; - class IfcBorehole extends IfcGeotechnicalAssembly { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3314249567; - } - } - IFC4X32.IfcBorehole = IfcBorehole; - class IfcBuildingElementProxy extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1095909175; - } - } - IFC4X32.IfcBuildingElementProxy = IfcBuildingElementProxy; - class IfcBurner extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2938176219; - } - } - IFC4X32.IfcBurner = IfcBurner; - class IfcCableCarrierFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 635142910; - } - } - IFC4X32.IfcCableCarrierFitting = IfcCableCarrierFitting; - class IfcCableCarrierSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3758799889; - } - } - IFC4X32.IfcCableCarrierSegment = IfcCableCarrierSegment; - class IfcCableFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1051757585; - } - } - IFC4X32.IfcCableFitting = IfcCableFitting; - class IfcCableSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4217484030; - } - } - IFC4X32.IfcCableSegment = IfcCableSegment; - class IfcCaissonFoundation extends IfcDeepFoundation { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3999819293; - } - } - IFC4X32.IfcCaissonFoundation = IfcCaissonFoundation; - class IfcChiller extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3902619387; - } - } - IFC4X32.IfcChiller = IfcChiller; - class IfcCoil extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 639361253; - } - } - IFC4X32.IfcCoil = IfcCoil; - class IfcCommunicationsAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3221913625; - } - } - IFC4X32.IfcCommunicationsAppliance = IfcCommunicationsAppliance; - class IfcCompressor extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3571504051; - } - } - IFC4X32.IfcCompressor = IfcCompressor; - class IfcCondenser extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2272882330; - } - } - IFC4X32.IfcCondenser = IfcCondenser; - class IfcControllerType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 578613899; - } - } - IFC4X32.IfcControllerType = IfcControllerType; - class IfcConveyorSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3460952963; - } - } - IFC4X32.IfcConveyorSegment = IfcConveyorSegment; - class IfcCooledBeam extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4136498852; - } - } - IFC4X32.IfcCooledBeam = IfcCooledBeam; - class IfcCoolingTower extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3640358203; - } - } - IFC4X32.IfcCoolingTower = IfcCoolingTower; - class IfcDamper extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4074379575; - } - } - IFC4X32.IfcDamper = IfcDamper; - class IfcDistributionBoard extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3693000487; - } - } - IFC4X32.IfcDistributionBoard = IfcDistributionBoard; - class IfcDistributionChamberElement extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1052013943; - } - } - IFC4X32.IfcDistributionChamberElement = IfcDistributionChamberElement; - class IfcDistributionCircuit extends IfcDistributionSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 562808652; - } - } - IFC4X32.IfcDistributionCircuit = IfcDistributionCircuit; - class IfcDistributionControlElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1062813311; - } - } - IFC4X32.IfcDistributionControlElement = IfcDistributionControlElement; - class IfcDuctFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 342316401; - } - } - IFC4X32.IfcDuctFitting = IfcDuctFitting; - class IfcDuctSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3518393246; - } - } - IFC4X32.IfcDuctSegment = IfcDuctSegment; - class IfcDuctSilencer extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1360408905; - } - } - IFC4X32.IfcDuctSilencer = IfcDuctSilencer; - class IfcElectricAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1904799276; - } - } - IFC4X32.IfcElectricAppliance = IfcElectricAppliance; - class IfcElectricDistributionBoard extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 862014818; - } - } - IFC4X32.IfcElectricDistributionBoard = IfcElectricDistributionBoard; - class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3310460725; - } - } - IFC4X32.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; - class IfcElectricFlowTreatmentDevice extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 24726584; - } - } - IFC4X32.IfcElectricFlowTreatmentDevice = IfcElectricFlowTreatmentDevice; - class IfcElectricGenerator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 264262732; - } - } - IFC4X32.IfcElectricGenerator = IfcElectricGenerator; - class IfcElectricMotor extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 402227799; - } - } - IFC4X32.IfcElectricMotor = IfcElectricMotor; - class IfcElectricTimeControl extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1003880860; - } - } - IFC4X32.IfcElectricTimeControl = IfcElectricTimeControl; - class IfcFan extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3415622556; - } - } - IFC4X32.IfcFan = IfcFan; - class IfcFilter extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 819412036; - } - } - IFC4X32.IfcFilter = IfcFilter; - class IfcFireSuppressionTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1426591983; - } - } - IFC4X32.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; - class IfcFlowInstrument extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 182646315; - } - } - IFC4X32.IfcFlowInstrument = IfcFlowInstrument; - class IfcGeomodel extends IfcGeotechnicalAssembly { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2680139844; - } - } - IFC4X32.IfcGeomodel = IfcGeomodel; - class IfcGeoslice extends IfcGeotechnicalAssembly { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1971632696; - } - } - IFC4X32.IfcGeoslice = IfcGeoslice; - class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2295281155; - } - } - IFC4X32.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; - class IfcSensor extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4086658281; - } - } - IFC4X32.IfcSensor = IfcSensor; - class IfcUnitaryControlElement extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 630975310; - } - } - IFC4X32.IfcUnitaryControlElement = IfcUnitaryControlElement; - class IfcActuator extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4288193352; - } - } - IFC4X32.IfcActuator = IfcActuator; - class IfcAlarm extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3087945054; - } - } - IFC4X32.IfcAlarm = IfcAlarm; - class IfcController extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 25142252; - } - } - IFC4X32.IfcController = IfcController; -})(IFC4X3 || (IFC4X3 = {})); - -// dist/helpers/log.ts -var LogLevel; -(function(LogLevel2) { - LogLevel2[LogLevel2["LOG_LEVEL_DEBUG"] = 0] = "LOG_LEVEL_DEBUG"; - LogLevel2[LogLevel2["LOG_LEVEL_INFO"] = 1] = "LOG_LEVEL_INFO"; - LogLevel2[LogLevel2["LOG_LEVEL_WARN"] = 2] = "LOG_LEVEL_WARN"; - LogLevel2[LogLevel2["LOG_LEVEL_ERROR"] = 3] = "LOG_LEVEL_ERROR"; - LogLevel2[LogLevel2["LOG_LEVEL_OFF"] = 4] = "LOG_LEVEL_OFF"; -})(LogLevel || (LogLevel = {})); -var WebIFCWasm; -if (typeof self !== "undefined" && self.crossOriginIsolated) { - try { - WebIFCWasm = require_web_ifc_mt(); - } catch (ex) { - WebIFCWasm = require_web_ifc(); - } -} else - WebIFCWasm = require_web_ifc(); math.vec2(); math.vec3(); diff --git a/dist/xeokit-bim-viewer.min.es.js b/dist/xeokit-bim-viewer.min.es.js index 87d6d901..0b2386a5 100644 --- a/dist/xeokit-bim-viewer.min.es.js +++ b/dist/xeokit-bim-viewer.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 i{constructor(){this.items=[]}}class r{constructor(e,t,s,i,r){this.id=e,this.getTitle=t,this.doAction=s,this.getEnabled=i,this.getShown=r,this.itemElement=null,this.subMenu=null,this.enabled=!0}}class o{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,i=s.length;e{const o=this._getNextId(),n=new s(o);for(let s=0,o=e.length;s0,h=this._getNextId(),c=s.getTitle||(()=>s.title||""),u=s.doAction||s.callback||(()=>{}),A=s.getEnabled||(()=>!0),p=s.getShown||(()=>!0),d=new r(h,c,u,A,p);if(d.parentMenu=n,a.items.push(d),l){const e=t(i);d.subMenu=e,e.parentItem=d}this._itemList.push(d),this._itemMap[d.id]=d}}return this._menuList.push(n),this._menuMap[n.id]=n,n};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,i=s.length;t'),s.push("
    "),t)for(let e=0,i=t.length;e'+l+" [MORE]"):s.push('
  • '+l+"
  • ")}}s.push("
"),s.push("");const i=s.join("");document.body.insertAdjacentHTML("beforeend",i);const r=document.querySelector("."+e.id);e.menuElement=r,r.style["border-radius"]="4px",r.style.display="none",r.style["z-index"]=3e5,r.style.background="white",r.style.border="1px solid black",r.style["box-shadow"]="0 4px 5px 0 gray",r.oncontextmenu=e=>{e.preventDefault()};const o=this;let n=null;if(t)for(let e=0,s=t.length;e{e.preventDefault();const s=t.subMenu;if(!s)return void(n&&(o._hideMenu(n.id),n=null));if(n&&n.id!==s.id&&(o._hideMenu(n.id),n=null),!1===t.enabled)return;const i=t.itemElement,r=s.menuElement,a=i.getBoundingClientRect();r.getBoundingClientRect();a.right+200>window.innerWidth?o._showMenu(s.id,a.left-200,a.top-1):o._showMenu(s.id,a.right-5,a.top-1),n=s})),i||(t.itemElement.addEventListener("click",(e=>{e.preventDefault(),o._context&&!1!==t.enabled&&(t.doAction&&t.doAction(o._context),this._hideOnAction?o.hide():(o._updateItemsTitles(),o._updateItemsEnabledStatus()))})),t.itemElement.addEventListener("mouseenter",(e=>{e.preventDefault(),!1!==t.enabled&&t.doHover&&t.doHover(o._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-i),t+r>window.innerWidth&&(t=window.innerWidth-r),e.style.left=t+"px",e.style.top=s+"px"}_hideMenuElement(e){e.style.display="none"}}let n=!0,a=n?Float64Array:Float32Array;const l=new a(3),h=new a(16),c=new a(16),u=new a(4),A={setDoublePrecisionEnabled(e){n=e,a=n?Float64Array:Float32Array},getDoublePrecisionEnabled:()=>n,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 a(e||2),vec3:e=>new a(e||3),vec4:e=>new a(e||4),mat3:e=>new a(e||9),mat3ToMat4:(e,t=new a(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 a(e||16),mat4ToMat3(e,t){},doublesToFloats(e,t,s){const i=new a(2);for(let r=0,o=e.length;r{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,i=4294967295*Math.random()|0,r=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&i|128]}${e[i>>8&255]}-${e[i>>16&255]}${e[i>>24&255]}${e[255&r]}${e[r>>8&255]}${e[r>>16&255]}${e[r>>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 a(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],i=e[1],r=e[2],o=t[0],n=t[1],a=t[2];return[i*a-r*n,r*o-s*a,s*n-i*o,0]},cross3Vec3(e,t,s){s||(s=e);const i=e[0],r=e[1],o=e[2],n=t[0],a=t[1],l=t[2];return s[0]=r*l-o*a,s[1]=o*n-i*l,s[2]=i*a-r*n,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 a(3);return(t,s)=>A.lenVec3(A.subVec3(t,s,e))})(),lenVec2:e=>Math.sqrt(A.sqLenVec2(e)),distVec2:(()=>{const e=new a(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 a(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,i=(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 a([e[0],0,0,0,0,e[1],0,0,0,0,e[2],0,0,0,0,e[3]]),diagonalMat4c:(e,t,s,i)=>A.diagonalMat4v([e,t,s,i]),diagonalMat4s:e=>A.diagonalMat4c(e,e,e,e),identityMat4:(e=new a(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 a(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 i=e[0],r=e[1],o=e[2],n=e[3],a=e[4],l=e[5],h=e[6],c=e[7],u=e[8],A=e[9],p=e[10],d=e[11],f=e[12],m=e[13],y=e[14],E=e[15],g=t[0],v=t[1],I=t[2],_=t[3],T=t[4],P=t[5],b=t[6],R=t[7],D=t[8],C=t[9],N=t[10],O=t[11],x=t[12],S=t[13],w=t[14],M=t[15];return s[0]=g*i+v*a+I*u+_*f,s[1]=g*r+v*l+I*A+_*m,s[2]=g*o+v*h+I*p+_*y,s[3]=g*n+v*c+I*d+_*E,s[4]=T*i+P*a+b*u+R*f,s[5]=T*r+P*l+b*A+R*m,s[6]=T*o+P*h+b*p+R*y,s[7]=T*n+P*c+b*d+R*E,s[8]=D*i+C*a+N*u+O*f,s[9]=D*r+C*l+N*A+O*m,s[10]=D*o+C*h+N*p+O*y,s[11]=D*n+C*c+N*d+O*E,s[12]=x*i+S*a+w*u+M*f,s[13]=x*r+S*l+w*A+M*m,s[14]=x*o+S*h+w*p+M*y,s[15]=x*n+S*c+w*d+M*E,s},mulMat3(e,t,s){s||(s=new a(9));const i=e[0],r=e[3],o=e[6],n=e[1],l=e[4],h=e[7],c=e[2],u=e[5],A=e[8],p=t[0],d=t[3],f=t[6],m=t[1],y=t[4],E=t[7],g=t[2],v=t[5],I=t[8];return s[0]=i*p+r*m+o*g,s[3]=i*d+r*y+o*v,s[6]=i*f+r*E+o*I,s[1]=n*p+l*m+h*g,s[4]=n*d+l*y+h*v,s[7]=n*f+l*E+h*I,s[2]=c*p+u*m+A*g,s[5]=c*d+u*y+A*v,s[8]=c*f+u*E+A*I,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 i=t[0],r=t[1],o=t[2],n=t[3];return s[0]=e[0]*i+e[4]*r+e[8]*o+e[12]*n,s[1]=e[1]*i+e[5]*r+e[9]*o+e[13]*n,s[2]=e[2]*i+e[6]*r+e[10]*o+e[14]*n,s[3]=e[3]*i+e[7]*r+e[11]*o+e[15]*n,s},transposeMat4(e,t){const s=e[4],i=e[14],r=e[8],o=e[13],n=e[12],a=e[9];if(!t||e===t){const t=e[1],l=e[2],h=e[3],c=e[6],u=e[7],A=e[11];return e[1]=s,e[2]=r,e[3]=n,e[4]=t,e[6]=a,e[7]=o,e[8]=l,e[9]=c,e[11]=i,e[12]=h,e[13]=u,e[14]=A,e}return t[0]=e[0],t[1]=s,t[2]=r,t[3]=n,t[4]=e[1],t[5]=e[5],t[6]=a,t[7]=o,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=i,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],i=e[2],r=e[5];t[1]=e[3],t[2]=e[6],t[3]=s,t[5]=e[7],t[6]=i,t[7]=r}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],i=e[2],r=e[3],o=e[4],n=e[5],a=e[6],l=e[7],h=e[8],c=e[9],u=e[10],A=e[11],p=e[12],d=e[13],f=e[14],m=e[15];return p*c*a*r-h*d*a*r-p*n*u*r+o*d*u*r+h*n*f*r-o*c*f*r-p*c*i*l+h*d*i*l+p*s*u*l-t*d*u*l-h*s*f*l+t*c*f*l+p*n*i*A-o*d*i*A-p*s*a*A+t*d*a*A+o*s*f*A-t*n*f*A-h*n*i*m+o*c*i*m+h*s*a*m-t*c*a*m-o*s*u*m+t*n*u*m},inverseMat4(e,t){t||(t=e);const s=e[0],i=e[1],r=e[2],o=e[3],n=e[4],a=e[5],l=e[6],h=e[7],c=e[8],u=e[9],A=e[10],p=e[11],d=e[12],f=e[13],m=e[14],y=e[15],E=s*a-i*n,g=s*l-r*n,v=s*h-o*n,I=i*l-r*a,_=i*h-o*a,T=r*h-o*l,P=c*f-u*d,b=c*m-A*d,R=c*y-p*d,D=u*m-A*f,C=u*y-p*f,N=A*y-p*m,O=1/(E*N-g*C+v*D+I*R-_*b+T*P);return t[0]=(a*N-l*C+h*D)*O,t[1]=(-i*N+r*C-o*D)*O,t[2]=(f*T-m*_+y*I)*O,t[3]=(-u*T+A*_-p*I)*O,t[4]=(-n*N+l*R-h*b)*O,t[5]=(s*N-r*R+o*b)*O,t[6]=(-d*T+m*v-y*g)*O,t[7]=(c*T-A*v+p*g)*O,t[8]=(n*C-a*R+h*P)*O,t[9]=(-s*C+i*R-o*P)*O,t[10]=(d*_-f*v+y*E)*O,t[11]=(-c*_+u*v-p*E)*O,t[12]=(-n*D+a*b-l*P)*O,t[13]=(s*D-i*b+r*P)*O,t[14]=(-d*I+f*g-m*E)*O,t[15]=(c*I-u*g+A*E)*O,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 a(3);return(t,s,i,r)=>(e[0]=t,e[1]=s,e[2]=i,A.translationMat4v(e,r))})(),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,i){const r=i[3];i[0]+=r*e,i[1]+=r*t,i[2]+=r*s;const o=i[7];i[4]+=o*e,i[5]+=o*t,i[6]+=o*s;const n=i[11];i[8]+=n*e,i[9]+=n*t,i[10]+=n*s;const a=i[15];return i[12]+=a*e,i[13]+=a*t,i[14]+=a*s,i},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 i=A.normalizeVec4([t[0],t[1],t[2],0],[]),r=Math.sin(e),o=Math.cos(e),n=1-o,a=i[0],l=i[1],h=i[2];let c,u,p,d,f,m;return c=a*l,u=l*h,p=h*a,d=a*r,f=l*r,m=h*r,(s=s||A.mat4())[0]=n*a*a+o,s[1]=n*c+m,s[2]=n*p-f,s[3]=0,s[4]=n*c-m,s[5]=n*l*l+o,s[6]=n*u+d,s[7]=0,s[8]=n*p+f,s[9]=n*u-d,s[10]=n*h*h+o,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,s},rotationMat4c:(e,t,s,i,r)=>A.rotationMat4v(e,[t,s,i],r),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 a(3);return(t,s,i,r)=>(e[0]=t,e[1]=s,e[2]=i,A.scalingMat4v(e,r))})(),scaleMat4c:(e,t,s,i)=>(i[0]*=e,i[4]*=t,i[8]*=s,i[1]*=e,i[5]*=t,i[9]*=s,i[2]*=e,i[6]*=t,i[10]*=s,i[3]*=e,i[7]*=t,i[11]*=s,i),scaleMat4v(e,t){const s=e[0],i=e[1],r=e[2];return t[0]*=s,t[4]*=i,t[8]*=r,t[1]*=s,t[5]*=i,t[9]*=r,t[2]*=s,t[6]*=i,t[10]*=r,t[3]*=s,t[7]*=i,t[11]*=r,t},scalingMat4s:e=>A.scalingMat4c(e,e,e),rotationTranslationMat4(e,t,s=A.mat4()){const i=e[0],r=e[1],o=e[2],n=e[3],a=i+i,l=r+r,h=o+o,c=i*a,u=i*l,p=i*h,d=r*l,f=r*h,m=o*h,y=n*a,E=n*l,g=n*h;return s[0]=1-(d+m),s[1]=u+g,s[2]=p-E,s[3]=0,s[4]=u-g,s[5]=1-(c+m),s[6]=f+y,s[7]=0,s[8]=p+E,s[9]=f-y,s[10]=1-(c+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 i=A.clamp,r=e[0],o=e[4],n=e[8],a=e[1],l=e[5],h=e[9],c=e[2],u=e[6],p=e[10];return"XYZ"===t?(s[1]=Math.asin(i(n,-1,1)),Math.abs(n)<.99999?(s[0]=Math.atan2(-h,p),s[2]=Math.atan2(-o,r)):(s[0]=Math.atan2(u,l),s[2]=0)):"YXZ"===t?(s[0]=Math.asin(-i(h,-1,1)),Math.abs(h)<.99999?(s[1]=Math.atan2(n,p),s[2]=Math.atan2(a,l)):(s[1]=Math.atan2(-c,r),s[2]=0)):"ZXY"===t?(s[0]=Math.asin(i(u,-1,1)),Math.abs(u)<.99999?(s[1]=Math.atan2(-c,p),s[2]=Math.atan2(-o,l)):(s[1]=0,s[2]=Math.atan2(a,r))):"ZYX"===t?(s[1]=Math.asin(-i(c,-1,1)),Math.abs(c)<.99999?(s[0]=Math.atan2(u,p),s[2]=Math.atan2(a,r)):(s[0]=0,s[2]=Math.atan2(-o,l))):"YZX"===t?(s[2]=Math.asin(i(a,-1,1)),Math.abs(a)<.99999?(s[0]=Math.atan2(-h,l),s[1]=Math.atan2(-c,r)):(s[0]=0,s[1]=Math.atan2(n,p))):"XZY"===t&&(s[2]=Math.asin(-i(o,-1,1)),Math.abs(o)<.99999?(s[0]=Math.atan2(u,l),s[1]=Math.atan2(n,r)):(s[0]=Math.atan2(-h,p),s[1]=0)),s},composeMat4:(e,t,s,i=A.mat4())=>(A.quaternionToRotationMat4(t,i),A.scaleMat4v(s,i),A.translateMat4v(e,i),i),decomposeMat4:(()=>{const e=new a(3),t=new a(16);return function(s,i,r,o){e[0]=s[0],e[1]=s[1],e[2]=s[2];let n=A.lenVec3(e);e[0]=s[4],e[1]=s[5],e[2]=s[6];const a=A.lenVec3(e);e[8]=s[8],e[9]=s[9],e[10]=s[10];const l=A.lenVec3(e);A.determinantMat4(s)<0&&(n=-n),i[0]=s[12],i[1]=s[13],i[2]=s[14],t.set(s);const h=1/n,c=1/a,u=1/l;return t[0]*=h,t[1]*=h,t[2]*=h,t[4]*=c,t[5]*=c,t[6]*=c,t[8]*=u,t[9]*=u,t[10]*=u,A.mat4ToQuaternion(t,r),o[0]=n,o[1]=a,o[2]=l,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,i){i||(i=A.mat4());const r=e[0],o=e[1],n=e[2],a=s[0],l=s[1],h=s[2],c=t[0],u=t[1],p=t[2];if(r===c&&o===u&&n===p)return A.identityMat4();let d,f,m,y,E,g,v,I,_,T;return d=r-c,f=o-u,m=n-p,T=1/Math.sqrt(d*d+f*f+m*m),d*=T,f*=T,m*=T,y=l*m-h*f,E=h*d-a*m,g=a*f-l*d,T=Math.sqrt(y*y+E*E+g*g),T?(T=1/T,y*=T,E*=T,g*=T):(y=0,E=0,g=0),v=f*g-m*E,I=m*y-d*g,_=d*E-f*y,T=Math.sqrt(v*v+I*I+_*_),T?(T=1/T,v*=T,I*=T,_*=T):(v=0,I=0,_=0),i[0]=y,i[1]=v,i[2]=d,i[3]=0,i[4]=E,i[5]=I,i[6]=f,i[7]=0,i[8]=g,i[9]=_,i[10]=m,i[11]=0,i[12]=-(y*r+E*o+g*n),i[13]=-(v*r+I*o+_*n),i[14]=-(d*r+f*o+m*n),i[15]=1,i},lookAtMat4c:(e,t,s,i,r,o,n,a,l)=>A.lookAtMat4v([e,t,s],[i,r,o],[n,a,l],[]),orthoMat4c(e,t,s,i,r,o,n){n||(n=A.mat4());const a=t-e,l=i-s,h=o-r;return n[0]=2/a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2/l,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=-2/h,n[11]=0,n[12]=-(e+t)/a,n[13]=-(i+s)/l,n[14]=-(o+r)/h,n[15]=1,n},frustumMat4v(e,t,s){s||(s=A.mat4());const i=[e[0],e[1],e[2],0],r=[t[0],t[1],t[2],0];A.addVec4(r,i,h),A.subVec4(r,i,c);const o=2*i[2],n=c[0],a=c[1],l=c[2];return s[0]=o/n,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=o/a,s[6]=0,s[7]=0,s[8]=h[0]/n,s[9]=h[1]/a,s[10]=-h[2]/l,s[11]=-1,s[12]=0,s[13]=0,s[14]=-o*r[2]/l,s[15]=0,s},frustumMat4(e,t,s,i,r,o,n){n||(n=A.mat4());const a=t-e,l=i-s,h=o-r;return n[0]=2*r/a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2*r/l,n[6]=0,n[7]=0,n[8]=(t+e)/a,n[9]=(i+s)/l,n[10]=-(o+r)/h,n[11]=-1,n[12]=0,n[13]=0,n[14]=-o*r*2/h,n[15]=0,n},perspectiveMat4(e,t,s,i,r){const o=[],n=[];return o[2]=s,n[2]=i,n[1]=o[2]*Math.tan(e/2),o[1]=-n[1],n[0]=n[1]*t,o[0]=-n[0],A.frustumMat4v(o,n,r)},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 i=t[0],r=t[1],o=t[2];return s[0]=e[0]*i+e[4]*r+e[8]*o+e[12],s[1]=e[1]*i+e[5]*r+e[9]*o+e[13],s[2]=e[2]*i+e[6]*r+e[10]*o+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 i=s||[],r=t.length;let o,n,a,l;const h=e[0],c=e[1],u=e[2],A=e[3],p=e[4],d=e[5],f=e[6],m=e[7],y=e[8],E=e[9],g=e[10],v=e[11],I=e[12],_=e[13],T=e[14],P=e[15];let b;for(let e=0;e{const e=new a(16),t=new a(16),s=new a(16);return function(i,r,o,n){return this.transformVec3(this.mulMat4(this.inverseMat4(r,e),this.inverseMat4(o,t),s),i,n)}})(),lerpVec3(e,t,s,i,r,o){const n=o||A.vec3(),a=(e-t)/(s-t);return n[0]=i[0]+a*(r[0]-i[0]),n[1]=i[1]+a*(r[1]-i[1]),n[2]=i[2]+a*(r[2]-i[2]),n},lerpMat4(e,t,s,i,r,o){const n=o||A.mat4(),a=(e-t)/(s-t);return n[0]=i[0]+a*(r[0]-i[0]),n[1]=i[1]+a*(r[1]-i[1]),n[2]=i[2]+a*(r[2]-i[2]),n[3]=i[3]+a*(r[3]-i[3]),n[4]=i[4]+a*(r[4]-i[4]),n[5]=i[5]+a*(r[5]-i[5]),n[6]=i[6]+a*(r[6]-i[6]),n[7]=i[7]+a*(r[7]-i[7]),n[8]=i[8]+a*(r[8]-i[8]),n[9]=i[9]+a*(r[9]-i[9]),n[10]=i[10]+a*(r[10]-i[10]),n[11]=i[11]+a*(r[11]-i[11]),n[12]=i[12]+a*(r[12]-i[12]),n[13]=i[13]+a*(r[13]-i[13]),n[14]=i[14]+a*(r[14]-i[14]),n[15]=i[15]+a*(r[15]-i[15]),n},flatten(e){const t=[];let s,i,r,o,n;for(s=0,i=e.length;s(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e),eulerToQuaternion(e,t,s=A.vec4()){const i=e[0]*A.DEGTORAD/2,r=e[1]*A.DEGTORAD/2,o=e[2]*A.DEGTORAD/2,n=Math.cos(i),a=Math.cos(r),l=Math.cos(o),h=Math.sin(i),c=Math.sin(r),u=Math.sin(o);return"XYZ"===t?(s[0]=h*a*l+n*c*u,s[1]=n*c*l-h*a*u,s[2]=n*a*u+h*c*l,s[3]=n*a*l-h*c*u):"YXZ"===t?(s[0]=h*a*l+n*c*u,s[1]=n*c*l-h*a*u,s[2]=n*a*u-h*c*l,s[3]=n*a*l+h*c*u):"ZXY"===t?(s[0]=h*a*l-n*c*u,s[1]=n*c*l+h*a*u,s[2]=n*a*u+h*c*l,s[3]=n*a*l-h*c*u):"ZYX"===t?(s[0]=h*a*l-n*c*u,s[1]=n*c*l+h*a*u,s[2]=n*a*u-h*c*l,s[3]=n*a*l+h*c*u):"YZX"===t?(s[0]=h*a*l+n*c*u,s[1]=n*c*l+h*a*u,s[2]=n*a*u-h*c*l,s[3]=n*a*l-h*c*u):"XZY"===t&&(s[0]=h*a*l-n*c*u,s[1]=n*c*l-h*a*u,s[2]=n*a*u+h*c*l,s[3]=n*a*l+h*c*u),s},mat4ToQuaternion(e,t=A.vec4()){const s=e[0],i=e[4],r=e[8],o=e[1],n=e[5],a=e[9],l=e[2],h=e[6],c=e[10];let u;const p=s+n+c;return p>0?(u=.5/Math.sqrt(p+1),t[3]=.25/u,t[0]=(h-a)*u,t[1]=(r-l)*u,t[2]=(o-i)*u):s>n&&s>c?(u=2*Math.sqrt(1+s-n-c),t[3]=(h-a)/u,t[0]=.25*u,t[1]=(i+o)/u,t[2]=(r+l)/u):n>c?(u=2*Math.sqrt(1+n-s-c),t[3]=(r-l)/u,t[0]=(i+o)/u,t[1]=.25*u,t[2]=(a+h)/u):(u=2*Math.sqrt(1+c-s-n),t[3]=(o-i)/u,t[0]=(r+l)/u,t[1]=(a+h)/u,t[2]=.25*u),t},vec3PairToQuaternion(e,t,s=A.vec4()){const i=Math.sqrt(A.dotVec3(e,e)*A.dotVec3(t,t));let r=i+A.dotVec3(e,t);return r<1e-8*i?(r=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]=r,A.normalizeQuaternion(s)},angleAxisToQuaternion(e,t=A.vec4()){const s=e[3]/2,i=Math.sin(s);return t[0]=i*e[0],t[1]=i*e[1],t[2]=i*e[2],t[3]=Math.cos(s),t},quaternionToEuler:(()=>{const e=new a(16);return(t,s,i)=>(i=i||A.vec3(),A.quaternionToRotationMat4(t,e),A.mat4ToEuler(e,s,i),i)})(),mulQuaternions(e,t,s=A.vec4()){const i=e[0],r=e[1],o=e[2],n=e[3],a=t[0],l=t[1],h=t[2],c=t[3];return s[0]=n*a+i*c+r*h-o*l,s[1]=n*l+r*c+o*a-i*h,s[2]=n*h+o*c+i*l-r*a,s[3]=n*c-i*a-r*l-o*h,s},vec3ApplyQuaternion(e,t,s=A.vec3()){const i=t[0],r=t[1],o=t[2],n=e[0],a=e[1],l=e[2],h=e[3],c=h*i+a*o-l*r,u=h*r+l*i-n*o,p=h*o+n*r-a*i,d=-n*i-a*r-l*o;return s[0]=c*h+d*-n+u*-l-p*-a,s[1]=u*h+d*-a+p*-n-c*-l,s[2]=p*h+d*-l+c*-a-u*-n,s},quaternionToMat4(e,t){t=A.identityMat4(t);const s=e[0],i=e[1],r=e[2],o=e[3],n=2*s,a=2*i,l=2*r,h=n*o,c=a*o,u=l*o,p=n*s,d=a*s,f=l*s,m=a*i,y=l*i,E=l*r;return t[0]=1-(m+E),t[1]=d+u,t[2]=f-c,t[4]=d-u,t[5]=1-(p+E),t[6]=y+h,t[8]=f+c,t[9]=y-h,t[10]=1-(p+m),t},quaternionToRotationMat4(e,t){const s=e[0],i=e[1],r=e[2],o=e[3],n=s+s,a=i+i,l=r+r,h=s*n,c=s*a,u=s*l,A=i*a,p=i*l,d=r*l,f=o*n,m=o*a,y=o*l;return t[0]=1-(A+d),t[4]=c-y,t[8]=u+m,t[1]=c+y,t[5]=1-(h+d),t[9]=p-f,t[2]=u-m,t[6]=p+f,t[10]=1-(h+A),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,u))[3],i=2*Math.acos(s),r=Math.sqrt(1-s*s);return r<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r),t[3]=i,t},AABB3:e=>new a(e||6),AABB2:e=>new a(e||4),OBB3:e=>new a(e||32),OBB2:e=>new a(e||16),Sphere3:(e,t,s,i)=>new a([e,t,s,i]),transformOBB3(e,t,s=t){let i;const r=t.length;let o,n,a;const l=e[0],h=e[1],c=e[2],u=e[3],A=e[4],p=e[5],d=e[6],f=e[7],m=e[8],y=e[9],E=e[10],g=e[11],v=e[12],I=e[13],_=e[14],T=e[15];for(i=0;i{const e=new a(3),t=new a(3),s=new a(3);return i=>(e[0]=i[0],e[1]=i[1],e[2]=i[2],t[0]=i[3],t[1]=i[4],t[2]=i[5],A.subVec3(t,e,s),Math.abs(A.lenVec3(s)))})(),getAABB3DiagPoint:(()=>{const e=new a(3),t=new a(3),s=new a(3);return(i,r)=>{e[0]=i[0],e[1]=i[1],e[2]=i[2],t[0]=i[3],t[1]=i[4],t[2]=i[5];const o=A.subVec3(t,e,s),n=r[0]-i[0],a=i[3]-r[0],l=r[1]-i[1],h=i[4]-r[1],c=r[2]-i[2],u=i[5]-r[2];return o[0]+=n>a?n:a,o[1]+=l>h?l:h,o[2]+=c>u?c:u,Math.abs(A.lenVec3(o))}})(),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 a(3);return(t,s,i)=>{s=s||A.AABB3();let r,o,n,a=A.MAX_DOUBLE,l=A.MAX_DOUBLE,h=A.MAX_DOUBLE,c=A.MIN_DOUBLE,u=A.MIN_DOUBLE,p=A.MIN_DOUBLE;for(let s=0,d=t.length;sc&&(c=r),o>u&&(u=o),n>p&&(p=n);return s[0]=a,s[1]=l,s[2]=h,s[3]=c,s[4]=u,s[5]=p,s}})(),OBB3ToAABB3(e,t=A.AABB3()){let s,i,r,o=A.MAX_DOUBLE,n=A.MAX_DOUBLE,a=A.MAX_DOUBLE,l=A.MIN_DOUBLE,h=A.MIN_DOUBLE,c=A.MIN_DOUBLE;for(let t=0,u=e.length;tl&&(l=s),i>h&&(h=i),r>c&&(c=r);return t[0]=o,t[1]=n,t[2]=a,t[3]=l,t[4]=h,t[5]=c,t},points3ToAABB3(e,t=A.AABB3()){let s,i,r,o=A.MAX_DOUBLE,n=A.MAX_DOUBLE,a=A.MAX_DOUBLE,l=A.MIN_DOUBLE,h=A.MIN_DOUBLE,c=A.MIN_DOUBLE;for(let t=0,u=e.length;tl&&(l=s),i>h&&(h=i),r>c&&(c=r);return t[0]=o,t[1]=n,t[2]=a,t[3]=l,t[4]=h,t[5]=c,t},points3ToSphere3:(()=>{const e=new a(3);return(t,s)=>{s=s||A.vec4();let i,r=0,o=0,n=0;const a=t.length;for(i=0;ih&&(h=l);return s[3]=h,s}})(),positions3ToSphere3:(()=>{const e=new a(3),t=new a(3);return(s,i)=>{i=i||A.vec4();let r,o=0,n=0,a=0;const l=s.length;let h=0;for(r=0;rh&&(h=u);return i[3]=h,i}})(),OBB3ToSphere3:(()=>{const e=new a(3),t=new a(3);return(s,i)=>{i=i||A.vec4();let r,o=0,n=0,a=0;const l=s.length,h=l/4;for(r=0;ru&&(u=c);return i[3]=u,i}})(),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,i=0,r=0;for(var o=0,n=e.length;o(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]>i&&(e[1]=i),e[2]>r&&(e[2]=r),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?(i=e[0]*s[0],r=e[0]*s[3]):(i=e[0]*s[3],r=e[0]*s[0]),e[1]>0?(i+=e[1]*s[1],r+=e[1]*s[4]):(i+=e[1]*s[4],r+=e[1]*s[1]),e[2]>0?(i+=e[2]*s[2],r+=e[2]*s[5]):(i+=e[2]*s[5],r+=e[2]*s[2]);if(i<=-t&&r<=-t)return-1;return i>=-t&&r>=-t?1:0},OBB3ToAABB2(e,t=A.AABB2()){let s,i,r,o,n=A.MAX_DOUBLE,a=A.MAX_DOUBLE,l=A.MIN_DOUBLE,h=A.MIN_DOUBLE;for(let t=0,c=e.length;tl&&(l=s),i>h&&(h=i);return t[0]=n,t[1]=a,t[2]=l,t[3]=h,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*(i-s),tangentQuadraticBezier3:(e,t,s,i,r)=>-3*t*(1-e)*(1-e)+3*s*(1-e)*(1-e)-6*e*s*(1-e)+6*e*i*(1-e)-3*e*e*i+3*e*e*r,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,i,r){const o=.5*(s-e),n=.5*(i-t),a=r*r;return(2*t-2*s+o+n)*(r*a)+(-3*t+3*s-2*o-n)*a+o*r+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,i){return this.b2p0(e,t)+this.b2p1(e,s)+this.b2p2(e,i)},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,i,r){return this.b3p0(e,t)+this.b3p1(e,s)+this.b3p2(e,i)+this.b3p3(e,r)},triangleNormal(e,t,s,i=A.vec3()){const r=t[0]-e[0],o=t[1]-e[1],n=t[2]-e[2],a=s[0]-e[0],l=s[1]-e[1],h=s[2]-e[2],c=o*h-n*l,u=n*a-r*h,p=r*l-o*a,d=Math.sqrt(c*c+u*u+p*p);return 0===d?(i[0]=0,i[1]=0,i[2]=0):(i[0]=c/d,i[1]=u/d,i[2]=p/d),i},rayTriangleIntersect:(()=>{const e=new a(3),t=new a(3),s=new a(3),i=new a(3),r=new a(3);return(o,n,a,l,h,c)=>{c=c||A.vec3();const u=A.subVec3(l,a,e),p=A.subVec3(h,a,t),d=A.cross3Vec3(n,p,s),f=A.dotVec3(u,d);if(f<1e-6)return null;const m=A.subVec3(o,a,i),y=A.dotVec3(m,d);if(y<0||y>f)return null;const E=A.cross3Vec3(m,u,r),g=A.dotVec3(n,E);if(g<0||y+g>f)return null;const v=A.dotVec3(p,E)/f;return c[0]=o[0]+v*n[0],c[1]=o[1]+v*n[1],c[2]=o[2]+v*n[2],c}})(),rayPlaneIntersect:(()=>{const e=new a(3),t=new a(3),s=new a(3),i=new a(3);return(r,o,n,a,l,h)=>{h=h||A.vec3(),o=A.normalizeVec3(o,e);const c=A.subVec3(a,n,t),u=A.subVec3(l,n,s),p=A.cross3Vec3(c,u,i);A.normalizeVec3(p,p);const d=-A.dotVec3(n,p),f=-(A.dotVec3(r,p)+d)/A.dotVec3(o,p);return h[0]=r[0]+f*o[0],h[1]=r[1]+f*o[1],h[2]=r[2]+f*o[2],h}})(),cartesianToBarycentric:(()=>{const e=new a(3),t=new a(3),s=new a(3);return(i,r,o,n,a)=>{const l=A.subVec3(n,r,e),h=A.subVec3(o,r,t),c=A.subVec3(i,r,s),u=A.dotVec3(l,l),p=A.dotVec3(l,h),d=A.dotVec3(l,c),f=A.dotVec3(h,h),m=A.dotVec3(h,c),y=u*f-p*p;if(0===y)return null;const E=1/y,g=(f*d-p*m)*E,v=(u*m-p*d)*E;return a[0]=1-g-v,a[1]=v,a[2]=g,a}})(),barycentricInsideTriangle(e){const t=e[1],s=e[2];return s>=0&&t>=0&&s+t<1},barycentricToCartesian(e,t,s,i,r=A.vec3()){const o=e[0],n=e[1],a=e[2];return r[0]=t[0]*o+s[0]*n+i[0]*a,r[1]=t[1]*o+s[1]*n+i[1]*a,r[2]=t[2]*o+s[2]*n+i[2]*a,r},mergeVertices(e,t,s,i){const r={},o=[],n=[],a=t?[]:null,l=s?[]:null,h=[];let c,u,A,p;const d=1e4;let f,m,y=0;for(f=0,m=e.length;f{const e=new a(3),t=new a(3),s=new a(3),i=new a(3),r=new a(3),o=new a(3);return(n,a,l)=>{let h,c;const u=new Array(n.length/3);let p,d,f,m,y,E,g;for(h=0,c=a.length;h{const e=new a(3),t=new a(3),s=new a(3),i=new a(3),r=new a(3),o=new a(3),n=new a(3);return(a,l,h)=>{const c=new Float32Array(a.length);for(let u=0;u>24&255,c=A>>16&255,h=A>>8&255,l=255&A,a=t[s],n=3*a,r[p++]=e[n],r[p++]=e[n+1],r[p++]=e[n+2],o[d++]=l,o[d++]=h,o[d++]=c,o[d++]=u,a=t[s+1],n=3*a,r[p++]=e[n],r[p++]=e[n+1],r[p++]=e[n+2],o[d++]=l,o[d++]=h,o[d++]=c,o[d++]=u,a=t[s+2],n=3*a,r[p++]=e[n],r[p++]=e[n+1],r[p++]=e[n+2],o[d++]=l,o[d++]=h,o[d++]=c,o[d++]=u,A++;return{positions:r,colors:o}},faceToVertexNormals(e,t,s={}){const i=s.smoothNormalsAngleThreshold||20,r={},o=[],n={};let a,l,h,c,u;const p=1e4;let d,f,m,y,E,g;for(f=0,y=e.length;f{const e=new a(4),t=new a(4);return(s,i,r,o,n)=>{e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=1,A.transformVec4(s,e,t),o[0]=t[0],o[1]=t[1],o[2]=t[2],e[0]=r[0],e[1]=r[1],e[2]=r[2],A.transformVec3(s,e,t),A.normalizeVec3(t),n[0]=t[0],n[1]=t[1],n[2]=t[2]}})(),canvasPosToWorldRay:(()=>{const e=new a(16),t=new a(16),s=new a(4),i=new a(4),r=new a(4),o=new a(4);return(n,a,l,h,c,u)=>{const p=A.mulMat4(l,a,e),d=A.inverseMat4(p,t),f=n.width,m=n.height,y=(h[0]-f/2)/(f/2),E=-(h[1]-m/2)/(m/2);s[0]=y,s[1]=E,s[2]=-1,s[3]=1,A.transformVec4(d,s,i),A.mulVec4Scalar(i,1/i[3]),r[0]=y,r[1]=E,r[2]=1,r[3]=1,A.transformVec4(d,r,o),A.mulVec4Scalar(o,1/o[3]),c[0]=o[0],c[1]=o[1],c[2]=o[2],A.subVec3(o,i,u),A.normalizeVec3(u)}})(),canvasPosToLocalRay:(()=>{const e=new a(3),t=new a(3);return(s,i,r,o,n,a,l)=>{A.canvasPosToWorldRay(s,i,r,n,e,t),A.worldRayToLocalRay(o,e,t,a,l)}})(),worldRayToLocalRay:(()=>{const e=new a(16),t=new a(4),s=new a(4);return(i,r,o,n,a)=>{const l=A.inverseMat4(i,e);t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=1,A.transformVec4(l,t,s),n[0]=s[0],n[1]=s[1],n[2]=s[2],A.transformVec3(l,o,a)}})(),buildKDTree:(()=>{const e=new Float32Array;function t(s,i,r,o){const n=new a(6),l={triangles:null,left:null,right:null,leaf:!1,splitDim:0,aabb:n};let h,c;for(n[0]=n[1]=n[2]=Number.POSITIVE_INFINITY,n[3]=n[4]=n[5]=Number.NEGATIVE_INFINITY,h=0,c=s.length;hn[3]&&(n[3]=r[t]),r[t+1]n[4]&&(n[4]=r[t+1]),r[t+2]n[5]&&(n[5]=r[t+2])}}if(s.length<20||o>10)return l.triangles=s,l.leaf=!0,l;e[0]=n[3]-n[0],e[1]=n[4]-n[1],e[2]=n[5]-n[2];let A=0;e[1]>e[A]&&(A=1),e[2]>e[A]&&(A=2),l.splitDim=A;const p=(n[A]+n[A+3])/2,d=new Array(s.length);let f=0;const m=new Array(s.length);let y=0;for(h=0,c=s.length;h{const i=e.length/3,r=new Array(i);for(let e=0;e=0?1:-1),i=(1-Math.abs(s))*(i>=0?1:-1));const o=Math.sqrt(s*s+i*i+r*r);return t[0]=s/o,t[1]=i/o,t[2]=r/o,t},octDecodeVec2s(e,t){for(let s=0,i=0,r=e.length;s=0?1:-1),o=(1-Math.abs(r))*(o>=0?1:-1));const a=Math.sqrt(r*r+o*o+n*n);t[i+0]=r/a,t[i+1]=o/a,t[i+2]=n/a,i+=3}return t}};A.buildEdgeIndices=function(){const e=[],t=[],s=[],i=[],r=[];let o=0;const n=new Uint16Array(3),a=new Uint16Array(3),l=new Uint16Array(3),h=A.vec3(),c=A.vec3(),u=A.vec3(),p=A.vec3(),d=A.vec3(),f=A.vec3(),m=A.vec3();return function(y,E,g,v){!function(r,o){const n={};let a,l,h,c;const u=Math.pow(10,4);let A,p,d=0;for(A=0,p=r.length;A_)||(w=s[N.index1],M=s[N.index2],(!B&&w>65535||M>65535)&&(B=!0),I.push(w),I.push(M));return B?new Uint32Array(I):new Uint16Array(I)}}(),A.planeClipsPositions3=function(e,t,s,i=3){for(let r=0,o=s.length;r{};t=t||i,s=s||i;var r=new XMLHttpRequest;r.overrideMimeType("application/json"),r.open("GET",e,!0),r.addEventListener("load",(function(e){var i=e.target.response;if(200===this.status){var r;try{r=JSON.parse(i)}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}t(r)}else if(0===this.status){console.warn("loadFile: HTTP Status 0 received.");try{t(JSON.parse(i))}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}}else s(e)}),!1),r.addEventListener("error",(function(e){s(e)}),!1),r.send(null)},loadArraybuffer:function(e,t,s){var i=e=>{};t=t||i,s=s||i;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),s=new Uint8Array(e);for(var n=0;n{t(e)}))}catch(e){R.scheduleTask((()=>{s(e)}))}}else{const i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onreadystatechange=function(){4===i.readyState&&(200===i.status?t(i.response):s("loadArrayBuffer error : "+i.response))},i.send(null)}},queryString:m,isArray:function(e){return e&&!e.propertyIsEnumerable("length")&&"object"==typeof e&&"number"==typeof e.length},isString:function(e){return"string"==typeof e||e instanceof String},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},isID:function(e){return y.isString(e)||y.isNumeric(e)},isSameComponent:function(e,t){return!(!e||!t)&&(y.isNumeric(e)||y.isString(e)?`${e}`:e.id)===(y.isNumeric(t)||y.isString(t)?`${t}`:t.id)},isFunction:function(e){return"function"==typeof e},isObject:function(e){const t={}.constructor;return!!e&&e.constructor===t},copy:function(e){return y.apply(e,{})},apply:function(e,t){for(const s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);return t},apply2:function(e,t){for(const s in e)e.hasOwnProperty(s)&&void 0!==e[s]&&null!==e[s]&&(t[s]=e[s]);return t},applyIf:function(e,t){for(const s in e)e.hasOwnProperty(s)&&(void 0!==t[s]&&null!==t[s]||(t[s]=e[s]));return t},isEmptyObject:function(e){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},inQuotes:function(e){return y.isNumeric(e)?`${e}`:`'${e}'`},concat:function(e,t){const s=new e.constructor(e.length+t.length);return s.set(e),s.set(t,e.length),s},flattenParentChildHierarchy:function(e){var t=[];return function e(s){s.id=s.uuid,delete s.oid,t.push(s);var i=s.children;if(i)for(var r=0,o=i.length;r=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}},I={sceneId:null,time:null,startTime:null,prevTime:null,deltaTime:null},_=[];let T,P=0,b=0;const R=new function(){this.version="1.0.0",this.scenes={},this._superTypes={},this._addScene=function(e){if(e.id){if(R.scenes[e.id])return void console.error(`[ERROR] Scene ${y.inQuotes(e.id)} already exists`)}else e.id=g.addItem({});R.scenes[e.id]=e;const t=e.ticksPerOcclusionTest,s=e.ticksPerRender;E[e.id]={ticksPerOcclusionTest:t,ticksPerRender:s,renderCountdown:s},p.components.scenes++,e.once("destroyed",(()=>{g.removeItem(e.id),delete R.scenes[e.id],delete E[e.id],p.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=null){v.push(e),v.push(t)},this.runTasks=function(e=-1){let t,s,i=(new Date).getTime(),r=0;for(;v.length>0&&(e<0||i0&&T>0){var t=1e3/T;b+=t,_.push(t),_.length>=30&&(b-=_.shift()),p.frame.fps=Math.round(b/_.length)}for(let e in R.scenes)R.scenes[e].compile();N(e),P=e};new class{worker=null;constructor(e,t){const s=new Blob([`setInterval(() => postMessage(0), ${t});`]),i=URL.createObjectURL(s);this.worker=new Worker(i),this.worker.onmessage=e}stop(){this.worker.terminate()}}(D,100);const C=function(){let e=Date.now();if(T=e-P,P>0&&T>0){var t=1e3/T;b+=t,_.push(t),_.length>=30&&(b-=_.shift()),p.frame.fps=Math.round(b/_.length)}N(e),function(e){for(var t in I.time=e,R.scenes)if(R.scenes.hasOwnProperty(t)){var s=R.scenes[t];I.sceneId=t,I.startTime=s.startTime,I.deltaTime=null!=I.prevTime?I.time-I.prevTime:0,s.fire("tick",I,!0)}I.prevTime=e}(e),function(){const e=R.scenes,t=!1;let s,i,r,o,n;for(n in e)e.hasOwnProperty(n)&&(s=e[n],i=E[n],i||(i=E[n]={}),r=s.ticksPerOcclusionTest,i.ticksPerOcclusionTest!==r&&(i.ticksPerOcclusionTest=r,i.renderCountdown=r),--s.occlusionTestCountdown<=0&&(s.doOcclusionTest(),s.occlusionTestCountdown=r),o=s.ticksPerRender,i.ticksPerRender!==o&&(i.ticksPerRender=o,i.renderCountdown=o),0==--i.renderCountdown&&(s.render(t),i.renderCountdown=o))}(),void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(D):requestAnimationFrame(C)};function N(e){const t=R.runTasks(e+10),s=R.getNumTasks();p.frame.tasksRun=t,p.frame.tasksScheduled=s,p.frame.tasksBudget=10}C();class O{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 O))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 i=this._eventSubs[e];let r;if(i)for(const s in i)i.hasOwnProperty(s)&&(r=i[s],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--)}on(t,s,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let r=this._eventSubs[t];r?this._eventSubsNum[t]++:(r={},this._eventSubs[t]=r,this._eventSubsNum[t]=1);const o=this._subIdMap.addItem();r[o]={callback:s,scope:i||this},this._subIdEvents[o]=t;const n=this._events[t];return void 0!==n&&s.call(i||this,n),o}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 i=this,r=this.on(e,(function(e){i.off(r),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+" "+y.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 i=e.sceneDefault,r=e.sceneSingleton,o=e.type,n=e.on,a=!1!==e.recompiles;if(s&&(y.isNumeric(s)||y.isString(s))){const e=s;if(s=this.scene.components[e],!s)return void this.error("Component not found: "+y.inQuotes(e))}if(!s)if(!0===r){const e=this.scene.types[o];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===i&&(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+" "+y.inQuotes(s.id));if(o&&!s.isType(o))return void this.error("Expected a "+o+" type or subtype: "+s.type+" "+y.inQuotes(s.id))}this._attachments||(this._attachments={});const l=this._attached[t];let h,c,u;if(l){if(s&&l.id===s.id)return;const e=this._attachments[l.id];for(h=e.subs,c=0,u=h.length;c{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())}scheduleTask(e){R.scheduleTask(e,null)}_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,i,r,o;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,i=t.subs,r=0,o=i.length;r=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}class B{constructor(){this.planes=[new M,new M,new M,new M,new M,new M]}}function F(e,t,s){const i=A.mulMat4(s,t,w),r=i[0],o=i[1],n=i[2],a=i[3],l=i[4],h=i[5],c=i[6],u=i[7],p=i[8],d=i[9],f=i[10],m=i[11],y=i[12],E=i[13],g=i[14],v=i[15];e.planes[0].set(a-r,u-l,m-p,v-y),e.planes[1].set(a+r,u+l,m+p,v+y),e.planes[2].set(a-o,u-h,m-d,v-E),e.planes[3].set(a+o,u+h,m+d,v+E),e.planes[4].set(a-n,u-c,m-f,v-g),e.planes[5].set(a+n,u+c,m+f,v+g)}function L(e,t){let s=B.INSIDE;const i=x,r=S;i[0]=t[0],i[1]=t[1],i[2]=t[2],r[0]=t[3],r[1]=t[4],r[2]=t[5];const o=[i,r];for(let t=0;t<6;++t){const i=e.planes[t];if(i.normal[0]*o[i.testVertex[0]][0]+i.normal[1]*o[i.testVertex[1]][1]+i.normal[2]*o[i.testVertex[2]][2]+i.offset<0)return B.OUTSIDE;i.normal[0]*o[1-i.testVertex[0]][0]+i.normal[1]*o[1-i.testVertex[1]][1]+i.normal[2]*o[1-i.testVertex[2]][2]+i.offset<0&&(s=B.INTERSECT)}return s}B.INSIDE=0,B.INTERSECT=1,B.OUTSIDE=2;class U extends O{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 B,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!==U.PICK_MODE_INSIDE&&e!==U.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===U.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,i=B.INTERSECT)=>{if(i===B.INTERSECT&&(i=L(this._marqueeFrustum,s.aabb)),i!==B.OUTSIDE){if(s.entities){const t=s.entities;for(let s=0,i=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,i=e.clientLeft,r=e.clientTop,o=2/t,n=2/s,a=e.clientHeight/e.clientWidth,l=(this._canvasMarquee[0]-i)*o-1,h=(this._canvasMarquee[2]-i)*o-1,c=-(this._canvasMarquee[3]-r)*n+1,u=-(this._canvasMarquee[1]-r)*n+1,p=this.viewer.scene.camera.frustum.near*(17*a);A.frustumMat4(l,h,c*a,u*a,p,1e4,this._marqueeFrustumProjMat),F(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)}}U.PICK_MODE_INTERSECTS=0,U.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)}scheduleTask(e){R.scheduleTask(e,null)}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==s&&(this._events[e]=t||!0);const i=this._eventSubs[e];let r;if(i)for(const s in i)i.hasOwnProperty(s)&&(r=i[s],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--)}on(t,s,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let r=this._eventSubs[t];r?this._eventSubsNum[t]++:(r={},this._eventSubs[t]=r,this._eventSubsNum[t]=1);const o=this._subIdMap.addItem();r[o]={callback:s,scope:i||this},this._subIdEvents[o]=t;const n=this._events[t];return void 0!==n&&s.call(i||this,n),o}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 i=this,r=this.on(e,(function(e){i.off(r),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 G=A.vec3(),k=function(){const e=new Float64Array(16),t=new Float64Array(4),s=new Float64Array(4);return function(i,r,o){return o=o||e,t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=1,A.transformVec4(i,t,s),A.setMat4Translation(i,s,o),o.slice()}}();function V(e,t,s){const i=Float32Array.from([e[0]])[0],r=e[0]-i,o=Float32Array.from([e[1]])[0],n=e[1]-o,a=Float32Array.from([e[2]])[0],l=e[2]-a;t[0]=i,t[1]=o,t[2]=a,s[0]=r,s[1]=n,s[2]=l}function j(e,t,s,i=1e3){const r=A.getPositionsCenter(e,G),o=Math.round(r[0]/i)*i,n=Math.round(r[1]/i)*i,a=Math.round(r[2]/i)*i;s[0]=o,s[1]=n,s[2]=a;const l=0!==s[0]||0!==s[1]||0!==s[2];if(l)for(let s=0,i=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 i=255;if(t){if(e<0?e=0:e>1&&(e=1),i=Math.floor(255*e),s===i)return}else if(i=255,s===i)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){ie.set(this._viewPos),ie[3]=1,A.transformPoint4(this.scene.camera.projMatrix,ie,re);const e=this.scene.canvas.boundary;this._canvasPos[0]=Math.floor((1+re[0]/re[3])*e[2]/2),this._canvasPos[1]=Math.floor((1-re[1]/re[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 se?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]),V(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 ne{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,i=s.style;i.border="solid "+this._thickness+"px "+this._color,i.position="absolute",i["z-index"]=void 0===t.zIndex?"2000001":t.zIndex,i.width="0px",i.height="0px",i.visibility="visible",i.top="0px",i.left="0px",i["-webkit-transform-origin"]="0 0",i["-moz-transform-origin"]="0 0",i["-ms-transform-origin"]="0 0",i["-o-transform-origin"]="0 0",i["transform-origin"]="0 0",i["-webkit-transform"]="rotate(0deg)",i["-moz-transform"]="rotate(0deg)",i["-ms-transform"]="rotate(0deg)",i["-o-transform"]="rotate(0deg)",i.transform="rotate(0deg)",i.opacity=1,i["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var r=this._wireClickable,o=r.style;o.border="solid "+this._thicknessClickable+"px "+this._color,o.position="absolute",o["z-index"]=void 0===t.zIndex?"2000002":t.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",t.onContextMenu,e.appendChild(r),t.onMouseOver&&r.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&r.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&r.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&r.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&r.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&r.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&r.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 i=this._wireClickable.style;i.width=Math.round(e)+"px",i.left=Math.round(this._x1)+"px",i.top=Math.round(this._y1)+"px",i["-webkit-transform"]="rotate("+t+"deg)",i["-moz-transform"]="rotate("+t+"deg)",i["-ms-transform"]="rotate("+t+"deg)",i["-o-transform"]="rotate("+t+"deg)",i.transform="rotate("+t+"deg)"}setStartAndEnd(e,t,s,i){this._x1=e,this._y1=t,this._x2=s,this._y2=i,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 ae{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,i=s.style;i["border-radius"]="25px",i.border="solid 2px white",i.background="lightgreen",i.position="absolute",i["z-index"]=void 0===t.zIndex?"40000005":t.zIndex,i.width="8px",i.height="8px",i.visibility=!1!==t.visible?"visible":"hidden",i.top="0px",i.left="0px",i["box-shadow"]="0 2px 5px 0 #182A3D;",i.opacity=1,i["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var r=this._dotClickable,o=r.style;o["border-radius"]="35px",o.border="solid 10px white",o.position="absolute",o["z-index"]=void 0===t.zIndex?"40000007":t.zIndex+1,o.width="8px",o.height="8px",o.visibility="visible",o.top="0px",o.left="0px",o.opacity=0,o["pointer-events"]="none",t.onContextMenu,e.appendChild(r),r.addEventListener("click",(t=>{e.dispatchEvent(new MouseEvent("mouseover",t))})),t.onMouseOver&&r.addEventListener("mouseover",(s=>{t.onMouseOver(s,this),e.dispatchEvent(new MouseEvent("mouseover",s))})),t.onMouseLeave&&r.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&r.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&r.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&r.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&r.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&r.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 i=this._dotClickable.style;i.left=Math.round(e)-9+"px",i.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,i=s.style;i["border-radius"]="5px",i.color="white",i.padding="4px",i.border="solid 1px",i.background="lightgreen",i.position="absolute",i["z-index"]=void 0===t.zIndex?"5000005":t.zIndex,i.width="auto",i.height="auto",i.visibility="visible",i.top="0px",i.left="0px",i["pointer-events"]="all",i.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,i){var r=e+.5*(s-e),o=t+.5*(i-t),n=this._label.style;n.left=Math.round(r)-20+"px",n.top=Math.round(o)-12+"px"}setPosBetweenWires(e,t,s,i,r,o){var n=(e+s+r)/3,a=(t+i+o)/3,l=this._label.style;l.left=Math.round(n)-20+"px",l.top=Math.round(a)-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 he=A.vec3(),ce=A.vec3();class ue extends O{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 oe(s,t.origin),this._cornerMarker=new oe(s,t.corner),this._targetMarker=new oe(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 i=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,r=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,o=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,n=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))},a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},l=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},h=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))};this._originDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._cornerDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._targetDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._originWire=new ne(this._container,{color:this._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._targetWire=new ne(this._container,{color:this._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._angleLabel=new le(this._container,{fillColor:this._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),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],m=this._targetMarker.viewPos[2];if(d>p||f>p||m>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,i=e.canvas.canvas.getBoundingClientRect();const y=this._container.getBoundingClientRect();for(var r=i.top-y.top,o=i.left-y.left,n=e.canvas.boundary,a=n[2],l=n[3],h=0,c=0,u=t.length;c{e.snappedToVertex||e.snappedToEdge?(i&&(i.visible=!0,i.canvasPos=e.canvasPos,i.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,i.snapped=!0),this.markerDiv.style.background="greenyellow",this.markerDiv.style.border="2px solid green"):(i&&(i.visible=!0,i.canvasPos=e.canvasPos,i.snappedCanvasPos=e.canvasPos,i.snapped=!1),this.markerDiv.style.background="pink",this.markerDiv.style.border="2px solid red");const s=e.snappedCanvasPos||e.canvasPos;switch(r=!0,o=e.entity,l.set(e.worldPos),h.set(s),this._mouseState){case 0:const i=t.getBoundingClientRect(),r=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop,n=i.left+r,a=i.top+o;this.markerDiv.style.left=n+s[0]-5+"px",this.markerDiv.style.top=a+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.left="-10000px",this.markerDiv.style.top="-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.left="-10000px",this.markerDiv.style.top="-10000px",t.style.cursor="pointer"}})),t.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(n=e.clientX,a=e.clientY)}),t.addEventListener("mouseup",this._onMouseUp=e=>{if(1===e.which&&!(e.clientX>n+20||e.clientXa+20||e.clientY{if(r=!1,i&&(i.visible=!0,i.pointerPos=e.canvasPos,i.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,i.snapped=!1),this.markerDiv.style.left="-100px",this.markerDiv.style.top="-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 de 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,i=e.target,r=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:i.entity,worldPos:i.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[r.id]=r,r.on("destroyed",(()=>{delete this._measurements[r.id]})),r.clickable=!0,this.fire("measurementCreated",r),r}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._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 ye extends O{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 i=!0;new ResizeObserver((e=>{for(const t of e)t.contentBoxSize&&(i=!0)})).observe(this.canvas),this._tick=this.scene.on("tick",(()=>{i&&(i=!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 fe(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"),i=s.style;i.height="100%",i.width="100%",i.padding="0",i.margin="0",i.background="rgba(0,0,0,0);",i.float="left",i.left="0",i.top="0",i.position="absolute",i.opacity="1.0",i["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 Ie{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 _e{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"),i=[];for(let e=0;e0&&"/"===s.charAt(i+1)&&(s=s.substring(0,i)),t.push(s);return t.join("\n")}function De(e){console.error(e.join("\n"))}class Ce{constructor(e,t){this.id=be.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 _e(e,e.VERTEX_SHADER,Re(this.source.vertex)),this._fragmentShader=new _e(e,e.FRAGMENT_SHADER,Re(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void De(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void De(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void De(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void De(this.errors);let t,s,i,r,o;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 De(this.errors);const n=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 Oe{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 n=s.canvasPos,a=n[0],l=n[1];a+10<0||l+10<0||a-10>i||l-10>r?s._setVisible(!1):!s.entity||s.entity.visible?s.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=s,this.pixels[o++]=a,this.pixels[o++]=l):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 Oe(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 i=this._occlusionLayers[s];i||(i=new Oe(this._scene,e.origin),this._occlusionLayers[s]=t,this._occlusionLayersListDirty=!0),i.addMarker(e),this._markersToOcclusionLayersMap[e.id]=i}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,i=[];if(i.push("#version 300 es"),i.push("// OcclusionTester 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),i.push("}"),i}_buildProgram(){this._program&&this._program.destroy();const e=this._scene,t=e.canvas.gl,s=e._sectionPlanesState;if(this._program=new Ce(t,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,t=s.sectionPlanes.length;e0){const e=i.sectionPlanes;for(let i=0;i{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=A.mat4();return()=>(e&&A.inverseMat4(i.camera.projMatrix,t),t)})());const t=this._scene.canvas.gl,s=this._program,i=this._scene,r=i.sao,o=t.drawingBufferWidth,n=t.drawingBufferHeight,a=i.camera.project._state,l=a.near,h=a.far,c=a.matrix,u=this._getInverseProjectMat(),p=Math.random(),d="perspective"===i.camera.projection;Me[0]=o,Me[1]=n,t.viewport(0,0,o,n),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,l),t.uniform1f(this._uCameraFar,h),t.uniformMatrix4fv(this._uCameraProjectionMatrix,!1,c),t.uniformMatrix4fv(this._uCameraInverseProjectionMatrix,!1,u),t.uniform1i(this._uPerspective,d),t.uniform1f(this._uScale,r.scale*(h/5)),t.uniform1f(this._uIntensity,r.intensity),t.uniform1f(this._uBias,r.bias),t.uniform1f(this._uKernelRadius,r.kernelRadius),t.uniform1f(this._uMinResolution,r.minResolution),t.uniform2fv(this._uViewport,Me),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 Ce(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 i=new Float32Array([1,1,0,1,0,0,1,0]),r=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),o=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Ne(s,s.ARRAY_BUFFER,r,r.length,3,s.STATIC_DRAW),this._uvBuf=new Ne(s,s.ARRAY_BUFFER,i,i.length,2,s.STATIC_DRAW),this._indicesBuf=new Ne(s,s.ELEMENT_ARRAY_BUFFER,o,o.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 Fe=new Float32Array(Ve(17,[0,1])),Le=new Float32Array(Ve(17,[1,0])),Ue=new Float32Array(function(e,t){const s=[];for(let i=0;i<=e;i++)s.push(ke(i,t));return s}(17,4)),He=new Float32Array(2);class Ge{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 Ce(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]),i=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Ne(e,e.ARRAY_BUFFER,s,s.length,3,e.STATIC_DRAW),this._uvBuf=new Ne(e,e.ARRAY_BUFFER,t,t.length,2,e.STATIC_DRAW),this._indicesBuf=new Ne(e,e.ELEMENT_ARRAY_BUFFER,i,i.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(o.camera.projMatrix,t),t)})());const i=this._scene.canvas.gl,r=this._program,o=this._scene,n=i.drawingBufferWidth,a=i.drawingBufferHeight,l=o.camera.project._state,h=l.near,c=l.far;i.viewport(0,0,n,a),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),r.bind(),He[0]=n,He[1]=a,i.uniform2fv(this._uViewport,He),i.uniform1f(this._uCameraNear,h),i.uniform1f(this._uCameraFar,c),i.uniform1f(this._uDepthCutoff,.01),0===s?i.uniform2fv(this._uSampleOffsets,Le):i.uniform2fv(this._uSampleOffsets,Fe),i.uniform1fv(this._uSampleWeights,Ue);const u=e.getDepthTexture(),p=t.getTexture();r.bindTexture(this._uDepthTexture,u,0),r.bindTexture(this._uOcclusionTexture,p,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)}destroy(){this._program.destroy()}}function ke(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function Ve(e,t){const s=[];for(let i=0;i<=e;i++)s.push(t[0]*i),s.push(t[1]*i);return s}class je{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 i=this.gl,r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),s?i.texStorage2D(i.TEXTURE_2D,1,s,e,t):i.texImage2D(i.TEXTURE_2D,0,i.RGBA,e,t,0,i.RGBA,i.UNSIGNED_BYTE,null),r}_touch(...e){let t,s;const i=this.gl;if(this.size?(t=this.size[0],s=this.size[1]):(t=i.drawingBufferWidth,s=i.drawingBufferHeight),this.buffer){if(this.buffer.width===t&&this.buffer.height===s)return;this.buffer.textures.forEach((e=>i.deleteTexture(e))),i.deleteFramebuffer(this.buffer.framebuf),i.deleteRenderbuffer(this.buffer.renderbuf)}const r=[];let o;e.length>0?r.push(...e.map((e=>this.createTexture(t,s,e)))):r.push(this.createTexture(t,s)),this._hasDepthTexture&&(o=i.createTexture(),i.bindTexture(i.TEXTURE_2D,o),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.texImage2D(i.TEXTURE_2D,0,i.DEPTH_COMPONENT32F,t,s,0,i.DEPTH_COMPONENT,i.FLOAT,null));const n=i.createRenderbuffer();i.bindRenderbuffer(i.RENDERBUFFER,n),i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_COMPONENT32F,t,s);const a=i.createFramebuffer();i.bindFramebuffer(i.FRAMEBUFFER,a);for(let e=0;e0&&i.drawBuffers(r.map(((e,t)=>i.COLOR_ATTACHMENT0+t))),this._hasDepthTexture?i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_2D,o,0):i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,n),i.bindTexture(i.TEXTURE_2D,null),i.bindRenderbuffer(i.RENDERBUFFER,null),i.bindFramebuffer(i.FRAMEBUFFER,null),i.bindFramebuffer(i.FRAMEBUFFER,a),!i.isFramebuffer(a))throw"Invalid framebuffer";i.bindFramebuffer(i.FRAMEBUFFER,null);const l=i.checkFramebufferStatus(i.FRAMEBUFFER);switch(l){case i.FRAMEBUFFER_COMPLETE:break;case i.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case i.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case i.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case i.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+l}this.buffer={framebuf:a,renderbuf:n,texture:r[0],textures:r,depthTexture:o,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,i=null,r=Uint8Array,o=4,n=0){const a=e,l=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,h=new r(o),c=this.gl;return c.readBuffer(c.COLOR_ATTACHMENT0+n),c.readPixels(a,l,1,1,s||c.RGBA,i||c.UNSIGNED_BYTE,h,0),h}readArray(e=null,t=null,s=Uint8Array,i=4,r=0){const o=new s(this.buffer.width*this.buffer.height*i),n=this.gl;return n.readBuffer(n.COLOR_ATTACHMENT0+r),n.readPixels(0,0,this.buffer.width,this.buffer.height,e||n.RGBA,t||n.UNSIGNED_BYTE,o,0),o}readImageAsCanvas(){const e=this.gl,t=this._getImageDataCache(),s=t.pixelData,i=t.canvas,r=t.imageData,o=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,s);const n=this.buffer.width,a=this.buffer.height,l=a/2|0,h=4*n,c=new Uint8Array(4*n);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 Qe{constructor(e){this.scene=e,this._renderBuffersBasic={},this._renderBuffersScaled={}}getRenderBuffer(e,t){const s=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled;let i=s[e];return i||(i=new je(this.scene.canvas.canvas,this.scene.canvas.gl,t),s[e]=i),i}destroy(){for(let e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(let e in this._renderBuffersScaled)this._renderBuffersScaled[e].destroy()}}function We(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 ze=function(t,s){s=s||{};const i=new Ee(t),r=t.canvas.canvas,o=t.canvas.gl,n=!!s.transparent,a=s.alphaDepthMask,l=new e({});let h={},c={},u=!0,d=!0,f=!0,m=!0,y=!0,E=!0,g=!0,v=!0;const I=new Qe(t);let _=!1;const T=new Be(t),P=new Ge(t);function b(){u&&(!function(){for(let e in h)if(h.hasOwnProperty(e)){const t=h[e],s=t.drawableMap,i=t.drawableListPreCull;let r=0;for(let e in s)s.hasOwnProperty(e)&&(i[r++]=s[e]);i.length=r}}(),u=!1,d=!0),d&&(!function(){for(let e in h)if(h.hasOwnProperty(e)){const t=h[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),d=!1,f=!0),f&&function(){for(let e in h)if(h.hasOwnProperty(e)){const t=h[e],s=t.drawableListPreCull,i=t.drawableList;let r=0;for(let e=0,t=s.length;e0)for(i.withSAO=!0,S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||j>0||U>0||H>0){if(o.enable(o.CULL_FACE),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):(o.blendEquation(o.FUNC_ADD),o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA)),i.backfaces=!1,a||o.depthMask(!1),(U>0||H>0)&&o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),H>0)for(S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||W>0){if(i.lastProgramId=null,t.highlightMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),W>0)for(S=0;S0)for(S=0;S0||K>0||Q>0){if(i.lastProgramId=null,t.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),o.enable(o.CULL_FACE),K>0)for(S=0;S0)for(S=0;S0||X>0){if(i.lastProgramId=null,t.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),X>0)for(S=0;S0)for(S=0;S0||q>0){if(i.lastProgramId=null,t.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),o.enable(o.CULL_FACE),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),q>0)for(S=0;S0)for(S=0;S0){const t=Math.floor(e/4),s=p.size[0],i=t%s-Math.floor(s/2),r=Math.floor(t/s)-Math.floor(s/2),o=Math.sqrt(Math.pow(i,2)+Math.pow(r,2));D.push({x:i,y:r,dist:o,isVertex:n&&a?E[e+3]>y.length/2:n,result:[E[e+0],E[e+1],E[e+2],E[e+3]],normal:[g[e+0],g[e+1],g[e+2],g[e+3]],id:[v[e+0],v[e+1],v[e+2],v[e+3]]})}let x=null,S=null,w=null,M=null;if(D.length>0){D.sort(((e,t)=>e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist)),M=D[0].isVertex?"vertex":"edge";const e=D[0].result,t=D[0].normal,s=D[0].id,i=y[e[3]],r=i.origin,o=i.coordinateScale;S=A.normalizeVec3([t[0]/A.MAX_INT,t[1]/A.MAX_INT,t[2]/A.MAX_INT]),x=[e[0]*o[0]+r[0],e[1]*o[1]+r[1],e[2]*o[2]+r[2]],w=l.items[s[0]+(s[1]<<8)+(s[2]<<16)+(s[3]<<24)]}if(null===_&&null==x)return null;let B=null;null!==x&&(B=t.camera.projectWorldPos(x));const F=w&&w.delegatePickedEntity?w.delegatePickedEntity():w;return c.reset(),c.snappedToEdge="edge"===M,c.snappedToVertex="vertex"===M,c.worldPos=x,c.worldNormal=S,c.entity=F,c.canvasPos=s,c.snappedCanvasPos=B||s,c}}(),this.addMarker=function(e){this._occlusionTester=this._occlusionTester||new we(t,I),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){b(),this._occlusionTester.bindRenderBuf(),i.reset(),i.backfaces=!0,i.frontface=!0,o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.clearColor(0,0,0,0),o.enable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.disable(o.BLEND),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT);for(let e in h)if(h.hasOwnProperty(e)){const t=h[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 i=Math.max(-1,Math.min(1,40*-e.deltaY));t(i)},{passive:!0});{let e,t;const s=2;this.on("mousedown",(s=>{e=s[0],t=s[1]})),this.on("mouseup",(i=>{e>=i[0]-s&&e<=i[0]+s&&t>=i[1]-s&&t<=i[1]+s&&this.fire("mouseclicked",i,!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,i=0;for(;t.offsetParent;)s+=t.offsetLeft,i+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-s,this.mouseCanvasPos[1]=e.pageY-i}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 Ye=new e({});class Xe{constructor(e){this.id=Ye.addItem({});for(const t in e)e.hasOwnProperty(t)&&(this[t]=e[t])}destroy(){Ye.removeItem(this.id)}}class Ze extends O{get type(){return"Viewport"}constructor(e,t={}){super(e,t),this._state=new Xe({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 qe extends O{get type(){return"Perspective"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Xe({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4(),near:.1,far:1e4}),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 i=this._fov;("x"===s||"min"===s&&t<1||"max"===s&&t>1)&&(i/=t),i=Math.min(i,120),A.perspectiveMat4(i*(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:1e4;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,i,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return s[0]=(e[0]-n)/n,s[1]=(e[1]-a)/a,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,i),A.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,i,r),r}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}class Je extends O{get type(){return"Ortho"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Xe({matrix:A.mat4(),inverseMatrix:A.mat4(),transposedMatrix:A.mat4(),near:.1,far:1e4}),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,i=s[2],r=s[3],o=i/r;let n,a,l,h;i>r?(n=-t,a=t,l=t/o,h=-t/o):(n=-t*o,a=t*o,l=t,h=-t),A.orthoMat4c(n,a,h,l,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:1e4;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,i,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return s[0]=(e[0]-n)/n,s[1]=(e[1]-a)/a,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,i),A.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,i,r),r}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}class $e extends O{get type(){return"Frustum"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Xe({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,i,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return s[0]=(e[0]-n)/n,s[1]=(e[1]-a)/a,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,i),A.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,i,r),r}destroy(){super.destroy(),this._state.destroy(),super.destroy()}}class et extends O{get type(){return"CustomProjection"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Xe({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,i,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return s[0]=(e[0]-n)/n,s[1]=(e[1]-a)/a,s[2]=t,s[3]=1,A.mulMat4v4(this.inverseMatrix,s,i),A.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,A.mulMat4v4(this.camera.inverseViewMatrix,i,r),r}destroy(){super.destroy(),this._state.destroy()}}const tt=A.vec3(),st=A.vec3(),it=A.vec3(),rt=A.vec3(),ot=A.vec3(),nt=A.vec3(),at=A.vec4(),lt=A.vec4(),ht=A.vec4(),ct=A.mat4(),ut=A.mat4(),At=A.vec3(),pt=A.vec3(),dt=A.vec3(),ft=A.vec3();class mt extends O{get type(){return"Camera"}constructor(e,t={}){super(e,t),this._state=new Xe({deviceMatrix:A.mat4(),hasDeviceMatrix:!1,matrix:A.mat4(),normalMatrix:A.mat4(),inverseMatrix:A.mat4()}),this._perspective=new qe(this),this._ortho=new Je(this),this._frustum=new $e(this),this._customProjection=new et(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,At),A.normalizeVec3(At,pt),A.mulVec3Scalar(pt,1e3,dt),A.addVec3(this._look,dt,ft),t=ft):t=this._eye,e.hasDeviceMatrix?(A.lookAtMat4v(t,this._look,this._up,ut),A.mulMat4(e.deviceMatrix,ut,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,tt);A.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,ct),t=A.transformPoint3(ct,t,st),this.eye=A.addVec3(this._look,t,it),this.up=A.transformPoint3(ct,this._up,rt)}orbitPitch(e){if(this._constrainPitch&&(e=A.dotVec3(this._up,this._worldUp)/A.DEGTORAD)<1)return;let t=A.subVec3(this._eye,this._look,tt);const s=A.cross3Vec3(A.normalizeVec3(t,st),A.normalizeVec3(this._up,it));A.rotationMat4v(.0174532925*e,s,ct),t=A.transformPoint3(ct,t,rt),this.up=A.transformPoint3(ct,this._up,ot),this.eye=A.addVec3(t,this._look,nt)}yaw(e){let t=A.subVec3(this._look,this._eye,tt);A.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,ct),t=A.transformPoint3(ct,t,st),this.look=A.addVec3(t,this._eye,it),this._gimbalLock&&(this.up=A.transformPoint3(ct,this._up,rt))}pitch(e){if(this._constrainPitch&&(e=A.dotVec3(this._up,this._worldUp)/A.DEGTORAD)<1)return;let t=A.subVec3(this._look,this._eye,tt);const s=A.cross3Vec3(A.normalizeVec3(t,st),A.normalizeVec3(this._up,it));A.rotationMat4v(.0174532925*e,s,ct),this.up=A.transformPoint3(ct,this._up,nt),t=A.transformPoint3(ct,t,rt),this.look=A.addVec3(t,this._eye,ot)}pan(e){const t=A.subVec3(this._eye,this._look,tt),s=[0,0,0];let i;if(0!==e[0]){const r=A.cross3Vec3(A.normalizeVec3(t,[]),A.normalizeVec3(this._up,st));i=A.mulVec3Scalar(r,e[0]),s[0]+=i[0],s[1]+=i[1],s[2]+=i[2]}0!==e[1]&&(i=A.mulVec3Scalar(A.normalizeVec3(this._up,it),e[1]),s[0]+=i[0],s[1]+=i[1],s[2]+=i[2]),0!==e[2]&&(i=A.mulVec3Scalar(A.normalizeVec3(t,rt),e[2]),s[0]+=i[0],s[1]+=i[1],s[2]+=i[2]),this.eye=A.addVec3(this._eye,s,ot),this.look=A.addVec3(this._look,s,nt)}zoom(e){const t=A.subVec3(this._eye,this._look,tt),s=Math.abs(A.lenVec3(t,st)),i=Math.abs(s+e);if(i<.5)return;const r=A.normalizeVec3(t,it);this.eye=A.addVec3(this._look,A.mulVec3Scalar(r,i),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=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,tt))}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=at,s=lt,i=ht;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,i),A.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1;const r=this.scene.canvas.canvas,o=r.offsetWidth/2,n=r.offsetHeight/2;return[i[0]*o+o,i[1]*n+n]}destroy(){super.destroy(),this._state.destroy()}}class yt extends O{get type(){return"Light"}get isLight(){return!0}constructor(e,t={}){super(e,t)}}class Et extends yt{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,i=this.scene.canvas;this._onCameraViewMatrix=s.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=s.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=i.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new Xe({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,i=[s[0]-t[0],s[1]-t[1],s[2]-t[2]],r=[0,1,0];A.lookAtMat4v(i,s,r,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 je(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 yt{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 vt extends O{get type(){return"Geometry"}get isGeometry(){return!0}constructor(e,t={}){super(e,t),p.memory.meshes++}destroy(){super.destroy(),p.memory.meshes--}}var It=function(){const e=[],t=[],s=[],i=[],r=[];let o=0;const n=new Uint16Array(3),a=new Uint16Array(3),l=new Uint16Array(3),h=A.vec3(),c=A.vec3(),u=A.vec3(),p=A.vec3(),d=A.vec3(),f=A.vec3(),m=A.vec3();return function(y,E,g,v){!function(r,o){const n={};let a,l,h,c;const u=Math.pow(10,4);let A,p,d=0;for(A=0,p=r.length;A_)||(w=s[N.index1],M=s[N.index2],(!B&&w>65535||M>65535)&&(B=!0),I.push(w),I.push(M));return B?new Uint32Array(I):new Uint16Array(I)}}();const _t=function(){const e=A.mat4(),t=A.mat4();return function(s,i){i=i||A.mat4();const r=s[0],o=s[1],n=s[2],a=s[3]-r,l=s[4]-o,h=s[5]-n,c=65535;return A.identityMat4(e),A.translationMat4v(s,e),A.identityMat4(t),A.scalingMat4v([a/c,l/c,h/c],t),A.mulMat4(e,t,i),i}}();var Tt=function(){const e=A.mat4(),t=A.mat4();return function(s,i,r){const o=new Uint16Array(s.length),n=new Float32Array([r[0]!==i[0]?65535/(r[0]-i[0]):0,r[1]!==i[1]?65535/(r[1]-i[1]):0,r[2]!==i[2]?65535/(r[2]-i[2]):0]);let a;for(a=0;a=0?1:-1),t=(1-Math.abs(r))*(o>=0?1:-1);r=e,o=t}return new Int8Array([Math[s](127.5*r+(r<0?-1:0)),Math[i](127.5*o+(o<0?-1:0))])}function Rt(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const i=1-Math.abs(t)-Math.abs(s);i<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const r=Math.sqrt(t*t+s*s+i*i);return[t/r,s/r,i/r]}function Dt(e,t,s){return e[t]*s[0]+e[t+1]*s[1]+e[t+2]*s[2]}const Ct={getPositionsBounds:function(e){const t=new Float32Array(3),s=new Float32Array(3);let i,r;for(i=0;i<3;i++)t[i]=Number.MAX_VALUE,s[i]=-Number.MAX_VALUE;for(i=0;in&&(r=s,n=o),s=bt(e,a,"floor","ceil"),i=Rt(s),o=Dt(e,a,i),o>n&&(r=s,n=o),s=bt(e,a,"ceil","ceil"),i=Rt(s),o=Dt(e,a,i),o>n&&(r=s,n=o),t[a]=r[0],t[a+1]=r[1];return t},decompressNormals:function(e,t){for(let s=0,i=0,r=e.length;s=0?1:-1),o=(1-Math.abs(r))*(o>=0?1:-1));const a=Math.sqrt(r*r+o*o+n*n);t[i+0]=r/a,t[i+1]=o/a,t[i+2]=n/a,i+=3}return t},decompressNormal:function(e,t){let s=e[0],i=e[1];s=(2*s+1)/255,i=(2*i+1)/255;const r=1-Math.abs(s)-Math.abs(i);r<0&&(s=(1-Math.abs(i))*(s>=0?1:-1),i=(1-Math.abs(s))*(i>=0?1:-1));const o=Math.sqrt(s*s+i*i+r*r);return t[0]=s/o,t[1]=i/o,t[2]=r/o,t}},Nt=p.memory,Ot=A.AABB3();class xt extends vt{get type(){return"ReadableGeometry"}get isReadableGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Xe({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,i=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=i.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=i.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=i.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=i.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=i.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=i.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=i.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=i.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(this._state.compressGeometry){const e=Ct.getPositionsBounds(t.positions),i=Ct.compressPositions(t.positions,e.min,e.max);s.positions=i.quantized,s.positionsDecodeMatrix=i.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=Ct.getUVBounds(t.uv),i=Ct.compressUVs(t.uv,e.min,e.max);s.uv=i.quantized,s.uvDecodeMatrix=i.decodeMatrix}else s.uv=t.uv.constructor===Float32Array?t.uv:new Float32Array(t.uv);t.normals&&(this._state.compressGeometry?s.normals=Ct.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(),Nt.meshes++,this._buildVBOs()}_buildVBOs(){const e=this._state,t=this.scene.canvas.gl;if(e.indices&&(e.indicesBuf=new Ne(t,t.ELEMENT_ARRAY_BUFFER,e.indices,e.indices.length,1,t.STATIC_DRAW),Nt.indices+=e.indicesBuf.numItems),e.positions&&(e.positionsBuf=new Ne(t,t.ARRAY_BUFFER,e.positions,e.positions.length,3,t.STATIC_DRAW),Nt.positions+=e.positionsBuf.numItems),e.normals){let s=e.compressGeometry;e.normalsBuf=new Ne(t,t.ARRAY_BUFFER,e.normals,e.normals.length,3,t.STATIC_DRAW,s),Nt.normals+=e.normalsBuf.numItems}e.colors&&(e.colorsBuf=new Ne(t,t.ARRAY_BUFFER,e.colors,e.colors.length,4,t.STATIC_DRAW),Nt.colors+=e.colorsBuf.numItems),e.uv&&(e.uvBuf=new Ne(t,t.ARRAY_BUFFER,e.uv,e.uv.length,2,t.STATIC_DRAW),Nt.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=It(e.positions,e.indices,e.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Ne(t,t.ELEMENT_ARRAY_BUFFER,s,s.length,1,t.STATIC_DRAW),Nt.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),i=s.positions,r=s.colors;this._pickTrianglePositionsBuf=new Ne(t,t.ARRAY_BUFFER,i,i.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new Ne(t,t.ARRAY_BUFFER,r,r.length,4,t.STATIC_DRAW,!0),Nt.positions+=this._pickTrianglePositionsBuf.numItems,Nt.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),Ct.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=Ct.getPositionsBounds(e),i=Ct.compressPositions(e,s.min,s.max);e=i.quantized,t.positionsDecodeMatrix=i.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),Ct.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),Ct.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,Ot,this._state.positionsDecodeMatrix),A.AABB3ToOBB3(Ot,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(),Nt.meshes--}}function St(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 i=e.zSize||1;i<0&&(console.error("negative zSize not allowed - will invert"),i*=-1);const r=e.center,o=r?r[0]:0,n=r?r[1]:0,a=r?r[2]:0,l=-t+o,h=-s+n,c=-i+a,u=t+o,A=s+n,p=i+a;return y.apply(e,{positions:[u,A,p,l,A,p,l,h,p,u,h,p,u,A,p,u,h,p,u,h,c,u,A,c,u,A,p,u,A,c,l,A,c,l,A,p,l,A,p,l,A,c,l,h,c,l,h,p,l,h,c,u,h,c,u,h,p,l,h,p,u,h,c,l,h,c,l,A,c,u,A,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]})}class wt extends O{get type(){return"Material"}constructor(e,t={}){super(e,t),p.memory.materials++}destroy(){super.destroy(),p.memory.materials--}}const Mt={opaque:0,mask:1,blend:2},Bt=["opaque","mask","blend"];class Ft extends wt{get type(){return"PhongMaterial"}constructor(e,t={}){super(e,t),this._state=new Xe({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=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 Bt[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 Lt={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 Ut extends wt{get type(){return"EmphasisMaterial"}get presets(){return Lt}constructor(e,t={}){super(e,t),this._state=new Xe({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=Lt[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(Lt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const Ht={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 Gt extends wt{get type(){return"EdgeMaterial"}get presets(){return Ht}constructor(e,t={}){super(e,t),this._state=new Xe({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=Ht[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(Ht).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 Vt extends O{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 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=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 jt extends O{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 Qt={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}};class Wt extends wt{get type(){return"PointsMaterial"}get presets(){return Qt}constructor(e,t={}){super(e,t),this._state=new Xe({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=Qt[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(Qt).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 zt={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}};class Kt extends wt{get type(){return"LinesMaterial"}get presets(){return zt}constructor(e,t={}){super(e,t),this._state=new Xe({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=zt[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(zt).join(", "))}get preset(){return this._preset}get hash(){return[""+this.lineWidth].join(";")}destroy(){super.destroy(),this._state.destroy()}}function Yt(e,t){const s={};let i,r;for(let o=0,n=t.length;o{this.glRedraw()})),this.canvas.on("webglContextFailed",(()=>{alert("xeokit failed to find WebGL!")})),this._renderer=new ze(this,{transparent:i,alphaDepthMask:r}),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,i=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,i=null;this.getHash=function(){if(s)return s;const e=[],t=this.lights;let i;for(let s=0,r=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),i=null,s=null},this.removeLight=function(e){for(let t=0,r=this.lights.length;t{this._renderer.imageDirty()}))}_initDefaults(){}_addComponent(e){if(e.id&&this.components[e.id]&&(this.error("Component "+y.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 i=this.types[s];i&&(delete i[t],y.isEmptyObject(i)&&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)}_deRegisterVisibleObject(e){delete this.visibleObjects[e.id],this._numVisibleObjects--,this._visibleObjectIds=null}_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)}_deRegisterXRayedObject(e){delete this.xrayedObjects[e.id],this._numXRayedObjects--,this._xrayedObjectIds=null}_objectHighlightedUpdated(e){e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null}_deRegisterHighlightedObject(e){delete this.highlightedObjects[e.id],this._numHighlightedObjects--,this._highlightedObjectIds=null}_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)}_deRegisterSelectedObject(e){delete this.selectedObjects[e.id],this._numSelectedObjects--,this._selectedObjectIds=null}_objectColorizeUpdated(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}_deRegisterColorizedObject(e){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}_deRegisterOpacityObject(e){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}_deRegisterOffsetObject(e){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,i=this._clearEachPass;let r,o;for(r=0;rr&&(r=e[3]),e[4]>o&&(o=e[4]),e[5]>n&&(n=e[5]),h=!0}h||(t=-100,s=-100,i=-100,r=100,o=100,n=100),this._aabb[0]=t,this._aabb[1]=s,this._aabb[2]=i,this._aabb[3]=r,this._aabb[4]=o,this._aabb[5]=n,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=Yt(this,s));const i=e.excludeEntities||e.exclude;return i&&(e.excludeEntityIds=Yt(this,i)),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 l=e.aabb;l[0]o&&(o=l[3]),l[4]>n&&(n=l[4]),l[5]>a&&(a=l[5]),t=!0}})),t){const e=A.AABB3();return e[0]=s,e[1]=i,e[2]=r,e[3]=o,e[4]=n,e[5]=a,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){y.isString(e)&&(e=[e]);let s=!1;for(let i=0,r=e.length;i{r>i&&(i=r,e(...s))}));return this._tickifiedFunctions[t]={tickSubId:n,wrapperFunc:o},o}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,i=e.scene._lightsState,r=e._geometry._state,o=e._state.billboard,n=e._state.stationary,a=s.getNumAllocatedSectionPlanes()>0,l=!!r.compressGeometry,h=[];h.push("#version 300 es"),h.push("// Lambertian drawing vertex shader"),h.push("in vec3 position;"),h.push("uniform mat4 modelMatrix;"),h.push("uniform mat4 viewMatrix;"),h.push("uniform mat4 projMatrix;"),h.push("uniform vec4 colorize;"),h.push("uniform vec3 offset;"),l&&h.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(h.push("uniform float logDepthBufFC;"),h.push("out float vFragDepth;"),h.push("bool isPerspectiveMatrix(mat4 m) {"),h.push(" return (m[2][3] == - 1.0);"),h.push("}"),h.push("out float isPerspective;"));a&&h.push("out vec4 vWorldPosition;");if(h.push("uniform vec4 lightAmbient;"),h.push("uniform vec4 materialColor;"),h.push("uniform vec3 materialEmissive;"),r.normalsBuf){h.push("in vec3 normal;"),h.push("uniform mat4 modelNormalMatrix;"),h.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=i.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),h.push(" }"),h.push(" return normalize(v);"),h.push("}"))}h.push("out vec4 vColor;"),"points"===r.primitiveName&&h.push("uniform float pointSize;");"spherical"!==o&&"cylindrical"!==o||(h.push("void billboard(inout mat4 mat) {"),h.push(" mat[0][0] = 1.0;"),h.push(" mat[0][1] = 0.0;"),h.push(" mat[0][2] = 0.0;"),"spherical"===o&&(h.push(" mat[1][0] = 0.0;"),h.push(" mat[1][1] = 1.0;"),h.push(" mat[1][2] = 0.0;")),h.push(" mat[2][0] = 0.0;"),h.push(" mat[2][1] = 0.0;"),h.push(" mat[2][2] =1.0;"),h.push("}"));h.push("void main(void) {"),h.push("vec4 localPosition = vec4(position, 1.0); "),h.push("vec4 worldPosition;"),l&&h.push("localPosition = positionsDecodeMatrix * localPosition;");r.normalsBuf&&(l?h.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):h.push("vec4 localNormal = vec4(normal, 0.0); "),h.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),h.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));h.push("mat4 viewMatrix2 = viewMatrix;"),h.push("mat4 modelMatrix2 = modelMatrix;"),n&&h.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===o||"cylindrical"===o?(h.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),h.push("billboard(modelMatrix2);"),h.push("billboard(viewMatrix2);"),h.push("billboard(modelViewMatrix);"),r.normalsBuf&&(h.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),h.push("billboard(modelNormalMatrix2);"),h.push("billboard(viewNormalMatrix2);"),h.push("billboard(modelViewNormalMatrix);")),h.push("worldPosition = modelMatrix2 * localPosition;"),h.push("worldPosition.xyz = worldPosition.xyz + offset;"),h.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(h.push("worldPosition = modelMatrix2 * localPosition;"),h.push("worldPosition.xyz = worldPosition.xyz + offset;"),h.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r.normalsBuf&&h.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(h.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),h.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),h.push("float lambertian = 1.0;"),r.normalsBuf)for(let e=0,t=i.lights.length;e0,o=t.gammaOutput,n=[];n.push("#version 300 es"),n.push("// Lambertian 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"),t.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"));if(r){n.push("in vec4 vWorldPosition;"),n.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}"points"===i.primitiveName&&(n.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),n.push("float r = dot(cxy, cxy);"),n.push("if (r > 1.0) {"),n.push(" discard;"),n.push("}"));t.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");o?n.push("outColor = linearToGamma(vColor, gammaFactor);"):n.push("outColor = vColor;");return n.push("}"),n}(e)):(this.vertex=function(e){const t=e.scene;e._material;const s=e._state,i=t._sectionPlanesState,r=e._geometry._state,o=t._lightsState;let n;const a=s.billboard,l=s.background,h=s.stationary,c=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),u=$t(e),A=i.getNumAllocatedSectionPlanes()>0,p=Jt(e),d=!!r.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;"),A&&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;"));o.lightMaps.length>0&&f.push("out vec3 vWorldNormal;");if(u){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=o.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("}"))}c&&(f.push("in vec2 uv;"),f.push("out vec2 vUV;"),d&&f.push("uniform mat3 uvDecodeMatrix;"));r.colors&&(f.push("in vec4 color;"),f.push("out vec4 vColor;"));"points"===r.primitiveName&&f.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(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"===a&&(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(p){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=o.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=o.lights.length;e0,l=$t(e),h=i.uvBuf,c="PhongMaterial"===n.type,u="MetallicMaterial"===n.type,A="SpecularMaterial"===n.type,p=Jt(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;"));p&&(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(a){f.push("in vec4 vWorldPosition;"),f.push("uniform bool clippable;");for(var m=0;m0&&(f.push("uniform samplerCube lightMap;"),f.push("uniform mat4 viewNormalMatrix;")),o.reflectionMaps.length>0&&f.push("uniform samplerCube reflectionMap;"),(o.lightMaps.length>0||o.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("};"),c&&((o.lightMaps.length>0||o.reflectionMaps.length>0)&&(f.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.lightMaps.length>0&&(f.push(" vec3 irradiance = "+qt[o.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;")),o.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("}")),(u||A)&&(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("}"),o.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 = "+qt[o.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("}"),(o.lightMaps.length>0||o.reflectionMaps.length>0)&&(f.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.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;")),o.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;"),i.colors&&f.push("in vec4 vColor;");h&&(l&&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;");l&&(o.lightMaps.length>0&&f.push("in vec3 vWorldNormal;"),f.push("in vec3 vViewNormal;"));n.ambient&&f.push("uniform vec3 materialAmbient;");n.baseColor&&f.push("uniform vec3 materialBaseColor;");void 0!==n.alpha&&null!==n.alpha&&f.push("uniform vec4 materialAlphaModeCutoff;");n.emissive&&f.push("uniform vec3 materialEmissive;");n.diffuse&&f.push("uniform vec3 materialDiffuse;");void 0!==n.glossiness&&null!==n.glossiness&&f.push("uniform float materialGlossiness;");void 0!==n.shininess&&null!==n.shininess&&f.push("uniform float materialShininess;");n.specular&&f.push("uniform vec3 materialSpecular;");void 0!==n.metallic&&null!==n.metallic&&f.push("uniform float materialMetallic;");void 0!==n.roughness&&null!==n.roughness&&f.push("uniform float materialRoughness;");void 0!==n.specularF0&&null!==n.specularF0&&f.push("uniform float materialSpecularF0;");h&&s._ambientMap&&(f.push("uniform sampler2D ambientMap;"),s._ambientMap._state.matrix&&f.push("uniform mat4 ambientMapMatrix;"));h&&s._baseColorMap&&(f.push("uniform sampler2D baseColorMap;"),s._baseColorMap._state.matrix&&f.push("uniform mat4 baseColorMapMatrix;"));h&&s._diffuseMap&&(f.push("uniform sampler2D diffuseMap;"),s._diffuseMap._state.matrix&&f.push("uniform mat4 diffuseMapMatrix;"));h&&s._emissiveMap&&(f.push("uniform sampler2D emissiveMap;"),s._emissiveMap._state.matrix&&f.push("uniform mat4 emissiveMapMatrix;"));l&&h&&s._metallicMap&&(f.push("uniform sampler2D metallicMap;"),s._metallicMap._state.matrix&&f.push("uniform mat4 metallicMapMatrix;"));l&&h&&s._roughnessMap&&(f.push("uniform sampler2D roughnessMap;"),s._roughnessMap._state.matrix&&f.push("uniform mat4 roughnessMapMatrix;"));l&&h&&s._metallicRoughnessMap&&(f.push("uniform sampler2D metallicRoughnessMap;"),s._metallicRoughnessMap._state.matrix&&f.push("uniform mat4 metallicRoughnessMapMatrix;"));l&&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("}"));h&&s._occlusionMap&&(f.push("uniform sampler2D occlusionMap;"),s._occlusionMap._state.matrix&&f.push("uniform mat4 occlusionMapMatrix;"));h&&s._alphaMap&&(f.push("uniform sampler2D alphaMap;"),s._alphaMap._state.matrix&&f.push("uniform mat4 alphaMapMatrix;"));l&&h&&s._specularMap&&(f.push("uniform sampler2D specularMap;"),s._specularMap._state.matrix&&f.push("uniform mat4 specularMapMatrix;"));l&&h&&s._glossinessMap&&(f.push("uniform sampler2D glossinessMap;"),s._glossinessMap._state.matrix&&f.push("uniform mat4 glossinessMapMatrix;"));l&&h&&s._specularGlossinessMap&&(f.push("uniform sampler2D materialSpecularGlossinessMap;"),s._specularGlossinessMap._state.matrix&&f.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));l&&(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;"),l)for(let e=0,t=o.lights.length;e 0.0) { discard; }"),f.push("}")}"points"===i.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;"),n.ambient?f.push("vec3 ambientColor = materialAmbient;"):f.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");n.diffuse?f.push("vec3 diffuseColor = materialDiffuse;"):n.baseColor?f.push("vec3 diffuseColor = materialBaseColor;"):f.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");i.colors&&f.push("diffuseColor *= vColor.rgb;");n.emissive?f.push("vec3 emissiveColor = materialEmissive;"):f.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");n.specular?f.push("vec3 specular = materialSpecular;"):f.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==n.alpha?f.push("float alpha = materialAlphaModeCutoff[0];"):f.push("float alpha = 1.0;");i.colors&&f.push("alpha *= vColor.a;");void 0!==n.glossiness?f.push("float glossiness = materialGlossiness;"):f.push("float glossiness = 1.0;");void 0!==n.metallic?f.push("float metallic = materialMetallic;"):f.push("float metallic = 1.0;");void 0!==n.roughness?f.push("float roughness = materialRoughness;"):f.push("float roughness = 1.0;");void 0!==n.specularF0?f.push("float specularF0 = materialSpecularF0;"):f.push("float specularF0 = 1.0;");h&&(l&&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;"));h&&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 = "+qt[s._ambientMap._state.encoding]+"(ambientTexel);"),f.push("ambientColor *= ambientTexel.rgb;"));h&&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 = "+qt[s._diffuseMap._state.encoding]+"(diffuseTexel);"),f.push("diffuseColor *= diffuseTexel.rgb;"),f.push("alpha *= diffuseTexel.a;"));h&&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 = "+qt[s._baseColorMap._state.encoding]+"(baseColorTexel);"),f.push("diffuseColor *= baseColorTexel.rgb;"),f.push("alpha *= baseColorTexel.a;"));h&&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 = "+qt[s._emissiveMap._state.encoding]+"(emissiveTexel);"),f.push("emissiveColor = emissiveTexel.rgb;"));h&&s._alphaMap&&(s._alphaMap._state.matrix?f.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("alpha *= texture(alphaMap, textureCoord).r;"));h&&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(l&&(o.lights.length>0||o.lightMaps.length>0||o.reflectionMaps.length>0)){h&&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);"),h&&s._specularMap&&(s._specularMap._state.matrix?f.push("textureCoord = (specularMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("specular *= texture(specularMap, textureCoord).rgb;")),h&&s._glossinessMap&&(s._glossinessMap._state.matrix?f.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("glossiness *= texture(glossinessMap, textureCoord).r;")),h&&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;")),h&&s._metallicMap&&(s._metallicMap._state.matrix?f.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("metallic *= texture(metallicMap, textureCoord).r;")),h&&s._roughnessMap&&(s._roughnessMap._state.matrix?f.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("roughness *= texture(roughnessMap, textureCoord).r;")),h&&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;"),c&&(f.push("material.diffuseColor = diffuseColor;"),f.push("material.specularColor = specular;"),f.push("material.shine = materialShininess;")),A&&(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;")),u&&(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;"),o.lightMaps.length>0&&f.push("geometry.worldNormal = normalize(vWorldNormal);"),f.push("geometry.viewNormal = viewNormal;"),f.push("geometry.viewEyeDir = viewEyeDir;"),c&&(o.lightMaps.length>0||o.reflectionMaps.length>0)&&f.push("computePhongLightMapping(geometry, material, reflectedLight);"),(A||u)&&(o.lightMaps.length>0||o.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=o.lights.length;e0){const r=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0&&(this._uLightMap="lightMap"),r.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(c=0,u=o.sectionPlanes.length;c0&&r.lightMaps[0].texture&&this._uLightMap&&(a.bindTexture(this._uLightMap,r.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),r.reflectionMaps.length>0&&r.reflectionMaps[0].texture&&this._uReflectionMap&&(a.bindTexture(this._uReflectionMap,r.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),this._uGammaFactor&&i.uniform1f(this._uGammaFactor,s.gammaFactor),this._baseTextureUnit=e.textureUnit};class rs{constructor(e){this.vertex=function(e){const t=e.scene,s=t._lightsState,i=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),r=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,o=!!e._geometry._state.compressGeometry,n=e._state.billboard,a=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;"),o&&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;"));r&&l.push("out vec4 vWorldPosition;");if(l.push("uniform vec4 lightAmbient;"),l.push("uniform vec4 fillColor;"),i){l.push("in vec3 normal;"),l.push("uniform mat4 modelNormalMatrix;"),l.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);"),l.push(" }"),l.push(" return normalize(v);"),l.push("}"))}l.push("out vec4 vColor;"),("spherical"===n||"cylindrical"===n)&&(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"===n&&(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;"),o&&l.push("localPosition = positionsDecodeMatrix * localPosition;");i&&(o?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;"),a&&l.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===n||"cylindrical"===n?(l.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),l.push("billboard(modelMatrix2);"),l.push("billboard(viewMatrix2);"),l.push("billboard(modelViewMatrix);"),i&&(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; "));i&&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;"),i)for(let e=0,t=s.lights.length;e0,o=[];o.push("#version 300 es"),o.push("// Lambertian 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"),t.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;"));i&&(o.push("uniform float gammaFactor;"),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("}"));if(r){o.push("in vec4 vWorldPosition;"),o.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),o.push("}")}"points"===e._geometry._state.primitiveName&&(o.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),o.push("float r = dot(cxy, cxy);"),o.push("if (r > 1.0) {"),o.push(" discard;"),o.push("}"));t.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");i?o.push("outColor = linearToGamma(vColor, gammaFactor);"):o.push("outColor = vColor;");return o.push("}"),o}(e)}}const os=new e({}),ns=A.vec3(),as=function(e,t){this.id=os.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new rs(t),this._allocate(t)},ls={};as.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=ls[t];return s||(s=new as(t,e),ls[t]=s,p.memory.programs++),s._useCount++,s},as.prototype.put=function(){0==--this._useCount&&(os.removeItem(this.id),this._program&&this._program.destroy(),delete ls[this._hash],p.memory.programs--)},as.prototype.webglContextRestored=function(){this._program=null},as.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const i=this._scene,r=i.camera,o=i.canvas.gl,n=0===s?t._xrayMaterial._state:1===s?t._highlightMaterial._state:t._selectedMaterial._state,a=t._state,l=t._geometry._state,h=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,h?e.getRTCViewMatrix(a.originHash,h):r.viewMatrix),o.uniformMatrix4fv(this._uViewNormalMatrix,!1,r.viewNormalMatrix),a.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),s=i._sectionPlanesState.sectionPlanes.length;if(e>0){const r=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,i=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Edges drawing vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform vec4 edgeColor;"),n.push("uniform vec3 offset;"),i&&n.push("uniform mat4 positionsDecodeMatrix;");t.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;"));s&&n.push("out vec4 vWorldPosition;");n.push("out vec4 vColor;"),("spherical"===r||"cylindrical"===r)&&(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),n.push("vec4 worldPosition;"),i&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"),n.push("billboard(modelViewMatrix);"),n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n.push("vColor = edgeColor;"),s&&n.push("vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = clipPos;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,s=e.scene._sectionPlanesState,i=e.scene.gammaOutput,r=s.getNumAllocatedSectionPlanes()>0,o=[];o.push("#version 300 es"),o.push("// Edges 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"),t.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;"));i&&(o.push("uniform float gammaFactor;"),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("}"));if(r){o.push("in vec4 vWorldPosition;"),o.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),o.push("}")}t.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");i?o.push("outColor = linearToGamma(vColor, gammaFactor);"):o.push("outColor = vColor;");return o.push("}"),o}(e)}}const cs=new e({}),us=A.vec3(),As=function(e,t){this.id=cs.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new hs(t),this._allocate(t)},ps={};As.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=ps[t];return s||(s=new As(t,e),ps[t]=s,p.memory.programs++),s._useCount++,s},As.prototype.put=function(){0==--this._useCount&&(cs.removeItem(this.id),this._program&&this._program.destroy(),delete ps[this._hash],p.memory.programs--)},As.prototype.webglContextRestored=function(){this._program=null},As.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const i=this._scene,r=i.camera,o=i.canvas.gl;let n;const a=t._state,l=t._geometry,h=l._state,c=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,c?e.getRTCViewMatrix(a.originHash,c):r.viewMatrix),a.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),s=i._sectionPlanesState.sectionPlanes.length;if(e>0){const r=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,i=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Mesh picking vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("out vec4 vViewPosition;"),n.push("uniform vec3 offset;"),i&&n.push("uniform mat4 positionsDecodeMatrix;");s&&n.push("out vec4 vWorldPosition;");t.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;"));"spherical"!==r&&"cylindrical"!==r||(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));n.push("uniform vec2 pickClipPos;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy -= pickClipPos;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),i&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==r&&"cylindrical"!==r||(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"));n.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),s&&n.push(" vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,i=s.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Mesh 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"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(r.push("uniform vec4 pickColor;"),i){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push(" outColor = pickColor; "),r.push("}"),r}(e)}}const fs=A.vec3(),ms=function(e,t){this._hash=e,this._shaderSource=new ds(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},ys={};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=ys[t];if(!s){if(s=new ms(t,e),s.errors)return console.log(s.errors.join("\n")),null;ys[t]=s,p.memory.programs++}return s._useCount++,s},ms.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete ys[this._hash],p.memory.programs--)},ms.prototype.webglContextRestored=function(){this._program=null},ms.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,i=s.canvas.gl,r=t._state,o=t._material._state,n=t._geometry._state,a=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),i.uniformMatrix4fv(this._uViewMatrix,!1,a?e.getRTCPickViewMatrix(r.originHash,a):e.pickViewMatrix),r.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),r=s._sectionPlanesState.sectionPlanes.length;if(e>0){const o=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t>24&255,c=l>>16&255,u=l>>8&255,A=255&l;i.uniform4f(this._uPickColor,A/255,u/255,c/255,h/255),i.uniform2fv(this._uPickClipPos,e.pickClipPos),n.indicesBuf?(i.drawElements(n.primitive,n.indicesBuf.numItems,n.indicesBuf.itemType,0),e.drawElements++):n.positions&&i.drawArrays(i.TRIANGLES,0,n.positions.numItems)},ms.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Ce(s,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uPositionsDecodeMatrix=i.getLocation("positionsDecodeMatrix"),this._uModelMatrix=i.getLocation("modelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0,i=!!e._geometry._state.compressGeometry,r=[];r.push("#version 300 es"),r.push("// Surface picking vertex shader"),r.push("in vec3 position;"),r.push("in vec4 color;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec3 offset;"),s&&(r.push("uniform bool clippable;"),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;"));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("out vec4 vColor;"),i&&r.push("uniform mat4 positionsDecodeMatrix;");r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),i&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push(" vec4 worldPosition = modelMatrix * localPosition; "),r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition;"),s&&r.push(" vWorldPosition = worldPosition;");r.push(" vColor = color;"),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,i=s.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Surface 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"),r.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(i){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }"),r.push("}")}t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push(" outColor = vColor;"),r.push("}"),r}(e)}}const gs=A.vec3(),vs=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Es(t),this._allocate(t)},Is={};vs.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=Is[t];if(!s){if(s=new vs(t,e),s.errors)return console.log(s.errors.join("\n")),null;Is[t]=s,p.memory.programs++}return s._useCount++,s},vs.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Is[this._hash],p.memory.programs--)},vs.prototype.webglContextRestored=function(){this._program=null},vs.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,i=s.canvas.gl,r=t._state,o=t._material._state,n=t._geometry,a=t._geometry._state,l=t.origin,h=o.backfaces,c=o.frontface,u=s.camera.project,A=n._getPickTrianglePositions(),p=n._getPickTriangleColors();if(this._program.bind(),e.useProgram++,s.logarithmicDepthBufferEnabled){const e=2/(Math.log(u.far+1)/Math.LN2);i.uniform1f(this._uLogDepthBufFC,e)}if(i.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(r.originHash,l):e.pickViewMatrix),r.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),r=s._sectionPlanesState.sectionPlanes.length;if(e>0){const o=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,i=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Mesh occlusion vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform vec3 offset;"),i&&n.push("uniform mat4 positionsDecodeMatrix;");s&&n.push("out vec4 vWorldPosition;");t.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;"));"spherical"!==r&&"cylindrical"!==r||(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),n.push("vec4 worldPosition;"),i&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"),n.push("billboard(modelViewMatrix);"),n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));s&&n.push(" vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = clipPos;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,i=s.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Mesh 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"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(i){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}r.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push("}"),r}(e)}}const Ts=A.vec3(),Ps=function(e,t){this._hash=e,this._shaderSource=new _s(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},bs={};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=bs[t];if(!s){if(s=new Ps(t,e),s.errors)return console.log(s.errors.join("\n")),null;bs[t]=s,p.memory.programs++}return s._useCount++,s},Ps.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete bs[this._hash],p.memory.programs--)},Ps.prototype.webglContextRestored=function(){this._program=null},Ps.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,i=s.canvas.gl,r=t._material._state,o=t._state,n=t._geometry._state,a=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),r.id!==this._lastMaterialId){const t=r.backfaces;e.backfaces!==t&&(t?i.disable(i.CULL_FACE):i.enable(i.CULL_FACE),e.backfaces=t);const s=r.frontface;e.frontface!==s&&(s?i.frontFace(i.CCW):i.frontFace(i.CW),e.frontface=s),this._lastMaterialId=r.id}const l=s.camera;if(i.uniformMatrix4fv(this._uViewMatrix,!1,a?e.getRTCViewMatrix(o.originHash,a):l.viewMatrix),o.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),r=s._sectionPlanesState.sectionPlanes.length;if(e>0){const o=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,i=[];i.push("// Mesh shadow vertex shader"),i.push("in vec3 position;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 shadowViewMatrix;"),i.push("uniform mat4 shadowProjMatrix;"),i.push("uniform vec3 offset;"),s&&i.push("uniform mat4 positionsDecodeMatrix;");t&&i.push("out vec4 vWorldPosition;");i.push("void main(void) {"),i.push("vec4 localPosition = vec4(position, 1.0); "),i.push("vec4 worldPosition;"),s&&i.push("localPosition = positionsDecodeMatrix * localPosition;");i.push("worldPosition = modelMatrix * localPosition;"),i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&i.push("vWorldPosition = worldPosition;");return i.push(" gl_Position = shadowProjMatrix * viewPosition;"),i.push("}"),i}(e),this.fragment=function(e){const t=e.scene;t.canvas.gl;const s=t._sectionPlanesState,i=s.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("// Mesh shadow 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"),i){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}return r.push("outColor = encodeFloat(gl_FragCoord.z);"),r.push("}"),r}(e)}}const Ds=function(e,t){this._hash=e,this._shaderSource=new Rs(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Cs={};Ds.get=function(e){const t=e.scene,s=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let i=Cs[s];if(!i){if(i=new Ds(s,e),i.errors)return console.log(i.errors.join("\n")),null;Cs[s]=i,p.memory.programs++}return i._useCount++,i},Ds.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Cs[this._hash],p.memory.programs--)},Ds.prototype.webglContextRestored=function(){this._program=null},Ds.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene.canvas.gl,i=t._material._state,r=t._geometry._state;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?s.disable(s.CULL_FACE):s.enable(s.CULL_FACE),e.backfaces=t);const r=i.frontface;e.frontface!==r&&(r?s.frontFace(s.CCW):s.frontFace(s.CW),e.frontface=r),e.lineWidth!==i.lineWidth&&(s.lineWidth(i.lineWidth),e.lineWidth=i.lineWidth),this._uPointSize&&s.uniform1i(this._uPointSize,i.pointSize),this._lastMaterialId=i.id}if(s.uniformMatrix4fv(this._uModelMatrix,s.FALSE,t.worldMatrix),r.combineGeometry){const i=t.vertexBufs;i.id!==this._lastVertexBufsId&&(i.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(i.positionsBuf,i.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),this._lastVertexBufsId=i.id)}this._uClippable&&s.uniform1i(this._uClippable,t._state.clippable),s.uniform3fv(this._uOffset,t._state.offset),r.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&s.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,r.positionsDecodeMatrix),r.combineGeometry?r.indicesBufCombined&&(r.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(r.positionsBuf,r.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),r.indicesBuf&&(r.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=r.id),r.combineGeometry?r.indicesBufCombined&&(s.drawElements(r.primitive,r.indicesBufCombined.numItems,r.indicesBufCombined.itemType,0),e.drawElements++):r.indicesBuf?(s.drawElements(r.primitive,r.indicesBuf.numItems,r.indicesBuf.itemType,0),e.drawElements++):r.positions&&(s.drawArrays(s.TRIANGLES,0,r.positions.numItems),e.drawArrays++)},Ds.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Ce(s,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uPositionsDecodeMatrix=i.getLocation("positionsDecodeMatrix"),this._uModelMatrix=i.getLocation("modelMatrix"),this._uShadowViewMatrix=i.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=i.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0){let e,t,r,o,n;for(let a=0,l=this._uSectionPlanes.length;a0)for(let s=0;s0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this.glRedraw()}}const ks=function(){const e=A.vec3(),t=A.vec3(),s=A.vec3(),i=A.vec3(),r=A.vec3(),o=A.vec3(),n=A.vec4(),a=A.vec3(),l=A.vec3(),h=A.vec3(),c=A.vec3(),u=A.vec3(),p=A.vec3(),d=A.vec3(),f=A.vec3(),m=A.vec3(),y=A.vec4(),E=A.vec4(),g=A.vec4(),v=A.vec3(),I=A.vec3(),_=A.vec3(),T=A.vec3(),P=A.vec3(),b=A.vec3(),R=A.vec3(),D=A.vec3(),C=A.vec3(),N=A.vec3(),O=A.vec3();return function(x,S,w,M){var B=M.primIndex;if(null!=B&&B>-1){const H=x.geometry._state,G=x.scene,V=G.camera,j=G.canvas;if("triangles"===H.primitiveName){M.primitive="triangle";const G=B,Q=H.indices,W=H.positions;let z,K,Y;if(Q){var F=Q[G+0],L=Q[G+1],U=Q[G+2];o[0]=F,o[1]=L,o[2]=U,M.indices=o,z=3*F,K=3*L,Y=3*U}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],i[0]=W[K+0],i[1]=W[K+1],i[2]=W[K+2],r[0]=W[Y+0],r[1]=W[Y+1],r[2]=W[Y+2],H.compressGeometry){const e=H.positionsDecodeMatrix;e&&(Ct.decompressPosition(s,e,s),Ct.decompressPosition(i,e,i),Ct.decompressPosition(r,e,r))}M.canvasPos?A.canvasPosToLocalRay(j.canvas,x.origin?k(S,x.origin):S,w,x.worldMatrix,M.canvasPos,e,t):M.origin&&M.direction&&A.worldRayToLocalRay(x.worldMatrix,M.origin,M.direction,e,t),A.normalizeVec3(t),A.rayPlaneIntersect(e,t,s,i,r,n),M.localPos=n,M.position=n,y[0]=n[0],y[1]=n[1],y[2]=n[2],y[3]=1,A.transformVec4(x.worldMatrix,y,E),a[0]=E[0],a[1]=E[1],a[2]=E[2],M.canvasPos&&x.origin&&(a[0]+=x.origin[0],a[1]+=x.origin[1],a[2]+=x.origin[2]),M.worldPos=a,A.transformVec4(V.matrix,E,g),l[0]=g[0],l[1]=g[1],l[2]=g[2],M.viewPos=l,A.cartesianToBarycentric(n,s,i,r,h),M.bary=h;const X=H.normals;if(X){if(H.compressGeometry){const e=3*F,t=3*L,s=3*U;Ct.decompressNormal(X.subarray(e,e+2),c),Ct.decompressNormal(X.subarray(t,t+2),u),Ct.decompressNormal(X.subarray(s,s+2),p)}else c[0]=X[z],c[1]=X[z+1],c[2]=X[z+2],u[0]=X[K],u[1]=X[K+1],u[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(c,h[0],v),A.mulVec3Scalar(u,h[1],I),_),A.mulVec3Scalar(p,h[2],T),P);M.worldNormal=A.normalizeVec3(A.transformVec3(x.worldNormalMatrix,e,b))}const Z=H.uv;if(Z){if(d[0]=Z[2*F],d[1]=Z[2*F+1],f[0]=Z[2*L],f[1]=Z[2*L+1],m[0]=Z[2*U],m[1]=Z[2*U+1],H.compressGeometry){const e=H.uvDecodeMatrix;e&&(Ct.decompressUV(d,e,d),Ct.decompressUV(f,e,f),Ct.decompressUV(m,e,m))}M.uv=A.addVec3(A.addVec3(A.mulVec2Scalar(d,h[0],R),A.mulVec2Scalar(f,h[1],D),C),A.mulVec2Scalar(m,h[2],N),O)}}}}}();function Vs(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 i=e.height||1;i<0&&(console.error("negative height not allowed - will invert"),i*=-1);let r=e.radialSegments||32;r<0&&(console.error("negative radialSegments not allowed - will invert"),r*=-1),r<3&&(r=3);let o=e.heightSegments||1;o<0&&(console.error("negative heightSegments not allowed - will invert"),o*=-1),o<1&&(o=1);const n=!!e.openEnded;let a=e.center;const l=a?a[0]:0,h=a?a[1]:0,c=a?a[2]:0,u=i/2,A=i/o,p=2*Math.PI/r,d=1/r,f=(t-s)/o,m=[],E=[],g=[],v=[];let I,_,T,P,b,R,D,C,N,O,x;const S=(90-180*Math.atan(i/(s-t))/Math.PI)/90;for(I=0;I<=o;I++)for(b=t-I*f,R=u-I*A,_=0;_<=r;_++)T=Math.sin(_*p),P=Math.cos(_*p),E.push(b*T),E.push(S),E.push(b*P),g.push(_*d),g.push(1*I/o),m.push(b*T+l),m.push(R+h),m.push(b*P+c);for(I=0;I0){for(N=m.length/3,E.push(0),E.push(1),E.push(0),g.push(.5),g.push(.5),m.push(0+l),m.push(u+h),m.push(0+c),_=0;_<=r;_++)T=Math.sin(_*p),P=Math.cos(_*p),O=.5*Math.sin(_*p)+.5,x=.5*Math.cos(_*p)+.5,E.push(t*T),E.push(1),E.push(t*P),g.push(O),g.push(x),m.push(t*T+l),m.push(u+h),m.push(t*P+c);for(_=0;_0){for(N=m.length/3,E.push(0),E.push(-1),E.push(0),g.push(.5),g.push(.5),m.push(0+l),m.push(0-u+h),m.push(0+c),_=0;_<=r;_++)T=Math.sin(_*p),P=Math.cos(_*p),O=.5*Math.sin(_*p)+.5,x=.5*Math.cos(_*p)+.5,E.push(s*T),E.push(-1),E.push(s*P),g.push(O),g.push(x),m.push(s*T+l),m.push(0-u+h),m.push(s*P+c);for(_=0;_0!==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,i=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 o=ti(s,this.wrapS);o&&s.texParameteri(this.target,s.TEXTURE_WRAP_S,o);const n=ti(s,this.wrapT);if(n&&s.texParameteri(this.target,s.TEXTURE_WRAP_T,n),this.type===s.TEXTURE_3D||this.type===s.TEXTURE_2D_ARRAY){const e=ti(s,this.wrapR);e&&s.texParameteri(this.target,s.TEXTURE_WRAP_R,e),s.texParameteri(this.type,s.TEXTURE_WRAP_R,e)}r?(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,oi(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,oi(s,this.magFilter))):(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,ti(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,ti(s,this.magFilter)));const a=ti(s,this.format,this.encoding),l=ti(s,this.type),h=ri(s,this.internalFormat,a,l,this.encoding,!1);s.texStorage2D(s.TEXTURE_2D,i,h,e[0].width,e[0].height);for(let t=0,i=e.length;t>t;return e+1}class hi extends O{get type(){return"Texture"}constructor(e,t={}){super(e,t),this._state=new Xe({texture:new ii({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),p.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 ii({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=ni(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=ni(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(),p.memory.textures--}}const ci=p.memory,ui=A.AABB3();class Ai extends vt{get type(){return"VBOGeometry"}get isVBOGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Xe({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,i=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=i.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=i.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=i.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=i.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=i.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=i.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=i.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=i.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(t.indices){var r;if(t.positionsDecodeMatrix);else{const e=Ct.getPositionsBounds(t.positions),o=Ct.compressPositions(t.positions,e.min,e.max);r=o.quantized,s.positionsDecodeMatrix=o.decodeMatrix,s.positionsBuf=new Ne(i,i.ARRAY_BUFFER,r,r.length,3,i.STATIC_DRAW),ci.positions+=s.positionsBuf.numItems,A.positions3ToAABB3(t.positions,this._aabb),A.positions3ToAABB3(r,ui,s.positionsDecodeMatrix),A.AABB3ToOBB3(ui,this._obb)}if(t.colors){const e=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors);s.colorsBuf=new Ne(i,i.ARRAY_BUFFER,e,e.length,4,i.STATIC_DRAW),ci.colors+=s.colorsBuf.numItems}if(t.uv){const e=Ct.getUVBounds(t.uv),r=Ct.compressUVs(t.uv,e.min,e.max),o=r.quantized;s.uvDecodeMatrix=r.decodeMatrix,s.uvBuf=new Ne(i,i.ARRAY_BUFFER,o,o.length,2,i.STATIC_DRAW),ci.uvs+=s.uvBuf.numItems}if(t.normals){const e=Ct.compressNormals(t.normals);let r=s.compressGeometry;s.normalsBuf=new Ne(i,i.ARRAY_BUFFER,e,e.length,3,i.STATIC_DRAW,r),ci.normals+=s.normalsBuf.numItems}{const e=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices);s.indicesBuf=new Ne(i,i.ELEMENT_ARRAY_BUFFER,e,e.length,1,i.STATIC_DRAW),ci.indices+=s.indicesBuf.numItems;const o=It(r,e,s.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Ne(i,i.ELEMENT_ARRAY_BUFFER,o,o.length,1,i.STATIC_DRAW),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)}this._buildHash(),ci.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(),ci.meshes--}}var pi={};function di(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 i=e.xSegments||1;i<0&&(console.error("negative xSegments not allowed - will invert"),i*=-1),i<1&&(i=1);let r=e.xSegments||1;r<0&&(console.error("negative zSegments not allowed - will invert"),r*=-1),r<1&&(r=1);const o=e.center,n=o?o[0]:0,a=o?o[1]:0,l=o?o[2]:0,h=t/2,c=s/2,u=Math.floor(i)||1,A=Math.floor(r)||1,p=u+1,d=A+1,f=t/u,m=s/A,E=new Float32Array(p*d*3),g=new Float32Array(p*d*3),v=new Float32Array(p*d*2);let I,_,T,P,b,R,D,C=0,N=0;for(I=0;I65535?Uint32Array:Uint16Array)(u*A*6);for(I=0;I360&&(o=360);const n=e.center;let a=n?n[0]:0,l=n?n[1]:0;const h=n?n[2]:0,c=[],u=[],p=[],d=[];let f,m,E,g,v,I,_,T,P,b,R,D;for(T=0;T<=r;T++)for(_=0;_<=i;_++)f=_/i*o,m=.785398+T/r*Math.PI*2,a=t*Math.cos(f),l=t*Math.sin(f),E=(t+s*Math.cos(m))*Math.cos(f),g=(t+s*Math.cos(m))*Math.sin(f),v=s*Math.sin(m),c.push(E+a),c.push(g+l),c.push(v+h),p.push(1-_/i),p.push(T/r),I=A.normalizeVec3(A.subVec3([E,g,v],[a,l,h],[]),[]),u.push(I[0]),u.push(I[1]),u.push(I[2]);for(T=1;T<=r;T++)for(_=1;_<=i;_++)P=(i+1)*T+_-1,b=(i+1)*(T-1)+_-1,R=(i+1)*(T-1)+_,D=(i+1)*T+_,d.push(P),d.push(b),d.push(R),d.push(R),d.push(D),d.push(P);return y.apply(e,{positions:c,normals:u,uv:p,indices:d})}pi.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()},pi.save=function(e,t){var s="data:application/octet-stream;base64,"+btoa(pi.parse._buffToStr(e));window.location.href=s},pi.clone=function(e){return JSON.parse(JSON.stringify(e))},pi.bin={},pi.bin.f=new Float32Array(1),pi.bin.fb=new Uint8Array(pi.bin.f.buffer),pi.bin.rf=function(e,t){for(var s=pi.bin.f,i=pi.bin.fb,r=0;r<4;r++)i[r]=e[t+r];return s[0]},pi.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},pi.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},pi.bin.rASCII0=function(e,t){for(var s="";0!=e[t];)s+=String.fromCharCode(e[t++]);return s},pi.bin.wf=function(e,t,s){new Float32Array(e.buffer,t,1)[0]=s},pi.bin.wsl=function(e,t,s){e[t]=s,e[t+1]=s>>8},pi.bin.wil=function(e,t,s){e[t]=s,e[t+1]=s>>8,e[t+2]=s>>16,e[t+3]},pi.parse={},pi.parse._buffToStr=function(e){for(var t=new Uint8Array(e),s="",i=0;ir&&(r=l),ho&&(o=h),cn&&(n=c)}return{min:{x:t,y:s,z:i},max:{x:r,y:o,z:n}}};class mi extends O{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 hi(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 ei(this,{matrix:A.inverseMat4(A.lookAtMat4v(this._pos,A.subVec3(this._pos,this._normal,A.mat4()),this._up,A.mat4())),children:[this._bitmapMesh=new Gs(this,{scale:[1,1,1],rotation:[-90,0,0],collidable:t.collidable,pickable:t.pickable,opacity:t.opacity,clippable:t.clippable,geometry:new xt(this,di({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new Ft(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 yi=A.OBB3(),Ei=A.OBB3(),gi=A.OBB3();class vi{constructor(e,t,s,i,r,o,n=null,a=0){this.model=e,this.object=null,this.parent=null,this.transform=r,this.textureSet=o,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=t,this.obb=null,this._aabbLocal=null,this._aabbWorld=A.AABB3(),this._aabbWorldDirty=!1,this.layer=n,this.portionId=a,this._color=new Uint8Array([s[0],s[1],s[2],i]),this._colorize=new Uint8Array([s[0],s[1],s[2],i]),this._colorizing=!1,this._transparent=i<255,this.numTriangles=0,this.origin=null,this.entity=null,r&&r._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,i=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),i&&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,i){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,s,i)}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,yi),this.transform?(A.transformOBB3(this.transform.worldMatrix,yi,Ei),A.transformOBB3(this.model.worldMatrix,Ei,gi),A.OBB3ToAABB3(gi,this._aabbWorld)):(A.transformOBB3(this.model.worldMatrix,yi,Ei),A.OBB3ToAABB3(Ei,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 Ii=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 _i=0;const Ti={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},Pi=new Float32Array([1,1,1,1]),bi=new Float32Array([0,0,0,1]),Ri=A.vec4(),Di=A.vec3(),Ci=A.vec3(),Ni=A.mat4();class Oi{constructor(e,t=!1,{instancing:s=!1,edges:i=!1}={}){this._scene=e,this._withSAO=t,this._instancing=s,this._edges=i,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:i,layerIndex:r}=e,o=t._sectionPlanesState.getNumAllocatedSectionPlanes(),n=t._sectionPlanesState.sectionPlanes.length;if(o>0){const a=t._sectionPlanesState.sectionPlanes,l=r*n,h=i.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)%o,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)%o,e.bindTexture++),this._withSAO){const t=n.sao;if(t.possible){const s=a.drawingBufferWidth,i=a.drawingBufferHeight;Ri[0]=s,Ri[1]=i,Ri[2]=t.blendCutoff,Ri[3]=t.blendFactor,a.uniform4fv(this._uSAOParams,Ri),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%o,e.bindTexture++}}if(i){const e=this._edges?"edgeColor":"fillColor",t=this._edges?"edgeAlpha":"fillAlpha";if(s===Ti[(this._edges?"EDGES":"SILHOUETTE")+"_XRAYED"]){const s=n.xrayMaterial._state,i=s[e],r=s[t];a.uniform4f(this._uColor,i[0],i[1],i[2],r)}else if(s===Ti[(this._edges?"EDGES":"SILHOUETTE")+"_HIGHLIGHTED"]){const s=n.highlightMaterial._state,i=s[e],r=s[t];a.uniform4f(this._uColor,i[0],i[1],i[2],r)}else if(s===Ti[(this._edges?"EDGES":"SILHOUETTE")+"_SELECTED"]){const s=n.selectedMaterial._state,i=s[e],r=s[t];a.uniform4f(this._uColor,i[0],i[1],i[2],r)}else a.uniform4fv(this._uColor,this._edges?bi:Pi)}this._draw({state:l,frameCtx:e,incrementDrawState:r}),a.bindVertexArray(null)}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null,p.memory.programs--}}class xi extends Oi{constructor(e,t,{edges:s=!1}={}){super(e,t,{instancing:!1,edges:s})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:i,incrementDrawState:r}=e;if(this._edges)t.drawElements(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0);else{const e=i.pickElementsCount||s.indicesBuf.numItems,o=i.pickElementsOffset?i.pickElementsOffset*s.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,e,s.indicesBuf.itemType,o),r&&i.drawElements++}}}class Si extends xi{_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,i=t.getNumAllocatedSectionPlanes()>0;let r;const o=[];o.push("#version 300 es"),o.push("// Triangles batching draw vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in float flags;"),e.entityOffsetsEnabled&&o.push("in vec3 offset;"),this._addMatricesUniformBlockLines(o,!0),e.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;");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("}"),i&&(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 = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),o.push("vec3 viewNormal = normalize((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;");for(let e=0,t=s.lights.length;e0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching 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("}")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(i.push(" float viewportWidth = uSAOParams[0];"),i.push(" float viewportHeight = uSAOParams[1];"),i.push(" float blendCutoff = uSAOParams[2];"),i.push(" float blendFactor = uSAOParams[3];"),i.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),i.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),i.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):i.push(" outColor = vColor;"),i.push("}"),i}}class wi extends xi{_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,i=s.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching flat-shading 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("}")),i){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}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 ) );");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, color.a ));"),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,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Triangles batching silhouette 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"),e.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("outColor = vColor;"),o.push("}"),o}}class Bi extends xi{constructor(e){super(e,!1,{instancing:!1,edges:!0})}}class Fi extends Bi{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("// EdgesEmphasisRenderer 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,i=[];if(i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class Li extends Bi{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!1})}_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry edges drawing 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class Ui extends xi{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry 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"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vPickColor; "),i.push("}"),i}}class Hi extends xi{_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,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching pick depth 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;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class Gi extends xi{_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,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching pick normals 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(` outNormal = ivec4(vWorldNormal * float(${A.MAX_INT}), 1.0);`),i.push("}"),i}}class ki extends xi{_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 Vi extends xi{_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,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching depth fragment shader"),i.push("precision highp float;"),i.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),i.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),i.push("}"),i}}class ji extends xi{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}class Qi extends xi{_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 i=0;i 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = encodeFloat( gl_FragCoord.z); "),s.push("}"),s}}class Wi extends xi{_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,i=t.getNumAllocatedSectionPlanes()>0,r=t.clippingCaps,o=[];return o.push("#version 300 es"),o.push("// Triangles batching quality draw vertex shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("precision highp usampler2D;"),o.push("precision highp isampler2D;"),o.push("precision highp sampler2D;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("precision mediump usampler2D;"),o.push("precision mediump isampler2D;"),o.push("precision mediump sampler2D;"),o.push("#endif"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in vec2 uv;"),o.push("in vec2 metallicRoughness;"),o.push("in float flags;"),e.entityOffsetsEnabled&&o.push("in vec3 offset;"),this._addMatricesUniformBlockLines(o,!0),o.push("uniform mat3 uvDecodeMatrix;"),e.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("vec3 octDecode(vec2 oct) {"),o.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),o.push(" if (v.z < 0.0) {"),o.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);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),o.push("out vec4 vViewPosition;"),o.push("out vec3 vViewNormal;"),o.push("out vec4 vColor;"),o.push("out vec2 vUV;"),o.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&o.push("out vec3 vWorldNormal;"),i&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;"),r&&o.push("out vec4 vClipPosition;")),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 = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),o.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),o.push("vFragDepth = 1.0 + clipPos.w;")),i&&(o.push("vWorldPosition = worldPosition;"),o.push("vFlags = flags;"),r&&o.push("vClipPosition = clipPos;")),o.push("vViewPosition = viewPosition;"),o.push("vViewNormal = viewNormal;"),o.push("vColor = color;"),o.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),o.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&o.push("vWorldNormal = worldNormal.xyz;"),o.push("gl_Position = clipPos;"),o.push("}"),o.push("}"),o}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,i=e._lightsState,r=s.getNumAllocatedSectionPlanes()>0,o=s.clippingCaps,n=[];n.push("#version 300 es"),n.push("// Triangles batching quality 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;")),n.push("uniform sampler2D uColorMap;"),n.push("uniform sampler2D uMetallicRoughMap;"),n.push("uniform sampler2D uEmissiveMap;"),n.push("uniform sampler2D uNormalMap;"),n.push("uniform sampler2D uAOMap;"),n.push("in vec4 vViewPosition;"),n.push("in vec3 vViewNormal;"),n.push("in vec4 vColor;"),n.push("in vec2 vUV;"),n.push("in vec2 vMetallicRoughness;"),i.lightMaps.length>0&&n.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(n,!0),i.reflectionMaps.length>0&&n.push("uniform samplerCube reflectionMap;"),i.lightMaps.length>0&&n.push("uniform samplerCube lightMap;"),n.push("uniform vec4 lightAmbient;");for(let e=0,t=i.lights.length;e0&&(n.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),n.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),n.push(" return envMapColor;"),n.push("}")),n.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),n.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),n.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),n.push("}"),n.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" return 1.0 / ( gl * gv );"),n.push("}"),n.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" return 0.5 / max( gv + gl, EPSILON );"),n.push("}"),n.push("float D_GGX(const in float alpha, const in float dotNH) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),n.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float alpha = ( roughness * roughness );"),n.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),n.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),n.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),n.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),n.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),n.push(" vec3 F = F_Schlick( specularColor, dotLH );"),n.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),n.push(" float D = D_GGX( alpha, dotNH );"),n.push(" return F * (G * D);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),n.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),n.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),n.push(" vec4 r = roughness * c0 + c1;"),n.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),n.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),n.push(" return specularColor * AB.x + AB.y;"),n.push("}"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&(n.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),i.lightMaps.length>0&&(n.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),n.push(" irradiance *= PI;"),n.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),i.reflectionMaps.length>0&&(n.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),n.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),n.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),n.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),n.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),n.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),n.push("}")),n.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),n.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),n.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),n.push("}"),n.push("out vec4 outColor;"),n.push("void main(void) {"),r){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),n.push(" discard;"),n.push(" }"),n.push(" if (dist > 0.0) { "),n.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" return;"),n.push("}")):(n.push(" if (dist > 0.0) { "),n.push(" discard;"),n.push(" }")),n.push("}")}n.push("IncidentLight light;"),n.push("Material material;"),n.push("Geometry geometry;"),n.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),n.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),n.push("float opacity = float(vColor.a) / 255.0;"),n.push("vec3 baseColor = rgb;"),n.push("float specularF0 = 1.0;"),n.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),n.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),n.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),n.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),n.push("baseColor *= colorTexel.rgb;"),n.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),n.push("metallic *= metalRoughTexel.b;"),n.push("roughness *= metalRoughTexel.g;"),n.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),n.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),n.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),n.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),n.push("geometry.position = vViewPosition.xyz;"),n.push("geometry.viewNormal = -normalize(viewNormal);"),n.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),i.lightMaps.length>0&&n.push("geometry.worldNormal = normalize(vWorldNormal);"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&n.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=i.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,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching pick flat normals 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;")),i.push("in vec4 vWorldPosition;"),s){i.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(` outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),i.push("}"),i}}class Ki extends xi{_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,i=e._sectionPlanesState,r=i.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Triangles batching color texture 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"),e.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("}"),t&&(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("}")),r){o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { "),o.push(" discard;"),o.push(" }"),o.push("}")}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 ) );");for(let e=0,t=s.lights.length;e0,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 i=0;i 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 er=A.vec3(),tr=A.vec3(),sr=A.vec3(),ir=A.vec3(),rr=A.mat4();class or extends Oi{_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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=er;let m,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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=tr;if(l){const e=sr;A.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,rr),y=ir,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(a.edgeIndicesBuf.bind(),n.drawElements(n.LINES,a.edgeIndicesBuf.numItems,a.edgeIndicesBuf.itemType,0),a.edgeIndicesBuf.unbind()):n.drawArrays(n.POINTS,0,a.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 i=0;i 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 nr{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._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=null),this._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=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._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),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new Mi(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Ui(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Hi(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new $i(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new or(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Si(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Si(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new wi(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new wi(this._scene,!0)),this._flatColorRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new Ki(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new Ki(this._scene,!0)),this._colorTextureRendererWithSAO}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new Wi(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new Wi(this._scene,!0)),this._pbrRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Mi(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Vi(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new ji(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new Fi(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Li(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Ui(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Gi(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new zi(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Hi(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new ki(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new Qi(this._scene)),this._shadowRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new or(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new $i(this._scene)),this._snapInitRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.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._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const ar={};let lr=65536,hr=5e6;class cr{constructor(){}set doublePrecisionEnabled(e){A.setDoublePrecisionEnabled(e)}get doublePrecisionEnabled(){return A.getDoublePrecisionEnabled()}set maxDataTextureHeight(e){(e=1024*Math.ceil(e/1024))>4096?e=4096:e<1024&&(e=1024),lr=e}get maxDataTextureHeight(){return lr}set maxGeometryBatchSize(e){e<1e5?e=1e5:e>5e6&&(e=5e6),hr=e}get maxGeometryBatchSize(){return hr}}const ur=new cr;class Ar{constructor(){this.maxVerts=ur.maxGeometryBatchSize,this.maxIndices=3*ur.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]}}const pr=A.mat4(),dr=A.mat4();function fr(e,t,s){const i=e.length,r=new Uint16Array(i),o=t[0],n=t[1],a=t[2],l=t[3]-o,h=t[4]-n,c=t[5]-a,u=65525,p=u/l,d=u/h,f=u/c,m=e=>e>=0?e:0;for(let t=0;t=0?1:-1),t=(1-Math.abs(i))*(r>=0?1:-1),i=e,r=t}return new Int8Array([Math[t](127.5*i+(i<0?-1:0)),Math[s](127.5*r+(r<0?-1:0))])}function Er(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const i=1-Math.abs(t)-Math.abs(s);i<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const r=Math.sqrt(t*t+s*s+i*i);return[t/r,s/r,i/r]}const gr=A.mat4(),vr=A.mat4(),Ir=A.vec4([0,0,0,1]),_r=A.vec3(),Tr=A.vec3(),Pr=A.vec3(),br=A.vec3(),Rr=A.vec3(),Dr=A.vec3(),Cr=A.vec3();class Nr{constructor(e){console.info("Creating VBOBatchingTrianglesLayer"),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._renderers=function(e){const t=e.id;let s=ar[t];return s||(s=new nr(e),ar[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete ar[t],s._destroy()}))),s}(e.model.scene),this._buffer=new Ar(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Xe({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=o.length;e0){const e=gr;y?A.inverseMat4(A.transposeMat4(y,vr),e):A.identityMat4(e,e),function(e,t,s,i,r){function o(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}let n,a,l,h,c,u,p=new Float32Array([0,0,0,0]),d=new Float32Array([0,0,0,0]);for(u=0;uc&&(l=n,c=h),n=yr(d,"floor","ceil"),a=Er(n),h=o(d,a),h>c&&(l=n,c=h),n=yr(d,"ceil","ceil"),a=Er(n),h=o(d,a),h>c&&(l=n,c=h),i[r+u+0]=l[0],i[r+u+1]=l[1],i[r+u+2]=0}(e,r,r.length,v.normals,v.normals.length)}if(l)for(let e=0,t=l.length;e0)for(let e=0,t=n.length;e0)for(let e=0,t=a.length;e0){const i=this._state.positionsDecodeMatrix?new Uint16Array(s.positions):fr(s.positions,this._modelAABB,this._state.positionsDecodeMatrix=A.mat4());if(e.positionsBuf=new Ne(t,t.ARRAY_BUFFER,i,i.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(let e=0,t=this._portions.length;e0){const i=new Int8Array(s.normals);let r=!0;e.normalsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.normals.length,3,t.STATIC_DRAW,r)}if(s.colors.length>0){const i=new Uint8Array(s.colors);let r=!1;e.colorsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.colors.length,4,t.DYNAMIC_DRAW,r)}if(s.uv.length>0)if(e.uvDecodeMatrix){let i=!1;e.uvBuf=new Ne(t,t.ARRAY_BUFFER,s.uv,s.uv.length,2,t.STATIC_DRAW,i)}else{const i=Ct.getUVBounds(s.uv),r=Ct.compressUVs(s.uv,i.min,i.max),o=r.quantized;let n=!1;e.uvDecodeMatrix=A.mat3(r.decodeMatrix),e.uvBuf=new Ne(t,t.ARRAY_BUFFER,o,o.length,2,t.STATIC_DRAW,n)}if(s.metallicRoughness.length>0){const i=new Uint8Array(s.metallicRoughness);let r=!1;e.metallicRoughnessBuf=new Ne(t,t.ARRAY_BUFFER,i,s.metallicRoughness.length,2,t.STATIC_DRAW,r)}if(s.positions.length>0){const i=s.positions.length/3,r=new Float32Array(i),o=!1;e.flagsBuf=new Ne(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(s.pickColors.length>0){const i=new Uint8Array(s.pickColors);let r=!1;e.pickColorsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.pickColors.length,4,t.STATIC_DRAW,r)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const i=new Float32Array(s.offsets);e.offsetsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const i=new Uint32Array(s.indices);e.indicesBuf=new Ne(t,t.ELEMENT_ARRAY_BUFFER,i,s.indices.length,1,t.STATIC_DRAW)}if(s.edgeIndices.length>0){const i=new Uint32Array(s.edgeIndices);e.edgeIndicesBuf=new Ne(t,t.ELEMENT_ARRAY_BUFFER,i,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&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&z&&(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&W?(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&Z?(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&$?(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&Y?(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&z?(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&K?(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,i=this._portions[s],r=4*i.vertsBaseIndex,o=4*i.numVerts,n=this._scratchMemory.getUInt8Array(o),a=t[0],l=t[1],h=t[2],c=t[3];for(let e=0;eE)&&(E=e,i.set(g),r&&A.triangleNormal(d,f,m,r),y=!0)}}return y&&r&&(A.transformVec3(this.model.worldNormalMatrix,r,r),A.normalizeVec3(r)),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 Or extends Oi{constructor(e,t,{edges:s=!1}={}){super(e,t,{instancing:!0,edges:s})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:i,incrementDrawState:r}=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),r&&i.drawElements++)}}class xr extends Or{_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,i=t.getNumAllocatedSectionPlanes()>0;let r,o,n;const a=[];for(a.push("#version 300 es"),a.push("// Instancing geometry drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec2 normal;"),a.push("in vec4 color;"),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),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;"),r=0,o=s.lights.length;r= 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 = 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), 0.0);"),a.push("vec3 viewNormal = normalize(vec4(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;"),r=0,o=s.lights.length;r0,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry drawing 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("}")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(i.push(" float viewportWidth = uSAOParams[0];"),i.push(" float viewportHeight = uSAOParams[1];"),i.push(" float blendCutoff = uSAOParams[2];"),i.push(" float blendFactor = uSAOParams[3];"),i.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),i.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),i.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):i.push(" outColor = vColor;"),i.push("}"),i}}class Sr extends Or{_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 i,r;const o=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry flat-shading 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("}")),o){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("}")}for(n.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),n.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),n.push("float lambertian = 1.0;"),n.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),n.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),n.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),i=0,r=s.lights.length;i0,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,i=[];if(i.push("#version 300 es"),i.push("// Instancing fill 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class Mr extends Or{constructor(e,t){super(e,t,{instancing:!0,edges:!0})}}class Br extends Mr{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("// EdgesEmphasisRenderer 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 = worldMatrix * 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,i=[];if(i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class Fr extends Mr{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!1})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// EdgesColorRenderer 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,i=[];if(i.push("#version 300 es"),i.push("// EdgesColorRenderer 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class Lr extends Or{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry 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"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vPickColor; "),i.push("}"),i}}class Ur extends Or{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry depth 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;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class Hr extends Or{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(` outNormal = ivec4(vWorldNormal * float(${A.MAX_INT}), 1.0);`),i.push("}"),i}}class Gr extends Or{_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 kr extends Or{_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,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Instancing geometry depth drawing fragment shader"),o.push("precision highp float;"),o.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),o.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),o.push("}"),o}}class Vr extends Or{_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,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry depth drawing 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}class jr extends Or{_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,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry depth drawing 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}const Qr={3e3:"linearToLinear",3001:"sRGBToLinear"};class Wr extends Or{_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,i=t.getNumAllocatedSectionPlanes()>0,r=t.clippingCaps,o=[];return o.push("#version 300 es"),o.push("// Instancing geometry quality drawing vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in vec2 uv;"),o.push("in vec2 metallicRoughness;"),o.push("in float flags;"),e.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),o.push("uniform mat3 uvDecodeMatrix;"),e.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("vec3 octDecode(vec2 oct) {"),o.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),o.push(" if (v.z < 0.0) {"),o.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);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),o.push("out vec4 vViewPosition;"),o.push("out vec3 vViewNormal;"),o.push("out vec4 vColor;"),o.push("out vec2 vUV;"),o.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&o.push("out vec3 vWorldNormal;"),i&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;"),r&&o.push("out vec4 vClipPosition;")),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);"),e.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), 1.0);"),o.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("vFragDepth = 1.0 + clipPos.w;"),o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i&&(o.push("vWorldPosition = worldPosition;"),o.push("vFlags = flags;"),r&&o.push("vClipPosition = clipPos;")),o.push("vViewPosition = viewPosition;"),o.push("vViewNormal = viewNormal;"),o.push("vColor = color;"),o.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),o.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&o.push("vWorldNormal = worldNormal.xyz;"),o.push("gl_Position = clipPos;"),o.push("}"),o.push("}"),o}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,i=e._lightsState,r=s.getNumAllocatedSectionPlanes()>0,o=s.clippingCaps,n=[];n.push("#version 300 es"),n.push("// Instancing geometry quality 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;")),n.push("uniform sampler2D uColorMap;"),n.push("uniform sampler2D uMetallicRoughMap;"),n.push("uniform sampler2D uEmissiveMap;"),n.push("uniform sampler2D uNormalMap;"),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("}")),i.reflectionMaps.length>0&&n.push("uniform samplerCube reflectionMap;"),i.lightMaps.length>0&&n.push("uniform samplerCube lightMap;"),n.push("uniform vec4 lightAmbient;");for(let e=0,t=i.lights.length;e0&&n.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(n,!0),n.push("#define PI 3.14159265359"),n.push("#define RECIPROCAL_PI 0.31830988618"),n.push("#define RECIPROCAL_PI2 0.15915494"),n.push("#define EPSILON 1e-6"),n.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),n.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),n.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),n.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),n.push(" return normalize(surf_norm );"),n.push(" }"),n.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),n.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),n.push(" vec2 st0 = dFdx( uv.st );"),n.push(" vec2 st1 = dFdy( uv.st );"),n.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),n.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),n.push(" vec3 N = normalize( surf_norm );"),n.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),n.push(" mat3 tsn = mat3( S, T, N );"),n.push(" return normalize( tsn * mapN );"),n.push("}"),n.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),n.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),n.push("}"),n.push("struct IncidentLight {"),n.push(" vec3 color;"),n.push(" vec3 direction;"),n.push("};"),n.push("struct ReflectedLight {"),n.push(" vec3 diffuse;"),n.push(" vec3 specular;"),n.push("};"),n.push("struct Geometry {"),n.push(" vec3 position;"),n.push(" vec3 viewNormal;"),n.push(" vec3 worldNormal;"),n.push(" vec3 viewEyeDir;"),n.push("};"),n.push("struct Material {"),n.push(" vec3 diffuseColor;"),n.push(" float specularRoughness;"),n.push(" vec3 specularColor;"),n.push(" float shine;"),n.push("};"),n.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),n.push(" float r = ggxRoughness + 0.0001;"),n.push(" return (2.0 / (r * r) - 2.0);"),n.push("}"),n.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),n.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),n.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),n.push("}"),i.reflectionMaps.length>0&&(n.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),n.push(" vec3 envMapColor = "+Qr[i.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),n.push(" return envMapColor;"),n.push("}")),n.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),n.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),n.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),n.push("}"),n.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" return 1.0 / ( gl * gv );"),n.push("}"),n.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" return 0.5 / max( gv + gl, EPSILON );"),n.push("}"),n.push("float D_GGX(const in float alpha, const in float dotNH) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),n.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float alpha = ( roughness * roughness );"),n.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),n.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),n.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),n.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),n.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),n.push(" vec3 F = F_Schlick( specularColor, dotLH );"),n.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),n.push(" float D = D_GGX( alpha, dotNH );"),n.push(" return F * (G * D);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),n.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),n.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),n.push(" vec4 r = roughness * c0 + c1;"),n.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),n.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),n.push(" return specularColor * AB.x + AB.y;"),n.push("}"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&(n.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),i.lightMaps.length>0&&(n.push(" vec3 irradiance = "+Qr[i.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),n.push(" irradiance *= PI;"),n.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),i.reflectionMaps.length>0&&(n.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),n.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),n.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),n.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),n.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),n.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),n.push("}")),n.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),n.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),n.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),n.push("}"),n.push("out vec4 outColor;"),n.push("void main(void) {"),r){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),n.push(" discard;"),n.push(" }"),n.push(" if (dist > 0.0) { "),n.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" return;"),n.push("}")):(n.push(" if (dist > 0.0) { "),n.push(" discard;"),n.push(" }")),n.push("}")}n.push("IncidentLight light;"),n.push("Material material;"),n.push("Geometry geometry;"),n.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),n.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),n.push("float opacity = float(vColor.a) / 255.0;"),n.push("vec3 baseColor = rgb;"),n.push("float specularF0 = 1.0;"),n.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),n.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),n.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),n.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),n.push("baseColor *= colorTexel.rgb;"),n.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),n.push("metallic *= metalRoughTexel.b;"),n.push("roughness *= metalRoughTexel.g;"),n.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),n.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),n.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),n.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),n.push("geometry.position = vViewPosition.xyz;"),n.push("geometry.viewNormal = -normalize(viewNormal);"),n.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),i.lightMaps.length>0&&n.push("geometry.worldNormal = normalize(vWorldNormal);"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&n.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=i.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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals 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;")),i.push("in vec4 vWorldPosition;"),s){i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(` outNormal = ivec4(worldNormal * float(${A.MAX_INT}), 1.0);`),i.push("}"),i}}class Kr extends Or{_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,i=e._lightsState;let r,o;const n=s.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry 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"),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("}")),n){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}for(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 ) );"),r=0,o=i.lights.length;r0,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 eo=A.vec3(),to=A.vec3(),so=A.vec3(),io=A.vec3(),ro=A.mat4();class oo extends Oi{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=eo;let m,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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=to;if(l){const e=A.transformPoint3(c,l,so);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,ro),y=io,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(a.edgeIndicesBuf.bind(),n.drawElementsInstanced(n.LINES,a.edgeIndicesBuf.numItems,a.edgeIndicesBuf.itemType,0,a.numInstances),a.edgeIndicesBuf.unbind()):n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.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 no{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._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=null),this._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=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._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new wr(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Lr(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Ur(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new $r(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new oo(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new xr(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new xr(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new Sr(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new Sr(this._scene,!0)),this._flatColorRendererWithSAO}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new Wr(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new Wr(this._scene,!0)),this._pbrRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new Kr(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new Kr(this._scene,!0)),this._colorTextureRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new wr(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new kr(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Vr(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new Br(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Fr(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Lr(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Hr(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new zr(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Ur(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Gr(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new jr(this._scene)),this._shadowRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new $r(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new oo(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.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._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const ao={};const lo=new Uint8Array(4),ho=new Float32Array(1),co=A.vec4([0,0,0,1]),uo=new Float32Array(3),Ao=A.vec3(),po=A.vec3(),fo=A.vec3(),mo=A.vec3(),yo=A.vec3(),Eo=A.vec3(),go=A.vec3(),vo=new Float32Array(4);class Io{constructor(e){console.info("Creating VBOInstancingTrianglesLayer"),this.model=e.model,this.sortId="TrianglesInstancingLayer"+(e.solid?"-solid":"-surface")+(e.normals?"-normals":"-autoNormals"),this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=ao[t];return s||(s=new no(e),ao[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete ao[t],s._destroy()}))),s}(e.model.scene),this._aabb=A.collapseAABB3(),this._state=new Xe({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 Ne(i,i.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,i.DYNAMIC_DRAW,t),this._colors=[]}if(this._metallicRoughness.length>0){const t=new Uint8Array(this._metallicRoughness);let s=!1;e.metallicRoughnessBuf=new Ne(i,i.ARRAY_BUFFER,t,this._metallicRoughness.length,2,i.STATIC_DRAW,s)}if(o>0){let t=!1;e.flagsBuf=new Ne(i,i.ARRAY_BUFFER,new Float32Array(o),o,1,i.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;e.offsetsBuf=new Ne(i,i.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,i.DYNAMIC_DRAW,t),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){const s=!1;e.positionsBuf=new Ne(i,i.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,i.STATIC_DRAW,s),e.positionsDecodeMatrix=A.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){const s=new Uint8Array(t.colorsCompressed),r=!1;e.colorsBuf=new Ne(i,i.ARRAY_BUFFER,s,s.length,4,i.STATIC_DRAW,r)}if(t.uvCompressed&&t.uvCompressed.length>0){const s=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new Ne(i,i.ARRAY_BUFFER,s,s.length,2,i.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new Ne(i,i.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,i.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new Ne(i,i.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,i.STATIC_DRAW)),this._modelMatrixCol0.length>0){const t=!1;e.modelMatrixCol0Buf=new Ne(i,i.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,i.STATIC_DRAW,t),e.modelMatrixCol1Buf=new Ne(i,i.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,i.STATIC_DRAW,t),e.modelMatrixCol2Buf=new Ne(i,i.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,i.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new Ne(i,i.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,i.STATIC_DRAW,t),e.modelNormalMatrixCol1Buf=new Ne(i,i.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,i.STATIC_DRAW,t),e.modelNormalMatrixCol2Buf=new Ne(i,i.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,i.STATIC_DRAW,t),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){const t=!1;e.pickColorsBuf=new Ne(i,i.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,i.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&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&z&&(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&W?(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&Z?(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&$?(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&Y?(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&K?(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&z?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";lo[0]=t[0],lo[1]=t[1],lo[2]=t[2],lo[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(lo,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 i=!!(t&W),r=!!(t&Z),o=!!(t&q),n=!!(t&J),a=!!(t&$),l=!!(t&K),h=!!(t&z);let c,u;c=!i||h||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?Ti.NOT_RENDERED:s?Ti.COLOR_TRANSPARENT:Ti.COLOR_OPAQUE,u=!i||h?Ti.NOT_RENDERED:n?Ti.SILHOUETTE_SELECTED:o?Ti.SILHOUETTE_HIGHLIGHTED:r?Ti.SILHOUETTE_XRAYED:Ti.NOT_RENDERED;let A=0;A=!i||h?Ti.NOT_RENDERED:n?Ti.EDGES_SELECTED:o?Ti.EDGES_HIGHLIGHTED:r?Ti.EDGES_XRAYED:a?s?Ti.EDGES_COLOR_TRANSPARENT:Ti.EDGES_COLOR_OPAQUE:Ti.NOT_RENDERED;let p=0;p|=c,p|=u<<4,p|=A<<8,p|=(i&&!h&&l?Ti.PICK:Ti.NOT_RENDERED)<<12,p|=(t&Y?1:0)<<16,ho[0]=p,this._state.flagsBuf&&this._state.flagsBuf.setData(ho,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(uo[0]=t[0],uo[1]=t[1],uo[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(uo,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,i=s.geometry,r=this._portions[e];if(!r)return void this.model.error("portion not found: "+e);const o=i.quantizedPositions,n=s.origin,a=r.offset,l=n[0]+a[0],h=n[1]+a[1],c=n[2]+a[2],u=co,p=r.matrix,d=this.model.sceneModelMatrix,f=s.positionsDecodeMatrix;for(let e=0,s=o.length;eg)&&(g=e,i.set(v),r&&A.triangleNormal(f,m,y,r),E=!0)}}return E&&r&&(A.transformVec3(a.normalMatrix,r,r),A.transformVec3(this.model.worldNormalMatrix,r,r),A.normalizeVec3(r)),E}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 _o extends Oi{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:i,incrementDrawState:r}=e;t.drawElements(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0),r&&i.drawElements++}}class To extends _o{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,i=[];if(i.push("#version 300 es"),i.push("// Lines batching color 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class Po extends _o{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,i=[];if(i.push("#version 300 es"),i.push("// Lines batching silhouette 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = color;"),i.push("}"),i}}const bo=A.vec3(),Ro=A.vec3(),Do=A.vec3(),Co=A.vec3(),No=A.mat4();class Oo extends Oi{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=bo;let m,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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=Ro;if(l){const e=Do;A.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,No),y=Co,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),a.indicesBuf.bind(),n.drawElements(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0),a.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 i=0;i 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 xo=A.vec3(),So=A.vec3(),wo=A.vec3(),Mo=A.vec3(),Bo=A.mat4();class Fo extends Oi{_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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=xo;let m,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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=So;if(l){const e=wo;A.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,Bo),y=Mo,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(a.indicesBuf.bind(),n.drawElements(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0),a.indicesBuf.unbind()):n.drawArrays(n.POINTS,0,a.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 i=0;i 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 Lo{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._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new To(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Po(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Oo(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Fo(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Uo={};class Ho{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]}}class Go{constructor(e){console.info("Creating VBOBatchingLinesLayer"),this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=Uo[t];return s||(s=new Lo(e),Uo[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Uo[t],s._destroy()}))),s}(e.model.scene),this.model=e.model,this._buffer=new Ho(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Xe({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 i=new Uint16Array(s.positions);e.positionsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.positions.length,3,t.STATIC_DRAW)}else{const i=fr(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const i=new Uint8Array(s.colors);let r=!1;e.colorsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.colors.length,4,t.DYNAMIC_DRAW,r)}if(s.colors.length>0){const i=s.colors.length/4,r=new Float32Array(i);let o=!1;e.flagsBuf=new Ne(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const i=new Float32Array(s.offsets);e.offsetsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const i=new Uint32Array(s.indices);e.indicesBuf=new Ne(t,t.ELEMENT_ARRAY_BUFFER,i,s.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&z&&(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&W?(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&Z?(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&$?(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&Y?(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&z?(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&K?(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,i=4*this._portions[s],r=4*this._portions[s+1],o=this._scratchMemory.getUInt8Array(r),n=t[0],a=t[1],l=t[2],h=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,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Lines instancing color 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return this._withSAO?(o.push(" float viewportWidth = uSAOParams[0];"),o.push(" float viewportHeight = uSAOParams[1];"),o.push(" float blendCutoff = uSAOParams[2];"),o.push(" float blendFactor = uSAOParams[3];"),o.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),o.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),o.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):o.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("}"),o}}class jo extends ko{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,i=[];if(i.push("#version 300 es"),i.push("// Lines instancing silhouette 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = color;"),i.push("}"),i}}const Qo=A.vec3(),Wo=A.vec3(),zo=A.vec3();A.vec3();const Ko=A.mat4();class Yo extends Oi{constructor(e){super(e,!1,{instancing:!0})}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 i=t.model,r=i.scene,o=r.canvas.gl,n=r.camera,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||n.viewMatrix;this._vaoCache.has(t)?o.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=Qo;let m;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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=Wo;if(l){const e=A.transformPoint3(c,l,zo);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,Ko),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,e.snapVectorA),o.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),o.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,f),o.uniform1i(this._uRenderPass,s),o.uniform1i(this._uPickInvisible,e.pickInvisible);let y=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,y+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,y+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,y+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),o.vertexAttribDivisor(this._aModelMatrixCol0.location,1),o.vertexAttribDivisor(this._aModelMatrixCol1.location,1),o.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags&&(this._aFlags.bindArrayBuffer(a.flagsBuf),o.vertexAttribDivisor(this._aFlags.location,1)),a.indicesBuf.bind(),o.drawElementsInstanced(o.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0,a.numInstances),a.indicesBuf.unbind(),o.vertexAttribDivisor(this._aModelMatrixCol0.location,0),o.vertexAttribDivisor(this._aModelMatrixCol1.location,0),o.vertexAttribDivisor(this._aModelMatrixCol2.location,0),this._aFlags&&o.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&o.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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("// 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 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("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Xo=A.vec3(),Zo=A.vec3(),qo=A.vec3();A.vec3();const Jo=A.mat4();class $o extends Oi{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=Xo;let m;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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=Zo;if(l){const e=A.transformPoint3(c,l,qo);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,Jo),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let y=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,y+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,y+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,y+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(a.indicesBuf.bind(),n.drawElementsInstanced(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0,a.numInstances),a.indicesBuf.unbind()):n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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 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 en{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._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._snapInitRenderer||(this._snapInitRenderer=new Yo(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new $o(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Vo(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new jo(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Yo(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new $o(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const tn={};const sn=new Uint8Array(4),rn=new Float32Array(1),on=new Float32Array(3),nn=new Float32Array(4);class an{constructor(e){console.info("VBOInstancingLinesLayer"),this.model=e.model,this.material=e.material,this.sortId="LinesInstancingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=tn[t];return s||(s=new en(e),tn[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete tn[t],s._destroy()}))),s}(e.model.scene),this._aabb=A.collapseAABB3(),this._state=new Xe({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 Ne(e,e.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,e.DYNAMIC_DRAW,t),this._colors=[]}if(r>0){let t=!1;this._state.flagsBuf=new Ne(e,e.ARRAY_BUFFER,new Float32Array(r),r,1,e.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;this._state.offsetsBuf=new Ne(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(s.colorsCompressed&&s.colorsCompressed.length>0){const i=new Uint8Array(s.colorsCompressed),r=!1;t.colorsBuf=new Ne(e,e.ARRAY_BUFFER,i,i.length,4,e.STATIC_DRAW,r)}if(s.positionsCompressed&&s.positionsCompressed.length>0){const i=!1;t.positionsBuf=new Ne(e,e.ARRAY_BUFFER,s.positionsCompressed,s.positionsCompressed.length,3,e.STATIC_DRAW,i),t.positionsDecodeMatrix=A.mat4(s.positionsDecodeMatrix)}if(s.indices&&s.indices.length>0&&(t.indicesBuf=new Ne(e,e.ELEMENT_ARRAY_BUFFER,new Uint32Array(s.indices),s.indices.length,1,e.STATIC_DRAW),t.numIndices=s.indices.length),this._modelMatrixCol0.length>0){const t=!1;this._state.modelMatrixCol0Buf=new Ne(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol1Buf=new Ne(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol2Buf=new Ne(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&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&z&&(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&W?(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&Z?(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&$?(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&Y?(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&K?(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&z?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";sn[0]=t[0],sn[1]=t[1],sn[2]=t[2],sn[3]=t[3],this._state.colorsBuf.setData(sn,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 i=!!(t&W),r=!!(t&Z),o=!!(t&q),n=!!(t&J),a=!!(t&$),l=!!(t&K),h=!!(t&z);let c,u;c=!i||h||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?Ti.NOT_RENDERED:s?Ti.COLOR_TRANSPARENT:Ti.COLOR_OPAQUE,u=!i||h?Ti.NOT_RENDERED:n?Ti.SILHOUETTE_SELECTED:o?Ti.SILHOUETTE_HIGHLIGHTED:r?Ti.SILHOUETTE_XRAYED:Ti.NOT_RENDERED;let A=0;A=!i||h?Ti.NOT_RENDERED:n?Ti.EDGES_SELECTED:o?Ti.EDGES_HIGHLIGHTED:r?Ti.EDGES_XRAYED:a?s?Ti.EDGES_COLOR_TRANSPARENT:Ti.EDGES_COLOR_OPAQUE:Ti.NOT_RENDERED;let p=0;p|=c,p|=u<<4,p|=A<<8,p|=(i&&!h&&l?Ti.PICK:Ti.NOT_RENDERED)<<12,p|=(t&Y?255:0)<<16,rn[0]=p,this._state.flagsBuf.setData(rn,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(on[0]=t[0],on[1]=t[1],on[2]=t[2],this._state.offsetsBuf.setData(on,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;nn[0]=t[0],nn[1]=t[4],nn[2]=t[8],nn[3]=t[12],this._state.modelMatrixCol0Buf.setData(nn,s),nn[0]=t[1],nn[1]=t[5],nn[2]=t[9],nn[3]=t[13],this._state.modelMatrixCol1Buf.setData(nn,s),nn[0]=t[2],nn[1]=t[6],nn[2]=t[10],nn[3]=t[14],this._state.modelMatrixCol2Buf.setData(nn,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ti.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ti.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ti.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ti.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ti.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesXRayed(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,Ti.PICK)}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,Ti.PICK)}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 ln extends Oi{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:i,incrementDrawState:r}=e;t.drawArrays(t.POINTS,0,s.positionsBuf.numItems),r&&i.drawArrays++}}class hn extends ln{_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,i=[];return i.push("#version 300 es"),i.push("// Points batching color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),s.filterIntensity&&i.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),s.filterIntensity&&(i.push("float intensity = float(color.a) / 255.0;"),i.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {")),i.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),s.filterIntensity&&i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batching color 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class cn extends ln{_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,i=[];return i.push("#version 300 es"),i.push("// Points batching silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec4 color;"),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Points batching silhouette vertex 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s 1.0) {"),o.push(" discard;"),o.push(" }")),r){for(o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("outColor = color;"),o.push("}"),o}}class un extends ln{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batching pick mesh vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("gl_PointSize += 10.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batching pick mesh vertex 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var r=0;r 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vPickColor; "),i.push("}"),i}}class An extends ln{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batched pick depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("gl_PointSize += 10.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batched pick depth 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class pn extends ln{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batching occlusion vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push(" gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batching 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"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),i.push("}"),i}}const dn=A.vec3(),fn=A.vec3(),mn=A.vec3(),yn=A.vec3(),En=A.mat4();class gn extends Oi{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=dn;let m,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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=fn;if(l){const e=mn;A.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,En),y=yn,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),n.drawArrays(n.POINTS,0,a.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,s=[];return s.push("#version 300 es"),s.push("// VBOBatchingPointsSnapInitRenderer 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("// VBOBatchingPointsSnapInitRenderer 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 i=0;i 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("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const vn=A.vec3(),In=A.vec3(),_n=A.vec3(),Tn=A.vec3(),Pn=A.mat4();class bn extends Oi{_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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=vn;let m,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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=In;if(l){const e=_n;A.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,Pn),y=Tn,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),n.drawArrays(n.POINTS,0,a.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("// VBOBatchingPointsSnapRenderer 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("// VBOBatchingPointsSnapRenderer 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 i=0;i 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 Rn{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),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new hn(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new cn(this._scene)),this._silhouetteRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new un(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new An(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new pn(this._scene)),this._occlusionRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new gn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new bn(this._scene)),this._snapRenderer}_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(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Dn={};class Cn{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 Nn{constructor(e){console.info("Creating VBOBatchingPointsLayer"),this.model=e.model,this.sortId="PointsBatchingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=Dn[t];return s||(s=new Rn(e),Dn[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Dn[t],s._destroy()}))),s}(e.model.scene),this._buffer=new Cn(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Xe({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 i=new Uint16Array(s.positions);e.positionsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.positions.length,3,t.STATIC_DRAW)}else{const i=fr(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const i=new Uint8Array(s.colors);let r=!1;e.colorsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.colors.length,4,t.STATIC_DRAW,r)}if(s.positions.length>0){const i=s.positions.length/3,r=new Float32Array(i);let o=!1;e.flagsBuf=new Ne(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(s.pickColors.length>0){const i=new Uint8Array(s.pickColors);let r=!1;e.pickColorsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.pickColors.length,4,t.STATIC_DRAW,r)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const i=new Float32Array(s.offsets);e.offsetsBuf=new Ne(t,t.ARRAY_BUFFER,i,s.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&z&&(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&W?(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&Z?(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&Y?(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&z?(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&K?(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,i=4*this._portions[s],r=4*this._portions[s+1],o=this._scratchMemory.getUInt8Array(r),n=t[0],a=t[1],l=t[2];for(let e=0;e0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),s.filterIntensity&&i.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),s.filterIntensity&&(i.push("float intensity = float(color.a) / 255.0;"),i.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {")),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),s.filterIntensity&&i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing color 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class Sn extends On{_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,i=[];return i.push("#version 300 es"),i.push("// Points instancing silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 color;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),i.push("uniform vec4 silhouetteColor;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing silhouette 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class wn extends On{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing pick mesh vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick mesh 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vPickColor; "),i.push("}"),i}}class Mn extends On{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing pick depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push(" vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick depth 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class Bn extends On{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing occlusion vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing occlusion vertex 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class Fn extends On{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Points instancing depth vertex 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s 1.0) {"),o.push(" discard;"),o.push(" }")),r){for(o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return o.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("}"),o}}class Ln extends On{_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,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry depth drawing 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),i.push(" discard;"),i.push(" }"),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}const Un=A.vec3(),Hn=A.vec3(),Gn=A.vec3();A.vec3();const kn=A.mat4();class Vn extends Oi{constructor(e){super(e,!1,{instancing:!0})}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 i=t.model,r=i.scene,o=r.canvas.gl,n=r.camera,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||n.viewMatrix;this._vaoCache.has(t)?o.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=Un;let m;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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=Hn;if(l){const e=A.transformPoint3(c,l,Gn);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,kn),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,e.snapVectorA),o.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),o.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,f),o.uniform1i(this._uRenderPass,s),o.uniform1i(this._uPickInvisible,e.pickInvisible);let y=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,y+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,y+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,y+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),o.vertexAttribDivisor(this._aModelMatrixCol0.location,1),o.vertexAttribDivisor(this._aModelMatrixCol1.location,1),o.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags&&(this._aFlags.bindArrayBuffer(a.flagsBuf),o.vertexAttribDivisor(this._aFlags.location,1)),o.drawArraysInstanced(o.POINTS,0,a.positionsBuf.numItems,a.numInstances),o.vertexAttribDivisor(this._aModelMatrixCol0.location,0),o.vertexAttribDivisor(this._aModelMatrixCol1.location,0),o.vertexAttribDivisor(this._aModelMatrixCol2.location,0),this._aFlags&&o.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&o.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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("// 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 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("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const jn=A.vec3(),Qn=A.vec3(),Wn=A.vec3();A.vec3();const zn=A.mat4();class Kn extends Oi{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=jn;let m;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]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=Qn;if(l){const e=A.transformPoint3(c,l,Wn);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=k(d,t,zn),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let y=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,y+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,y+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,y+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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 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 Yn{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),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new xn(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Sn(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Fn(this._scene)),this._depthRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new wn(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Mn(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Bn(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new Ln(this._scene)),this._shadowRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Vn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Kn(this._scene)),this._snapRenderer}_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(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Xn={};const Zn=new Uint8Array(4),qn=new Float32Array(1),Jn=new Float32Array(3),$n=new Float32Array(4);class ea{constructor(e){console.info("VBOInstancingPointsLayer"),this.model=e.model,this.material=e.material,this.sortId="PointsInstancingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=Xn[t];return s||(s=new Yn(e),Xn[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Xn[t],s._destroy()}))),s}(e.model.scene),this._aabb=A.collapseAABB3(),this._state=new Xe({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 i=!1;s.flagsBuf=new Ne(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;s.offsetsBuf=new Ne(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(i.positionsCompressed&&i.positionsCompressed.length>0){const t=!1;s.positionsBuf=new Ne(e,e.ARRAY_BUFFER,i.positionsCompressed,i.positionsCompressed.length,3,e.STATIC_DRAW,t),s.positionsDecodeMatrix=A.mat4(i.positionsDecodeMatrix)}if(i.colorsCompressed&&i.colorsCompressed.length>0){const t=new Uint8Array(i.colorsCompressed),r=!1;s.colorsBuf=new Ne(e,e.ARRAY_BUFFER,t,t.length,4,e.STATIC_DRAW,r)}if(this._modelMatrixCol0.length>0){const t=!1;s.modelMatrixCol0Buf=new Ne(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),s.modelMatrixCol1Buf=new Ne(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),s.modelMatrixCol2Buf=new Ne(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 Ne(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&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&z&&(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&W?(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&Z?(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&$?(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&Y?(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&K?(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&z?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";Zn[0]=t[0],Zn[1]=t[1],Zn[2]=t[2],this._state.colorsBuf.setData(Zn,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 i=!!(t&W),r=!!(t&Z),o=!!(t&q),n=!!(t&J),a=!!(t&$),l=!!(t&K),h=!!(t&z);let c,u;c=!i||h||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?Ti.NOT_RENDERED:s?Ti.COLOR_TRANSPARENT:Ti.COLOR_OPAQUE,u=!i||h?Ti.NOT_RENDERED:n?Ti.SILHOUETTE_SELECTED:o?Ti.SILHOUETTE_HIGHLIGHTED:r?Ti.SILHOUETTE_XRAYED:Ti.NOT_RENDERED;let A=0;A=!i||h?Ti.NOT_RENDERED:n?Ti.EDGES_SELECTED:o?Ti.EDGES_HIGHLIGHTED:r?Ti.EDGES_XRAYED:a?s?Ti.EDGES_COLOR_TRANSPARENT:Ti.EDGES_COLOR_OPAQUE:Ti.NOT_RENDERED;let p=0;p|=c,p|=u<<4,p|=A<<8,p|=(i&&!h&&l?Ti.PICK:Ti.NOT_RENDERED)<<12,p|=(t&Y?255:0)<<16,qn[0]=p,this._state.flagsBuf.setData(qn,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Jn[0]=t[0],Jn[1]=t[1],Jn[2]=t[2],this._state.offsetsBuf.setData(Jn,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;$n[0]=t[0],$n[1]=t[4],$n[2]=t[8],$n[3]=t[12],this._state.modelMatrixCol0Buf.setData($n,s),$n[0]=t[1],$n[1]=t[5],$n[2]=t[9],$n[3]=t[13],this._state.modelMatrixCol1Buf.setData($n,s),$n[0]=t[2],$n[1]=t[6],$n[2]=t[10],$n[3]=t[14],this._state.modelMatrixCol2Buf.setData($n,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ti.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ti.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ti.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ti.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ti.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._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(t,this,Ti.COLOR_OPAQUE)}drawShadow(e,t){}drawPickMesh(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(t,this,Ti.PICK)}drawPickDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(t,this,Ti.PICK)}drawPickNormals(e,t){}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,Ti.PICK)}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,Ti.PICK)}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()}}const ta=A.vec3(),sa=A.vec3(),ia=A.mat4();class ra{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=o,d=r.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uPerObjectDecodeMatrix,this._uPerVertexPosition,this.uPerObjectColorAndFlags,this._uPerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=ta;if(m){const t=A.transformPoint3(u,h,sa);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],f=k(d,e,ia)}else f=d;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const E=i._sectionPlanesState.getNumAllocatedSectionPlanes(),g=i._sectionPlanesState.sectionPlanes.length;if(E>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,r=o.renderFlags;for(let t=0;t0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,8),n.drawArrays(n.LINES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,16),n.drawArrays(n.LINES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,32),n.drawArrays(n.LINES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// LinesDataTextureColorRenderer"),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 uPerObjectDecodeMatrix;"),s.push("uniform highp sampler2D uPerObjectMatrix;"),s.push("uniform lowp usampler2D uPerObjectColorAndFlags;"),s.push("uniform mediump usampler2D uPerVertexPosition;"),s.push("uniform highp usampler2D uPerLineIndices;"),s.push("uniform mediump usampler2D uPerLineObject;"),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 lineIndex = gl_VertexID / 2;"),s.push(" int h_packed_object_id_index = (lineIndex >> 3) & 4095;"),s.push(" int v_packed_object_id_index = (lineIndex >> 3) >> 12;"),s.push(" int objectIndex = int(texelFetch(uPerLineObject, 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 (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, 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 (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push(" ivec4 packedLineIndexBaseOffset = ivec4(texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push(" int lineIndexBaseOffset = (packedLineIndexBaseOffset.r << 24) + (packedLineIndexBaseOffset.g << 16) + (packedLineIndexBaseOffset.b << 8) + packedLineIndexBaseOffset.a;"),s.push(" int h_index = (lineIndex - lineIndexBaseOffset) & 4095;"),s.push(" int v_index = (lineIndex - lineIndexBaseOffset) >> 12;"),s.push(" ivec3 vertexIndices = ivec3(texelFetch(uPerLineIndices, 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 (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push(" mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push(" uvec4 flags = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push(" vec3 position = vec3(texelFetch(uPerVertexPosition, ivec2(indexPositionH, indexPositionV), 0));"),s.push(" uvec4 color = texelFetch (uPerObjectColorAndFlags, 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,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// LinesDataTextureColorRenderer 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class oa{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null)}eagerCreateRenders(){}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new ra(this._scene,!1)),this._colorRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy()}}const na={};class aa{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perLineNumberPortionId8Bits=[],this.perLineNumberPortionId16Bits=[],this.perLineNumberPortionId32Bits=[]}}class la{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerLineIdPortionIds8Bits=null,this.texturePerLineIdPortionIds16Bits=null,this.texturePerLineIdPortionIds32Bits=null,this.texturePerLineIdIndices8Bits=null,this.texturePerLineIdIndices16Bits=null,this.texturePerLineIdIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerLineIdIndices8Bits,16:this.texturePerLineIdIndices16Bits,32:this.texturePerLineIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerLineIdPortionIds8Bits,16:this.texturePerLineIdPortionIds16Bits,32:this.texturePerLineIdPortionIds32Bits}}bindCommonTextures(e,t,s,i,r){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,s,2),this.texturePerObjectColorsAndFlags.bindTexture(e,i,3),this.texturePerObjectInstanceMatrices.bindTexture(e,r,4)}bindLineIndicesTextures(e,t,s,i){this.indicesPortionIdsPerBitnessTextures[i].bindTexture(e,t,5),this.indicesPerBitnessTextures[i].bindTexture(e,s,6)}}class ha{constructor(e,t,s,i,r=null){this._gl=e,this._texture=t,this._textureWidth=s,this._textureHeight=i,this._textureData=r}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 ca={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalLines:0,totalLines8Bits:0,totalLines16Bits:0,totalLines32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(ca,null,4));let e=0;Object.keys(ca).forEach((t=>{t.startsWith("size")&&(e+=ca[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/ca.totalLines).toFixed(2)}`);let t={};Object.keys(ca).forEach((s=>{s.startsWith("size")&&(t[s]=`${(ca[s]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class ua{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,i,r){const o=t.length;this.numPortions=o;const n=4096,a=Math.ceil(o/512);if(0===a)throw"texture height===0";const l=new Uint8Array(16384*a);ca.sizeDataColorsAndFlags+=l.byteLength,ca.numberOfTextures++;for(let e=0;e>24&255,i[e]>>16&255,i[e]>>8&255,255&i[e]],32*e+16),l.set([r[e]>>24&255,r[e]>>16&255,r[e]>>8&255,255&r[e]],32*e+20);const h=e.createTexture();return e.bindTexture(e.TEXTURE_2D,h),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,n,a),e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA_INTEGER,e.UNSIGNED_BYTE,l,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 ha(e,h,n,a,l)}generateTextureForObjectOffsets(e,t){const s=512,i=Math.ceil(t/s);if(0===i)throw"texture height===0";const r=new Float32Array(1536*i).fill(0);ca.sizeDataTextureOffsets+=r.byteLength,ca.numberOfTextures++;const o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,s,i),e.texSubImage2D(e.TEXTURE_2D,0,0,0,s,i,e.RGB,e.FLOAT,r,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 ha(e,o,s,i,r)}generateTextureForInstancingMatrices(e,t){const s=t.length;if(0===s)throw"num instance matrices===0";const i=2048,r=Math.ceil(s/512),o=new Float32Array(8192*r);ca.numberOfTextures++;for(let e=0;e{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete na[t],s._destroy()}))),s}(e.scene),this.model=e,this._buffer=new aa,this._dataTextureState=new la,this._dataTextureGenerator=new ua,this._state=new Xe({origin:A.vec3(t.origin),textureState:this._dataTextureState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits: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._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&&ca.cannotCreatePortion.because10BitsObjectId++;let s=this._numPortions+t<=65536;const i=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[i]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let i=0,r=0;e.buckets.forEach((e=>{i+=e.positionsCompressed.length/3,r+=e.indices.length/2})),(this._state.numVertices+i>4096*pa||t+r>4096*pa)&&ca.cannotCreatePortion.becauseTextureSize++,s&&=this._state.numVertices+i<=4096*pa&&t+r<=4096*pa}return s}createPortion(e,t){if(this._finalized)throw"Already finalized";const s=[];t.buckets.forEach(((e,i)=>{const r=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${i}`:`${t.id}#${i}`;let o=this._bucketGeometries[r];o||(o=this._createBucketGeometry(t,e),this._bucketGeometries[r]=o);const n=this._createSubPortion(t,o,e);s.push(n)}));const i=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(s),this.model.numPortions++,this._meshes.push(e),i}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/2/8)*2;ca.overheadSizeAlignementIndices+=2*(e-t.indices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.indices),t.indices=s}const s=t.positionsCompressed,i=t.indices,r=this._buffer;r.positionsCompressed.push(s);const o=r.lenPositionsCompressed/3,n=s.length/3;let a;r.lenPositionsCompressed+=s.length;let l=0;if(i){let e;l=i.length/2,n<=256?(e=r.indices8Bits,a=r.lenIndices8Bits/2,r.lenIndices8Bits+=i.length):n<=65536?(e=r.indices16Bits,a=r.lenIndices16Bits/2,r.lenIndices16Bits+=i.length):(e=r.indices32Bits,a=r.lenIndices32Bits/2,r.lenIndices32Bits+=i.length),e.push(i)}this._state.numVertices+=n,ca.numberOfGeometries++;return{vertexBase:o,numVertices:n,numLines:l,indicesBase:a}}_createSubPortion(e,t){const s=e.color,i=e.colors,r=e.opacity,o=e.meshMatrix,n=e.pickColor,a=this._buffer,l=this._state;a.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),a.perObjectInstancePositioningMatrices.push(o||Ea),a.perObjectSolid.push(!!e.solid),i?a.perObjectColors.push([255*i[0],255*i[1],255*i[2],255]):s&&a.perObjectColors.push([s[0],s[1],s[2],r]),a.perObjectPickColors.push(n),a.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?l.numIndices8Bits:t.numVertices<=65536?l.numIndices16Bits:l.numIndices32Bits,a.perObjectIndexBaseOffsets.push(e/2-t.indicesBase)}const h=this._subPortions.length;if(t.numLines>0){let e,s=2*t.numLines;t.numVertices<=256?(e=a.perLineNumberPortionId8Bits,l.numIndices8Bits+=s,ca.totalLines8Bits+=t.numLines):t.numVertices<=65536?(e=a.perLineNumberPortionId16Bits,l.numIndices16Bits+=s,ca.totalLines16Bits+=t.numLines):(e=a.perLineNumberPortionId32Bits,l.numIndices32Bits+=s,ca.totalLines32Bits+=t.numLines),ca.totalLines+=t.numLines;for(let s=0;s0&&(t.texturePerLineIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(s,i.indices8Bits,i.lenIndices8Bits)),i.lenIndices16Bits>0&&(t.texturePerLineIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(s,i.indices16Bits,i.lenIndices16Bits)),i.lenIndices32Bits>0&&(t.texturePerLineIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(s,i.indices32Bits,i.lenIndices32Bits)),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}))}initFlags(e,t,s){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&z&&(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&W?(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&Z?(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){}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Y?(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&z?(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&K?(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,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),i.texSubImage2D(i.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,i.RGBA_INTEGER,i.UNSIGNED_BYTE,fa))}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s,i=!1){const r=this._portionToSubPortionsMap[e];for(let e=0,o=r.length;e=10&&this._beginDeferredFlags(),u.bindTexture(u.TEXTURE_2D,c.texturePerObjectColorsAndFlags._texture),u.texSubImage2D(u.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,u.RGBA_INTEGER,u.UNSIGNED_BYTE,fa))}_setDeferredFlags(){}_setFlags2(e,t,s=!1){const i=this._portionToSubPortionsMap[e];for(let e=0,r=i.length;e=10&&this._beginDeferredFlags(),o.bindTexture(o.TEXTURE_2D,r.texturePerObjectColorsAndFlags._texture),o.texSubImage2D(o.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,o.RGBA_INTEGER,o.UNSIGNED_BYTE,fa))}_setDeferredFlags2(){}setOffset(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectOffsets._texture),i.texSubImage2D(i.TEXTURE_2D,0,0,e,1,1,i.RGB,i.FLOAT,ma))}setMatrix(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectInstanceMatrices._texture),i.texSubImage2D(i.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,i.RGBA,i.FLOAT,da))}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ti.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ti.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){}drawSilhouetteHighlighted(e,t){}drawSilhouetteSelected(e,t){}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawEdgesXRayed(e,t){}drawOcclusion(e,t){}drawShadow(e,t){}setPickMatrices(e,t){}drawPickMesh(e,t){}drawPickDepths(e,t){}drawSnapInit(e,t){}drawSnap(e,t){}drawPickNormals(e,t){}destroy(){if(this._destroyed)return;const e=this._state;this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}const va=A.vec3(),Ia=A.vec3(),_a=A.vec3();A.vec3();const Ta=A.vec4(),Pa=A.mat4();class ba{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=o;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=va;if(m){const t=A.transformPoint3(u,h,Ia);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=k(r.viewMatrix,e,Pa),f=_a,f[0]=r.eye[0]-e[0],f[1]=r.eye[1]-e[1],f[2]=r.eye[2]-e[2]}else d=r.viewMatrix,f=r.eye;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,f),n.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const E=i._sectionPlanesState.getNumAllocatedSectionPlanes(),g=i._sectionPlanesState.sectionPlanes.length;if(E>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl,s=e._lightsState;if(this._program=new Ce(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uLightAmbient=i.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];const r=s.lights;let o;for(let e=0,t=r.length;e0;let r;const o=[];o.push("#version 300 es"),o.push("// TrianglesDataTextureColorRenderer vertex shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("precision highp usampler2D;"),o.push("precision highp isampler2D;"),o.push("precision highp sampler2D;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("precision mediump usampler2D;"),o.push("precision mediump isampler2D;"),o.push("precision mediump sampler2D;"),o.push("#endif"),o.push("uniform int renderPass;"),o.push("uniform mat4 sceneModelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),o.push("uniform highp sampler2D uTexturePerObjectMatrix;"),o.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),o.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),o.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),o.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),o.push("uniform vec3 uCameraEyeRtc;"),o.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("out float isPerspective;")),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e> 3) & 4095;"),o.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),o.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),o.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),o.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),o.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),o.push("if (int(flags.x) != renderPass) {"),o.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),o.push(" return;"),o.push("} else {"),o.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),o.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),o.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),o.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),o.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),o.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),o.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),o.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),o.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),o.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));"),o.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));"),o.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),o.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),o.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),o.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),o.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),o.push("if (color.a == 0u) {"),o.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),o.push(" return;"),o.push("};"),o.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),o.push("vec3 position;"),o.push("position = positions[gl_VertexID % 3];"),o.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),o.push("if (solid != 1u) {"),o.push("if (isPerspectiveMatrix(projMatrix)) {"),o.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),o.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),o.push("position = positions[2 - (gl_VertexID % 3)];"),o.push("viewNormal = -viewNormal;"),o.push("}"),o.push("} else {"),o.push("if (viewNormal.z < 0.0) {"),o.push("position = positions[2 - (gl_VertexID % 3)];"),o.push("viewNormal = -viewNormal;"),o.push("}"),o.push("}"),o.push("}"),o.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),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;");for(let e=0,t=s.lights.length;e0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesDataTextureColorRenderer 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("}")),s){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(i.push(" float viewportWidth = uSAOParams[0];"),i.push(" float viewportHeight = uSAOParams[1];"),i.push(" float blendCutoff = uSAOParams[2];"),i.push(" float blendFactor = uSAOParams[3];"),i.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),i.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),i.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):i.push(" outColor = vColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Ra=new Float32Array([1,1,1]),Da=A.vec3(),Ca=A.vec3(),Na=A.vec3();A.vec3();const Oa=A.mat4();class xa{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=o,d=r.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f,m;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),h||0!==c[0]||0!==c[1]||0!==c[2]){const e=Da;if(h){const t=Ca;A.transformPoint3(u,h,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],f=k(d,e,Oa),m=Na,m[0]=r.eye[0]-e[0],m[1]=r.eye[1]-e[1],m[2]=r.eye[2]-e[2]}else f=d,m=r.eye;if(n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uWorldMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),s===Ti.SILHOUETTE_XRAYED){const e=i.xrayMaterial._state,t=e.fillColor,s=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Ti.SILHOUETTE_HIGHLIGHTED){const e=i.highlightMaterial._state,t=e.fillColor,s=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Ti.SILHOUETTE_SELECTED){const e=i.selectedMaterial._state,t=e.fillColor,s=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else n.uniform4fv(this._uColor,Ra);if(i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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 Sa=new Float32Array([0,0,0,1]),wa=A.vec3(),Ma=A.vec3();A.vec3();const Ba=A.mat4();class Fa{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=i,d=o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=wa;if(m){const t=A.transformPoint3(u,h,Ma);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],f=k(d,e,Ba)}else f=d;if(n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),s===Ti.EDGES_XRAYED){const e=r.xrayMaterial._state,t=e.edgeColor,s=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Ti.EDGES_HIGHLIGHTED){const e=r.highlightMaterial._state,t=e.edgeColor,s=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Ti.EDGES_SELECTED){const e=r.selectedMaterial._state,t=e.edgeColor,s=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else n.uniform4fv(this._uColor,Sa);const E=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(E>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,o=i.renderFlags;for(let t=0;t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(n.LINES,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(n.LINES,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(n.LINES,0,a.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// DTXTrianglesEdgesRenderer 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("// DTXTrianglesEdgesRenderer 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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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 La=A.vec3(),Ua=A.vec3(),Ha=A.mat4();class Ga{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=i,d=o.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=La;if(m){const t=A.transformPoint3(u,h,Ua);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],f=k(d,e,Ha)}else f=d;n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);const E=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(E>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,o=i.renderFlags;for(let t=0;t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(n.LINES,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(n.LINES,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(n.LINES,0,a.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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 ka=A.vec3(),Va=A.vec3(),ja=A.vec3(),Qa=A.mat4();class Wa{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=i;let d,f;l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=ka;if(m){const t=A.transformPoint3(u,h,Va);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=k(o.viewMatrix,e,Qa),f=ja,f[0]=o.eye[0]-e[0],f[1]=o.eye[1]-e[1],f[2]=o.eye[2]-e[2]}else d=o.viewMatrix,f=o.eye;if(n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),n.uniform3fv(this._uCameraEyeRtc,f),n.uniform1i(this._uRenderPass,s),r.logarithmicDepthBufferEnabled){const e=2/(Math.log(o.project.far+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}const E=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(E>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,o=i.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=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("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 i=0;i 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(i=0;i 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 za=A.vec3(),Ka=A.vec3(),Ya=A.vec3();A.vec3();const Xa=A.mat4();class Za{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=i,d=e.pickViewMatrix||o.viewMatrix;let f,m;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),h||0!==c[0]||0!==c[1]||0!==c[2]){const t=za;if(h){const e=Ka;A.transformPoint3(u,h,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],f=k(d,t,Xa),m=Ya,m[0]=o.eye[0]-t[0],m[1]=o.eye[1]-t[1],m[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=d,m=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniform1f(this._uPickZNear,e.pickZNear),n.uniform1f(this._uPickZFar,e.pickZFar),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),r.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const y=r._sectionPlanesState.getNumAllocatedSectionPlanes(),E=r._sectionPlanesState.sectionPlanes.length;if(y>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,o=i.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=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 i=0;i 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(i=0;i 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 qa=A.vec3(),Ja=A.vec3(),$a=A.vec3(),el=A.vec3();A.vec3();const tl=A.mat4();class sl{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=i,d=t.aabb,f=e.pickViewMatrix||o.viewMatrix,m=qa;let y,E;m[0]=A.safeInv(d[3]-d[0])*A.MAX_INT,m[1]=A.safeInv(d[4]-d[1])*A.MAX_INT,m[2]=A.safeInv(d[5]-d[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(m[0]),e.snapPickCoordinateScale[1]=A.safeInv(m[1]),e.snapPickCoordinateScale[2]=A.safeInv(m[2]),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const g=0!==h[0]||0!==h[1]||0!==h[2],v=0!==c[0]||0!==c[1]||0!==c[2];if(g||v){const t=Ja;if(g){const e=A.transformPoint3(u,h,$a);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],y=k(f,t,tl),E=el,E[0]=o.eye[0]-t[0],E[1]=o.eye[1]-t[1],E[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,E=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,E),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,m),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,y),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const I=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(I>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*_,o=i.renderFlags;for(let t=0;t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(T,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(T,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(T,0,a.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var i=0;i 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 il=A.vec3(),rl=A.vec3(),ol=A.vec3(),nl=A.vec3();A.vec3();const al=A.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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=i,d=t.aabb,f=e.pickViewMatrix||o.viewMatrix,m=il;let y,E;m[0]=A.safeInv(d[3]-d[0])*A.MAX_INT,m[1]=A.safeInv(d[4]-d[1])*A.MAX_INT,m[2]=A.safeInv(d[5]-d[2])*A.MAX_INT,e.snapPickCoordinateScale[0]=A.safeInv(m[0]),e.snapPickCoordinateScale[1]=A.safeInv(m[1]),e.snapPickCoordinateScale[2]=A.safeInv(m[2]),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const g=0!==h[0]||0!==h[1]||0!==h[2],v=0!==c[0]||0!==c[1]||0!==c[2];if(g||v){const t=rl;if(g){const e=ol;A.transformPoint3(u,h,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],y=k(f,t,al),E=nl,E[0]=o.eye[0]-t[0],E[1]=o.eye[1]-t[1],E[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,E=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,E),n.uniform2fv(this._uVectorA,e.snapVectorA),n.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,m),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,y),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const I=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(I>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*_,o=i.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// DTXTrianglesSnapInitRenderer 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("// DTXTrianglesSnapInitRenderer 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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var i=0;i 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 hl=A.vec3(),cl=A.vec3(),ul=A.vec3();A.vec3();const Al=A.mat4();class pl{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=i,d=e.pickViewMatrix||o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f,m;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),h||0!==c[0]||0!==c[1]||0!==c[2]){const e=hl;if(h){const t=cl;A.transformPoint3(u,h,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],f=k(d,e,Al),m=ul,m[0]=o.eye[0]-e[0],m[1]=o.eye[1]-e[1],m[2]=o.eye[2]-e[2]}else f=d,m=o.eye;n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uWorldMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);const y=r._sectionPlanesState.getNumAllocatedSectionPlanes(),E=r._sectionPlanesState.sectionPlanes.length;if(y>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,o=i.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=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 dl=A.vec3(),fl=A.vec3(),ml=A.vec3();A.vec3();const yl=A.mat4();class El{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=o;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=dl;if(m){const t=A.transformPoint3(u,h,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]+=c[0],e[1]+=c[1],e[2]+=c[2],d=k(r.viewMatrix,e,yl),f=ml,f[0]=r.eye[0]-e[0],f[1]=r.eye[1]-e[1],f[2]=r.eye[2]-e[2]}else d=r.viewMatrix,f=r.eye;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,f),n.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const E=i._sectionPlanesState.getNumAllocatedSectionPlanes(),g=i._sectionPlanesState.sectionPlanes.length;if(E>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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 gl=A.vec3(),vl=A.vec3(),Il=A.vec3();A.vec3();const _l=A.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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,p=o.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 m=0!==l[0]||0!==l[1]||0!==l[2],y=0!==h[0]||0!==h[1]||0!==h[2];if(m||y){const e=gl;if(m){const t=vl;A.transformPoint3(c,l,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]+=h[0],e[1]+=h[1],e[2]+=h[2],d=k(p,e,_l),f=Il,f[0]=o.eye[0]-e[0],f[1]=o.eye[1]-e[1],f[2]=o.eye[2]-e[2]}else d=p,f=o.eye;n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uWorldMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),n.uniformMatrix4fv(this._uViewNormalMatrix,!1,o.viewNormalMatrix),n.uniformMatrix4fv(this._uWorldNormalMatrix,!1,i.worldNormalMatrix);const E=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(E>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,o=i.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 i=0;i 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 Pl=A.vec3(),bl=A.vec3(),Rl=A.vec3();A.vec3(),A.vec4();const Dl=A.mat4();class Cl{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:p}=o;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=Pl;if(m){const t=A.transformPoint3(u,h,bl);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=k(r.viewMatrix,e,Dl),f=Rl,f[0]=r.eye[0]-e[0],f[1]=r.eye[1]-e[1],f[2]=r.eye[2]-e[2]}else d=r.viewMatrix,f=r.eye;if(n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,p),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,f),n.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const E=i._sectionPlanesState.getNumAllocatedSectionPlanes(),g=i._sectionPlanesState.sectionPlanes.length;if(E>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ce(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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 Nl{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._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=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 xa(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Wa(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Za(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new Cl(this._scene)),this._snapRenderer||(this._snapRenderer=new sl(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new ll(this._scene)),this._snapRenderer||(this._snapRenderer=new sl(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new ba(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new ba(this._scene,!0)),this._colorRendererWithSAO}get colorQualityRendererWithSAO(){return this._colorQualityRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new xa(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new El(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Tl(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new Fa(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Ga(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Wa(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Cl(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new Cl(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Za(this._scene)),this._pickDepthRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new sl(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new ll(this._scene)),this._snapInitRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new pl(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._snapRenderer&&this._snapRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const Ol={};class xl{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 Sl{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,i,r){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,s,2),this.texturePerObjectColorsAndFlags.bindTexture(e,i,3),this.texturePerObjectInstanceMatrices.bindTexture(e,r,4)}bindTriangleIndicesTextures(e,t,s,i){this.indicesPortionIdsPerBitnessTextures[i].bindTexture(e,t,5),this.indicesPerBitnessTextures[i].bindTexture(e,s,6)}bindEdgeIndicesTextures(e,t,s,i){this.edgeIndicesPortionIdsPerBitnessTextures[i].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[i].bindTexture(e,s,6)}}const wl={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(wl,null,4));let e=0;Object.keys(wl).forEach((t=>{t.startsWith("size")&&(e+=wl[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/wl.totalPolygons).toFixed(2)}`);let t={};Object.keys(wl).forEach((s=>{s.startsWith("size")&&(t[s]=`${(wl[s]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class Ml{constructor(){}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)}createTextureForColorsAndFlags(e,t,s,i,r,o,n){const a=t.length;this.numPortions=a;const l=4096,h=Math.ceil(a/512);if(0===h)throw"texture height===0";const c=new Uint8Array(16384*h);wl.sizeDataColorsAndFlags+=c.byteLength,wl.numberOfTextures++;for(let e=0;e>24&255,i[e]>>16&255,i[e]>>8&255,255&i[e]],32*e+16),c.set([r[e]>>24&255,r[e]>>16&255,r[e]>>8&255,255&r[e]],32*e+20),c.set([o[e]>>24&255,o[e]>>16&255,o[e]>>8&255,255&o[e]],32*e+24),c.set([n[e]?1:0,0,0,0],32*e+28);const u=e.createTexture();return e.bindTexture(e.TEXTURE_2D,u),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,l,h),e.texSubImage2D(e.TEXTURE_2D,0,0,0,l,h,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 ha(e,u,l,h,c)}createTextureForObjectOffsets(e,t){const s=512,i=Math.ceil(t/s);if(0===i)throw"texture height===0";const r=new Float32Array(1536*i).fill(0);wl.sizeDataTextureOffsets+=r.byteLength,wl.numberOfTextures++;const o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,s,i),e.texSubImage2D(e.TEXTURE_2D,0,0,0,s,i,e.RGB,e.FLOAT,r,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 ha(e,o,s,i,r)}createTextureForInstancingMatrices(e,t){const s=t.length;if(0===s)throw"num instance matrices===0";const i=2048,r=Math.ceil(s/512),o=new Float32Array(8192*r);wl.numberOfTextures++;for(let e=0;e{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Ol[t],s._destroy()}))),s}(e.scene),this.model=e,this._buffer=new xl,this._dtxState=new Sl,this._dtxTextureFactory=new Ml,this._state=new Xe({origin:A.vec3(t.origin),metallicRoughnessBuf:null,textureState:this._dtxState,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&&wl.cannotCreatePortion.because10BitsObjectId++;let s=this._numPortions+t<=65536;const i=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[i]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let i=0,r=0;e.buckets.forEach((e=>{i+=e.positionsCompressed.length/3,r+=e.indices.length/3})),(this._state.numVertices+i>4096*Fl||t+r>4096*Fl)&&wl.cannotCreatePortion.becauseTextureSize++,s&&=this._state.numVertices+i<=4096*Fl&&t+r<=4096*Fl}return s}createPortion(e,t){if(this._finalized)throw"Already finalized";const s=[];t.buckets.forEach(((e,i)=>{const r=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${i}`:`${t.id}#${i}`;let o=this._bucketGeometries[r];o||(o=this._createBucketGeometry(t,e),this._bucketGeometries[r]=o);const n=this._createSubPortion(t,o,e);s.push(n)}));const i=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(s),this.model.numPortions++,this._meshes.push(e),i}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/3/8)*3;wl.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;wl.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,i=t.indices,r=t.edgeIndices,o=this._buffer;o.positionsCompressed.push(s);const n=o.lenPositionsCompressed/3,a=s.length/3;let l;o.lenPositionsCompressed+=s.length;let h,c=0;if(i){let e;c=i.length/3,a<=256?(e=o.indices8Bits,l=o.lenIndices8Bits/3,o.lenIndices8Bits+=i.length):a<=65536?(e=o.indices16Bits,l=o.lenIndices16Bits/3,o.lenIndices16Bits+=i.length):(e=o.indices32Bits,l=o.lenIndices32Bits/3,o.lenIndices32Bits+=i.length),e.push(i)}let u=0;if(r){let e;u=r.length/2,a<=256?(e=o.edgeIndices8Bits,h=o.lenEdgeIndices8Bits/2,o.lenEdgeIndices8Bits+=r.length):a<=65536?(e=o.edgeIndices16Bits,h=o.lenEdgeIndices16Bits/2,o.lenEdgeIndices16Bits+=r.length):(e=o.edgeIndices32Bits,h=o.lenEdgeIndices32Bits/2,o.lenEdgeIndices32Bits+=r.length),e.push(r)}this._state.numVertices+=a,wl.numberOfGeometries++;return{vertexBase:n,numVertices:a,numTriangles:c,numEdges:u,indicesBase:l,edgeIndicesBase:h}}_createSubPortion(e,t,s,i){const r=e.color;e.metallic,e.roughness;const o=e.colors,n=e.opacity,a=e.meshMatrix,l=e.pickColor,h=this._buffer,c=this._state;h.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),h.perObjectInstancePositioningMatrices.push(a||kl),h.perObjectSolid.push(!!e.solid),o?h.perObjectColors.push([255*o[0],255*o[1],255*o[2],255]):r&&h.perObjectColors.push([r[0],r[1],r[2],n]),h.perObjectPickColors.push(l),h.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?c.numIndices8Bits:t.numVertices<=65536?c.numIndices16Bits:c.numIndices32Bits,h.perObjectIndexBaseOffsets.push(e/3-t.indicesBase)}{let e;e=t.numVertices<=256?c.numEdgeIndices8Bits:t.numVertices<=65536?c.numEdgeIndices16Bits:c.numEdgeIndices32Bits,h.perObjectEdgeIndexBaseOffsets.push(e/2-t.edgeIndicesBase)}const u=this._subPortions.length;if(t.numTriangles>0){let e,s=3*t.numTriangles;t.numVertices<=256?(e=h.perTriangleNumberPortionId8Bits,c.numIndices8Bits+=s,wl.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(e=h.perTriangleNumberPortionId16Bits,c.numIndices16Bits+=s,wl.totalPolygons16Bits+=t.numTriangles):(e=h.perTriangleNumberPortionId32Bits,c.numIndices32Bits+=s,wl.totalPolygons32Bits+=t.numTriangles),wl.totalPolygons+=t.numTriangles;for(let s=0;s0){let e,s=2*t.numEdges;t.numVertices<=256?(e=h.perEdgeNumberPortionId8Bits,c.numEdgeIndices8Bits+=s,wl.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(e=h.perEdgeNumberPortionId16Bits,c.numEdgeIndices16Bits+=s,wl.totalEdges16Bits+=t.numEdges):(e=h.perEdgeNumberPortionId32Bits,c.numEdgeIndices32Bits+=s,wl.totalEdges32Bits+=t.numEdges),wl.totalEdges+=t.numEdges;for(let s=0;s0&&(t.texturePerEdgeIdPortionIds8Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(s,i.perEdgeNumberPortionId8Bits)),i.perEdgeNumberPortionId16Bits.length>0&&(t.texturePerEdgeIdPortionIds16Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(s,i.perEdgeNumberPortionId16Bits)),i.perEdgeNumberPortionId32Bits.length>0&&(t.texturePerEdgeIdPortionIds32Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(s,i.perEdgeNumberPortionId32Bits)),i.lenIndices8Bits>0&&(t.texturePerPolygonIdIndices8Bits=this._dtxTextureFactory.createTextureFor8BitIndices(s,i.indices8Bits,i.lenIndices8Bits)),i.lenIndices16Bits>0&&(t.texturePerPolygonIdIndices16Bits=this._dtxTextureFactory.createTextureFor16BitIndices(s,i.indices16Bits,i.lenIndices16Bits)),i.lenIndices32Bits>0&&(t.texturePerPolygonIdIndices32Bits=this._dtxTextureFactory.createTextureFor32BitIndices(s,i.indices32Bits,i.lenIndices32Bits)),i.lenEdgeIndices8Bits>0&&(t.texturePerPolygonIdEdgeIndices8Bits=this._dtxTextureFactory.createTextureFor8BitsEdgeIndices(s,i.edgeIndices8Bits,i.lenEdgeIndices8Bits)),i.lenEdgeIndices16Bits>0&&(t.texturePerPolygonIdEdgeIndices16Bits=this._dtxTextureFactory.createTextureFor16BitsEdgeIndices(s,i.edgeIndices16Bits,i.lenEdgeIndices16Bits)),i.lenEdgeIndices32Bits>0&&(t.texturePerPolygonIdEdgeIndices32Bits=this._dtxTextureFactory.createTextureFor32BitsEdgeIndices(s,i.edgeIndices32Bits,i.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&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&q&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&z&&(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&W?(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&Z?(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&$?(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&Y?(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._dtxState;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&z?(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&K?(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,i=s.length;e=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),i.texSubImage2D(i.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,i.RGBA_INTEGER,i.UNSIGNED_BYTE,Ul)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s,i=!1){const r=this._portionToSubPortionsMap[e];for(let e=0,o=r.length;e=10&&this._beginDeferredFlags(),d.bindTexture(d.TEXTURE_2D,p.texturePerObjectColorsAndFlags._texture),d.texSubImage2D(d.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,d.RGBA_INTEGER,d.UNSIGNED_BYTE,Ul))}_setDeferredFlags(){}_setFlags2(e,t,s=!1){const i=this._portionToSubPortionsMap[e];for(let e=0,r=i.length;e=10&&this._beginDeferredFlags(),o.bindTexture(o.TEXTURE_2D,r.texturePerObjectColorsAndFlags._texture),o.texSubImage2D(o.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,o.RGBA_INTEGER,o.UNSIGNED_BYTE,Ul))}_setDeferredFlags2(){}setOffset(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectOffsets._texture),i.texSubImage2D(i.TEXTURE_2D,0,0,e,1,1,i.RGB,i.FLOAT,Hl))}setMatrix(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectInstanceMatrices._texture),i.texSubImage2D(i.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,i.RGBA,i.FLOAT,Ll))}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._renderers.colorRendererWithSAO&&this._renderers.colorRendererWithSAO.drawLayer(t,this,Ti.COLOR_OPAQUE):this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ti.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._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ti.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._renderers.depthRenderer&&this._renderers.depthRenderer.drawLayer(t,this,Ti.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._renderers.normalsRenderer&&this._renderers.normalsRenderer.drawLayer(t,this,Ti.COLOR_OPAQUE))}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ti.SILHOUETTE_XRAYED))}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ti.SILHOUETTE_HIGHLIGHTED))}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ti.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._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(t,this,Ti.EDGES_COLOR_OPAQUE)}drawEdgesColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(t,this,Ti.EDGES_COLOR_TRANSPARENT)}drawEdgesHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,Ti.EDGES_HIGHLIGHTED)}drawEdgesSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,Ti.EDGES_SELECTED)}drawEdgesXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,Ti.EDGES_XRAYED)}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(t,this,Ti.COLOR_OPAQUE))}drawShadow(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.shadowRenderer&&this._renderers.shadowRenderer.drawLayer(t,this,Ti.COLOR_OPAQUE))}setPickMatrices(e,t){}drawPickMesh(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(t,this,Ti.PICK))}drawPickDepths(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(t,this,Ti.PICK))}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,Ti.PICK))}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,Ti.PICK))}drawPickNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickNormalsRenderer&&this._renderers.pickNormalsRenderer.drawLayer(t,this,Ti.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}}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 Ql{constructor(e){this.id=e.id,this.texture=e.texture}destroy(){this.texture&&(this.texture.destroy(),this.texture=null)}}const Wl={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={}}};const zl=new class{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(r),this.manager.itemEnd(e)}),0),r;if(void 0!==Kl[e])return void Kl[e].push({onLoad:t,onProgress:s,onError:i});Kl[e]=[],Kl[e].push({onLoad:t,onProgress:s,onError:i});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),n=this.mimeType,a=this.responseType;fetch(o).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=Kl[e],i=t.body.getReader(),r=t.headers.get("Content-Length"),o=r?parseInt(r):0,n=0!==o;let a=0;const l=new ReadableStream({start(e){!function t(){i.read().then((({done:i,value:r})=>{if(i)e.close();else{a+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:n,loaded:a,total:o});for(let e=0,t=s.length;e{switch(a){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,n)));case"json":return e.json();default:if(void 0===n)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(n),s=t&&t[1]?t[1].toLowerCase():void 0,i=new TextDecoder(s);return e.arrayBuffer().then((e=>i.decode(e)))}}})).then((t=>{Wl.add(e,t);const s=Kl[e];delete Kl[e];for(let e=0,i=s.length;e{const s=Kl[e];if(void 0===s)throw this.manager.itemError(e),t;delete Kl[e];for(let e=0,i=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 Xl{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 i=this._getIdleWorker();-1!==i?(this._initWorker(i),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}let Zl=0;class ql{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 Xl,this._workerSourceURL="",s&&this._workerPool.setWorkerLimit(s);const i=e.capabilities;this._workerConfig={astcSupported:i.astcSupported,etc1Supported:i.etc1Supported,etc2Supported:i.etc2Supported,dxtSupported:i.dxtSupported,bptcSupported:i.bptcSupported,pvrtcSupported:i.pvrtcSupported},this._supportedFileTypes=["xkt2"]}_init(){if(!this._transcoderPending){const e=new Yl;e.setPath(this._transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),s=new Yl;s.setPath(this._transcoderPath),s.setResponseType("arraybuffer"),s.setWithCredentials(this.withCredentials);const i=s.loadAsync("basis_transcoder.wasm");this._transcoderPending=Promise.all([t,i]).then((([e,t])=>{const s=ql.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(ql.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(ql.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(ql.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this._workerSourceURL=URL.createObjectURL(new Blob([i])),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}))})),Zl>0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),Zl++}return this._transcoderPending}transcode(e,t,s={}){return new Promise(((i,r)=>{const o=s;this._init().then((()=>this._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:o},e))).then((e=>{const s=e.data,{mipmaps:o,width:n,height:a,format:l,type:h,error:c,dfdTransferFn:u,dfdFlags:A}=s;if("error"===h)return r(c);t.setCompressedData({mipmaps:o,props:{format:l,minFilter:1===o.length?1006:1008,magFilter:1===o.length?1006:1008,encoding:2===u?3001:3e3,premultiplyAlpha:!!(1&A)}}),i()}))}))}destroy(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),Zl--}}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(){let e,t,s;const i=_EngineFormat,r=_TranscoderFormat,o=_BasisFormat;self.addEventListener("message",(function(n){const c=n.data;switch(c.type){case"init":e=c.config,u=c.transcoderBinary,t=new Promise((e=>{s={wasmBinary:u,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:n,hasAlpha:u,mipmaps:A,format:p,dfdTransferFn:d,dfdFlags:f}=function(t){const n=new s.KTX2File(new Uint8Array(t));function c(){n.close(),n.delete()}if(!n.isValid())throw c(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");const u=n.isUASTC()?o.UASTC_4x4:o.ETC1S,A=n.getWidth(),p=n.getHeight(),d=n.getLevels(),f=n.getHasAlpha(),m=n.getDFDTransferFunc(),y=n.getDFDFlags(),{transcoderFormat:E,engineFormat:g}=function(t,s,n,c){let u,A;const p=t===o.ETC1S?a:l;for(let i=0;i{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 i=this._eventSubs[e];i||(i=[],this._eventSubs[e]=i),i.push(t)}fire(e,t){const i=this._eventSubs[e];if(i)for(let e=0,s=i.length;e{const o=this._getNextId(),n=new i(o);for(let i=0,o=e.length;i0,A=this._getNextId(),h=i.getTitle||(()=>i.title||""),c=i.doAction||i.callback||(()=>{}),u=i.getEnabled||(()=>!0),d=i.getShown||(()=>!0),p=new r(A,h,c,u,d);if(p.parentMenu=n,a.items.push(p),l){const e=t(s);p.subMenu=e,e.parentItem=p}this._itemList.push(p),this._itemMap[p.id]=p}}return this._menuList.push(n),this._menuMap[n.id]=n,n};this._rootMenu=t(e)}_getNextId(){return"ContextMenu_"+this._id+"_"+this._nextId++}_createUI(){const e=t=>{this._createMenuUI(t);const i=t.groups;for(let t=0,s=i.length;t'),i.push("
    "),t)for(let e=0,s=t.length;e'+l+" [MORE]"):i.push('
  • '+l+"
  • ")}}i.push("
"),i.push("");const s=i.join("");document.body.insertAdjacentHTML("beforeend",s);const r=document.querySelector("."+e.id);e.menuElement=r,r.style["border-radius"]="4px",r.style.display="none",r.style["z-index"]=3e5,r.style.background="white",r.style.border="1px solid black",r.style["box-shadow"]="0 4px 5px 0 gray",r.oncontextmenu=e=>{e.preventDefault()};const o=this;let n=null;if(t)for(let e=0,i=t.length;e{e.preventDefault();const i=t.subMenu;if(!i)return void(n&&(o._hideMenu(n.id),n=null));if(n&&n.id!==i.id&&(o._hideMenu(n.id),n=null),!1===t.enabled)return;const s=t.itemElement,r=i.menuElement,a=s.getBoundingClientRect();r.getBoundingClientRect();a.right+200>window.innerWidth?o._showMenu(i.id,a.left-200,a.top-1):o._showMenu(i.id,a.right-5,a.top-1),n=i})),s||(t.itemElement.addEventListener("click",(e=>{e.preventDefault(),o._context&&!1!==t.enabled&&(t.doAction&&t.doAction(o._context),this._hideOnAction?o.hide():(o._updateItemsTitles(),o._updateItemsEnabledStatus()))})),t.itemElement.addEventListener("mouseenter",(e=>{e.preventDefault(),!1!==t.enabled&&t.doHover&&t.doHover(o._context)})))):console.error("ContextMenu item element not found: "+t.id)}}}_updateItemsTitles(){if(this._context)for(let e=0,t=this._itemList.length;ewindow.innerHeight&&(i=window.innerHeight-s),t+r>window.innerWidth&&(t=window.innerWidth-r),e.style.left=t+"px",e.style.top=i+"px"}_hideMenuElement(e){e.style.display="none"}}let n=!0,a=n?Float64Array:Float32Array;const l=new a(3),A=new a(16),h=new a(16),c=new a(4),u={setDoublePrecisionEnabled(e){n=e,a=n?Float64Array:Float32Array},getDoublePrecisionEnabled:()=>n,MIN_DOUBLE:-Number.MAX_SAFE_INTEGER,MAX_DOUBLE:Number.MAX_SAFE_INTEGER,MAX_INT:1e7,DEGTORAD:.0174532925,RADTODEG:57.295779513,unglobalizeObjectId(e,t){const i=t.indexOf("#");return i===e.length&&t.startsWith(e)?t.substring(i+1):t},globalizeObjectId:(e,t)=>e+"#"+t,safeInv(e){const t=1/e;return isNaN(t)||!isFinite(t)?1:t},vec2:e=>new a(e||2),vec3:e=>new a(e||3),vec4:e=>new a(e||4),mat3:e=>new a(e||9),mat3ToMat4:(e,t=new a(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 a(e||16),mat4ToMat3(e,t){},doublesToFloats(e,t,i){const s=new a(2);for(let r=0,o=e.length;r{const e=[];for(let t=0;t<256;t++)e[t]=(t<16?"0":"")+t.toString(16);return()=>{const t=4294967295*Math.random()|0,i=4294967295*Math.random()|0,s=4294967295*Math.random()|0,r=4294967295*Math.random()|0;return`${e[255&t]+e[t>>8&255]+e[t>>16&255]+e[t>>24&255]}-${e[255&i]}${e[i>>8&255]}-${e[i>>16&15|64]}${e[i>>24&255]}-${e[63&s|128]}${e[s>>8&255]}-${e[s>>16&255]}${e[s>>24&255]}${e[255&r]}${e[r>>8&255]}${e[r>>16&255]}${e[r>>24&255]}`}})(),clamp:(e,t,i)=>Math.max(t,Math.min(i,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,i)=>(i||(i=e),i[0]=e[0]+t[0],i[1]=e[1]+t[1],i[2]=e[2]+t[2],i[3]=e[3]+t[3],i),addVec4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]+t,i[1]=e[1]+t,i[2]=e[2]+t,i[3]=e[3]+t,i),addVec3:(e,t,i)=>(i||(i=e),i[0]=e[0]+t[0],i[1]=e[1]+t[1],i[2]=e[2]+t[2],i),addVec3Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]+t,i[1]=e[1]+t,i[2]=e[2]+t,i),subVec4:(e,t,i)=>(i||(i=e),i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],i[3]=e[3]-t[3],i),subVec3:(e,t,i)=>(i||(i=e),i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],i),subVec2:(e,t,i)=>(i||(i=e),i[0]=e[0]-t[0],i[1]=e[1]-t[1],i),geometricMeanVec2(...e){const t=new a(e[0]);for(let i=1;i(i||(i=e),i[0]=e[0]-t,i[1]=e[1]-t,i[2]=e[2]-t,i[3]=e[3]-t,i),subScalarVec4:(e,t,i)=>(i||(i=e),i[0]=t-e[0],i[1]=t-e[1],i[2]=t-e[2],i[3]=t-e[3],i),mulVec4:(e,t,i)=>(i||(i=e),i[0]=e[0]*t[0],i[1]=e[1]*t[1],i[2]=e[2]*t[2],i[3]=e[3]*t[3],i),mulVec4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]*t,i[1]=e[1]*t,i[2]=e[2]*t,i[3]=e[3]*t,i),mulVec3Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]*t,i[1]=e[1]*t,i[2]=e[2]*t,i),mulVec2Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]*t,i[1]=e[1]*t,i),divVec3:(e,t,i)=>(i||(i=e),i[0]=e[0]/t[0],i[1]=e[1]/t[1],i[2]=e[2]/t[2],i),divVec4:(e,t,i)=>(i||(i=e),i[0]=e[0]/t[0],i[1]=e[1]/t[1],i[2]=e[2]/t[2],i[3]=e[3]/t[3],i),divScalarVec3:(e,t,i)=>(i||(i=t),i[0]=e/t[0],i[1]=e/t[1],i[2]=e/t[2],i),divVec3Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]/t,i[1]=e[1]/t,i[2]=e[2]/t,i),divVec4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]/t,i[1]=e[1]/t,i[2]=e[2]/t,i[3]=e[3]/t,i),divScalarVec4:(e,t,i)=>(i||(i=t),i[0]=e/t[0],i[1]=e/t[1],i[2]=e/t[2],i[3]=e/t[3],i),dotVec4:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3],cross3Vec4(e,t){const i=e[0],s=e[1],r=e[2],o=t[0],n=t[1],a=t[2];return[s*a-r*n,r*o-i*a,i*n-s*o,0]},cross3Vec3(e,t,i){i||(i=e);const s=e[0],r=e[1],o=e[2],n=t[0],a=t[1],l=t[2];return i[0]=r*l-o*a,i[1]=o*n-s*l,i[2]=s*a-r*n,i},sqLenVec4:e=>u.dotVec4(e,e),lenVec4:e=>Math.sqrt(u.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=>u.dotVec3(e,e),sqLenVec2:e=>u.dotVec2(e,e),lenVec3:e=>Math.sqrt(u.sqLenVec3(e)),distVec3:(()=>{const e=new a(3);return(t,i)=>u.lenVec3(u.subVec3(t,i,e))})(),lenVec2:e=>Math.sqrt(u.sqLenVec2(e)),distVec2:(()=>{const e=new a(2);return(t,i)=>u.lenVec2(u.subVec2(t,i,e))})(),rcpVec3:(e,t)=>u.divScalarVec3(1,e,t),normalizeVec4(e,t){const i=1/u.lenVec4(e);return u.mulVec4Scalar(e,i,t)},normalizeVec3(e,t){const i=1/u.lenVec3(e);return u.mulVec3Scalar(e,i,t)},normalizeVec2(e,t){const i=1/u.lenVec2(e);return u.mulVec2Scalar(e,i,t)},angleVec3(e,t){let i=u.dotVec3(e,t)/Math.sqrt(u.sqLenVec3(e)*u.sqLenVec3(t));return i=i<-1?-1:i>1?1:i,Math.acos(i)},vec3FromMat4Scale:(()=>{const e=new a(3);return(t,i)=>(e[0]=t[0],e[1]=t[1],e[2]=t[2],i[0]=u.lenVec3(e),e[0]=t[4],e[1]=t[5],e[2]=t[6],i[1]=u.lenVec3(e),e[0]=t[8],e[1]=t[9],e[2]=t[10],i[2]=u.lenVec3(e),i)})(),vecToArray:(()=>{function e(e){return Math.round(1e5*e)/1e5}return t=>{for(let i=0,s=(t=Array.prototype.slice.call(t)).length;i({x:e[0],y:e[1],z:e[2]}),xyzObjectToArray:(e,t)=>((t=t||u.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:()=>u.m4s(0),setMat4ToOnes:()=>u.m4s(1),diagonalMat4v:e=>new a([e[0],0,0,0,0,e[1],0,0,0,0,e[2],0,0,0,0,e[3]]),diagonalMat4c:(e,t,i,s)=>u.diagonalMat4v([e,t,i,s]),diagonalMat4s:e=>u.diagonalMat4c(e,e,e,e),identityMat4:(e=new a(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 a(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,i)=>(i||(i=e),i[0]=e[0]+t[0],i[1]=e[1]+t[1],i[2]=e[2]+t[2],i[3]=e[3]+t[3],i[4]=e[4]+t[4],i[5]=e[5]+t[5],i[6]=e[6]+t[6],i[7]=e[7]+t[7],i[8]=e[8]+t[8],i[9]=e[9]+t[9],i[10]=e[10]+t[10],i[11]=e[11]+t[11],i[12]=e[12]+t[12],i[13]=e[13]+t[13],i[14]=e[14]+t[14],i[15]=e[15]+t[15],i),addMat4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]+t,i[1]=e[1]+t,i[2]=e[2]+t,i[3]=e[3]+t,i[4]=e[4]+t,i[5]=e[5]+t,i[6]=e[6]+t,i[7]=e[7]+t,i[8]=e[8]+t,i[9]=e[9]+t,i[10]=e[10]+t,i[11]=e[11]+t,i[12]=e[12]+t,i[13]=e[13]+t,i[14]=e[14]+t,i[15]=e[15]+t,i),addScalarMat4:(e,t,i)=>u.addMat4Scalar(t,e,i),subMat4:(e,t,i)=>(i||(i=e),i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],i[3]=e[3]-t[3],i[4]=e[4]-t[4],i[5]=e[5]-t[5],i[6]=e[6]-t[6],i[7]=e[7]-t[7],i[8]=e[8]-t[8],i[9]=e[9]-t[9],i[10]=e[10]-t[10],i[11]=e[11]-t[11],i[12]=e[12]-t[12],i[13]=e[13]-t[13],i[14]=e[14]-t[14],i[15]=e[15]-t[15],i),subMat4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]-t,i[1]=e[1]-t,i[2]=e[2]-t,i[3]=e[3]-t,i[4]=e[4]-t,i[5]=e[5]-t,i[6]=e[6]-t,i[7]=e[7]-t,i[8]=e[8]-t,i[9]=e[9]-t,i[10]=e[10]-t,i[11]=e[11]-t,i[12]=e[12]-t,i[13]=e[13]-t,i[14]=e[14]-t,i[15]=e[15]-t,i),subScalarMat4:(e,t,i)=>(i||(i=t),i[0]=e-t[0],i[1]=e-t[1],i[2]=e-t[2],i[3]=e-t[3],i[4]=e-t[4],i[5]=e-t[5],i[6]=e-t[6],i[7]=e-t[7],i[8]=e-t[8],i[9]=e-t[9],i[10]=e-t[10],i[11]=e-t[11],i[12]=e-t[12],i[13]=e-t[13],i[14]=e-t[14],i[15]=e-t[15],i),mulMat4(e,t,i){i||(i=e);const s=e[0],r=e[1],o=e[2],n=e[3],a=e[4],l=e[5],A=e[6],h=e[7],c=e[8],u=e[9],d=e[10],p=e[11],g=e[12],m=e[13],f=e[14],_=e[15],v=t[0],b=t[1],x=t[2],w=t[3],y=t[4],P=t[5],B=t[6],C=t[7],M=t[8],E=t[9],F=t[10],I=t[11],D=t[12],S=t[13],T=t[14],R=t[15];return i[0]=v*s+b*a+x*c+w*g,i[1]=v*r+b*l+x*u+w*m,i[2]=v*o+b*A+x*d+w*f,i[3]=v*n+b*h+x*p+w*_,i[4]=y*s+P*a+B*c+C*g,i[5]=y*r+P*l+B*u+C*m,i[6]=y*o+P*A+B*d+C*f,i[7]=y*n+P*h+B*p+C*_,i[8]=M*s+E*a+F*c+I*g,i[9]=M*r+E*l+F*u+I*m,i[10]=M*o+E*A+F*d+I*f,i[11]=M*n+E*h+F*p+I*_,i[12]=D*s+S*a+T*c+R*g,i[13]=D*r+S*l+T*u+R*m,i[14]=D*o+S*A+T*d+R*f,i[15]=D*n+S*h+T*p+R*_,i},mulMat3(e,t,i){i||(i=new a(9));const s=e[0],r=e[3],o=e[6],n=e[1],l=e[4],A=e[7],h=e[2],c=e[5],u=e[8],d=t[0],p=t[3],g=t[6],m=t[1],f=t[4],_=t[7],v=t[2],b=t[5],x=t[8];return i[0]=s*d+r*m+o*v,i[3]=s*p+r*f+o*b,i[6]=s*g+r*_+o*x,i[1]=n*d+l*m+A*v,i[4]=n*p+l*f+A*b,i[7]=n*g+l*_+A*x,i[2]=h*d+c*m+u*v,i[5]=h*p+c*f+u*b,i[8]=h*g+c*_+u*x,i},mulMat4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]*t,i[1]=e[1]*t,i[2]=e[2]*t,i[3]=e[3]*t,i[4]=e[4]*t,i[5]=e[5]*t,i[6]=e[6]*t,i[7]=e[7]*t,i[8]=e[8]*t,i[9]=e[9]*t,i[10]=e[10]*t,i[11]=e[11]*t,i[12]=e[12]*t,i[13]=e[13]*t,i[14]=e[14]*t,i[15]=e[15]*t,i),mulMat4v4(e,t,i=u.vec4()){const s=t[0],r=t[1],o=t[2],n=t[3];return i[0]=e[0]*s+e[4]*r+e[8]*o+e[12]*n,i[1]=e[1]*s+e[5]*r+e[9]*o+e[13]*n,i[2]=e[2]*s+e[6]*r+e[10]*o+e[14]*n,i[3]=e[3]*s+e[7]*r+e[11]*o+e[15]*n,i},transposeMat4(e,t){const i=e[4],s=e[14],r=e[8],o=e[13],n=e[12],a=e[9];if(!t||e===t){const t=e[1],l=e[2],A=e[3],h=e[6],c=e[7],u=e[11];return e[1]=i,e[2]=r,e[3]=n,e[4]=t,e[6]=a,e[7]=o,e[8]=l,e[9]=h,e[11]=s,e[12]=A,e[13]=c,e[14]=u,e}return t[0]=e[0],t[1]=i,t[2]=r,t[3]=n,t[4]=e[1],t[5]=e[5],t[6]=a,t[7]=o,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=s,t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t},transposeMat3(e,t){if(t===e){const i=e[1],s=e[2],r=e[5];t[1]=e[3],t[2]=e[6],t[3]=i,t[5]=e[7],t[6]=s,t[7]=r}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],i=e[1],s=e[2],r=e[3],o=e[4],n=e[5],a=e[6],l=e[7],A=e[8],h=e[9],c=e[10],u=e[11],d=e[12],p=e[13],g=e[14],m=e[15];return d*h*a*r-A*p*a*r-d*n*c*r+o*p*c*r+A*n*g*r-o*h*g*r-d*h*s*l+A*p*s*l+d*i*c*l-t*p*c*l-A*i*g*l+t*h*g*l+d*n*s*u-o*p*s*u-d*i*a*u+t*p*a*u+o*i*g*u-t*n*g*u-A*n*s*m+o*h*s*m+A*i*a*m-t*h*a*m-o*i*c*m+t*n*c*m},inverseMat4(e,t){t||(t=e);const i=e[0],s=e[1],r=e[2],o=e[3],n=e[4],a=e[5],l=e[6],A=e[7],h=e[8],c=e[9],u=e[10],d=e[11],p=e[12],g=e[13],m=e[14],f=e[15],_=i*a-s*n,v=i*l-r*n,b=i*A-o*n,x=s*l-r*a,w=s*A-o*a,y=r*A-o*l,P=h*g-c*p,B=h*m-u*p,C=h*f-d*p,M=c*m-u*g,E=c*f-d*g,F=u*f-d*m,I=1/(_*F-v*E+b*M+x*C-w*B+y*P);return t[0]=(a*F-l*E+A*M)*I,t[1]=(-s*F+r*E-o*M)*I,t[2]=(g*y-m*w+f*x)*I,t[3]=(-c*y+u*w-d*x)*I,t[4]=(-n*F+l*C-A*B)*I,t[5]=(i*F-r*C+o*B)*I,t[6]=(-p*y+m*b-f*v)*I,t[7]=(h*y-u*b+d*v)*I,t[8]=(n*E-a*C+A*P)*I,t[9]=(-i*E+s*C-o*P)*I,t[10]=(p*w-g*b+f*_)*I,t[11]=(-h*w+c*b-d*_)*I,t[12]=(-n*M+a*B-l*P)*I,t[13]=(i*M-s*B+r*P)*I,t[14]=(-p*x+g*v-m*_)*I,t[15]=(h*x-c*v+u*_)*I,t},traceMat4:e=>e[0]+e[5]+e[10]+e[15],translationMat4v(e,t){const i=t||u.identityMat4();return i[12]=e[0],i[13]=e[1],i[14]=e[2],i},translationMat3v(e,t){const i=t||u.identityMat3();return i[6]=e[0],i[7]=e[1],i},translationMat4c:(()=>{const e=new a(3);return(t,i,s,r)=>(e[0]=t,e[1]=i,e[2]=s,u.translationMat4v(e,r))})(),translationMat4s:(e,t)=>u.translationMat4c(e,e,e,t),translateMat4v:(e,t)=>u.translateMat4c(e[0],e[1],e[2],t),translateMat4c(e,t,i,s){const r=s[3];s[0]+=r*e,s[1]+=r*t,s[2]+=r*i;const o=s[7];s[4]+=o*e,s[5]+=o*t,s[6]+=o*i;const n=s[11];s[8]+=n*e,s[9]+=n*t,s[10]+=n*i;const a=s[15];return s[12]+=a*e,s[13]+=a*t,s[14]+=a*i,s},setMat4Translation:(e,t,i)=>(i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i[6]=e[6],i[7]=e[7],i[8]=e[8],i[9]=e[9],i[10]=e[10],i[11]=e[11],i[12]=t[0],i[13]=t[1],i[14]=t[2],i[15]=e[15],i),rotationMat4v(e,t,i){const s=u.normalizeVec4([t[0],t[1],t[2],0],[]),r=Math.sin(e),o=Math.cos(e),n=1-o,a=s[0],l=s[1],A=s[2];let h,c,d,p,g,m;return h=a*l,c=l*A,d=A*a,p=a*r,g=l*r,m=A*r,(i=i||u.mat4())[0]=n*a*a+o,i[1]=n*h+m,i[2]=n*d-g,i[3]=0,i[4]=n*h-m,i[5]=n*l*l+o,i[6]=n*c+p,i[7]=0,i[8]=n*d+g,i[9]=n*c-p,i[10]=n*A*A+o,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i},rotationMat4c:(e,t,i,s,r)=>u.rotationMat4v(e,[t,i,s],r),scalingMat4v:(e,t=u.identityMat4())=>(t[0]=e[0],t[5]=e[1],t[10]=e[2],t),scalingMat3v:(e,t=u.identityMat3())=>(t[0]=e[0],t[4]=e[1],t),scalingMat4c:(()=>{const e=new a(3);return(t,i,s,r)=>(e[0]=t,e[1]=i,e[2]=s,u.scalingMat4v(e,r))})(),scaleMat4c:(e,t,i,s)=>(s[0]*=e,s[4]*=t,s[8]*=i,s[1]*=e,s[5]*=t,s[9]*=i,s[2]*=e,s[6]*=t,s[10]*=i,s[3]*=e,s[7]*=t,s[11]*=i,s),scaleMat4v(e,t){const i=e[0],s=e[1],r=e[2];return t[0]*=i,t[4]*=s,t[8]*=r,t[1]*=i,t[5]*=s,t[9]*=r,t[2]*=i,t[6]*=s,t[10]*=r,t[3]*=i,t[7]*=s,t[11]*=r,t},scalingMat4s:e=>u.scalingMat4c(e,e,e),rotationTranslationMat4(e,t,i=u.mat4()){const s=e[0],r=e[1],o=e[2],n=e[3],a=s+s,l=r+r,A=o+o,h=s*a,c=s*l,d=s*A,p=r*l,g=r*A,m=o*A,f=n*a,_=n*l,v=n*A;return i[0]=1-(p+m),i[1]=c+v,i[2]=d-_,i[3]=0,i[4]=c-v,i[5]=1-(h+m),i[6]=g+f,i[7]=0,i[8]=d+_,i[9]=g-f,i[10]=1-(h+p),i[11]=0,i[12]=t[0],i[13]=t[1],i[14]=t[2],i[15]=1,i},mat4ToEuler(e,t,i=u.vec4()){const s=u.clamp,r=e[0],o=e[4],n=e[8],a=e[1],l=e[5],A=e[9],h=e[2],c=e[6],d=e[10];return"XYZ"===t?(i[1]=Math.asin(s(n,-1,1)),Math.abs(n)<.99999?(i[0]=Math.atan2(-A,d),i[2]=Math.atan2(-o,r)):(i[0]=Math.atan2(c,l),i[2]=0)):"YXZ"===t?(i[0]=Math.asin(-s(A,-1,1)),Math.abs(A)<.99999?(i[1]=Math.atan2(n,d),i[2]=Math.atan2(a,l)):(i[1]=Math.atan2(-h,r),i[2]=0)):"ZXY"===t?(i[0]=Math.asin(s(c,-1,1)),Math.abs(c)<.99999?(i[1]=Math.atan2(-h,d),i[2]=Math.atan2(-o,l)):(i[1]=0,i[2]=Math.atan2(a,r))):"ZYX"===t?(i[1]=Math.asin(-s(h,-1,1)),Math.abs(h)<.99999?(i[0]=Math.atan2(c,d),i[2]=Math.atan2(a,r)):(i[0]=0,i[2]=Math.atan2(-o,l))):"YZX"===t?(i[2]=Math.asin(s(a,-1,1)),Math.abs(a)<.99999?(i[0]=Math.atan2(-A,l),i[1]=Math.atan2(-h,r)):(i[0]=0,i[1]=Math.atan2(n,d))):"XZY"===t&&(i[2]=Math.asin(-s(o,-1,1)),Math.abs(o)<.99999?(i[0]=Math.atan2(c,l),i[1]=Math.atan2(n,r)):(i[0]=Math.atan2(-A,d),i[1]=0)),i},composeMat4:(e,t,i,s=u.mat4())=>(u.quaternionToRotationMat4(t,s),u.scaleMat4v(i,s),u.translateMat4v(e,s),s),decomposeMat4:(()=>{const e=new a(3),t=new a(16);return function(i,s,r,o){e[0]=i[0],e[1]=i[1],e[2]=i[2];let n=u.lenVec3(e);e[0]=i[4],e[1]=i[5],e[2]=i[6];const a=u.lenVec3(e);e[8]=i[8],e[9]=i[9],e[10]=i[10];const l=u.lenVec3(e);u.determinantMat4(i)<0&&(n=-n),s[0]=i[12],s[1]=i[13],s[2]=i[14],t.set(i);const A=1/n,h=1/a,c=1/l;return t[0]*=A,t[1]*=A,t[2]*=A,t[4]*=h,t[5]*=h,t[6]*=h,t[8]*=c,t[9]*=c,t[10]*=c,u.mat4ToQuaternion(t,r),o[0]=n,o[1]=a,o[2]=l,this}})(),getColMat4(e,t){const i=4*t;return[e[i],e[i+1],e[i+2],e[i+3]]},setRowMat4(e,t,i){e[t]=i[0],e[t+4]=i[1],e[t+8]=i[2],e[t+12]=i[3]},lookAtMat4v(e,t,i,s){s||(s=u.mat4());const r=e[0],o=e[1],n=e[2],a=i[0],l=i[1],A=i[2],h=t[0],c=t[1],d=t[2];if(r===h&&o===c&&n===d)return u.identityMat4();let p,g,m,f,_,v,b,x,w,y;return p=r-h,g=o-c,m=n-d,y=1/Math.sqrt(p*p+g*g+m*m),p*=y,g*=y,m*=y,f=l*m-A*g,_=A*p-a*m,v=a*g-l*p,y=Math.sqrt(f*f+_*_+v*v),y?(y=1/y,f*=y,_*=y,v*=y):(f=0,_=0,v=0),b=g*v-m*_,x=m*f-p*v,w=p*_-g*f,y=Math.sqrt(b*b+x*x+w*w),y?(y=1/y,b*=y,x*=y,w*=y):(b=0,x=0,w=0),s[0]=f,s[1]=b,s[2]=p,s[3]=0,s[4]=_,s[5]=x,s[6]=g,s[7]=0,s[8]=v,s[9]=w,s[10]=m,s[11]=0,s[12]=-(f*r+_*o+v*n),s[13]=-(b*r+x*o+w*n),s[14]=-(p*r+g*o+m*n),s[15]=1,s},lookAtMat4c:(e,t,i,s,r,o,n,a,l)=>u.lookAtMat4v([e,t,i],[s,r,o],[n,a,l],[]),orthoMat4c(e,t,i,s,r,o,n){n||(n=u.mat4());const a=t-e,l=s-i,A=o-r;return n[0]=2/a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2/l,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=-2/A,n[11]=0,n[12]=-(e+t)/a,n[13]=-(s+i)/l,n[14]=-(o+r)/A,n[15]=1,n},frustumMat4v(e,t,i){i||(i=u.mat4());const s=[e[0],e[1],e[2],0],r=[t[0],t[1],t[2],0];u.addVec4(r,s,A),u.subVec4(r,s,h);const o=2*s[2],n=h[0],a=h[1],l=h[2];return i[0]=o/n,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o/a,i[6]=0,i[7]=0,i[8]=A[0]/n,i[9]=A[1]/a,i[10]=-A[2]/l,i[11]=-1,i[12]=0,i[13]=0,i[14]=-o*r[2]/l,i[15]=0,i},frustumMat4(e,t,i,s,r,o,n){n||(n=u.mat4());const a=t-e,l=s-i,A=o-r;return n[0]=2*r/a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2*r/l,n[6]=0,n[7]=0,n[8]=(t+e)/a,n[9]=(s+i)/l,n[10]=-(o+r)/A,n[11]=-1,n[12]=0,n[13]=0,n[14]=-o*r*2/A,n[15]=0,n},perspectiveMat4(e,t,i,s,r){const o=[],n=[];return o[2]=i,n[2]=s,n[1]=o[2]*Math.tan(e/2),o[1]=-n[1],n[0]=n[1]*t,o[0]=-n[0],u.frustumMat4v(o,n,r)},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,i=u.vec3()){const s=t[0],r=t[1],o=t[2];return i[0]=e[0]*s+e[4]*r+e[8]*o+e[12],i[1]=e[1]*s+e[5]*r+e[9]*o+e[13],i[2]=e[2]*s+e[6]*r+e[10]*o+e[14],i},transformPoint4:(e,t,i=u.vec4())=>(i[0]=e[0]*t[0]+e[4]*t[1]+e[8]*t[2]+e[12]*t[3],i[1]=e[1]*t[0]+e[5]*t[1]+e[9]*t[2]+e[13]*t[3],i[2]=e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]*t[3],i[3]=e[3]*t[0]+e[7]*t[1]+e[11]*t[2]+e[15]*t[3],i),transformPoints3(e,t,i){const s=i||[],r=t.length;let o,n,a,l;const A=e[0],h=e[1],c=e[2],u=e[3],d=e[4],p=e[5],g=e[6],m=e[7],f=e[8],_=e[9],v=e[10],b=e[11],x=e[12],w=e[13],y=e[14],P=e[15];let B;for(let e=0;e{const e=new a(16),t=new a(16),i=new a(16);return function(s,r,o,n){return this.transformVec3(this.mulMat4(this.inverseMat4(r,e),this.inverseMat4(o,t),i),s,n)}})(),lerpVec3(e,t,i,s,r,o){const n=o||u.vec3(),a=(e-t)/(i-t);return n[0]=s[0]+a*(r[0]-s[0]),n[1]=s[1]+a*(r[1]-s[1]),n[2]=s[2]+a*(r[2]-s[2]),n},lerpMat4(e,t,i,s,r,o){const n=o||u.mat4(),a=(e-t)/(i-t);return n[0]=s[0]+a*(r[0]-s[0]),n[1]=s[1]+a*(r[1]-s[1]),n[2]=s[2]+a*(r[2]-s[2]),n[3]=s[3]+a*(r[3]-s[3]),n[4]=s[4]+a*(r[4]-s[4]),n[5]=s[5]+a*(r[5]-s[5]),n[6]=s[6]+a*(r[6]-s[6]),n[7]=s[7]+a*(r[7]-s[7]),n[8]=s[8]+a*(r[8]-s[8]),n[9]=s[9]+a*(r[9]-s[9]),n[10]=s[10]+a*(r[10]-s[10]),n[11]=s[11]+a*(r[11]-s[11]),n[12]=s[12]+a*(r[12]-s[12]),n[13]=s[13]+a*(r[13]-s[13]),n[14]=s[14]+a*(r[14]-s[14]),n[15]=s[15]+a*(r[15]-s[15]),n},flatten(e){const t=[];let i,s,r,o,n;for(i=0,s=e.length;i(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e),eulerToQuaternion(e,t,i=u.vec4()){const s=e[0]*u.DEGTORAD/2,r=e[1]*u.DEGTORAD/2,o=e[2]*u.DEGTORAD/2,n=Math.cos(s),a=Math.cos(r),l=Math.cos(o),A=Math.sin(s),h=Math.sin(r),c=Math.sin(o);return"XYZ"===t?(i[0]=A*a*l+n*h*c,i[1]=n*h*l-A*a*c,i[2]=n*a*c+A*h*l,i[3]=n*a*l-A*h*c):"YXZ"===t?(i[0]=A*a*l+n*h*c,i[1]=n*h*l-A*a*c,i[2]=n*a*c-A*h*l,i[3]=n*a*l+A*h*c):"ZXY"===t?(i[0]=A*a*l-n*h*c,i[1]=n*h*l+A*a*c,i[2]=n*a*c+A*h*l,i[3]=n*a*l-A*h*c):"ZYX"===t?(i[0]=A*a*l-n*h*c,i[1]=n*h*l+A*a*c,i[2]=n*a*c-A*h*l,i[3]=n*a*l+A*h*c):"YZX"===t?(i[0]=A*a*l+n*h*c,i[1]=n*h*l+A*a*c,i[2]=n*a*c-A*h*l,i[3]=n*a*l-A*h*c):"XZY"===t&&(i[0]=A*a*l-n*h*c,i[1]=n*h*l-A*a*c,i[2]=n*a*c+A*h*l,i[3]=n*a*l+A*h*c),i},mat4ToQuaternion(e,t=u.vec4()){const i=e[0],s=e[4],r=e[8],o=e[1],n=e[5],a=e[9],l=e[2],A=e[6],h=e[10];let c;const d=i+n+h;return d>0?(c=.5/Math.sqrt(d+1),t[3]=.25/c,t[0]=(A-a)*c,t[1]=(r-l)*c,t[2]=(o-s)*c):i>n&&i>h?(c=2*Math.sqrt(1+i-n-h),t[3]=(A-a)/c,t[0]=.25*c,t[1]=(s+o)/c,t[2]=(r+l)/c):n>h?(c=2*Math.sqrt(1+n-i-h),t[3]=(r-l)/c,t[0]=(s+o)/c,t[1]=.25*c,t[2]=(a+A)/c):(c=2*Math.sqrt(1+h-i-n),t[3]=(o-s)/c,t[0]=(r+l)/c,t[1]=(a+A)/c,t[2]=.25*c),t},vec3PairToQuaternion(e,t,i=u.vec4()){const s=Math.sqrt(u.dotVec3(e,e)*u.dotVec3(t,t));let r=s+u.dotVec3(e,t);return r<1e-8*s?(r=0,Math.abs(e[0])>Math.abs(e[2])?(i[0]=-e[1],i[1]=e[0],i[2]=0):(i[0]=0,i[1]=-e[2],i[2]=e[1])):u.cross3Vec3(e,t,i),i[3]=r,u.normalizeQuaternion(i)},angleAxisToQuaternion(e,t=u.vec4()){const i=e[3]/2,s=Math.sin(i);return t[0]=s*e[0],t[1]=s*e[1],t[2]=s*e[2],t[3]=Math.cos(i),t},quaternionToEuler:(()=>{const e=new a(16);return(t,i,s)=>(s=s||u.vec3(),u.quaternionToRotationMat4(t,e),u.mat4ToEuler(e,i,s),s)})(),mulQuaternions(e,t,i=u.vec4()){const s=e[0],r=e[1],o=e[2],n=e[3],a=t[0],l=t[1],A=t[2],h=t[3];return i[0]=n*a+s*h+r*A-o*l,i[1]=n*l+r*h+o*a-s*A,i[2]=n*A+o*h+s*l-r*a,i[3]=n*h-s*a-r*l-o*A,i},vec3ApplyQuaternion(e,t,i=u.vec3()){const s=t[0],r=t[1],o=t[2],n=e[0],a=e[1],l=e[2],A=e[3],h=A*s+a*o-l*r,c=A*r+l*s-n*o,d=A*o+n*r-a*s,p=-n*s-a*r-l*o;return i[0]=h*A+p*-n+c*-l-d*-a,i[1]=c*A+p*-a+d*-n-h*-l,i[2]=d*A+p*-l+h*-a-c*-n,i},quaternionToMat4(e,t){t=u.identityMat4(t);const i=e[0],s=e[1],r=e[2],o=e[3],n=2*i,a=2*s,l=2*r,A=n*o,h=a*o,c=l*o,d=n*i,p=a*i,g=l*i,m=a*s,f=l*s,_=l*r;return t[0]=1-(m+_),t[1]=p+c,t[2]=g-h,t[4]=p-c,t[5]=1-(d+_),t[6]=f+A,t[8]=g+h,t[9]=f-A,t[10]=1-(d+m),t},quaternionToRotationMat4(e,t){const i=e[0],s=e[1],r=e[2],o=e[3],n=i+i,a=s+s,l=r+r,A=i*n,h=i*a,c=i*l,u=s*a,d=s*l,p=r*l,g=o*n,m=o*a,f=o*l;return t[0]=1-(u+p),t[4]=h-f,t[8]=c+m,t[1]=h+f,t[5]=1-(A+p),t[9]=d-g,t[2]=c-m,t[6]=d+g,t[10]=1-(A+u),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 i=u.lenVec4([e[0],e[1],e[2],e[3]]);return t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i,t[3]=e[3]/i,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)=>u.normalizeQuaternion(u.conjugateQuaternion(e,t)),quaternionToAngleAxis(e,t=u.vec4()){const i=(e=u.normalizeQuaternion(e,c))[3],s=2*Math.acos(i),r=Math.sqrt(1-i*i);return r<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r),t[3]=s,t},AABB3:e=>new a(e||6),AABB2:e=>new a(e||4),OBB3:e=>new a(e||32),OBB2:e=>new a(e||16),Sphere3:(e,t,i,s)=>new a([e,t,i,s]),transformOBB3(e,t,i=t){let s;const r=t.length;let o,n,a;const l=e[0],A=e[1],h=e[2],c=e[3],u=e[4],d=e[5],p=e[6],g=e[7],m=e[8],f=e[9],_=e[10],v=e[11],b=e[12],x=e[13],w=e[14],y=e[15];for(s=0;s{const e=new a(3),t=new a(3),i=new a(3);return s=>(e[0]=s[0],e[1]=s[1],e[2]=s[2],t[0]=s[3],t[1]=s[4],t[2]=s[5],u.subVec3(t,e,i),Math.abs(u.lenVec3(i)))})(),getAABB3DiagPoint:(()=>{const e=new a(3),t=new a(3),i=new a(3);return(s,r)=>{e[0]=s[0],e[1]=s[1],e[2]=s[2],t[0]=s[3],t[1]=s[4],t[2]=s[5];const o=u.subVec3(t,e,i),n=r[0]-s[0],a=s[3]-r[0],l=r[1]-s[1],A=s[4]-r[1],h=r[2]-s[2],c=s[5]-r[2];return o[0]+=n>a?n:a,o[1]+=l>A?l:A,o[2]+=h>c?h:c,Math.abs(u.lenVec3(o))}})(),getAABB3Area:e=>(e[3]-e[0])*(e[4]-e[1])*(e[5]-e[2]),getAABB3Center(e,t){const i=t||u.vec3();return i[0]=(e[0]+e[3])/2,i[1]=(e[1]+e[4])/2,i[2]=(e[2]+e[5])/2,i},getAABB2Center(e,t){const i=t||u.vec2();return i[0]=(e[2]+e[0])/2,i[1]=(e[3]+e[1])/2,i},collapseAABB3:(e=u.AABB3())=>(e[0]=u.MAX_DOUBLE,e[1]=u.MAX_DOUBLE,e[2]=u.MAX_DOUBLE,e[3]=u.MIN_DOUBLE,e[4]=u.MIN_DOUBLE,e[5]=u.MIN_DOUBLE,e),AABB3ToOBB3:(e,t=u.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 a(3);return(t,i,s)=>{i=i||u.AABB3();let r,o,n,a=u.MAX_DOUBLE,l=u.MAX_DOUBLE,A=u.MAX_DOUBLE,h=u.MIN_DOUBLE,c=u.MIN_DOUBLE,d=u.MIN_DOUBLE;for(let i=0,p=t.length;ih&&(h=r),o>c&&(c=o),n>d&&(d=n);return i[0]=a,i[1]=l,i[2]=A,i[3]=h,i[4]=c,i[5]=d,i}})(),OBB3ToAABB3(e,t=u.AABB3()){let i,s,r,o=u.MAX_DOUBLE,n=u.MAX_DOUBLE,a=u.MAX_DOUBLE,l=u.MIN_DOUBLE,A=u.MIN_DOUBLE,h=u.MIN_DOUBLE;for(let t=0,c=e.length;tl&&(l=i),s>A&&(A=s),r>h&&(h=r);return t[0]=o,t[1]=n,t[2]=a,t[3]=l,t[4]=A,t[5]=h,t},points3ToAABB3(e,t=u.AABB3()){let i,s,r,o=u.MAX_DOUBLE,n=u.MAX_DOUBLE,a=u.MAX_DOUBLE,l=u.MIN_DOUBLE,A=u.MIN_DOUBLE,h=u.MIN_DOUBLE;for(let t=0,c=e.length;tl&&(l=i),s>A&&(A=s),r>h&&(h=r);return t[0]=o,t[1]=n,t[2]=a,t[3]=l,t[4]=A,t[5]=h,t},points3ToSphere3:(()=>{const e=new a(3);return(t,i)=>{i=i||u.vec4();let s,r=0,o=0,n=0;const a=t.length;for(s=0;sA&&(A=l);return i[3]=A,i}})(),positions3ToSphere3:(()=>{const e=new a(3),t=new a(3);return(i,s)=>{s=s||u.vec4();let r,o=0,n=0,a=0;const l=i.length;let A=0;for(r=0;rA&&(A=c);return s[3]=A,s}})(),OBB3ToSphere3:(()=>{const e=new a(3),t=new a(3);return(i,s)=>{s=s||u.vec4();let r,o=0,n=0,a=0;const l=i.length,A=l/4;for(r=0;rc&&(c=h);return s[3]=c,s}})(),getSphere3Center:(e,t=u.vec3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t),getPositionsCenter(e,t=u.vec3()){let i=0,s=0,r=0;for(var o=0,n=e.length;o(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]i&&(e[0]=i),e[1]>s&&(e[1]=s),e[2]>r&&(e[2]=r),e[3](e[0]=u.MAX_DOUBLE,e[1]=u.MAX_DOUBLE,e[2]=u.MIN_DOUBLE,e[3]=u.MIN_DOUBLE,e),point3AABB3Intersect:(e,t)=>e[0]>t[0]||e[3]t[1]||e[4]t[2]||e[5]0?(s=e[0]*i[0],r=e[0]*i[3]):(s=e[0]*i[3],r=e[0]*i[0]),e[1]>0?(s+=e[1]*i[1],r+=e[1]*i[4]):(s+=e[1]*i[4],r+=e[1]*i[1]),e[2]>0?(s+=e[2]*i[2],r+=e[2]*i[5]):(s+=e[2]*i[5],r+=e[2]*i[2]);if(s<=-t&&r<=-t)return-1;return s>=-t&&r>=-t?1:0},OBB3ToAABB2(e,t=u.AABB2()){let i,s,r,o,n=u.MAX_DOUBLE,a=u.MAX_DOUBLE,l=u.MIN_DOUBLE,A=u.MIN_DOUBLE;for(let t=0,h=e.length;tl&&(l=i),s>A&&(A=s);return t[0]=n,t[1]=a,t[2]=l,t[3]=A,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)*(i-t)+2*e*(s-i),tangentQuadraticBezier3:(e,t,i,s,r)=>-3*t*(1-e)*(1-e)+3*i*(1-e)*(1-e)-6*e*i*(1-e)+6*e*s*(1-e)-3*e*e*s+3*e*e*r,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,i,s,r){const o=.5*(i-e),n=.5*(s-t),a=r*r;return(2*t-2*i+o+n)*(r*a)+(-3*t+3*i-2*o-n)*a+o*r+t},b2p0(e,t){const i=1-e;return i*i*t},b2p1:(e,t)=>2*(1-e)*e*t,b2p2:(e,t)=>e*e*t,b2(e,t,i,s){return this.b2p0(e,t)+this.b2p1(e,i)+this.b2p2(e,s)},b3p0(e,t){const i=1-e;return i*i*i*t},b3p1(e,t){const i=1-e;return 3*i*i*e*t},b3p2:(e,t)=>3*(1-e)*e*e*t,b3p3:(e,t)=>e*e*e*t,b3(e,t,i,s,r){return this.b3p0(e,t)+this.b3p1(e,i)+this.b3p2(e,s)+this.b3p3(e,r)},triangleNormal(e,t,i,s=u.vec3()){const r=t[0]-e[0],o=t[1]-e[1],n=t[2]-e[2],a=i[0]-e[0],l=i[1]-e[1],A=i[2]-e[2],h=o*A-n*l,c=n*a-r*A,d=r*l-o*a,p=Math.sqrt(h*h+c*c+d*d);return 0===p?(s[0]=0,s[1]=0,s[2]=0):(s[0]=h/p,s[1]=c/p,s[2]=d/p),s},rayTriangleIntersect:(()=>{const e=new a(3),t=new a(3),i=new a(3),s=new a(3),r=new a(3);return(o,n,a,l,A,h)=>{h=h||u.vec3();const c=u.subVec3(l,a,e),d=u.subVec3(A,a,t),p=u.cross3Vec3(n,d,i),g=u.dotVec3(c,p);if(g<1e-6)return null;const m=u.subVec3(o,a,s),f=u.dotVec3(m,p);if(f<0||f>g)return null;const _=u.cross3Vec3(m,c,r),v=u.dotVec3(n,_);if(v<0||f+v>g)return null;const b=u.dotVec3(d,_)/g;return h[0]=o[0]+b*n[0],h[1]=o[1]+b*n[1],h[2]=o[2]+b*n[2],h}})(),rayPlaneIntersect:(()=>{const e=new a(3),t=new a(3),i=new a(3),s=new a(3);return(r,o,n,a,l,A)=>{A=A||u.vec3(),o=u.normalizeVec3(o,e);const h=u.subVec3(a,n,t),c=u.subVec3(l,n,i),d=u.cross3Vec3(h,c,s);u.normalizeVec3(d,d);const p=-u.dotVec3(n,d),g=-(u.dotVec3(r,d)+p)/u.dotVec3(o,d);return A[0]=r[0]+g*o[0],A[1]=r[1]+g*o[1],A[2]=r[2]+g*o[2],A}})(),cartesianToBarycentric:(()=>{const e=new a(3),t=new a(3),i=new a(3);return(s,r,o,n,a)=>{const l=u.subVec3(n,r,e),A=u.subVec3(o,r,t),h=u.subVec3(s,r,i),c=u.dotVec3(l,l),d=u.dotVec3(l,A),p=u.dotVec3(l,h),g=u.dotVec3(A,A),m=u.dotVec3(A,h),f=c*g-d*d;if(0===f)return null;const _=1/f,v=(g*p-d*m)*_,b=(c*m-d*p)*_;return a[0]=1-v-b,a[1]=b,a[2]=v,a}})(),barycentricInsideTriangle(e){const t=e[1],i=e[2];return i>=0&&t>=0&&i+t<1},barycentricToCartesian(e,t,i,s,r=u.vec3()){const o=e[0],n=e[1],a=e[2];return r[0]=t[0]*o+i[0]*n+s[0]*a,r[1]=t[1]*o+i[1]*n+s[1]*a,r[2]=t[2]*o+i[2]*n+s[2]*a,r},mergeVertices(e,t,i,s){const r={},o=[],n=[],a=t?[]:null,l=i?[]:null,A=[];let h,c,u,d;const p=1e4;let g,m,f=0;for(g=0,m=e.length;g{const e=new a(3),t=new a(3),i=new a(3),s=new a(3),r=new a(3),o=new a(3);return(n,a,l)=>{let A,h;const c=new Array(n.length/3);let d,p,g,m,f,_,v;for(A=0,h=a.length;A{const e=new a(3),t=new a(3),i=new a(3),s=new a(3),r=new a(3),o=new a(3),n=new a(3);return(a,l,A)=>{const h=new Float32Array(a.length);for(let c=0;c>24&255,h=u>>16&255,A=u>>8&255,l=255&u,a=t[i],n=3*a,r[d++]=e[n],r[d++]=e[n+1],r[d++]=e[n+2],o[p++]=l,o[p++]=A,o[p++]=h,o[p++]=c,a=t[i+1],n=3*a,r[d++]=e[n],r[d++]=e[n+1],r[d++]=e[n+2],o[p++]=l,o[p++]=A,o[p++]=h,o[p++]=c,a=t[i+2],n=3*a,r[d++]=e[n],r[d++]=e[n+1],r[d++]=e[n+2],o[p++]=l,o[p++]=A,o[p++]=h,o[p++]=c,u++;return{positions:r,colors:o}},faceToVertexNormals(e,t,i={}){const s=i.smoothNormalsAngleThreshold||20,r={},o=[],n={};let a,l,A,h,c;const d=1e4;let p,g,m,f,_,v;for(g=0,f=e.length;g{const e=new a(4),t=new a(4);return(i,s,r,o,n)=>{e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=1,u.transformVec4(i,e,t),o[0]=t[0],o[1]=t[1],o[2]=t[2],e[0]=r[0],e[1]=r[1],e[2]=r[2],u.transformVec3(i,e,t),u.normalizeVec3(t),n[0]=t[0],n[1]=t[1],n[2]=t[2]}})(),canvasPosToWorldRay:(()=>{const e=new a(16),t=new a(16),i=new a(4),s=new a(4),r=new a(4),o=new a(4);return(n,a,l,A,h,c)=>{const d=u.mulMat4(l,a,e),p=u.inverseMat4(d,t),g=n.width,m=n.height,f=(A[0]-g/2)/(g/2),_=-(A[1]-m/2)/(m/2);i[0]=f,i[1]=_,i[2]=-1,i[3]=1,u.transformVec4(p,i,s),u.mulVec4Scalar(s,1/s[3]),r[0]=f,r[1]=_,r[2]=1,r[3]=1,u.transformVec4(p,r,o),u.mulVec4Scalar(o,1/o[3]),h[0]=o[0],h[1]=o[1],h[2]=o[2],u.subVec3(o,s,c),u.normalizeVec3(c)}})(),canvasPosToLocalRay:(()=>{const e=new a(3),t=new a(3);return(i,s,r,o,n,a,l)=>{u.canvasPosToWorldRay(i,s,r,n,e,t),u.worldRayToLocalRay(o,e,t,a,l)}})(),worldRayToLocalRay:(()=>{const e=new a(16),t=new a(4),i=new a(4);return(s,r,o,n,a)=>{const l=u.inverseMat4(s,e);t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=1,u.transformVec4(l,t,i),n[0]=i[0],n[1]=i[1],n[2]=i[2],u.transformVec3(l,o,a)}})(),buildKDTree:(()=>{const e=new Float32Array;function t(i,s,r,o){const n=new a(6),l={triangles:null,left:null,right:null,leaf:!1,splitDim:0,aabb:n};let A,h;for(n[0]=n[1]=n[2]=Number.POSITIVE_INFINITY,n[3]=n[4]=n[5]=Number.NEGATIVE_INFINITY,A=0,h=i.length;An[3]&&(n[3]=r[t]),r[t+1]n[4]&&(n[4]=r[t+1]),r[t+2]n[5]&&(n[5]=r[t+2])}}if(i.length<20||o>10)return l.triangles=i,l.leaf=!0,l;e[0]=n[3]-n[0],e[1]=n[4]-n[1],e[2]=n[5]-n[2];let u=0;e[1]>e[u]&&(u=1),e[2]>e[u]&&(u=2),l.splitDim=u;const d=(n[u]+n[u+3])/2,p=new Array(i.length);let g=0;const m=new Array(i.length);let f=0;for(A=0,h=i.length;A{const s=e.length/3,r=new Array(s);for(let e=0;e=0?1:-1),s=(1-Math.abs(i))*(s>=0?1:-1));const o=Math.sqrt(i*i+s*s+r*r);return t[0]=i/o,t[1]=s/o,t[2]=r/o,t},octDecodeVec2s(e,t){for(let i=0,s=0,r=e.length;i=0?1:-1),o=(1-Math.abs(r))*(o>=0?1:-1));const a=Math.sqrt(r*r+o*o+n*n);t[s+0]=r/a,t[s+1]=o/a,t[s+2]=n/a,s+=3}return t}};u.buildEdgeIndices=function(){const e=[],t=[],i=[],s=[],r=[];let o=0;const n=new Uint16Array(3),a=new Uint16Array(3),l=new Uint16Array(3),A=u.vec3(),h=u.vec3(),c=u.vec3(),d=u.vec3(),p=u.vec3(),g=u.vec3(),m=u.vec3();return function(f,_,v,b){!function(r,o){const n={};let a,l,A,h;const c=Math.pow(10,4);let u,d,p=0;for(u=0,d=r.length;uw)||(T=i[F.index1],R=i[F.index2],(!L&&T>65535||R>65535)&&(L=!0),x.push(T),x.push(R));return L?new Uint32Array(x):new Uint16Array(x)}}(),u.planeClipsPositions3=function(e,t,i,s=3){for(let r=0,o=i.length;r{};t=t||s,i=i||s;var r=new XMLHttpRequest;r.overrideMimeType("application/json"),r.open("GET",e,!0),r.addEventListener("load",(function(e){var s=e.target.response;if(200===this.status){var r;try{r=JSON.parse(s)}catch(e){i(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}t(r)}else if(0===this.status){console.warn("loadFile: HTTP Status 0 received.");try{t(JSON.parse(s))}catch(e){i(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}}else i(e)}),!1),r.addEventListener("error",(function(e){i(e)}),!1),r.send(null)},loadArraybuffer:function(e,t,i){var s=e=>{};t=t||s,i=i||s;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),i=new Uint8Array(e);for(var n=0;n{t(e)}))}catch(e){C.scheduleTask((()=>{i(e)}))}}else{const s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onreadystatechange=function(){4===s.readyState&&(200===s.status?t(s.response):i("loadArrayBuffer error : "+s.response))},s.send(null)}},queryString:m,isArray:function(e){return e&&!e.propertyIsEnumerable("length")&&"object"==typeof e&&"number"==typeof e.length},isString:function(e){return"string"==typeof e||e instanceof String},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},isID:function(e){return f.isString(e)||f.isNumeric(e)},isSameComponent:function(e,t){return!(!e||!t)&&(f.isNumeric(e)||f.isString(e)?`${e}`:e.id)===(f.isNumeric(t)||f.isString(t)?`${t}`:t.id)},isFunction:function(e){return"function"==typeof e},isObject:function(e){const t={}.constructor;return!!e&&e.constructor===t},copy:function(e){return f.apply(e,{})},apply:function(e,t){for(const i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t},apply2:function(e,t){for(const i in e)e.hasOwnProperty(i)&&void 0!==e[i]&&null!==e[i]&&(t[i]=e[i]);return t},applyIf:function(e,t){for(const i in e)e.hasOwnProperty(i)&&(void 0!==t[i]&&null!==t[i]||(t[i]=e[i]));return t},isEmptyObject:function(e){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},inQuotes:function(e){return f.isNumeric(e)?`${e}`:`'${e}'`},concat:function(e,t){const i=new e.constructor(e.length+t.length);return i.set(e),i.set(t,e.length),i},flattenParentChildHierarchy:function(e){var t=[];return function e(i){i.id=i.uuid,delete i.oid,t.push(i);var s=i.children;if(s)for(var r=0,o=s.length;r=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}},x={sceneId:null,time:null,startTime:null,prevTime:null,deltaTime:null},w=[];let y,P=0,B=0;const C=new function(){this.version="1.0.0",this.scenes={},this._superTypes={},this._addScene=function(e){if(e.id){if(C.scenes[e.id])return void console.error(`[ERROR] Scene ${f.inQuotes(e.id)} already exists`)}else e.id=v.addItem({});C.scenes[e.id]=e;const t=e.ticksPerOcclusionTest,i=e.ticksPerRender;_[e.id]={ticksPerOcclusionTest:t,ticksPerRender:i,renderCountdown:i},d.components.scenes++,e.once("destroyed",(()=>{v.removeItem(e.id),delete C.scenes[e.id],delete _[e.id],d.components.scenes--}))},this.clear=function(){let e;for(const t in C.scenes)C.scenes.hasOwnProperty(t)&&(e=C.scenes[t],"default.scene"===t?e.clear():(e.destroy(),delete C.scenes[e.id]))},this.scheduleTask=function(e,t=null){b.push(e),b.push(t)},this.runTasks=function(e=-1){let t,i,s=(new Date).getTime(),r=0;for(;b.length>0&&(e<0||s0&&y>0){var t=1e3/y;B+=t,w.push(t),w.length>=30&&(B-=w.shift()),d.frame.fps=Math.round(B/w.length)}for(let e in C.scenes)C.scenes[e].compile();F(e),P=e};new class{worker=null;constructor(e,t){const i=new Blob([`setInterval(() => postMessage(0), ${t});`]),s=URL.createObjectURL(i);this.worker=new Worker(s),this.worker.onmessage=e}stop(){this.worker.terminate()}}(M,100);const E=function(){let e=Date.now();if(y=e-P,P>0&&y>0){var t=1e3/y;B+=t,w.push(t),w.length>=30&&(B-=w.shift()),d.frame.fps=Math.round(B/w.length)}F(e),function(e){for(var t in x.time=e,C.scenes)if(C.scenes.hasOwnProperty(t)){var i=C.scenes[t];x.sceneId=t,x.startTime=i.startTime,x.deltaTime=null!=x.prevTime?x.time-x.prevTime:0,i.fire("tick",x,!0)}x.prevTime=e}(e),function(){const e=C.scenes,t=!1;let i,s,r,o,n;for(n in e)e.hasOwnProperty(n)&&(i=e[n],s=_[n],s||(s=_[n]={}),r=i.ticksPerOcclusionTest,s.ticksPerOcclusionTest!==r&&(s.ticksPerOcclusionTest=r,s.renderCountdown=r),--i.occlusionTestCountdown<=0&&(i.doOcclusionTest(),i.occlusionTestCountdown=r),o=i.ticksPerRender,s.ticksPerRender!==o&&(s.ticksPerRender=o,s.renderCountdown=o),0==--s.renderCountdown&&(i.render(t),s.renderCountdown=o))}(),void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(M):requestAnimationFrame(E)};function F(e){const t=C.runTasks(e+10),i=C.getNumTasks();d.frame.tasksRun=t,d.frame.tasksScheduled=i,d.frame.tasksBudget=10}E();class I{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 I))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,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],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--)}on(t,i,s){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let r=this._eventSubs[t];r?this._eventSubsNum[t]++:(r={},this._eventSubs[t]=r,this._eventSubsNum[t]=1);const o=this._subIdMap.addItem();r[o]={callback:i,scope:s||this},this._subIdEvents[o]=t;const n=this._events[t];return void 0!==n&&i.call(s||this,n),o}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&(delete i[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}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+" "+f.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 i=e.component;const s=e.sceneDefault,r=e.sceneSingleton,o=e.type,n=e.on,a=!1!==e.recompiles;if(i&&(f.isNumeric(i)||f.isString(i))){const e=i;if(i=this.scene.components[e],!i)return void this.error("Component not found: "+f.inQuotes(e))}if(!i)if(!0===r){const e=this.scene.types[o];for(const t in e)if(e.hasOwnProperty){i=e[t];break}if(!i)return this.error("Scene has no default component for '"+t+"'"),null}else if(!0===s&&(i=this.scene[t],!i))return this.error("Scene has no default component for '"+t+"'"),null;if(i){if(i.scene.id!==this.scene.id)return void this.error("Not in same scene: "+i.type+" "+f.inQuotes(i.id));if(o&&!i.isType(o))return void this.error("Expected a "+o+" type or subtype: "+i.type+" "+f.inQuotes(i.id))}this._attachments||(this._attachments={});const l=this._attached[t];let A,h,c;if(l){if(i&&l.id===i.id)return;const e=this._attachments[l.id];for(A=e.subs,h=0,c=A.length;h{delete this._ownedComponents[e.id]}),this)}_needUpdate(e){this._updateScheduled||(this._updateScheduled=!0,0===e?this._doUpdate():C.scheduleTask(this._doUpdate,this))}_doUpdate(){this._updateScheduled&&(this._updateScheduled=!1,this._update&&this._update())}scheduleTask(e){C.scheduleTask(e,null)}_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,i,s,r,o;if(this.fire("destroyed",this.destroyed=!0),this._attachments)for(e in this._attachments)if(this._attachments.hasOwnProperty(e)){for(t=this._attachments[e],i=t.component,s=t.subs,r=0,o=s.length;r=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}class L{constructor(){this.planes=[new R,new R,new R,new R,new R,new R]}}function U(e,t,i){const s=u.mulMat4(i,t,T),r=s[0],o=s[1],n=s[2],a=s[3],l=s[4],A=s[5],h=s[6],c=s[7],d=s[8],p=s[9],g=s[10],m=s[11],f=s[12],_=s[13],v=s[14],b=s[15];e.planes[0].set(a-r,c-l,m-d,b-f),e.planes[1].set(a+r,c+l,m+d,b+f),e.planes[2].set(a-o,c-A,m-p,b-_),e.planes[3].set(a+o,c+A,m+p,b+_),e.planes[4].set(a-n,c-h,m-g,b-v),e.planes[5].set(a+n,c+h,m+g,b+v)}function k(e,t){let i=L.INSIDE;const s=D,r=S;s[0]=t[0],s[1]=t[1],s[2]=t[2],r[0]=t[3],r[1]=t[4],r[2]=t[5];const o=[s,r];for(let t=0;t<6;++t){const s=e.planes[t];if(s.normal[0]*o[s.testVertex[0]][0]+s.normal[1]*o[s.testVertex[1]][1]+s.normal[2]*o[s.testVertex[2]][2]+s.offset<0)return L.OUTSIDE;s.normal[0]*o[1-s.testVertex[0]][0]+s.normal[1]*o[1-s.testVertex[1]][1]+s.normal[2]*o[1-s.testVertex[2]][2]+s.offset<0&&(i=L.INTERSECT)}return i}L.INSIDE=0,L.INTERSECT=1,L.OUTSIDE=2;class O extends I{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=u.vec2(),this._canvasMarqueeCorner2=u.vec2(),this._canvasMarquee=u.AABB2(),this._marqueeFrustum=new L,this._marqueeFrustumProjMat=u.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!==O.PICK_MODE_INSIDE&&e!==O.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===O.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=(i,s=L.INTERSECT)=>{if(s===L.INTERSECT&&(s=k(this._marqueeFrustum,i.aabb)),s!==L.OUTSIDE){if(i.entities){const t=i.entities;for(let i=0,s=t.length;i3||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,i=e.clientHeight,s=e.clientLeft,r=e.clientTop,o=2/t,n=2/i,a=e.clientHeight/e.clientWidth,l=(this._canvasMarquee[0]-s)*o-1,A=(this._canvasMarquee[2]-s)*o-1,h=-(this._canvasMarquee[3]-r)*n+1,c=-(this._canvasMarquee[1]-r)*n+1,d=this.viewer.scene.camera.frustum.near*(17*a);u.frustumMat4(l,A,h*a,c*a,d,1e4,this._marqueeFrustumProjMat),U(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)}}O.PICK_MODE_INTERSECTS=0,O.PICK_MODE_INSIDE=1;class N{constructor(e,t,i){this.id=i&&i.id?i.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)}scheduleTask(e){C.scheduleTask(e,null)}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],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--)}on(t,i,s){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new e),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let r=this._eventSubs[t];r?this._eventSubsNum[t]++:(r={},this._eventSubs[t]=r,this._eventSubsNum[t]=1);const o=this._subIdMap.addItem();r[o]={callback:i,scope:s||this},this._subIdEvents[o]=t;const n=this._events[t];return void 0!==n&&i.call(s||this,n),o}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&(delete i[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}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 Q=u.vec3(),V=function(){const e=new Float64Array(16),t=new Float64Array(4),i=new Float64Array(4);return function(s,r,o){return o=o||e,t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=1,u.transformVec4(s,t,i),u.setMat4Translation(s,i,o),o.slice()}}();function j(e,t,i){const s=Float32Array.from([e[0]])[0],r=e[0]-s,o=Float32Array.from([e[1]])[0],n=e[1]-o,a=Float32Array.from([e[2]])[0],l=e[2]-a;t[0]=s,t[1]=o,t[2]=a,i[0]=r,i[1]=n,i[2]=l}function H(e,t,i,s=1e3){const r=u.getPositionsCenter(e,Q),o=Math.round(r[0]/s)*s,n=Math.round(r[1]/s)*s,a=Math.round(r[2]/s)*s;i[0]=o,i[1]=n,i[2]=a;const l=0!==i[0]||0!==i[1]||0!==i[2];if(l)for(let i=0,s=e.length;i0?this.meshes[0]._colorize[3]/255:1}set opacity(e){if(0===this.meshes.length)return;const t=null!=e,i=this.meshes[0]._colorize[3];let s=255;if(t){if(e<0?e=0:e>1&&(e=1),s=Math.floor(255*e),i===s)return}else if(s=255,i===s)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&&(u.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,u.transformPoint4(this.scene.camera.projMatrix,se,re);const e=this.scene.canvas.boundary;this._canvasPos[0]=Math.floor((1+re[0]/re[3])*e[2]/2),this._canvasPos[1]=Math.floor((1-re[1]/re[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 ie?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 ne{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 i=this._wire,s=i.style;s.border="solid "+this._thickness+"px "+this._color,s.position="absolute",s["z-index"]=void 0===t.zIndex?"2000001":t.zIndex,s.width="0px",s.height="0px",s.visibility="visible",s.top="0px",s.left="0px",s["-webkit-transform-origin"]="0 0",s["-moz-transform-origin"]="0 0",s["-ms-transform-origin"]="0 0",s["-o-transform-origin"]="0 0",s["transform-origin"]="0 0",s["-webkit-transform"]="rotate(0deg)",s["-moz-transform"]="rotate(0deg)",s["-ms-transform"]="rotate(0deg)",s["-o-transform"]="rotate(0deg)",s.transform="rotate(0deg)",s.opacity=1,s["pointer-events"]="none",t.onContextMenu,e.appendChild(i);var r=this._wireClickable,o=r.style;o.border="solid "+this._thicknessClickable+"px "+this._color,o.position="absolute",o["z-index"]=void 0===t.zIndex?"2000002":t.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",t.onContextMenu,e.appendChild(r),t.onMouseOver&&r.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&r.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&r.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&r.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&r.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&r.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&r.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,i=this._wire.style;i.width=Math.round(e)+"px",i.left=Math.round(this._x1)+"px",i.top=Math.round(this._y1)+"px",i["-webkit-transform"]="rotate("+t+"deg)",i["-moz-transform"]="rotate("+t+"deg)",i["-ms-transform"]="rotate("+t+"deg)",i["-o-transform"]="rotate("+t+"deg)",i.transform="rotate("+t+"deg)";var s=this._wireClickable.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)"}setStartAndEnd(e,t,i,s){this._x1=e,this._y1=t,this._x2=i,this._y2=s,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 ae{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 i=this._dot,s=i.style;s["border-radius"]="25px",s.border="solid 2px white",s.background="lightgreen",s.position="absolute",s["z-index"]=void 0===t.zIndex?"40000005":t.zIndex,s.width="8px",s.height="8px",s.visibility=!1!==t.visible?"visible":"hidden",s.top="0px",s.left="0px",s["box-shadow"]="0 2px 5px 0 #182A3D;",s.opacity=1,s["pointer-events"]="none",t.onContextMenu,e.appendChild(i);var r=this._dotClickable,o=r.style;o["border-radius"]="35px",o.border="solid 10px white",o.position="absolute",o["z-index"]=void 0===t.zIndex?"40000007":t.zIndex+1,o.width="8px",o.height="8px",o.visibility="visible",o.top="0px",o.left="0px",o.opacity=0,o["pointer-events"]="none",t.onContextMenu,e.appendChild(r),r.addEventListener("click",(t=>{e.dispatchEvent(new MouseEvent("mouseover",t))})),t.onMouseOver&&r.addEventListener("mouseover",(i=>{t.onMouseOver(i,this),e.dispatchEvent(new MouseEvent("mouseover",i))})),t.onMouseLeave&&r.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&r.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&r.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&r.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&r.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&r.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 i=this._dot.style;i.left=Math.round(e)-4+"px",i.top=Math.round(t)-4+"px";var s=this._dotClickable.style;s.left=Math.round(e)-9+"px",s.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 i=this._label,s=i.style;s["border-radius"]="5px",s.color="white",s.padding="4px",s.border="solid 1px",s.background="lightgreen",s.position="absolute",s["z-index"]=void 0===t.zIndex?"5000005":t.zIndex,s.width="auto",s.height="auto",s.visibility="visible",s.top="0px",s.left="0px",s["pointer-events"]="all",s.opacity=1,t.onContextMenu,i.innerText="",e.appendChild(i),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.fillColor),this.setText(t.text),t.onMouseOver&&i.addEventListener("mouseover",(e=>{t.onMouseOver(e,this),e.preventDefault()})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this),e.preventDefault()})),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()}))}setPos(e,t){this._x=e,this._y=t;var i=this._label.style;i.left=Math.round(e)-20+"px",i.top=Math.round(t)-12+"px"}setPosOnWire(e,t,i,s){var r=e+.5*(i-e),o=t+.5*(s-t),n=this._label.style;n.left=Math.round(r)-20+"px",n.top=Math.round(o)-12+"px"}setPosBetweenWires(e,t,i,s,r,o){var n=(e+i+r)/3,a=(t+s+o)/3,l=this._label.style;l.left=Math.round(n)-20+"px",l.top=Math.round(a)-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=u.vec3(),he=u.vec3();class ce extends I{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 i=this.plugin.viewer.scene;this._originMarker=new oe(i,t.origin),this._cornerMarker=new oe(i,t.corner),this._targetMarker=new oe(i,t.target),this._originWorld=u.vec3(),this._cornerWorld=u.vec3(),this._targetWorld=u.vec3(),this._wp=new Float64Array(12),this._vp=new Float64Array(12),this._pp=new Float64Array(12),this._cp=new Int16Array(6);const s=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,r=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,o=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,n=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))},a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},l=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},A=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))};this._originDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._cornerDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._targetDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._originWire=new ne(this._container,{color:this._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._targetWire=new ne(this._container,{color:this._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._angleLabel=new le(this._container,{fillColor:this._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),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=i.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=i.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=i.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onSectionPlaneUpdated=i.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&&(u.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 d=-.3,p=this._originMarker.viewPos[2],g=this._cornerMarker.viewPos[2],m=this._targetMarker.viewPos[2];if(p>d||g>d||m>d)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);u.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var t=this._pp,i=this._cp,s=e.canvas.canvas.getBoundingClientRect();const f=this._container.getBoundingClientRect();for(var r=s.top-f.top,o=s.left-f.left,n=e.canvas.boundary,a=n[2],l=n[3],A=0,h=0,c=t.length;h{e.snappedToVertex||e.snappedToEdge?(s&&(s.visible=!0,s.canvasPos=e.canvasPos,s.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,s.snapped=!0),this.markerDiv.style.background="greenyellow",this.markerDiv.style.border="2px solid green"):(s&&(s.visible=!0,s.canvasPos=e.canvasPos,s.snappedCanvasPos=e.canvasPos,s.snapped=!1),this.markerDiv.style.background="pink",this.markerDiv.style.border="2px solid red");const i=e.snappedCanvasPos||e.canvasPos;switch(r=!0,o=e.entity,l.set(e.worldPos),A.set(i),this._mouseState){case 0:const s=t.getBoundingClientRect(),r=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop,n=s.left+r,a=s.top+o;this.markerDiv.style.left=n+i[0]-5+"px",this.markerDiv.style.top=a+i[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.left="-10000px",this.markerDiv.style.top="-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.left="-10000px",this.markerDiv.style.top="-10000px",t.style.cursor="pointer"}})),t.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(n=e.clientX,a=e.clientY)}),t.addEventListener("mouseup",this._onMouseUp=e=>{if(1===e.which&&!(e.clientX>n+20||e.clientXa+20||e.clientY{if(r=!1,s&&(s.visible=!0,s.pointerPos=e.canvasPos,s.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,s.snapped=!1),this.markerDiv.style.left="-100px",this.markerDiv.style.top="-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 pe extends N{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 de(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,i=e.corner,s=e.target,r=new ce(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},corner:{entity:i.entity,worldPos:i.worldPos},target:{entity:s.entity,worldPos:s.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[r.id]=r,r.on("destroyed",(()=>{delete this._measurements[r.id]})),r.clickable=!0,this.fire("measurementCreated",r),r}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,i]of Object.entries(this.measurements))i.labelShown=e}clear(){const e=Object.keys(this._measurements);for(var t=0,i=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,i=t.style;i.left=e.offsetLeft+.5*e.clientWidth-.5*t.clientWidth+"px",i.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 i=this._element;i&&(i.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 fe extends I{constructor(e,t={}){super(e,t),this._backgroundColor=u.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 i=this;this.canvas.addEventListener("webglcontextlost",this._webglcontextlostListener=function(e){console.time("webglcontextrestored"),i.scene._webglContextLost(),i.fire("webglcontextlost"),e.preventDefault()},!1),this.canvas.addEventListener("webglcontextrestored",this._webglcontextrestoredListener=function(e){i._initWebGL(),i.gl&&(i.scene._webglContextRestored(i.gl),i.fire("webglcontextrestored",i.gl),e.preventDefault()),console.timeEnd("webglcontextrestored")},!1);let s=!0;new ResizeObserver((e=>{for(const t of e)t.contentBoxSize&&(s=!0)})).observe(this.canvas),this._tick=this.scene.on("tick",(()=>{s&&(s=!1,i.canvas.width=Math.round(i.canvas.clientWidth*i._resolutionScale),i.canvas.height=Math.round(i.canvas.clientHeight*i._resolutionScale),i.boundary[0]=i.canvas.offsetLeft,i.boundary[1]=i.canvas.offsetTop,i.boundary[2]=i.canvas.clientWidth,i.boundary[3]=i.canvas.clientHeight,i.fire("boundary",i.boundary))})),this._spinner=new ge(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-"+u.createUUID(),t=document.getElementsByTagName("body")[0],i=document.createElement("div"),s=i.style;s.height="100%",s.width="100%",s.padding="0",s.margin="0",s.background="rgba(0,0,0,0);",s.float="left",s.left="0",s.top="0",s.position="absolute",s.opacity="1.0",s["z-index"]="-10000",i.innerHTML+='',t.appendChild(i),this.canvas=document.getElementById(e)}_getElementXY(e){let t=0,i=0;for(;e;)t+=e.offsetLeft-e.scrollLeft,i+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{x:t,y:i}}_initWebGL(){if(!this.gl)for(let e=0;!this.gl&&e0?ve.FS_MAX_FLOAT_PRECISION="highp":e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?ve.FS_MAX_FLOAT_PRECISION="mediump":ve.FS_MAX_FLOAT_PRECISION="lowp":ve.FS_MAX_FLOAT_PRECISION="mediump",ve.DEPTH_BUFFER_BITS=e.getParameter(e.DEPTH_BITS),ve.MAX_TEXTURE_SIZE=e.getParameter(e.MAX_TEXTURE_SIZE),ve.MAX_CUBE_MAP_SIZE=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),ve.MAX_RENDERBUFFER_SIZE=e.getParameter(e.MAX_RENDERBUFFER_SIZE),ve.MAX_TEXTURE_UNITS=e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),ve.MAX_TEXTURE_IMAGE_UNITS=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),ve.MAX_VERTEX_ATTRIBS=e.getParameter(e.MAX_VERTEX_ATTRIBS),ve.MAX_VERTEX_UNIFORM_VECTORS=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),ve.MAX_FRAGMENT_UNIFORM_VECTORS=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),ve.MAX_VARYING_VECTORS=e.getParameter(e.MAX_VARYING_VECTORS),e.getSupportedExtensions().forEach((function(e){ve.SUPPORTED_EXTENSIONS[e]=!0})))}class xe{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 we{constructor(e,t,i){if(this.allocated=!1,this.compiled=!1,this.handle=e.createShader(t),this.handle){if(this.allocated=!0,e.shaderSource(this.handle,i),e.compileShader(this.handle),this.compiled=e.getShaderParameter(this.handle,e.COMPILE_STATUS),!this.compiled&&!e.isContextLost()){const t=i.split("\n"),s=[];for(let e=0;e0&&"/"===i.charAt(s+1)&&(i=i.substring(0,s)),t.push(i);return t.join("\n")}function Me(e){console.error(e.join("\n"))}class Ee{constructor(e,t){this.id=Be.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 we(e,e.VERTEX_SHADER,Ce(this.source.vertex)),this._fragmentShader=new we(e,e.FRAGMENT_SHADER,Ce(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,i,s,r,o;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 n=e.getProgramParameter(this.handle,e.ACTIVE_UNIFORMS);for(i=0;ithis.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 Ie{constructor(e,t){this.scene=e,this.aabb=u.AABB3(),this.origin=u.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){i._setVisible(!1);continue}const n=i.canvasPos,a=n[0],l=n[1];a+10<0||l+10<0||a-10>s||l-10>r?i._setVisible(!1):!i.entity||i.entity.visible?i.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=i,this.pixels[o++]=a,this.pixels[o++]=l):i._setVisible(!0):i._setVisible(!1)}}_updateActiveSectionPlanes(){const e=this.scene._sectionPlanesState.sectionPlanes,t=e.length;if(t>0)for(let i=0;i{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 i=this._occlusionLayers[t];i||(i=new Ie(this._scene,e.origin),this._occlusionLayers[i.originHash]=i,this._occlusionLayersListDirty=!0),i.addMarker(e),this._markersToOcclusionLayersMap[e.id]=i,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 i=e.origin.join();if(i!==t.originHash){1===t.numMarkers?(t.destroy(),delete this._occlusionLayers[t.originHash],this._occlusionLayersListDirty=!0):t.removeMarker(e);let s=this._occlusionLayers[i];s||(s=new Ie(this._scene,e.origin),this._occlusionLayers[i]=t,this._occlusionLayersListDirty=!0),s.addMarker(e),this._markersToOcclusionLayersMap[e.id]=s}else t.markerWorldPosUpdated(e)}removeMarker(e){const t=e.origin.join();let i=this._occlusionLayers[t];i&&(1===i.numMarkers?(i.destroy(),delete this._occlusionLayers[i.originHash],this._occlusionLayersListDirty=!0):i.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,i=[];return i.push("#version 300 es"),i.push("// OcclusionTester vertex shader"),i.push("in vec3 position;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&i.push("out vec4 vWorldPosition;"),i.push("void main(void) {"),i.push("vec4 worldPosition = vec4(position, 1.0); "),i.push(" vec4 viewPosition = viewMatrix * worldPosition;"),t&&i.push(" vWorldPosition = worldPosition;"),i.push(" vec4 clipPos = projMatrix * viewPosition;"),i.push(" gl_PointSize = 20.0;"),e.logarithmicDepthBufferEnabled?i.push("vFragDepth = 1.0 + clipPos.w;"):i.push("clipPos.z += -0.001;"),i.push(" gl_Position = clipPos;"),i.push("}"),i}_buildFragmentShaderSource(){const e=this._scene,t=e._sectionPlanesState,i=t.sectionPlanes.length>0,s=[];if(s.push("#version 300 es"),s.push("// OcclusionTester 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),s.push("}"),s}_buildProgram(){this._program&&this._program.destroy();const e=this._scene,t=e.canvas.gl,i=e._sectionPlanesState;if(this._program=new Ee(t,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,t=i.sectionPlanes.length;e0){const e=s.sectionPlanes;for(let s=0;s{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=u.mat4();return()=>(e&&u.inverseMat4(s.camera.projMatrix,t),t)})());const t=this._scene.canvas.gl,i=this._program,s=this._scene,r=s.sao,o=t.drawingBufferWidth,n=t.drawingBufferHeight,a=s.camera.project._state,l=a.near,A=a.far,h=a.matrix,c=this._getInverseProjectMat(),d=Math.random(),p="perspective"===s.camera.projection;Re[0]=o,Re[1]=n,t.viewport(0,0,o,n),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),i.bind(),t.uniform1f(this._uCameraNear,l),t.uniform1f(this._uCameraFar,A),t.uniformMatrix4fv(this._uCameraProjectionMatrix,!1,h),t.uniformMatrix4fv(this._uCameraInverseProjectionMatrix,!1,c),t.uniform1i(this._uPerspective,p),t.uniform1f(this._uScale,r.scale*(A/5)),t.uniform1f(this._uIntensity,r.intensity),t.uniform1f(this._uBias,r.bias),t.uniform1f(this._uKernelRadius,r.kernelRadius),t.uniform1f(this._uMinResolution,r.minResolution),t.uniform2fv(this._uViewport,Re),t.uniform1f(this._uRandomSeed,d);const g=e.getDepthTexture();i.bindTexture(this._uDepthTexture,g,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 i=this._scene.canvas.gl;if(this._program&&(this._program.destroy(),this._program=null),this._program=new Ee(i,{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 s=new Float32Array([1,1,0,1,0,0,1,0]),r=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),o=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Fe(i,i.ARRAY_BUFFER,r,r.length,3,i.STATIC_DRAW),this._uvBuf=new Fe(i,i.ARRAY_BUFFER,s,s.length,2,i.STATIC_DRAW),this._indicesBuf=new Fe(i,i.ELEMENT_ARRAY_BUFFER,o,o.length,1,i.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 Ue=new Float32Array(je(17,[0,1])),ke=new Float32Array(je(17,[1,0])),Oe=new Float32Array(function(e,t){const i=[];for(let s=0;s<=e;s++)i.push(Ve(s,t));return i}(17,4)),Ne=new Float32Array(2);class Qe{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 Ee(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]),i=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),s=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Fe(e,e.ARRAY_BUFFER,i,i.length,3,e.STATIC_DRAW),this._uvBuf=new Fe(e,e.ARRAY_BUFFER,t,t.length,2,e.STATIC_DRAW),this._indicesBuf=new Fe(e,e.ELEMENT_ARRAY_BUFFER,s,s.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,i){if(this._programError)return;this._getInverseProjectMat||(this._getInverseProjectMat=(()=>{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=u.mat4();return()=>(e&&u.inverseMat4(o.camera.projMatrix,t),t)})());const s=this._scene.canvas.gl,r=this._program,o=this._scene,n=s.drawingBufferWidth,a=s.drawingBufferHeight,l=o.camera.project._state,A=l.near,h=l.far;s.viewport(0,0,n,a),s.clearColor(0,0,0,1),s.enable(s.DEPTH_TEST),s.disable(s.BLEND),s.frontFace(s.CCW),s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),r.bind(),Ne[0]=n,Ne[1]=a,s.uniform2fv(this._uViewport,Ne),s.uniform1f(this._uCameraNear,A),s.uniform1f(this._uCameraFar,h),s.uniform1f(this._uDepthCutoff,.01),0===i?s.uniform2fv(this._uSampleOffsets,ke):s.uniform2fv(this._uSampleOffsets,Ue),s.uniform1fv(this._uSampleWeights,Oe);const c=e.getDepthTexture(),d=t.getTexture();r.bindTexture(this._uDepthTexture,c,0),r.bindTexture(this._uOcclusionTexture,d,1),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),s.drawElements(s.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}destroy(){this._program.destroy()}}function Ve(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function je(e,t){const i=[];for(let s=0;s<=e;s++)i.push(t[0]*s),i.push(t[1]*s);return i}class He{constructor(e,t,i){i=i||{},this.gl=t,this.allocated=!1,this.canvas=e,this.buffer=null,this.bound=!1,this.size=i.size,this._hasDepthTexture=!!i.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,i=null){const s=this.gl,r=s.createTexture();return s.bindTexture(s.TEXTURE_2D,r),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),i?s.texStorage2D(s.TEXTURE_2D,1,i,e,t):s.texImage2D(s.TEXTURE_2D,0,s.RGBA,e,t,0,s.RGBA,s.UNSIGNED_BYTE,null),r}_touch(...e){let t,i;const s=this.gl;if(this.size?(t=this.size[0],i=this.size[1]):(t=s.drawingBufferWidth,i=s.drawingBufferHeight),this.buffer){if(this.buffer.width===t&&this.buffer.height===i)return;this.buffer.textures.forEach((e=>s.deleteTexture(e))),s.deleteFramebuffer(this.buffer.framebuf),s.deleteRenderbuffer(this.buffer.renderbuf)}const r=[];let o;e.length>0?r.push(...e.map((e=>this.createTexture(t,i,e)))):r.push(this.createTexture(t,i)),this._hasDepthTexture&&(o=s.createTexture(),s.bindTexture(s.TEXTURE_2D,o),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texImage2D(s.TEXTURE_2D,0,s.DEPTH_COMPONENT32F,t,i,0,s.DEPTH_COMPONENT,s.FLOAT,null));const n=s.createRenderbuffer();s.bindRenderbuffer(s.RENDERBUFFER,n),s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_COMPONENT32F,t,i);const a=s.createFramebuffer();s.bindFramebuffer(s.FRAMEBUFFER,a);for(let e=0;e0&&s.drawBuffers(r.map(((e,t)=>s.COLOR_ATTACHMENT0+t))),this._hasDepthTexture?s.framebufferTexture2D(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.TEXTURE_2D,o,0):s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,n),s.bindTexture(s.TEXTURE_2D,null),s.bindRenderbuffer(s.RENDERBUFFER,null),s.bindFramebuffer(s.FRAMEBUFFER,null),s.bindFramebuffer(s.FRAMEBUFFER,a),!s.isFramebuffer(a))throw"Invalid framebuffer";s.bindFramebuffer(s.FRAMEBUFFER,null);const l=s.checkFramebufferStatus(s.FRAMEBUFFER);switch(l){case s.FRAMEBUFFER_COMPLETE:break;case s.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case s.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case s.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case s.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+l}this.buffer={framebuf:a,renderbuf:n,texture:r[0],textures:r,depthTexture:o,width:t,height:i},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,i=null,s=null,r=Uint8Array,o=4,n=0){const a=e,l=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,A=new r(o),h=this.gl;return h.readBuffer(h.COLOR_ATTACHMENT0+n),h.readPixels(a,l,1,1,i||h.RGBA,s||h.UNSIGNED_BYTE,A,0),A}readArray(e=null,t=null,i=Uint8Array,s=4,r=0){const o=new i(this.buffer.width*this.buffer.height*s),n=this.gl;return n.readBuffer(n.COLOR_ATTACHMENT0+r),n.readPixels(0,0,this.buffer.width,this.buffer.height,e||n.RGBA,t||n.UNSIGNED_BYTE,o,0),o}readImageAsCanvas(){const e=this.gl,t=this._getImageDataCache(),i=t.pixelData,s=t.canvas,r=t.imageData,o=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,i);const n=this.buffer.width,a=this.buffer.height,l=a/2|0,A=4*n,h=new Uint8Array(4*n);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 i=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled;let s=i[e];return s||(s=new He(this.scene.canvas.canvas,this.scene.canvas.gl,t),i[e]=s),s}destroy(){for(let e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(let e in this._renderBuffersScaled)this._renderBuffersScaled[e].destroy()}}function Ge(e,t){if(void 0===e._cachedExtensions&&(e._cachedExtensions={}),void 0!==e._cachedExtensions[t])return e._cachedExtensions[t];let i;switch(t){case"WEBGL_depth_texture":i=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=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":i=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":i=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=e.getExtension(t)}return e._cachedExtensions[t]=i,i}const We=function(t,i){i=i||{};const s=new _e(t),r=t.canvas.canvas,o=t.canvas.gl,n=!!i.transparent,a=i.alphaDepthMask,l=new e({});let A={},h={},c=!0,p=!0,g=!0,m=!0,f=!0,_=!0,v=!0,b=!0;const x=new ze(t);let w=!1;const y=new Le(t),P=new Qe(t);function B(){c&&(!function(){for(let e in A)if(A.hasOwnProperty(e)){const t=A[e],i=t.drawableMap,s=t.drawableListPreCull;let r=0;for(let e in i)i.hasOwnProperty(e)&&(s[r++]=i[e]);s.length=r}}(),c=!1,p=!0),p&&(!function(){for(let e in A)if(A.hasOwnProperty(e)){const t=A[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),p=!1,g=!0),g&&function(){for(let e in A)if(A.hasOwnProperty(e)){const t=A[e],i=t.drawableListPreCull,s=t.drawableList;let r=0;for(let e=0,t=i.length;e0)for(s.withSAO=!0,S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||H>0||O>0||N>0){if(o.enable(o.CULL_FACE),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):(o.blendEquation(o.FUNC_ADD),o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA)),s.backfaces=!1,a||o.depthMask(!1),(O>0||N>0)&&o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),N>0)for(S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||G>0){if(s.lastProgramId=null,t.highlightMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),G>0)for(S=0;S0)for(S=0;S0||K>0||z>0){if(s.lastProgramId=null,t.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),o.enable(o.CULL_FACE),K>0)for(S=0;S0)for(S=0;S0||Y>0){if(s.lastProgramId=null,t.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),Y>0)for(S=0;S0)for(S=0;S0||Z>0){if(s.lastProgramId=null,t.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),o.enable(o.CULL_FACE),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),Z>0)for(S=0;S0)for(S=0;S0){const t=Math.floor(e/4),i=d.size[0],s=t%i-Math.floor(i/2),r=Math.floor(t/i)-Math.floor(i/2),o=Math.sqrt(Math.pow(s,2)+Math.pow(r,2));M.push({x:s,y:r,dist:o,isVertex:n&&a?_[e+3]>f.length/2:n,result:[_[e+0],_[e+1],_[e+2],_[e+3]],normal:[v[e+0],v[e+1],v[e+2],v[e+3]],id:[b[e+0],b[e+1],b[e+2],b[e+3]]})}let D=null,S=null,T=null,R=null;if(M.length>0){M.sort(((e,t)=>e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist)),R=M[0].isVertex?"vertex":"edge";const e=M[0].result,t=M[0].normal,i=M[0].id,s=f[e[3]],r=s.origin,o=s.coordinateScale;S=u.normalizeVec3([t[0]/u.MAX_INT,t[1]/u.MAX_INT,t[2]/u.MAX_INT]),D=[e[0]*o[0]+r[0],e[1]*o[1]+r[1],e[2]*o[2]+r[2]],T=l.items[i[0]+(i[1]<<8)+(i[2]<<16)+(i[3]<<24)]}if(null===w&&null==D)return null;let L=null;null!==D&&(L=t.camera.projectWorldPos(D));const U=T&&T.delegatePickedEntity?T.delegatePickedEntity():T;return h.reset(),h.snappedToEdge="edge"===R,h.snappedToVertex="vertex"===R,h.worldPos=D,h.worldNormal=S,h.entity=U,h.canvasPos=i,h.snappedCanvasPos=L||i,h}}(),this.addMarker=function(e){this._occlusionTester=this._occlusionTester||new Te(t,x),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){B(),this._occlusionTester.bindRenderBuf(),s.reset(),s.backfaces=!0,s.frontface=!0,o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.clearColor(0,0,0,0),o.enable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.disable(o.BLEND),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT);for(let e in A)if(A.hasOwnProperty(e)){const t=A[e].drawableList;for(let e=0,i=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,i)=>{if(!this.enabled)return;const s=Math.max(-1,Math.min(1,40*-e.deltaY));t(s)},{passive:!0});{let e,t;const i=2;this.on("mousedown",(i=>{e=i[0],t=i[1]})),this.on("mouseup",(s=>{e>=s[0]-i&&e<=s[0]+i&&t>=s[1]-i&&t<=s[1]+i&&this.fire("mouseclicked",s,!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,i=0,s=0;for(;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-i,this.mouseCanvasPos[1]=e.pageY-s}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 Xe=new e({});class Ye{constructor(e){this.id=Xe.addItem({});for(const t in e)e.hasOwnProperty(t)&&(this[t]=e[t])}destroy(){Xe.removeItem(this.id)}}class qe extends I{get type(){return"Viewport"}constructor(e,t={}){super(e,t),this._state=new Ye({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],i=e[3];this._state.boundary=[0,0,t,i],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 Ze extends I{get type(){return"Perspective"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Ye({matrix:u.mat4(),inverseMatrix:u.mat4(),transposedMatrix:u.mat4(),near:.1,far:1e4}),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],i=this._fovAxis;let s=this._fov;("x"===i||"min"===i&&t<1||"max"===i&&t>1)&&(s/=t),s=Math.min(s,120),u.perspectiveMat4(s*(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:1e4;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&&(u.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(u.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,i,s,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return i[0]=(e[0]-n)/n,i[1]=(e[1]-a)/a,i[2]=t,i[3]=1,u.mulMat4v4(this.inverseMatrix,i,s),u.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1,u.mulMat4v4(this.camera.inverseViewMatrix,s,r),r}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}class Je extends I{get type(){return"Ortho"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Ye({matrix:u.mat4(),inverseMatrix:u.mat4(),transposedMatrix:u.mat4(),near:.1,far:1e4}),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,i=e.canvas.boundary,s=i[2],r=i[3],o=s/r;let n,a,l,A;s>r?(n=-t,a=t,l=t/o,A=-t/o):(n=-t*o,a=t*o,l=t,A=-t),u.orthoMat4c(n,a,A,l,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:1e4;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&&(u.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(u.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,i,s,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return i[0]=(e[0]-n)/n,i[1]=(e[1]-a)/a,i[2]=t,i[3]=1,u.mulMat4v4(this.inverseMatrix,i,s),u.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1,u.mulMat4v4(this.camera.inverseViewMatrix,s,r),r}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}class $e extends I{get type(){return"Frustum"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Ye({matrix:u.mat4(),inverseMatrix:u.mat4(),transposedMatrix:u.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(){u.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&&(u.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(u.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,i,s,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return i[0]=(e[0]-n)/n,i[1]=(e[1]-a)/a,i[2]=t,i[3]=1,u.mulMat4v4(this.inverseMatrix,i,s),u.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1,u.mulMat4v4(this.camera.inverseViewMatrix,s,r),r}destroy(){super.destroy(),this._state.destroy(),super.destroy()}}class et extends I{get type(){return"CustomProjection"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Ye({matrix:u.mat4(),inverseMatrix:u.mat4(),transposedMatrix:u.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&&(u.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(u.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,i,s,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return i[0]=(e[0]-n)/n,i[1]=(e[1]-a)/a,i[2]=t,i[3]=1,u.mulMat4v4(this.inverseMatrix,i,s),u.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1,u.mulMat4v4(this.camera.inverseViewMatrix,s,r),r}destroy(){super.destroy(),this._state.destroy()}}const tt=u.vec3(),it=u.vec3(),st=u.vec3(),rt=u.vec3(),ot=u.vec3(),nt=u.vec3(),at=u.vec4(),lt=u.vec4(),At=u.vec4(),ht=u.mat4(),ct=u.mat4(),ut=u.vec3(),dt=u.vec3(),pt=u.vec3(),gt=u.vec3();class mt extends I{get type(){return"Camera"}constructor(e,t={}){super(e,t),this._state=new Ye({deviceMatrix:u.mat4(),hasDeviceMatrix:!1,matrix:u.mat4(),normalMatrix:u.mat4(),inverseMatrix:u.mat4()}),this._perspective=new Ze(this),this._ortho=new Je(this),this._frustum=new $e(this),this._customProjection=new et(this),this._project=this._perspective,this._eye=u.vec3([0,0,10]),this._look=u.vec3([0,0,0]),this._up=u.vec3([0,1,0]),this._worldUp=u.vec3([0,1,0]),this._worldRight=u.vec3([1,0,0]),this._worldForward=u.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?(u.subVec3(this._eye,this._look,ut),u.normalizeVec3(ut,dt),u.mulVec3Scalar(dt,1e3,pt),u.addVec3(this._look,pt,gt),t=gt):t=this._eye,e.hasDeviceMatrix?(u.lookAtMat4v(t,this._look,this._up,ct),u.mulMat4(e.deviceMatrix,ct,e.matrix)):u.lookAtMat4v(t,this._look,this._up,e.matrix),u.inverseMat4(this._state.matrix,this._state.inverseMatrix),u.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=u.subVec3(this._eye,this._look,tt);u.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,ht),t=u.transformPoint3(ht,t,it),this.eye=u.addVec3(this._look,t,st),this.up=u.transformPoint3(ht,this._up,rt)}orbitPitch(e){if(this._constrainPitch&&(e=u.dotVec3(this._up,this._worldUp)/u.DEGTORAD)<1)return;let t=u.subVec3(this._eye,this._look,tt);const i=u.cross3Vec3(u.normalizeVec3(t,it),u.normalizeVec3(this._up,st));u.rotationMat4v(.0174532925*e,i,ht),t=u.transformPoint3(ht,t,rt),this.up=u.transformPoint3(ht,this._up,ot),this.eye=u.addVec3(t,this._look,nt)}yaw(e){let t=u.subVec3(this._look,this._eye,tt);u.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,ht),t=u.transformPoint3(ht,t,it),this.look=u.addVec3(t,this._eye,st),this._gimbalLock&&(this.up=u.transformPoint3(ht,this._up,rt))}pitch(e){if(this._constrainPitch&&(e=u.dotVec3(this._up,this._worldUp)/u.DEGTORAD)<1)return;let t=u.subVec3(this._look,this._eye,tt);const i=u.cross3Vec3(u.normalizeVec3(t,it),u.normalizeVec3(this._up,st));u.rotationMat4v(.0174532925*e,i,ht),this.up=u.transformPoint3(ht,this._up,nt),t=u.transformPoint3(ht,t,rt),this.look=u.addVec3(t,this._eye,ot)}pan(e){const t=u.subVec3(this._eye,this._look,tt),i=[0,0,0];let s;if(0!==e[0]){const r=u.cross3Vec3(u.normalizeVec3(t,[]),u.normalizeVec3(this._up,it));s=u.mulVec3Scalar(r,e[0]),i[0]+=s[0],i[1]+=s[1],i[2]+=s[2]}0!==e[1]&&(s=u.mulVec3Scalar(u.normalizeVec3(this._up,st),e[1]),i[0]+=s[0],i[1]+=s[1],i[2]+=s[2]),0!==e[2]&&(s=u.mulVec3Scalar(u.normalizeVec3(t,rt),e[2]),i[0]+=s[0],i[1]+=s[1],i[2]+=s[2]),this.eye=u.addVec3(this._eye,i,ot),this.look=u.addVec3(this._look,i,nt)}zoom(e){const t=u.subVec3(this._eye,this._look,tt),i=Math.abs(u.lenVec3(t,it)),s=Math.abs(i+e);if(s<.5)return;const r=u.normalizeVec3(t,st);this.eye=u.addVec3(this._look,u.mulVec3Scalar(r,s),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=u.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 u.lenVec3(u.subVec3(this._look,this._eye,tt))}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=at,i=lt,s=At;t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,u.mulMat4v4(this.viewMatrix,t,i),u.mulMat4v4(this.projMatrix,i,s),u.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1;const r=this.scene.canvas.canvas,o=r.offsetWidth/2,n=r.offsetHeight/2;return[s[0]*o+o,s[1]*n+n]}destroy(){super.destroy(),this._state.destroy()}}class ft extends I{get type(){return"Light"}get isLight(){return!0}constructor(e,t={}){super(e,t)}}class _t extends ft{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 i=this.scene.camera,s=this.scene.canvas;this._onCameraViewMatrix=i.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=i.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=s.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new Ye({type:"dir",dir:u.vec3([1,1,1]),color:u.vec3([.7,.7,.8]),intensity:1,space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(this._shadowViewMatrixDirty){this._shadowViewMatrix||(this._shadowViewMatrix=u.identityMat4());const e=this.scene.camera,t=this._state.dir,i=e.look,s=[i[0]-t[0],i[1]-t[1],i[2]-t[2]],r=[0,1,0];u.lookAtMat4v(s,i,r,this._shadowViewMatrix),this._shadowViewMatrixDirty=!1}return this._shadowViewMatrix},getShadowProjMatrix:()=>(this._shadowProjMatrixDirty&&(this._shadowProjMatrix||(this._shadowProjMatrix=u.identityMat4()),u.orthoMat4c(-40,40,-40,40,-40,80,this._shadowProjMatrix),this._shadowProjMatrixDirty=!1),this._shadowProjMatrix),getShadowRenderBuf:()=>(this._shadowRenderBuf||(this._shadowRenderBuf=new He(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 vt extends ft{get type(){return"AmbientLight"}constructor(e,t={}){super(e,t),this._state={type:"ambient",color:u.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 bt extends I{get type(){return"Geometry"}get isGeometry(){return!0}constructor(e,t={}){super(e,t),d.memory.meshes++}destroy(){super.destroy(),d.memory.meshes--}}var xt=function(){const e=[],t=[],i=[],s=[],r=[];let o=0;const n=new Uint16Array(3),a=new Uint16Array(3),l=new Uint16Array(3),A=u.vec3(),h=u.vec3(),c=u.vec3(),d=u.vec3(),p=u.vec3(),g=u.vec3(),m=u.vec3();return function(f,_,v,b){!function(r,o){const n={};let a,l,A,h;const c=Math.pow(10,4);let u,d,p=0;for(u=0,d=r.length;uw)||(T=i[F.index1],R=i[F.index2],(!L&&T>65535||R>65535)&&(L=!0),x.push(T),x.push(R));return L?new Uint32Array(x):new Uint16Array(x)}}();const wt=function(){const e=u.mat4(),t=u.mat4();return function(i,s){s=s||u.mat4();const r=i[0],o=i[1],n=i[2],a=i[3]-r,l=i[4]-o,A=i[5]-n,h=65535;return u.identityMat4(e),u.translationMat4v(i,e),u.identityMat4(t),u.scalingMat4v([a/h,l/h,A/h],t),u.mulMat4(e,t,s),s}}();var yt=function(){const e=u.mat4(),t=u.mat4();return function(i,s,r){const o=new Uint16Array(i.length),n=new Float32Array([r[0]!==s[0]?65535/(r[0]-s[0]):0,r[1]!==s[1]?65535/(r[1]-s[1]):0,r[2]!==s[2]?65535/(r[2]-s[2]):0]);let a;for(a=0;a=0?1:-1),t=(1-Math.abs(r))*(o>=0?1:-1);r=e,o=t}return new Int8Array([Math[i](127.5*r+(r<0?-1:0)),Math[s](127.5*o+(o<0?-1:0))])}function Ct(e){let t=e[0],i=e[1];t/=t<0?127:128,i/=i<0?127:128;const s=1-Math.abs(t)-Math.abs(i);s<0&&(t=(1-Math.abs(i))*(t>=0?1:-1),i=(1-Math.abs(t))*(i>=0?1:-1));const r=Math.sqrt(t*t+i*i+s*s);return[t/r,i/r,s/r]}function Mt(e,t,i){return e[t]*i[0]+e[t+1]*i[1]+e[t+2]*i[2]}const Et={getPositionsBounds:function(e){const t=new Float32Array(3),i=new Float32Array(3);let s,r;for(s=0;s<3;s++)t[s]=Number.MAX_VALUE,i[s]=-Number.MAX_VALUE;for(s=0;sn&&(r=i,n=o),i=Bt(e,a,"floor","ceil"),s=Ct(i),o=Mt(e,a,s),o>n&&(r=i,n=o),i=Bt(e,a,"ceil","ceil"),s=Ct(i),o=Mt(e,a,s),o>n&&(r=i,n=o),t[a]=r[0],t[a+1]=r[1];return t},decompressNormals:function(e,t){for(let i=0,s=0,r=e.length;i=0?1:-1),o=(1-Math.abs(r))*(o>=0?1:-1));const a=Math.sqrt(r*r+o*o+n*n);t[s+0]=r/a,t[s+1]=o/a,t[s+2]=n/a,s+=3}return t},decompressNormal:function(e,t){let i=e[0],s=e[1];i=(2*i+1)/255,s=(2*s+1)/255;const r=1-Math.abs(i)-Math.abs(s);r<0&&(i=(1-Math.abs(s))*(i>=0?1:-1),s=(1-Math.abs(i))*(s>=0?1:-1));const o=Math.sqrt(i*i+s*s+r*r);return t[0]=i/o,t[1]=s/o,t[2]=r/o,t}},Ft=d.memory,It=u.AABB3();class Dt extends bt{get type(){return"ReadableGeometry"}get isReadableGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Ye({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 i=this._state,s=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":i.primitive=s.POINTS,i.primitiveName=t.primitive;break;case"lines":i.primitive=s.LINES,i.primitiveName=t.primitive;break;case"line-loop":i.primitive=s.LINE_LOOP,i.primitiveName=t.primitive;break;case"line-strip":i.primitive=s.LINE_STRIP,i.primitiveName=t.primitive;break;case"triangles":i.primitive=s.TRIANGLES,i.primitiveName=t.primitive;break;case"triangle-strip":i.primitive=s.TRIANGLE_STRIP,i.primitiveName=t.primitive;break;case"triangle-fan":i.primitive=s.TRIANGLE_FAN,i.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'."),i.primitive=s.TRIANGLES,i.primitiveName=t.primitive}if(t.positions)if(this._state.compressGeometry){const e=Et.getPositionsBounds(t.positions),s=Et.compressPositions(t.positions,e.min,e.max);i.positions=s.quantized,i.positionsDecodeMatrix=s.decodeMatrix}else i.positions=t.positions.constructor===Float32Array?t.positions:new Float32Array(t.positions);if(t.colors&&(i.colors=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors)),t.uv)if(this._state.compressGeometry){const e=Et.getUVBounds(t.uv),s=Et.compressUVs(t.uv,e.min,e.max);i.uv=s.quantized,i.uvDecodeMatrix=s.decodeMatrix}else i.uv=t.uv.constructor===Float32Array?t.uv:new Float32Array(t.uv);t.normals&&(this._state.compressGeometry?i.normals=Et.compressNormals(t.normals):i.normals=t.normals.constructor===Float32Array?t.normals:new Float32Array(t.normals)),t.indices&&(i.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(),Ft.meshes++,this._buildVBOs()}_buildVBOs(){const e=this._state,t=this.scene.canvas.gl;if(e.indices&&(e.indicesBuf=new Fe(t,t.ELEMENT_ARRAY_BUFFER,e.indices,e.indices.length,1,t.STATIC_DRAW),Ft.indices+=e.indicesBuf.numItems),e.positions&&(e.positionsBuf=new Fe(t,t.ARRAY_BUFFER,e.positions,e.positions.length,3,t.STATIC_DRAW),Ft.positions+=e.positionsBuf.numItems),e.normals){let i=e.compressGeometry;e.normalsBuf=new Fe(t,t.ARRAY_BUFFER,e.normals,e.normals.length,3,t.STATIC_DRAW,i),Ft.normals+=e.normalsBuf.numItems}e.colors&&(e.colorsBuf=new Fe(t,t.ARRAY_BUFFER,e.colors,e.colors.length,4,t.STATIC_DRAW),Ft.colors+=e.colorsBuf.numItems),e.uv&&(e.uvBuf=new Fe(t,t.ARRAY_BUFFER,e.uv,e.uv.length,2,t.STATIC_DRAW),Ft.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,i=xt(e.positions,e.indices,e.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Fe(t,t.ELEMENT_ARRAY_BUFFER,i,i.length,1,t.STATIC_DRAW),Ft.indices+=this._edgeIndicesBuf.numItems}_buildPickTriangleVBOs(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,i=u.buildPickTriangles(e.positions,e.indices,e.compressGeometry),s=i.positions,r=i.colors;this._pickTrianglePositionsBuf=new Fe(t,t.ARRAY_BUFFER,s,s.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new Fe(t,t.ARRAY_BUFFER,r,r.length,4,t.STATIC_DRAW,!0),Ft.positions+=this._pickTrianglePositionsBuf.numItems,Ft.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),Et.decompressPositions(this._state.positions,this._state.positionsDecodeMatrix,this._decompressedPositions)),this._decompressedPositions):this._state.positions:null}set positions(e){const t=this._state,i=t.positions;if(i)if(i.length===e.length){if(this._state.compressGeometry){const i=Et.getPositionsBounds(e),s=Et.compressPositions(e,i.min,i.max);e=s.quantized,t.positionsDecodeMatrix=s.decodeMatrix}i.set(e),t.positionsBuf&&t.positionsBuf.setData(i),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),Et.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,i=t.normals;i?i.length===e.length?(i.set(e),t.normalsBuf&&t.normalsBuf.setData(i),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),Et.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,i=t.uv;i?i.length===e.length?(i.set(e),t.uvBuf&&t.uvBuf.setData(i),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,i=t.colors;i?i.length===e.length?(i.set(e),t.colorsBuf&&t.colorsBuf.setData(i),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=u.AABB3()),u.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}get obb(){return this._obbDirty&&(this._obb||(this._obb=u.OBB3()),u.positions3ToAABB3(this._state.positions,It,this._state.positionsDecodeMatrix),u.AABB3ToOBB3(It,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(),Ft.meshes--}}function St(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let i=e.ySize||1;i<0&&(console.error("negative ySize not allowed - will invert"),i*=-1);let s=e.zSize||1;s<0&&(console.error("negative zSize not allowed - will invert"),s*=-1);const r=e.center,o=r?r[0]:0,n=r?r[1]:0,a=r?r[2]:0,l=-t+o,A=-i+n,h=-s+a,c=t+o,u=i+n,d=s+a;return f.apply(e,{positions:[c,u,d,l,u,d,l,A,d,c,A,d,c,u,d,c,A,d,c,A,h,c,u,h,c,u,d,c,u,h,l,u,h,l,u,d,l,u,d,l,u,h,l,A,h,l,A,d,l,A,h,c,A,h,c,A,d,l,A,d,c,A,h,l,A,h,l,u,h,c,u,h],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 Tt extends I{get type(){return"Material"}constructor(e,t={}){super(e,t),d.memory.materials++}destroy(){super.destroy(),d.memory.materials--}}const Rt={opaque:0,mask:1,blend:2},Lt=["opaque","mask","blend"];class Ut extends Tt{get type(){return"PhongMaterial"}constructor(e,t={}){super(e,t),this._state=new Ye({type:"PhongMaterial",ambient:u.vec3([1,1,1]),diffuse:u.vec3([1,1,1]),specular:u.vec3([1,1,1]),emissive:u.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=Rt[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 Lt[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 kt={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 Ot extends Tt{get type(){return"EmphasisMaterial"}get presets(){return kt}constructor(e,t={}){super(e,t),this._state=new Ye({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=kt[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(kt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const Nt={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 Qt extends Tt{get type(){return"EdgeMaterial"}get presets(){return Nt}constructor(e,t={}){super(e,t),this._state=new Ye({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=Nt[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(Nt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const Vt={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 I{constructor(e,t={}){super(e,t),this._units="meters",this._scale=1,this._origin=u.vec3([0,0,0]),this.units=t.units,this.scale=t.scale,this.origin=t.origin}get unitsInfo(){return Vt}set units(e){e||(e="meters");Vt[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=u.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=u.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 Ht extends I{constructor(e,t={}){super(e,t),this._supported=ve.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 Gt extends Tt{get type(){return"PointsMaterial"}get presets(){return zt}constructor(e,t={}){super(e,t),this._state=new Ye({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 Wt={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}};class Kt extends Tt{get type(){return"LinesMaterial"}get presets(){return Wt}constructor(e,t={}){super(e,t),this._state=new Ye({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=Wt[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Wt).join(", "))}get preset(){return this._preset}get hash(){return[""+this.lineWidth].join(";")}destroy(){super.destroy(),this._state.destroy()}}function Xt(e,t){const i={};let s,r;for(let o=0,n=t.length;o{this.glRedraw()})),this.canvas.on("webglContextFailed",(()=>{alert("xeokit failed to find WebGL!")})),this._renderer=new We(this,{transparent:s,alphaDepthMask:r}),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 i=[];for(let e=0,s=t;ethis._numCachedSectionPlanes?e:this._numCachedSectionPlanes}},this._sectionPlanesState.setNumCachedSectionPlanes(t.numCachedSectionPlanes||0),this._lightsState=new function(){const e=u.vec4([0,0,0,0]),t=u.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];let i=null,s=null;this.getHash=function(){if(i)return i;const e=[],t=this.lights;let s;for(let i=0,r=t.length;i0&&e.push("/lm"),this.reflectionMaps.length>0&&e.push("/rm"),e.push(";"),i=e.join(""),i},this.addLight=function(e){this.lights.push(e),s=null,i=null},this.removeLight=function(e){for(let t=0,r=this.lights.length;t{this._renderer.imageDirty()}))}_initDefaults(){}_addComponent(e){if(e.id&&this.components[e.id]&&(this.error("Component "+f.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=u.createUUID();this.components[e.id]=e;const t=e.type;let i=this.types[e.type];i||(i=this.types[t]={}),i[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,i=e.type;delete this.components[t];const s=this.types[i];s&&(delete s[t],f.isEmptyObject(s)&&delete this.types[i]),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)}_deRegisterVisibleObject(e){delete this.visibleObjects[e.id],this._numVisibleObjects--,this._visibleObjectIds=null}_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)}_deRegisterXRayedObject(e){delete this.xrayedObjects[e.id],this._numXRayedObjects--,this._xrayedObjectIds=null}_objectHighlightedUpdated(e){e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null}_deRegisterHighlightedObject(e){delete this.highlightedObjects[e.id],this._numHighlightedObjects--,this._highlightedObjectIds=null}_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)}_deRegisterSelectedObject(e){delete this.selectedObjects[e.id],this._numSelectedObjects--,this._selectedObjectIds=null}_objectColorizeUpdated(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}_deRegisterColorizedObject(e){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}_deRegisterOpacityObject(e){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}_deRegisterOffsetObject(e){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 i=this.components[t];i._webglContextRestored&&i._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&&C.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 i=this._passes,s=this._clearEachPass;let r,o;for(r=0;rr&&(r=e[3]),e[4]>o&&(o=e[4]),e[5]>n&&(n=e[5]),A=!0}A||(t=-100,i=-100,s=-100,r=100,o=100,n=100),this._aabb[0]=t,this._aabb[1]=i,this._aabb[2]=s,this._aabb[3]=r,this._aabb[4]=o,this._aabb[5]=n,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 i=e.includeEntities||e.include;i&&(e.includeEntityIds=Xt(this,i));const s=e.excludeEntities||e.exclude;return s&&(e.excludeEntityIds=Xt(this,s)),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,i=e.length;t{if(e.collidable){const l=e.aabb;l[0]o&&(o=l[3]),l[4]>n&&(n=l[4]),l[5]>a&&(a=l[5]),t=!0}})),t){const e=u.AABB3();return e[0]=i,e[1]=s,e[2]=r,e[3]=o,e[4]=n,e[5]=a,e}return this.aabb}setObjectsVisible(e,t){return this.withObjects(e,(e=>{const i=e.visible!==t;return e.visible=t,i}))}setObjectsCollidable(e,t){return this.withObjects(e,(e=>{const i=e.collidable!==t;return e.collidable=t,i}))}setObjectsCulled(e,t){return this.withObjects(e,(e=>{const i=e.culled!==t;return e.culled=t,i}))}setObjectsSelected(e,t){return this.withObjects(e,(e=>{const i=e.selected!==t;return e.selected=t,i}))}setObjectsHighlighted(e,t){return this.withObjects(e,(e=>{const i=e.highlighted!==t;return e.highlighted=t,i}))}setObjectsXRayed(e,t){return this.withObjects(e,(e=>{const i=e.xrayed!==t;return e.xrayed=t,i}))}setObjectsEdges(e,t){return this.withObjects(e,(e=>{const i=e.edges!==t;return e.edges=t,i}))}setObjectsColorized(e,t){return this.withObjects(e,(e=>{e.colorize=t}))}setObjectsOpacity(e,t){return this.withObjects(e,(e=>{const i=e.opacity!==t;return e.opacity=t,i}))}setObjectsPickable(e,t){return this.withObjects(e,(e=>{const i=e.pickable!==t;return e.pickable=t,i}))}setObjectsOffset(e,t){this.withObjects(e,(e=>{e.offset=t}))}withObjects(e,t){f.isString(e)&&(e=[e]);let i=!1;for(let s=0,r=e.length;s{r>s&&(s=r,e(...i))}));return this._tickifiedFunctions[t]={tickSubId:n,wrapperFunc:o},o}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 qt=function(e){"LambertMaterial"===e._material._state.type?(this.vertex=function(e){const t=e.scene,i=e.scene._sectionPlanesState,s=e.scene._lightsState,r=e._geometry._state,o=e._state.billboard,n=e._state.stationary,a=i.getNumAllocatedSectionPlanes()>0,l=!!r.compressGeometry,A=[];A.push("#version 300 es"),A.push("// Lambertian drawing vertex shader"),A.push("in vec3 position;"),A.push("uniform mat4 modelMatrix;"),A.push("uniform mat4 viewMatrix;"),A.push("uniform mat4 projMatrix;"),A.push("uniform vec4 colorize;"),A.push("uniform vec3 offset;"),l&&A.push("uniform mat4 positionsDecodeMatrix;");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&&A.push("out vec4 vWorldPosition;");if(A.push("uniform vec4 lightAmbient;"),A.push("uniform vec4 materialColor;"),A.push("uniform vec3 materialEmissive;"),r.normalsBuf){A.push("in vec3 normal;"),A.push("uniform mat4 modelNormalMatrix;"),A.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);"),A.push(" }"),A.push(" return normalize(v);"),A.push("}"))}A.push("out vec4 vColor;"),"points"===r.primitiveName&&A.push("uniform float pointSize;");"spherical"!==o&&"cylindrical"!==o||(A.push("void billboard(inout mat4 mat) {"),A.push(" mat[0][0] = 1.0;"),A.push(" mat[0][1] = 0.0;"),A.push(" mat[0][2] = 0.0;"),"spherical"===o&&(A.push(" mat[1][0] = 0.0;"),A.push(" mat[1][1] = 1.0;"),A.push(" mat[1][2] = 0.0;")),A.push(" mat[2][0] = 0.0;"),A.push(" mat[2][1] = 0.0;"),A.push(" mat[2][2] =1.0;"),A.push("}"));A.push("void main(void) {"),A.push("vec4 localPosition = vec4(position, 1.0); "),A.push("vec4 worldPosition;"),l&&A.push("localPosition = positionsDecodeMatrix * localPosition;");r.normalsBuf&&(l?A.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):A.push("vec4 localNormal = vec4(normal, 0.0); "),A.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),A.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));A.push("mat4 viewMatrix2 = viewMatrix;"),A.push("mat4 modelMatrix2 = modelMatrix;"),n&&A.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===o||"cylindrical"===o?(A.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),A.push("billboard(modelMatrix2);"),A.push("billboard(viewMatrix2);"),A.push("billboard(modelViewMatrix);"),r.normalsBuf&&(A.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),A.push("billboard(modelNormalMatrix2);"),A.push("billboard(viewNormalMatrix2);"),A.push("billboard(modelViewNormalMatrix);")),A.push("worldPosition = modelMatrix2 * localPosition;"),A.push("worldPosition.xyz = worldPosition.xyz + offset;"),A.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(A.push("worldPosition = modelMatrix2 * localPosition;"),A.push("worldPosition.xyz = worldPosition.xyz + offset;"),A.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r.normalsBuf&&A.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(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;"),r.normalsBuf)for(let e=0,t=s.lights.length;e0,o=t.gammaOutput,n=[];n.push("#version 300 es"),n.push("// Lambertian 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"),t.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"));if(r){n.push("in vec4 vWorldPosition;"),n.push("uniform bool clippable;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}"points"===s.primitiveName&&(n.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),n.push("float r = dot(cxy, cxy);"),n.push("if (r > 1.0) {"),n.push(" discard;"),n.push("}"));t.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");o?n.push("outColor = linearToGamma(vColor, gammaFactor);"):n.push("outColor = vColor;");return n.push("}"),n}(e)):(this.vertex=function(e){const t=e.scene;e._material;const i=e._state,s=t._sectionPlanesState,r=e._geometry._state,o=t._lightsState;let n;const a=i.billboard,l=i.background,A=i.stationary,h=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),c=$t(e),u=s.getNumAllocatedSectionPlanes()>0,d=Jt(e),p=!!r.compressGeometry,g=[];g.push("#version 300 es"),g.push("// Drawing vertex shader"),g.push("in vec3 position;"),p&&g.push("uniform mat4 positionsDecodeMatrix;");g.push("uniform mat4 modelMatrix;"),g.push("uniform mat4 viewMatrix;"),g.push("uniform mat4 projMatrix;"),g.push("out vec3 vViewPosition;"),g.push("uniform vec3 offset;"),u&&g.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(g.push("uniform float logDepthBufFC;"),g.push("out float vFragDepth;"),g.push("bool isPerspectiveMatrix(mat4 m) {"),g.push(" return (m[2][3] == - 1.0);"),g.push("}"),g.push("out float isPerspective;"));o.lightMaps.length>0&&g.push("out vec3 vWorldNormal;");if(c){g.push("in vec3 normal;"),g.push("uniform mat4 modelNormalMatrix;"),g.push("uniform mat4 viewNormalMatrix;"),g.push("out vec3 vViewNormal;");for(let e=0,t=o.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),g.push(" }"),g.push(" return normalize(v);"),g.push("}"))}h&&(g.push("in vec2 uv;"),g.push("out vec2 vUV;"),p&&g.push("uniform mat3 uvDecodeMatrix;"));r.colors&&(g.push("in vec4 color;"),g.push("out vec4 vColor;"));"points"===r.primitiveName&&g.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(g.push("void billboard(inout mat4 mat) {"),g.push(" mat[0][0] = 1.0;"),g.push(" mat[0][1] = 0.0;"),g.push(" mat[0][2] = 0.0;"),"spherical"===a&&(g.push(" mat[1][0] = 0.0;"),g.push(" mat[1][1] = 1.0;"),g.push(" mat[1][2] = 0.0;")),g.push(" mat[2][0] = 0.0;"),g.push(" mat[2][1] = 0.0;"),g.push(" mat[2][2] =1.0;"),g.push("}"));if(d){g.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=o.lights.length;e0&&g.push("vWorldNormal = worldNormal;"),g.push("vViewNormal = normalize((viewNormalMatrix2 * vec4(worldNormal, 1.0)).xyz);"),g.push("vec3 tmpVec3;"),g.push("float lightDist;");for(let e=0,t=o.lights.length;e0,l=$t(e),A=s.uvBuf,h="PhongMaterial"===n.type,c="MetallicMaterial"===n.type,u="SpecularMaterial"===n.type,d=Jt(e);t.gammaInput;const p=t.gammaOutput,g=[];g.push("#version 300 es"),g.push("// Drawing fragment shader"),g.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),g.push("precision highp float;"),g.push("precision highp int;"),g.push("#else"),g.push("precision mediump float;"),g.push("precision mediump int;"),g.push("#endif"),t.logarithmicDepthBufferEnabled&&(g.push("in float isPerspective;"),g.push("uniform float logDepthBufFC;"),g.push("in float vFragDepth;"));d&&(g.push("float unpackDepth (vec4 color) {"),g.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));"),g.push(" return dot(color, bitShift);"),g.push("}"));g.push("uniform float gammaFactor;"),g.push("vec4 linearToLinear( in vec4 value ) {"),g.push(" return value;"),g.push("}"),g.push("vec4 sRGBToLinear( in vec4 value ) {"),g.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 );"),g.push("}"),g.push("vec4 gammaToLinear( in vec4 value) {"),g.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),g.push("}"),p&&(g.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),g.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),g.push("}"));if(a){g.push("in vec4 vWorldPosition;"),g.push("uniform bool clippable;");for(var m=0;m0&&(g.push("uniform samplerCube lightMap;"),g.push("uniform mat4 viewNormalMatrix;")),o.reflectionMaps.length>0&&g.push("uniform samplerCube reflectionMap;"),(o.lightMaps.length>0||o.reflectionMaps.length>0)&&g.push("uniform mat4 viewMatrix;"),g.push("#define PI 3.14159265359"),g.push("#define RECIPROCAL_PI 0.31830988618"),g.push("#define RECIPROCAL_PI2 0.15915494"),g.push("#define EPSILON 1e-6"),g.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),g.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),g.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),g.push("}"),g.push("struct IncidentLight {"),g.push(" vec3 color;"),g.push(" vec3 direction;"),g.push("};"),g.push("struct ReflectedLight {"),g.push(" vec3 diffuse;"),g.push(" vec3 specular;"),g.push("};"),g.push("struct Geometry {"),g.push(" vec3 position;"),g.push(" vec3 viewNormal;"),g.push(" vec3 worldNormal;"),g.push(" vec3 viewEyeDir;"),g.push("};"),g.push("struct Material {"),g.push(" vec3 diffuseColor;"),g.push(" float specularRoughness;"),g.push(" vec3 specularColor;"),g.push(" float shine;"),g.push("};"),h&&((o.lightMaps.length>0||o.reflectionMaps.length>0)&&(g.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.lightMaps.length>0&&(g.push(" vec3 irradiance = "+Zt[o.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),g.push(" irradiance *= PI;"),g.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),g.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),o.reflectionMaps.length>0&&(g.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),g.push(" vec3 radiance = texture(reflectionMap, reflectVec).rgb * 0.2;"),g.push(" radiance *= PI;"),g.push(" reflectedLight.specular += radiance;")),g.push("}")),g.push("void computePhongLighting(const in IncidentLight directLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),g.push(" float dotNL = saturate(dot(geometry.viewNormal, directLight.direction));"),g.push(" vec3 irradiance = dotNL * directLight.color * PI;"),g.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),g.push(" reflectedLight.specular += directLight.color * material.specularColor * pow(max(dot(reflect(-directLight.direction, -geometry.viewNormal), geometry.viewEyeDir), 0.0), material.shine);"),g.push("}")),(c||u)&&(g.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),g.push(" float r = ggxRoughness + 0.0001;"),g.push(" return (2.0 / (r * r) - 2.0);"),g.push("}"),g.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),g.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),g.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),g.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),g.push("}"),o.reflectionMaps.length>0&&(g.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),g.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),g.push(" vec3 envMapColor = "+Zt[o.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),g.push(" return envMapColor;"),g.push("}")),g.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),g.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),g.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),g.push("}"),g.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),g.push(" float a2 = ( alpha * alpha );"),g.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),g.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),g.push(" return 1.0 / ( gl * gv );"),g.push("}"),g.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),g.push(" float a2 = ( alpha * alpha );"),g.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),g.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),g.push(" return 0.5 / max( gv + gl, EPSILON );"),g.push("}"),g.push("float D_GGX(const in float alpha, const in float dotNH) {"),g.push(" float a2 = ( alpha * alpha );"),g.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),g.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),g.push("}"),g.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),g.push(" float alpha = ( roughness * roughness );"),g.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),g.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),g.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),g.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),g.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),g.push(" vec3 F = F_Schlick( specularColor, dotLH );"),g.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),g.push(" float D = D_GGX( alpha, dotNH );"),g.push(" return F * (G * D);"),g.push("}"),g.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),g.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),g.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),g.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),g.push(" vec4 r = roughness * c0 + c1;"),g.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),g.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),g.push(" return specularColor * AB.x + AB.y;"),g.push("}"),(o.lightMaps.length>0||o.reflectionMaps.length>0)&&(g.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.lightMaps.length>0&&(g.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),g.push(" irradiance *= PI;"),g.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),g.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),o.reflectionMaps.length>0&&(g.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),g.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),g.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),g.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),g.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),g.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),g.push("}")),g.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),g.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),g.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),g.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),g.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),g.push("}")));g.push("in vec3 vViewPosition;"),s.colors&&g.push("in vec4 vColor;");A&&(l&&i._normalMap||i._ambientMap||i._baseColorMap||i._diffuseMap||i._emissiveMap||i._metallicMap||i._roughnessMap||i._metallicRoughnessMap||i._specularMap||i._glossinessMap||i._specularGlossinessMap||i._occlusionMap||i._alphaMap)&&g.push("in vec2 vUV;");l&&(o.lightMaps.length>0&&g.push("in vec3 vWorldNormal;"),g.push("in vec3 vViewNormal;"));n.ambient&&g.push("uniform vec3 materialAmbient;");n.baseColor&&g.push("uniform vec3 materialBaseColor;");void 0!==n.alpha&&null!==n.alpha&&g.push("uniform vec4 materialAlphaModeCutoff;");n.emissive&&g.push("uniform vec3 materialEmissive;");n.diffuse&&g.push("uniform vec3 materialDiffuse;");void 0!==n.glossiness&&null!==n.glossiness&&g.push("uniform float materialGlossiness;");void 0!==n.shininess&&null!==n.shininess&&g.push("uniform float materialShininess;");n.specular&&g.push("uniform vec3 materialSpecular;");void 0!==n.metallic&&null!==n.metallic&&g.push("uniform float materialMetallic;");void 0!==n.roughness&&null!==n.roughness&&g.push("uniform float materialRoughness;");void 0!==n.specularF0&&null!==n.specularF0&&g.push("uniform float materialSpecularF0;");A&&i._ambientMap&&(g.push("uniform sampler2D ambientMap;"),i._ambientMap._state.matrix&&g.push("uniform mat4 ambientMapMatrix;"));A&&i._baseColorMap&&(g.push("uniform sampler2D baseColorMap;"),i._baseColorMap._state.matrix&&g.push("uniform mat4 baseColorMapMatrix;"));A&&i._diffuseMap&&(g.push("uniform sampler2D diffuseMap;"),i._diffuseMap._state.matrix&&g.push("uniform mat4 diffuseMapMatrix;"));A&&i._emissiveMap&&(g.push("uniform sampler2D emissiveMap;"),i._emissiveMap._state.matrix&&g.push("uniform mat4 emissiveMapMatrix;"));l&&A&&i._metallicMap&&(g.push("uniform sampler2D metallicMap;"),i._metallicMap._state.matrix&&g.push("uniform mat4 metallicMapMatrix;"));l&&A&&i._roughnessMap&&(g.push("uniform sampler2D roughnessMap;"),i._roughnessMap._state.matrix&&g.push("uniform mat4 roughnessMapMatrix;"));l&&A&&i._metallicRoughnessMap&&(g.push("uniform sampler2D metallicRoughnessMap;"),i._metallicRoughnessMap._state.matrix&&g.push("uniform mat4 metallicRoughnessMapMatrix;"));l&&i._normalMap&&(g.push("uniform sampler2D normalMap;"),i._normalMap._state.matrix&&g.push("uniform mat4 normalMapMatrix;"),g.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),g.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),g.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),g.push(" vec2 st0 = dFdx( uv.st );"),g.push(" vec2 st1 = dFdy( uv.st );"),g.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),g.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),g.push(" vec3 N = normalize( surf_norm );"),g.push(" vec3 mapN = texture( normalMap, uv ).xyz * 2.0 - 1.0;"),g.push(" mat3 tsn = mat3( S, T, N );"),g.push(" return normalize( tsn * mapN );"),g.push("}"));A&&i._occlusionMap&&(g.push("uniform sampler2D occlusionMap;"),i._occlusionMap._state.matrix&&g.push("uniform mat4 occlusionMapMatrix;"));A&&i._alphaMap&&(g.push("uniform sampler2D alphaMap;"),i._alphaMap._state.matrix&&g.push("uniform mat4 alphaMapMatrix;"));l&&A&&i._specularMap&&(g.push("uniform sampler2D specularMap;"),i._specularMap._state.matrix&&g.push("uniform mat4 specularMapMatrix;"));l&&A&&i._glossinessMap&&(g.push("uniform sampler2D glossinessMap;"),i._glossinessMap._state.matrix&&g.push("uniform mat4 glossinessMapMatrix;"));l&&A&&i._specularGlossinessMap&&(g.push("uniform sampler2D materialSpecularGlossinessMap;"),i._specularGlossinessMap._state.matrix&&g.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));l&&(i._diffuseFresnel||i._specularFresnel||i._alphaFresnel||i._emissiveFresnel||i._reflectivityFresnel)&&(g.push("float fresnel(vec3 eyeDir, vec3 normal, float edgeBias, float centerBias, float power) {"),g.push(" float fr = abs(dot(eyeDir, normal));"),g.push(" float finalFr = clamp((fr - edgeBias) / (centerBias - edgeBias), 0.0, 1.0);"),g.push(" return pow(finalFr, power);"),g.push("}"),i._diffuseFresnel&&(g.push("uniform float diffuseFresnelCenterBias;"),g.push("uniform float diffuseFresnelEdgeBias;"),g.push("uniform float diffuseFresnelPower;"),g.push("uniform vec3 diffuseFresnelCenterColor;"),g.push("uniform vec3 diffuseFresnelEdgeColor;")),i._specularFresnel&&(g.push("uniform float specularFresnelCenterBias;"),g.push("uniform float specularFresnelEdgeBias;"),g.push("uniform float specularFresnelPower;"),g.push("uniform vec3 specularFresnelCenterColor;"),g.push("uniform vec3 specularFresnelEdgeColor;")),i._alphaFresnel&&(g.push("uniform float alphaFresnelCenterBias;"),g.push("uniform float alphaFresnelEdgeBias;"),g.push("uniform float alphaFresnelPower;"),g.push("uniform vec3 alphaFresnelCenterColor;"),g.push("uniform vec3 alphaFresnelEdgeColor;")),i._reflectivityFresnel&&(g.push("uniform float materialSpecularF0FresnelCenterBias;"),g.push("uniform float materialSpecularF0FresnelEdgeBias;"),g.push("uniform float materialSpecularF0FresnelPower;"),g.push("uniform vec3 materialSpecularF0FresnelCenterColor;"),g.push("uniform vec3 materialSpecularF0FresnelEdgeColor;")),i._emissiveFresnel&&(g.push("uniform float emissiveFresnelCenterBias;"),g.push("uniform float emissiveFresnelEdgeBias;"),g.push("uniform float emissiveFresnelPower;"),g.push("uniform vec3 emissiveFresnelCenterColor;"),g.push("uniform vec3 emissiveFresnelEdgeColor;")));if(g.push("uniform vec4 lightAmbient;"),l)for(let e=0,t=o.lights.length;e 0.0) { discard; }"),g.push("}")}"points"===s.primitiveName&&(g.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),g.push("float r = dot(cxy, cxy);"),g.push("if (r > 1.0) {"),g.push(" discard;"),g.push("}"));g.push("float occlusion = 1.0;"),n.ambient?g.push("vec3 ambientColor = materialAmbient;"):g.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");n.diffuse?g.push("vec3 diffuseColor = materialDiffuse;"):n.baseColor?g.push("vec3 diffuseColor = materialBaseColor;"):g.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");s.colors&&g.push("diffuseColor *= vColor.rgb;");n.emissive?g.push("vec3 emissiveColor = materialEmissive;"):g.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");n.specular?g.push("vec3 specular = materialSpecular;"):g.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==n.alpha?g.push("float alpha = materialAlphaModeCutoff[0];"):g.push("float alpha = 1.0;");s.colors&&g.push("alpha *= vColor.a;");void 0!==n.glossiness?g.push("float glossiness = materialGlossiness;"):g.push("float glossiness = 1.0;");void 0!==n.metallic?g.push("float metallic = materialMetallic;"):g.push("float metallic = 1.0;");void 0!==n.roughness?g.push("float roughness = materialRoughness;"):g.push("float roughness = 1.0;");void 0!==n.specularF0?g.push("float specularF0 = materialSpecularF0;"):g.push("float specularF0 = 1.0;");A&&(l&&i._normalMap||i._ambientMap||i._baseColorMap||i._diffuseMap||i._occlusionMap||i._emissiveMap||i._metallicMap||i._roughnessMap||i._metallicRoughnessMap||i._specularMap||i._glossinessMap||i._specularGlossinessMap||i._alphaMap)&&(g.push("vec4 texturePos = vec4(vUV.s, vUV.t, 1.0, 1.0);"),g.push("vec2 textureCoord;"));A&&i._ambientMap&&(i._ambientMap._state.matrix?g.push("textureCoord = (ambientMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 ambientTexel = texture(ambientMap, textureCoord).rgb;"),g.push("ambientTexel = "+Zt[i._ambientMap._state.encoding]+"(ambientTexel);"),g.push("ambientColor *= ambientTexel.rgb;"));A&&i._diffuseMap&&(i._diffuseMap._state.matrix?g.push("textureCoord = (diffuseMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 diffuseTexel = texture(diffuseMap, textureCoord);"),g.push("diffuseTexel = "+Zt[i._diffuseMap._state.encoding]+"(diffuseTexel);"),g.push("diffuseColor *= diffuseTexel.rgb;"),g.push("alpha *= diffuseTexel.a;"));A&&i._baseColorMap&&(i._baseColorMap._state.matrix?g.push("textureCoord = (baseColorMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 baseColorTexel = texture(baseColorMap, textureCoord);"),g.push("baseColorTexel = "+Zt[i._baseColorMap._state.encoding]+"(baseColorTexel);"),g.push("diffuseColor *= baseColorTexel.rgb;"),g.push("alpha *= baseColorTexel.a;"));A&&i._emissiveMap&&(i._emissiveMap._state.matrix?g.push("textureCoord = (emissiveMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 emissiveTexel = texture(emissiveMap, textureCoord);"),g.push("emissiveTexel = "+Zt[i._emissiveMap._state.encoding]+"(emissiveTexel);"),g.push("emissiveColor = emissiveTexel.rgb;"));A&&i._alphaMap&&(i._alphaMap._state.matrix?g.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("alpha *= texture(alphaMap, textureCoord).r;"));A&&i._occlusionMap&&(i._occlusionMap._state.matrix?g.push("textureCoord = (occlusionMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("occlusion *= texture(occlusionMap, textureCoord).r;"));if(l&&(o.lights.length>0||o.lightMaps.length>0||o.reflectionMaps.length>0)){A&&i._normalMap?(i._normalMap._state.matrix?g.push("textureCoord = (normalMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition, normalize(vViewNormal), textureCoord );")):g.push("vec3 viewNormal = normalize(vViewNormal);"),A&&i._specularMap&&(i._specularMap._state.matrix?g.push("textureCoord = (specularMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("specular *= texture(specularMap, textureCoord).rgb;")),A&&i._glossinessMap&&(i._glossinessMap._state.matrix?g.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("glossiness *= texture(glossinessMap, textureCoord).r;")),A&&i._specularGlossinessMap&&(i._specularGlossinessMap._state.matrix?g.push("textureCoord = (materialSpecularGlossinessMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 specGlossRGB = texture(materialSpecularGlossinessMap, textureCoord).rgba;"),g.push("specular *= specGlossRGB.rgb;"),g.push("glossiness *= specGlossRGB.a;")),A&&i._metallicMap&&(i._metallicMap._state.matrix?g.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("metallic *= texture(metallicMap, textureCoord).r;")),A&&i._roughnessMap&&(i._roughnessMap._state.matrix?g.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("roughness *= texture(roughnessMap, textureCoord).r;")),A&&i._metallicRoughnessMap&&(i._metallicRoughnessMap._state.matrix?g.push("textureCoord = (metallicRoughnessMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec3 metalRoughRGB = texture(metallicRoughnessMap, textureCoord).rgb;"),g.push("metallic *= metalRoughRGB.b;"),g.push("roughness *= metalRoughRGB.g;")),g.push("vec3 viewEyeDir = normalize(-vViewPosition);"),i._diffuseFresnel&&(g.push("float diffuseFresnel = fresnel(viewEyeDir, viewNormal, diffuseFresnelEdgeBias, diffuseFresnelCenterBias, diffuseFresnelPower);"),g.push("diffuseColor *= mix(diffuseFresnelEdgeColor, diffuseFresnelCenterColor, diffuseFresnel);")),i._specularFresnel&&(g.push("float specularFresnel = fresnel(viewEyeDir, viewNormal, specularFresnelEdgeBias, specularFresnelCenterBias, specularFresnelPower);"),g.push("specular *= mix(specularFresnelEdgeColor, specularFresnelCenterColor, specularFresnel);")),i._alphaFresnel&&(g.push("float alphaFresnel = fresnel(viewEyeDir, viewNormal, alphaFresnelEdgeBias, alphaFresnelCenterBias, alphaFresnelPower);"),g.push("alpha *= mix(alphaFresnelEdgeColor.r, alphaFresnelCenterColor.r, alphaFresnel);")),i._emissiveFresnel&&(g.push("float emissiveFresnel = fresnel(viewEyeDir, viewNormal, emissiveFresnelEdgeBias, emissiveFresnelCenterBias, emissiveFresnelPower);"),g.push("emissiveColor *= mix(emissiveFresnelEdgeColor, emissiveFresnelCenterColor, emissiveFresnel);")),g.push("if (materialAlphaModeCutoff[1] == 1.0 && alpha < materialAlphaModeCutoff[2]) {"),g.push(" discard;"),g.push("}"),g.push("IncidentLight light;"),g.push("Material material;"),g.push("Geometry geometry;"),g.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),g.push("vec3 viewLightDir;"),h&&(g.push("material.diffuseColor = diffuseColor;"),g.push("material.specularColor = specular;"),g.push("material.shine = materialShininess;")),u&&(g.push("float oneMinusSpecularStrength = 1.0 - max(max(specular.r, specular.g ),specular.b);"),g.push("material.diffuseColor = diffuseColor * oneMinusSpecularStrength;"),g.push("material.specularRoughness = clamp( 1.0 - glossiness, 0.04, 1.0 );"),g.push("material.specularColor = specular;")),c&&(g.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),g.push("material.diffuseColor = diffuseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),g.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),g.push("material.specularColor = mix(vec3(dielectricSpecular), diffuseColor, metallic);")),g.push("geometry.position = vViewPosition;"),o.lightMaps.length>0&&g.push("geometry.worldNormal = normalize(vWorldNormal);"),g.push("geometry.viewNormal = viewNormal;"),g.push("geometry.viewEyeDir = viewEyeDir;"),h&&(o.lightMaps.length>0||o.reflectionMaps.length>0)&&g.push("computePhongLightMapping(geometry, material, reflectedLight);"),(u||c)&&(o.lightMaps.length>0||o.reflectionMaps.length>0)&&g.push("computePBRLightMapping(geometry, material, reflectedLight);"),g.push("float shadow = 1.0;"),g.push("float shadowAcneRemover = 0.007;"),g.push("vec3 fragmentDepth;"),g.push("float texelSize = 1.0 / 1024.0;"),g.push("float amountInLight = 0.0;"),g.push("vec3 shadowCoord;"),g.push("vec4 rgbaDepth;"),g.push("float depth;");for(let e=0,t=o.lights.length;e0){const r=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0&&(this._uLightMap="lightMap"),r.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(h=0,c=o.sectionPlanes.length;h0&&r.lightMaps[0].texture&&this._uLightMap&&(a.bindTexture(this._uLightMap,r.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),r.reflectionMaps.length>0&&r.reflectionMaps[0].texture&&this._uReflectionMap&&(a.bindTexture(this._uReflectionMap,r.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),this._uGammaFactor&&s.uniform1f(this._uGammaFactor,i.gammaFactor),this._baseTextureUnit=e.textureUnit};class ri{constructor(e){this.vertex=function(e){const t=e.scene,i=t._lightsState,s=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),r=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,o=!!e._geometry._state.compressGeometry,n=e._state.billboard,a=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;"),o&&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;"));r&&l.push("out vec4 vWorldPosition;");if(l.push("uniform vec4 lightAmbient;"),l.push("uniform vec4 fillColor;"),s){l.push("in vec3 normal;"),l.push("uniform mat4 modelNormalMatrix;"),l.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=i.lights.length;e= 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"===n||"cylindrical"===n)&&(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"===n&&(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;"),o&&l.push("localPosition = positionsDecodeMatrix * localPosition;");s&&(o?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;"),a&&l.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===n||"cylindrical"===n?(l.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),l.push("billboard(modelMatrix2);"),l.push("billboard(viewMatrix2);"),l.push("billboard(modelViewMatrix);"),s&&(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; "));s&&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;"),s)for(let e=0,t=i.lights.length;e0,o=[];o.push("#version 300 es"),o.push("// Lambertian 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"),t.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;"));s&&(o.push("uniform float gammaFactor;"),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("}"));if(r){o.push("in vec4 vWorldPosition;"),o.push("uniform bool clippable;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),o.push("}")}"points"===e._geometry._state.primitiveName&&(o.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),o.push("float r = dot(cxy, cxy);"),o.push("if (r > 1.0) {"),o.push(" discard;"),o.push("}"));t.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");s?o.push("outColor = linearToGamma(vColor, gammaFactor);"):o.push("outColor = vColor;");return o.push("}"),o}(e)}}const oi=new e({}),ni=u.vec3(),ai=function(e,t){this.id=oi.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new ri(t),this._allocate(t)},li={};ai.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 i=li[t];return i||(i=new ai(t,e),li[t]=i,d.memory.programs++),i._useCount++,i},ai.prototype.put=function(){0==--this._useCount&&(oi.removeItem(this.id),this._program&&this._program.destroy(),delete li[this._hash],d.memory.programs--)},ai.prototype.webglContextRestored=function(){this._program=null},ai.prototype.drawMesh=function(e,t,i){this._program||this._allocate(t);const s=this._scene,r=s.camera,o=s.canvas.gl,n=0===i?t._xrayMaterial._state:1===i?t._highlightMaterial._state:t._selectedMaterial._state,a=t._state,l=t._geometry._state,A=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,A?e.getRTCViewMatrix(a.originHash,A):r.viewMatrix),o.uniformMatrix4fv(this._uViewNormalMatrix,!1,r.viewNormalMatrix),a.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const r=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Edges drawing vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform vec4 edgeColor;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");t.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;"));i&&n.push("out vec4 vWorldPosition;");n.push("out vec4 vColor;"),("spherical"===r||"cylindrical"===r)&&(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));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("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"),n.push("billboard(modelViewMatrix);"),n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n.push("vColor = edgeColor;"),i&&n.push("vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = clipPos;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,i=e.scene._sectionPlanesState,s=e.scene.gammaOutput,r=i.getNumAllocatedSectionPlanes()>0,o=[];o.push("#version 300 es"),o.push("// Edges 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"),t.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;"));s&&(o.push("uniform float gammaFactor;"),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("}"));if(r){o.push("in vec4 vWorldPosition;"),o.push("uniform bool clippable;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),o.push("}")}t.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");s?o.push("outColor = linearToGamma(vColor, gammaFactor);"):o.push("outColor = vColor;");return o.push("}"),o}(e)}}const hi=new e({}),ci=u.vec3(),ui=function(e,t){this.id=hi.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Ai(t),this._allocate(t)},di={};ui.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 i=di[t];return i||(i=new ui(t,e),di[t]=i,d.memory.programs++),i._useCount++,i},ui.prototype.put=function(){0==--this._useCount&&(hi.removeItem(this.id),this._program&&this._program.destroy(),delete di[this._hash],d.memory.programs--)},ui.prototype.webglContextRestored=function(){this._program=null},ui.prototype.drawMesh=function(e,t,i){this._program||this._allocate(t);const s=this._scene,r=s.camera,o=s.canvas.gl;let n;const a=t._state,l=t._geometry,A=l._state,h=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,h?e.getRTCViewMatrix(a.originHash,h):r.viewMatrix),a.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const r=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Mesh picking vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("out vec4 vViewPosition;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");i&&n.push("out vec4 vWorldPosition;");t.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;"));"spherical"!==r&&"cylindrical"!==r||(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));n.push("uniform vec2 pickClipPos;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy -= pickClipPos;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),s&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==r&&"cylindrical"!==r||(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"));n.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),i&&n.push(" vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,i=t._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Mesh 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"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(r.push("uniform vec4 pickColor;"),s){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push(" outColor = pickColor; "),r.push("}"),r}(e)}}const gi=u.vec3(),mi=function(e,t){this._hash=e,this._shaderSource=new pi(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},fi={};mi.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let i=fi[t];if(!i){if(i=new mi(t,e),i.errors)return console.log(i.errors.join("\n")),null;fi[t]=i,d.memory.programs++}return i._useCount++,i},mi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete fi[this._hash],d.memory.programs--)},mi.prototype.webglContextRestored=function(){this._program=null},mi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const i=this._scene,s=i.canvas.gl,r=t._state,o=t._material._state,n=t._geometry._state,a=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),s.uniformMatrix4fv(this._uViewMatrix,!1,a?e.getRTCPickViewMatrix(r.originHash,a):e.pickViewMatrix),r.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),r=i._sectionPlanesState.sectionPlanes.length;if(e>0){const o=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t>24&255,h=l>>16&255,c=l>>8&255,u=255&l;s.uniform4f(this._uPickColor,u/255,c/255,h/255,A/255),s.uniform2fv(this._uPickClipPos,e.pickClipPos),n.indicesBuf?(s.drawElements(n.primitive,n.indicesBuf.numItems,n.indicesBuf.itemType,0),e.drawElements++):n.positions&&s.drawArrays(s.TRIANGLES,0,n.positions.numItems)},mi.prototype._allocate=function(e){const t=e.scene,i=t.canvas.gl;if(this._program=new Ee(i,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uPositionsDecodeMatrix=s.getLocation("positionsDecodeMatrix"),this._uModelMatrix=s.getLocation("modelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=t._sectionPlanesState.sectionPlanes.length;e0,s=!!e._geometry._state.compressGeometry,r=[];r.push("#version 300 es"),r.push("// Surface picking vertex shader"),r.push("in vec3 position;"),r.push("in vec4 color;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec3 offset;"),i&&(r.push("uniform bool clippable;"),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;"));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("out vec4 vColor;"),s&&r.push("uniform mat4 positionsDecodeMatrix;");r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),s&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push(" vec4 worldPosition = modelMatrix * localPosition; "),r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition;"),i&&r.push(" vWorldPosition = worldPosition;");r.push(" vColor = color;"),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,i=t._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Surface 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"),r.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(s){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }"),r.push("}")}t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push(" outColor = vColor;"),r.push("}"),r}(e)}}const vi=u.vec3(),bi=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new _i(t),this._allocate(t)},xi={};bi.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let i=xi[t];if(!i){if(i=new bi(t,e),i.errors)return console.log(i.errors.join("\n")),null;xi[t]=i,d.memory.programs++}return i._useCount++,i},bi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete xi[this._hash],d.memory.programs--)},bi.prototype.webglContextRestored=function(){this._program=null},bi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const i=this._scene,s=i.canvas.gl,r=t._state,o=t._material._state,n=t._geometry,a=t._geometry._state,l=t.origin,A=o.backfaces,h=o.frontface,c=i.camera.project,u=n._getPickTrianglePositions(),d=n._getPickTriangleColors();if(this._program.bind(),e.useProgram++,i.logarithmicDepthBufferEnabled){const e=2/(Math.log(c.far+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,e)}if(s.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(r.originHash,l):e.pickViewMatrix),r.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),r=i._sectionPlanesState.sectionPlanes.length;if(e>0){const o=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Mesh occlusion vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");i&&n.push("out vec4 vWorldPosition;");t.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;"));"spherical"!==r&&"cylindrical"!==r||(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));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("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"),n.push("billboard(modelViewMatrix);"),n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));i&&n.push(" vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = clipPos;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,i=t._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Mesh 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"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(s){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}r.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push("}"),r}(e)}}const yi=u.vec3(),Pi=function(e,t){this._hash=e,this._shaderSource=new wi(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Bi={};Pi.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.occlusionHash].join(";");let i=Bi[t];if(!i){if(i=new Pi(t,e),i.errors)return console.log(i.errors.join("\n")),null;Bi[t]=i,d.memory.programs++}return i._useCount++,i},Pi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Bi[this._hash],d.memory.programs--)},Pi.prototype.webglContextRestored=function(){this._program=null},Pi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const i=this._scene,s=i.canvas.gl,r=t._material._state,o=t._state,n=t._geometry._state,a=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),r.id!==this._lastMaterialId){const t=r.backfaces;e.backfaces!==t&&(t?s.disable(s.CULL_FACE):s.enable(s.CULL_FACE),e.backfaces=t);const i=r.frontface;e.frontface!==i&&(i?s.frontFace(s.CCW):s.frontFace(s.CW),e.frontface=i),this._lastMaterialId=r.id}const l=i.camera;if(s.uniformMatrix4fv(this._uViewMatrix,!1,a?e.getRTCViewMatrix(o.originHash,a):l.viewMatrix),o.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),r=i._sectionPlanesState.sectionPlanes.length;if(e>0){const o=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,i=!!e._geometry._state.compressGeometry,s=[];s.push("// Mesh shadow vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),s.push("uniform vec3 offset;"),i&&s.push("uniform mat4 positionsDecodeMatrix;");t&&s.push("out vec4 vWorldPosition;");s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),s.push("vec4 worldPosition;"),i&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push("worldPosition = modelMatrix * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&s.push("vWorldPosition = worldPosition;");return s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s}(e),this.fragment=function(e){const t=e.scene;t.canvas.gl;const i=t._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("// Mesh shadow 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"),s){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}return r.push("outColor = encodeFloat(gl_FragCoord.z);"),r.push("}"),r}(e)}}const Mi=function(e,t){this._hash=e,this._shaderSource=new Ci(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Ei={};Mi.get=function(e){const t=e.scene,i=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let s=Ei[i];if(!s){if(s=new Mi(i,e),s.errors)return console.log(s.errors.join("\n")),null;Ei[i]=s,d.memory.programs++}return s._useCount++,s},Mi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ei[this._hash],d.memory.programs--)},Mi.prototype.webglContextRestored=function(){this._program=null},Mi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const i=this._scene.canvas.gl,s=t._material._state,r=t._geometry._state;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),s.id!==this._lastMaterialId){const t=s.backfaces;e.backfaces!==t&&(t?i.disable(i.CULL_FACE):i.enable(i.CULL_FACE),e.backfaces=t);const r=s.frontface;e.frontface!==r&&(r?i.frontFace(i.CCW):i.frontFace(i.CW),e.frontface=r),e.lineWidth!==s.lineWidth&&(i.lineWidth(s.lineWidth),e.lineWidth=s.lineWidth),this._uPointSize&&i.uniform1i(this._uPointSize,s.pointSize),this._lastMaterialId=s.id}if(i.uniformMatrix4fv(this._uModelMatrix,i.FALSE,t.worldMatrix),r.combineGeometry){const s=t.vertexBufs;s.id!==this._lastVertexBufsId&&(s.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(s.positionsBuf,s.compressGeometry?i.UNSIGNED_SHORT:i.FLOAT),e.bindArray++),this._lastVertexBufsId=s.id)}this._uClippable&&i.uniform1i(this._uClippable,t._state.clippable),i.uniform3fv(this._uOffset,t._state.offset),r.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&i.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,r.positionsDecodeMatrix),r.combineGeometry?r.indicesBufCombined&&(r.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(r.positionsBuf,r.compressGeometry?i.UNSIGNED_SHORT:i.FLOAT),e.bindArray++),r.indicesBuf&&(r.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=r.id),r.combineGeometry?r.indicesBufCombined&&(i.drawElements(r.primitive,r.indicesBufCombined.numItems,r.indicesBufCombined.itemType,0),e.drawElements++):r.indicesBuf?(i.drawElements(r.primitive,r.indicesBuf.numItems,r.indicesBuf.itemType,0),e.drawElements++):r.positions&&(i.drawArrays(i.TRIANGLES,0,r.positions.numItems),e.drawArrays++)},Mi.prototype._allocate=function(e){const t=e.scene,i=t.canvas.gl;if(this._program=new Ee(i,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uPositionsDecodeMatrix=s.getLocation("positionsDecodeMatrix"),this._uModelMatrix=s.getLocation("modelMatrix"),this._uShadowViewMatrix=s.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=s.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(let e=0,i=t._sectionPlanesState.sectionPlanes.length;e0){let e,t,r,o,n;for(let a=0,l=this._uSectionPlanes.length;a0)for(let i=0;i0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this.glRedraw()}}const Vi=function(){const e=u.vec3(),t=u.vec3(),i=u.vec3(),s=u.vec3(),r=u.vec3(),o=u.vec3(),n=u.vec4(),a=u.vec3(),l=u.vec3(),A=u.vec3(),h=u.vec3(),c=u.vec3(),d=u.vec3(),p=u.vec3(),g=u.vec3(),m=u.vec3(),f=u.vec4(),_=u.vec4(),v=u.vec4(),b=u.vec3(),x=u.vec3(),w=u.vec3(),y=u.vec3(),P=u.vec3(),B=u.vec3(),C=u.vec3(),M=u.vec3(),E=u.vec3(),F=u.vec3(),I=u.vec3();return function(D,S,T,R){var L=R.primIndex;if(null!=L&&L>-1){const N=D.geometry._state,Q=D.scene,j=Q.camera,H=Q.canvas;if("triangles"===N.primitiveName){R.primitive="triangle";const Q=L,z=N.indices,G=N.positions;let W,K,X;if(z){var U=z[Q+0],k=z[Q+1],O=z[Q+2];o[0]=U,o[1]=k,o[2]=O,R.indices=o,W=3*U,K=3*k,X=3*O}else W=3*Q,K=W+3,X=K+3;if(i[0]=G[W+0],i[1]=G[W+1],i[2]=G[W+2],s[0]=G[K+0],s[1]=G[K+1],s[2]=G[K+2],r[0]=G[X+0],r[1]=G[X+1],r[2]=G[X+2],N.compressGeometry){const e=N.positionsDecodeMatrix;e&&(Et.decompressPosition(i,e,i),Et.decompressPosition(s,e,s),Et.decompressPosition(r,e,r))}R.canvasPos?u.canvasPosToLocalRay(H.canvas,D.origin?V(S,D.origin):S,T,D.worldMatrix,R.canvasPos,e,t):R.origin&&R.direction&&u.worldRayToLocalRay(D.worldMatrix,R.origin,R.direction,e,t),u.normalizeVec3(t),u.rayPlaneIntersect(e,t,i,s,r,n),R.localPos=n,R.position=n,f[0]=n[0],f[1]=n[1],f[2]=n[2],f[3]=1,u.transformVec4(D.worldMatrix,f,_),a[0]=_[0],a[1]=_[1],a[2]=_[2],R.canvasPos&&D.origin&&(a[0]+=D.origin[0],a[1]+=D.origin[1],a[2]+=D.origin[2]),R.worldPos=a,u.transformVec4(j.matrix,_,v),l[0]=v[0],l[1]=v[1],l[2]=v[2],R.viewPos=l,u.cartesianToBarycentric(n,i,s,r,A),R.bary=A;const Y=N.normals;if(Y){if(N.compressGeometry){const e=3*U,t=3*k,i=3*O;Et.decompressNormal(Y.subarray(e,e+2),h),Et.decompressNormal(Y.subarray(t,t+2),c),Et.decompressNormal(Y.subarray(i,i+2),d)}else h[0]=Y[W],h[1]=Y[W+1],h[2]=Y[W+2],c[0]=Y[K],c[1]=Y[K+1],c[2]=Y[K+2],d[0]=Y[X],d[1]=Y[X+1],d[2]=Y[X+2];const e=u.addVec3(u.addVec3(u.mulVec3Scalar(h,A[0],b),u.mulVec3Scalar(c,A[1],x),w),u.mulVec3Scalar(d,A[2],y),P);R.worldNormal=u.normalizeVec3(u.transformVec3(D.worldNormalMatrix,e,B))}const q=N.uv;if(q){if(p[0]=q[2*U],p[1]=q[2*U+1],g[0]=q[2*k],g[1]=q[2*k+1],m[0]=q[2*O],m[1]=q[2*O+1],N.compressGeometry){const e=N.uvDecodeMatrix;e&&(Et.decompressUV(p,e,p),Et.decompressUV(g,e,g),Et.decompressUV(m,e,m))}R.uv=u.addVec3(u.addVec3(u.mulVec2Scalar(p,A[0],C),u.mulVec2Scalar(g,A[1],M),E),u.mulVec2Scalar(m,A[2],F),I)}}}}}();function ji(e={}){let t=e.radiusTop||1;t<0&&(console.error("negative radiusTop not allowed - will invert"),t*=-1);let i=e.radiusBottom||1;i<0&&(console.error("negative radiusBottom not allowed - will invert"),i*=-1);let s=e.height||1;s<0&&(console.error("negative height not allowed - will invert"),s*=-1);let r=e.radialSegments||32;r<0&&(console.error("negative radialSegments not allowed - will invert"),r*=-1),r<3&&(r=3);let o=e.heightSegments||1;o<0&&(console.error("negative heightSegments not allowed - will invert"),o*=-1),o<1&&(o=1);const n=!!e.openEnded;let a=e.center;const l=a?a[0]:0,A=a?a[1]:0,h=a?a[2]:0,c=s/2,u=s/o,d=2*Math.PI/r,p=1/r,g=(t-i)/o,m=[],_=[],v=[],b=[];let x,w,y,P,B,C,M,E,F,I,D;const S=(90-180*Math.atan(s/(i-t))/Math.PI)/90;for(x=0;x<=o;x++)for(B=t-x*g,C=c-x*u,w=0;w<=r;w++)y=Math.sin(w*d),P=Math.cos(w*d),_.push(B*y),_.push(S),_.push(B*P),v.push(w*p),v.push(1*x/o),m.push(B*y+l),m.push(C+A),m.push(B*P+h);for(x=0;x0){for(F=m.length/3,_.push(0),_.push(1),_.push(0),v.push(.5),v.push(.5),m.push(0+l),m.push(c+A),m.push(0+h),w=0;w<=r;w++)y=Math.sin(w*d),P=Math.cos(w*d),I=.5*Math.sin(w*d)+.5,D=.5*Math.cos(w*d)+.5,_.push(t*y),_.push(1),_.push(t*P),v.push(I),v.push(D),m.push(t*y+l),m.push(c+A),m.push(t*P+h);for(w=0;w0){for(F=m.length/3,_.push(0),_.push(-1),_.push(0),v.push(.5),v.push(.5),m.push(0+l),m.push(0-c+A),m.push(0+h),w=0;w<=r;w++)y=Math.sin(w*d),P=Math.cos(w*d),I=.5*Math.sin(w*d)+.5,D=.5*Math.cos(w*d)+.5,_.push(i*y),_.push(-1),_.push(i*P),v.push(I),v.push(D),m.push(i*y+l),m.push(0-c+A),m.push(i*P+h);for(w=0;w0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this._children.length){const e=this._children.splice();let t;for(let i=0,s=e.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);const o=ts(i,this.wrapS);o&&i.texParameteri(this.target,i.TEXTURE_WRAP_S,o);const n=ts(i,this.wrapT);if(n&&i.texParameteri(this.target,i.TEXTURE_WRAP_T,n),this.type===i.TEXTURE_3D||this.type===i.TEXTURE_2D_ARRAY){const e=ts(i,this.wrapR);e&&i.texParameteri(this.target,i.TEXTURE_WRAP_R,e),i.texParameteri(this.type,i.TEXTURE_WRAP_R,e)}r?(i.texParameteri(this.target,i.TEXTURE_MIN_FILTER,os(i,this.minFilter)),i.texParameteri(this.target,i.TEXTURE_MAG_FILTER,os(i,this.magFilter))):(i.texParameteri(this.target,i.TEXTURE_MIN_FILTER,ts(i,this.minFilter)),i.texParameteri(this.target,i.TEXTURE_MAG_FILTER,ts(i,this.magFilter)));const a=ts(i,this.format,this.encoding),l=ts(i,this.type),A=rs(i,this.internalFormat,a,l,this.encoding,!1);i.texStorage2D(i.TEXTURE_2D,s,A,e[0].width,e[0].height);for(let t=0,s=e.length;t>t;return e+1}class As extends I{get type(){return"Texture"}constructor(e,t={}){super(e,t),this._state=new Ye({texture:new ss({gl:this.scene.canvas.gl}),matrix:u.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=u.vec2([0,0]),this._scale=u.vec2([1,1]),this._rotate=u.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 ss({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,i;0===this._translate[0]&&0===this._translate[1]||(t=u.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(i=u.scalingMat4v([this._scale[0],this._scale[1],1]),t=t?u.mulMat4(t,i):i),0!==this._rotate&&(i=u.rotationMat4v(.0174532925*this._rotate,[0,0,1]),t=t?u.mulMat4(t,i):i),t&&(e.matrix=t),this._matrixDirty=!1}this.glRedraw()}set image(e){this._image=ns(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 i=new Image;i.onload=function(){i=ns(i),t._state.texture.setImage(i,t._state),t.scene.loading--,t.glRedraw(),t.scene.canvas.spinner.processes--},i.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 hs=d.memory,cs=u.AABB3();class us extends bt{get type(){return"VBOGeometry"}get isVBOGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Ye({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=u.OBB3();const i=this._state,s=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":i.primitive=s.POINTS,i.primitiveName=t.primitive;break;case"lines":i.primitive=s.LINES,i.primitiveName=t.primitive;break;case"line-loop":i.primitive=s.LINE_LOOP,i.primitiveName=t.primitive;break;case"line-strip":i.primitive=s.LINE_STRIP,i.primitiveName=t.primitive;break;case"triangles":i.primitive=s.TRIANGLES,i.primitiveName=t.primitive;break;case"triangle-strip":i.primitive=s.TRIANGLE_STRIP,i.primitiveName=t.primitive;break;case"triangle-fan":i.primitive=s.TRIANGLE_FAN,i.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'."),i.primitive=s.TRIANGLES,i.primitiveName=t.primitive}if(t.positions)if(t.indices){var r;if(t.positionsDecodeMatrix);else{const e=Et.getPositionsBounds(t.positions),o=Et.compressPositions(t.positions,e.min,e.max);r=o.quantized,i.positionsDecodeMatrix=o.decodeMatrix,i.positionsBuf=new Fe(s,s.ARRAY_BUFFER,r,r.length,3,s.STATIC_DRAW),hs.positions+=i.positionsBuf.numItems,u.positions3ToAABB3(t.positions,this._aabb),u.positions3ToAABB3(r,cs,i.positionsDecodeMatrix),u.AABB3ToOBB3(cs,this._obb)}if(t.colors){const e=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors);i.colorsBuf=new Fe(s,s.ARRAY_BUFFER,e,e.length,4,s.STATIC_DRAW),hs.colors+=i.colorsBuf.numItems}if(t.uv){const e=Et.getUVBounds(t.uv),r=Et.compressUVs(t.uv,e.min,e.max),o=r.quantized;i.uvDecodeMatrix=r.decodeMatrix,i.uvBuf=new Fe(s,s.ARRAY_BUFFER,o,o.length,2,s.STATIC_DRAW),hs.uvs+=i.uvBuf.numItems}if(t.normals){const e=Et.compressNormals(t.normals);let r=i.compressGeometry;i.normalsBuf=new Fe(s,s.ARRAY_BUFFER,e,e.length,3,s.STATIC_DRAW,r),hs.normals+=i.normalsBuf.numItems}{const e=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices);i.indicesBuf=new Fe(s,s.ELEMENT_ARRAY_BUFFER,e,e.length,1,s.STATIC_DRAW),hs.indices+=i.indicesBuf.numItems;const o=xt(r,e,i.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Fe(s,s.ELEMENT_ARRAY_BUFFER,o,o.length,1,s.STATIC_DRAW),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)}this._buildHash(),hs.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(),hs.meshes--}}var ds={};function ps(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let i=e.zSize||1;i<0&&(console.error("negative zSize not allowed - will invert"),i*=-1);let s=e.xSegments||1;s<0&&(console.error("negative xSegments not allowed - will invert"),s*=-1),s<1&&(s=1);let r=e.xSegments||1;r<0&&(console.error("negative zSegments not allowed - will invert"),r*=-1),r<1&&(r=1);const o=e.center,n=o?o[0]:0,a=o?o[1]:0,l=o?o[2]:0,A=t/2,h=i/2,c=Math.floor(s)||1,u=Math.floor(r)||1,d=c+1,p=u+1,g=t/c,m=i/u,_=new Float32Array(d*p*3),v=new Float32Array(d*p*3),b=new Float32Array(d*p*2);let x,w,y,P,B,C,M,E=0,F=0;for(x=0;x65535?Uint32Array:Uint16Array)(c*u*6);for(x=0;x360&&(o=360);const n=e.center;let a=n?n[0]:0,l=n?n[1]:0;const A=n?n[2]:0,h=[],c=[],d=[],p=[];let g,m,_,v,b,x,w,y,P,B,C,M;for(y=0;y<=r;y++)for(w=0;w<=s;w++)g=w/s*o,m=.785398+y/r*Math.PI*2,a=t*Math.cos(g),l=t*Math.sin(g),_=(t+i*Math.cos(m))*Math.cos(g),v=(t+i*Math.cos(m))*Math.sin(g),b=i*Math.sin(m),h.push(_+a),h.push(v+l),h.push(b+A),d.push(1-w/s),d.push(y/r),x=u.normalizeVec3(u.subVec3([_,v,b],[a,l,A],[]),[]),c.push(x[0]),c.push(x[1]),c.push(x[2]);for(y=1;y<=r;y++)for(w=1;w<=s;w++)P=(s+1)*y+w-1,B=(s+1)*(y-1)+w-1,C=(s+1)*(y-1)+w,M=(s+1)*y+w,p.push(P),p.push(B),p.push(C),p.push(C),p.push(M),p.push(P);return f.apply(e,{positions:h,normals:c,uv:d,indices:p})}ds.load=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=function(e){t(e.target.response)},i.send()},ds.save=function(e,t){var i="data:application/octet-stream;base64,"+btoa(ds.parse._buffToStr(e));window.location.href=i},ds.clone=function(e){return JSON.parse(JSON.stringify(e))},ds.bin={},ds.bin.f=new Float32Array(1),ds.bin.fb=new Uint8Array(ds.bin.f.buffer),ds.bin.rf=function(e,t){for(var i=ds.bin.f,s=ds.bin.fb,r=0;r<4;r++)s[r]=e[t+r];return i[0]},ds.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},ds.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},ds.bin.rASCII0=function(e,t){for(var i="";0!=e[t];)i+=String.fromCharCode(e[t++]);return i},ds.bin.wf=function(e,t,i){new Float32Array(e.buffer,t,1)[0]=i},ds.bin.wsl=function(e,t,i){e[t]=i,e[t+1]=i>>8},ds.bin.wil=function(e,t,i){e[t]=i,e[t+1]=i>>8,e[t+2]=i>>16,e[t+3]},ds.parse={},ds.parse._buffToStr=function(e){for(var t=new Uint8Array(e),i="",s=0;sr&&(r=l),Ao&&(o=A),hn&&(n=h)}return{min:{x:t,y:i,z:s},max:{x:r,y:o,z:n}}};class ms extends I{constructor(e,t={}){super(e,t),this._type=t.type||(t.src?t.src.split(".").pop():null)||"jpg",this._pos=u.vec3(t.pos||[0,0,0]),this._up=u.vec3(t.up||[0,1,0]),this._normal=u.vec3(t.normal||[0,0,1]),this._height=t.height||1,this._origin=u.vec3(),this._rtcPos=u.vec3(),this._imageSize=u.vec2(),this._texture=new As(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 es(this,{matrix:u.inverseMat4(u.lookAtMat4v(this._pos,u.subVec3(this._pos,this._normal,u.mat4()),this._up,u.mat4())),children:[this._bitmapMesh=new Qi(this,{scale:[1,1,1],rotation:[-90,0,0],collidable:t.collidable,pickable:t.pickable,opacity:t.opacity,clippable:t.clippable,geometry:new Dt(this,ps({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new Ut(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 fs=u.OBB3(),_s=u.OBB3(),vs=u.OBB3();class bs{constructor(e,t,i,s,r,o,n=null,a=0){this.model=e,this.object=null,this.parent=null,this.transform=r,this.textureSet=o,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=t,this.obb=null,this._aabbLocal=null,this._aabbWorld=u.AABB3(),this._aabbWorldDirty=!1,this.layer=n,this.portionId=a,this._color=new Uint8Array([i[0],i[1],i[2],s]),this._colorize=new Uint8Array([i[0],i[1],i[2],s]),this._colorizing=!1,this._transparent=s<255,this.numTriangles=0,this.origin=null,this.entity=null,r&&r._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 i=e<255,s=this._transparent!==i;this._color[3]=e,this._colorize[3]=e,this._transparent=i,this._colorizing?this.layer.setColor(this.portionId,this._colorize):this.layer.setColor(this.portionId,this._color),s&&this.layer.setTransparent(this.portionId,t,i)}_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,i,s){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,i,s)}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(u.AABB3ToOBB3(this._aabbLocal,fs),this.transform?(u.transformOBB3(this.transform.worldMatrix,fs,_s),u.transformOBB3(this.model.worldMatrix,_s,vs),u.OBB3ToAABB3(vs,this._aabbWorld)):(u.transformOBB3(this.model.worldMatrix,fs,_s),u.OBB3ToAABB3(_s,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 xs=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 ws=0;const ys={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},Ps=new Float32Array([1,1,1,1]),Bs=new Float32Array([0,0,0,1]),Cs=u.vec4(),Ms=u.vec3(),Es=u.vec3(),Fs=u.mat4();class Is{constructor(e,t=!1,{instancing:i=!1,edges:s=!1}={}){this._scene=e,this._withSAO=t,this._instancing=i,this._edges=s,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:i}=t.canvas,{model:s,layerIndex:r}=e,o=t._sectionPlanesState.getNumAllocatedSectionPlanes(),n=t._sectionPlanesState.sectionPlanes.length;if(o>0){const a=t._sectionPlanesState.sectionPlanes,l=r*n,A=s.renderFlags;for(let t=0;t0&&(this._uReflectionMap="reflectionMap"),i.lightMaps.length>0&&(this._uLightMap="lightMap"),this._uSectionPlanes=[];for(let t=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0&&p.reflectionMaps[0].texture&&this._uReflectionMap&&(this._program.bindTexture(this._uReflectionMap,p.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%o,e.bindTexture++),p.lightMaps.length>0&&p.lightMaps[0].texture&&this._uLightMap&&(this._program.bindTexture(this._uLightMap,p.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%o,e.bindTexture++),this._withSAO){const t=n.sao;if(t.possible){const i=a.drawingBufferWidth,s=a.drawingBufferHeight;Cs[0]=i,Cs[1]=s,Cs[2]=t.blendCutoff,Cs[3]=t.blendFactor,a.uniform4fv(this._uSAOParams,Cs),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%o,e.bindTexture++}}if(s){const e=this._edges?"edgeColor":"fillColor",t=this._edges?"edgeAlpha":"fillAlpha";if(i===ys[(this._edges?"EDGES":"SILHOUETTE")+"_XRAYED"]){const i=n.xrayMaterial._state,s=i[e],r=i[t];a.uniform4f(this._uColor,s[0],s[1],s[2],r)}else if(i===ys[(this._edges?"EDGES":"SILHOUETTE")+"_HIGHLIGHTED"]){const i=n.highlightMaterial._state,s=i[e],r=i[t];a.uniform4f(this._uColor,s[0],s[1],s[2],r)}else if(i===ys[(this._edges?"EDGES":"SILHOUETTE")+"_SELECTED"]){const i=n.selectedMaterial._state,s=i[e],r=i[t];a.uniform4f(this._uColor,s[0],s[1],s[2],r)}else a.uniform4fv(this._uColor,this._edges?Bs:Ps)}this._draw({state:l,frameCtx:e,incrementDrawState:r}),a.bindVertexArray(null)}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null,d.memory.programs--}}class Ds extends Is{constructor(e,t,{edges:i=!1}={}){super(e,t,{instancing:!1,edges:i})}_draw(e){const{gl:t}=this._scene.canvas,{state:i,frameCtx:s,incrementDrawState:r}=e;if(this._edges)t.drawElements(t.LINES,i.edgeIndicesBuf.numItems,i.edgeIndicesBuf.itemType,0);else{const e=s.pickElementsCount||i.indicesBuf.numItems,o=s.pickElementsOffset?s.pickElementsOffset*i.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,e,i.indicesBuf.itemType,o),r&&s.drawElements++}}}class Ss extends Ds{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState,s=t.getNumAllocatedSectionPlanes()>0;let r;const o=[];o.push("#version 300 es"),o.push("// Triangles batching draw vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in float flags;"),e.entityOffsetsEnabled&&o.push("in vec3 offset;"),this._addMatricesUniformBlockLines(o,!0),e.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;");for(let e=0,t=i.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 = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),o.push("vec3 viewNormal = normalize((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;");for(let e=0,t=i.lights.length;e0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching 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;")),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("}")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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;"),this._withSAO?(s.push(" float viewportWidth = uSAOParams[0];"),s.push(" float viewportHeight = uSAOParams[1];"),s.push(" float blendCutoff = uSAOParams[2];"),s.push(" float blendFactor = uSAOParams[3];"),s.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),s.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),s.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):s.push(" outColor = vColor;"),s.push("}"),s}}class Ts extends Ds{_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,i=[];return i.push("#version 300 es"),i.push("// Triangles batching flat-shading draw vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vViewPosition = viewPosition;"),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._lightsState,i=e._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching flat-shading 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("}")),s){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}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 ) );");for(let e=0,i=t.lights.length;e0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 color;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec4 silhouetteColor;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, color.a ));"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Triangles batching silhouette 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"),e.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("outColor = vColor;"),o.push("}"),o}}class Ls extends Ds{constructor(e){super(e,!1,{instancing:!1,edges:!0})}}class Us extends Ls{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer vertex shader"),i.push("uniform int renderPass;"),i.push("uniform vec4 color;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeFlag = int(flags) >> 8 & 0xF;"),i.push("if (edgeFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vColor = vec4(color.r, color.g, color.b, color.a);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// EdgesEmphasisRenderer 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class ks extends Ls{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!1})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry edges drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeFlag = int(flags) >> 8 & 0xF;"),i.push("if (edgeFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.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);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry edges 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class Os extends Ds{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry picking vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),this._addRemapClipPosLines(i),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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 = vPickColor; "),s.push("}"),s}}class Ns extends Ds{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching pick depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),this._addRemapClipPosLines(i),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching 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;"),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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(" outColor = packDepth(zNormalizedDepth); "),s.push("}"),s}}class Qs extends Ds{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching pick normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec3 normal;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i,3),e.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("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec3 vWorldNormal;"),i.push("out vec4 outColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec3 worldNormal = octDecode(normal.xy); "),i.push(" vWorldNormal = worldNormal;"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching pick normals 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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(` outNormal = ivec4(vWorldNormal * float(${u.MAX_INT}), 1.0);`),s.push("}"),s}}class Vs extends Ds{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching occlusion vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching 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){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push(" }")}return i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),i.push("}"),i}}class js extends Ds{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec2 vHighPrecisionZW;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vHighPrecisionZW = gl_Position.zw;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching depth fragment shader"),s.push("precision highp float;"),s.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 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 fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),s.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),s.push("}"),s}}class Hs extends Ds{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec3 normal;"),i.push("in vec4 color;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i,!0),e.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("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec3 vViewNormal;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),i.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push(" vViewNormal = viewNormal;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 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 = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}}class zs extends Ds{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry shadow vertex shader"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("uniform mat4 shadowViewMatrix;"),i.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(i),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 outColor;"),i.push("void main(void) {"),i.push(" int colorFlag = int(flags) & 0xF;"),i.push(" bool visible = (colorFlag > 0);"),i.push(" bool transparent = ((float(color.a) / 255.0) < 1.0);"),i.push(" if (!visible || transparent) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push(" vViewPosition = viewPosition;"),i.push(" gl_Position = shadowProjMatrix * viewPosition;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry 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"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" outColor = encodeFloat( gl_FragCoord.z); "),i.push("}"),i}}class Gs extends Ds{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState,s=t.getNumAllocatedSectionPlanes()>0,r=t.clippingCaps,o=[];return o.push("#version 300 es"),o.push("// Triangles batching quality draw vertex shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("precision highp usampler2D;"),o.push("precision highp isampler2D;"),o.push("precision highp sampler2D;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("precision mediump usampler2D;"),o.push("precision mediump isampler2D;"),o.push("precision mediump sampler2D;"),o.push("#endif"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in vec2 uv;"),o.push("in vec2 metallicRoughness;"),o.push("in float flags;"),e.entityOffsetsEnabled&&o.push("in vec3 offset;"),this._addMatricesUniformBlockLines(o,!0),o.push("uniform mat3 uvDecodeMatrix;"),e.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("vec3 octDecode(vec2 oct) {"),o.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),o.push(" if (v.z < 0.0) {"),o.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);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),o.push("out vec4 vViewPosition;"),o.push("out vec3 vViewNormal;"),o.push("out vec4 vColor;"),o.push("out vec2 vUV;"),o.push("out vec2 vMetallicRoughness;"),i.lightMaps.length>0&&o.push("out vec3 vWorldNormal;"),s&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;"),r&&o.push("out vec4 vClipPosition;")),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 = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),o.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),o.push("vFragDepth = 1.0 + clipPos.w;")),s&&(o.push("vWorldPosition = worldPosition;"),o.push("vFlags = flags;"),r&&o.push("vClipPosition = clipPos;")),o.push("vViewPosition = viewPosition;"),o.push("vViewNormal = viewNormal;"),o.push("vColor = color;"),o.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),o.push("vMetallicRoughness = metallicRoughness;"),i.lightMaps.length>0&&o.push("vWorldNormal = worldNormal.xyz;"),o.push("gl_Position = clipPos;"),o.push("}"),o.push("}"),o}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,i=e._sectionPlanesState,s=e._lightsState,r=i.getNumAllocatedSectionPlanes()>0,o=i.clippingCaps,n=[];n.push("#version 300 es"),n.push("// Triangles batching quality 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;")),n.push("uniform sampler2D uColorMap;"),n.push("uniform sampler2D uMetallicRoughMap;"),n.push("uniform sampler2D uEmissiveMap;"),n.push("uniform sampler2D uNormalMap;"),n.push("uniform sampler2D uAOMap;"),n.push("in vec4 vViewPosition;"),n.push("in vec3 vViewNormal;"),n.push("in vec4 vColor;"),n.push("in vec2 vUV;"),n.push("in vec2 vMetallicRoughness;"),s.lightMaps.length>0&&n.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(n,!0),s.reflectionMaps.length>0&&n.push("uniform samplerCube reflectionMap;"),s.lightMaps.length>0&&n.push("uniform samplerCube lightMap;"),n.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e0&&(n.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),n.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),n.push(" return envMapColor;"),n.push("}")),n.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),n.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),n.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),n.push("}"),n.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" return 1.0 / ( gl * gv );"),n.push("}"),n.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" return 0.5 / max( gv + gl, EPSILON );"),n.push("}"),n.push("float D_GGX(const in float alpha, const in float dotNH) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),n.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float alpha = ( roughness * roughness );"),n.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),n.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),n.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),n.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),n.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),n.push(" vec3 F = F_Schlick( specularColor, dotLH );"),n.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),n.push(" float D = D_GGX( alpha, dotNH );"),n.push(" return F * (G * D);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),n.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),n.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),n.push(" vec4 r = roughness * c0 + c1;"),n.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),n.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),n.push(" return specularColor * AB.x + AB.y;"),n.push("}"),(s.lightMaps.length>0||s.reflectionMaps.length>0)&&(n.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),s.lightMaps.length>0&&(n.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),n.push(" irradiance *= PI;"),n.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),s.reflectionMaps.length>0&&(n.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),n.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),n.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),n.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),n.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),n.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),n.push("}")),n.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),n.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),n.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),n.push("}"),n.push("out vec4 outColor;"),n.push("void main(void) {"),r){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),n.push(" discard;"),n.push(" }"),n.push(" if (dist > 0.0) { "),n.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" return;"),n.push("}")):(n.push(" if (dist > 0.0) { "),n.push(" discard;"),n.push(" }")),n.push("}")}n.push("IncidentLight light;"),n.push("Material material;"),n.push("Geometry geometry;"),n.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),n.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),n.push("float opacity = float(vColor.a) / 255.0;"),n.push("vec3 baseColor = rgb;"),n.push("float specularF0 = 1.0;"),n.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),n.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),n.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),n.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),n.push("baseColor *= colorTexel.rgb;"),n.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),n.push("metallic *= metalRoughTexel.b;"),n.push("roughness *= metalRoughTexel.g;"),n.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),n.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),n.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),n.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),n.push("geometry.position = vViewPosition.xyz;"),n.push("geometry.viewNormal = -normalize(viewNormal);"),n.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),s.lightMaps.length>0&&n.push("geometry.worldNormal = normalize(vWorldNormal);"),(s.lightMaps.length>0||s.reflectionMaps.length>0)&&n.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=s.lights.length;e0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching pick flat normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i,3),e.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("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching pick flat normals 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;"),i){s.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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(" 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(${u.MAX_INT}), 1.0);`),s.push("}"),s}}class Ks extends Ds{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching color texture vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in vec2 uv;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),this._addMatricesUniformBlockLines(i),i.push("uniform mat3 uvDecodeMatrix;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 vColor;"),i.push("out vec2 vUV;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vViewPosition = viewPosition;"),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),i.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,i=e._lightsState,s=e._sectionPlanesState,r=s.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Triangles batching color texture 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"),e.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("}"),t&&(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("}")),r){o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),o.push(" discard;"),o.push(" }"),o.push("}")}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 ) );");for(let e=0,t=i.lights.length;e0,i=[];return i.push("#version 300 es"),i.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// VBO SnapBatchingDepthBufInitRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(`outNormal = ivec4(worldNormal * float(${u.MAX_INT}), 1.0);`),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const er=u.vec3(),tr=u.vec3(),ir=u.vec3(),sr=u.vec3(),rr=u.mat4();class or extends Is{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=er;let m,f;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=tr;if(l){const e=ir;u.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,rr),f=sr,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(a.edgeIndicesBuf.bind(),n.drawElements(n.LINES,a.edgeIndicesBuf.numItems,a.edgeIndicesBuf.itemType,0),a.edgeIndicesBuf.unbind()):n.drawArrays(n.POINTS,0,a.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 i=[];return i.push("#version 300 es"),i.push("// SnapBatchingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapBatchingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class nr{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._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=null),this._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=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._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),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new Rs(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Os(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Ns(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new $s(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new or(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ss(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Ss(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new Ts(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new Ts(this._scene,!0)),this._flatColorRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new Ks(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new Ks(this._scene,!0)),this._colorTextureRendererWithSAO}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new Gs(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new Gs(this._scene,!0)),this._pbrRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Rs(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new js(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Hs(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new Us(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new ks(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Os(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Qs(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new Ws(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Ns(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Vs(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new zs(this._scene)),this._shadowRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new or(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new $s(this._scene)),this._snapInitRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.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._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const ar={};let lr=65536,Ar=5e6;class hr{constructor(){}set doublePrecisionEnabled(e){u.setDoublePrecisionEnabled(e)}get doublePrecisionEnabled(){return u.getDoublePrecisionEnabled()}set maxDataTextureHeight(e){(e=1024*Math.ceil(e/1024))>4096?e=4096:e<1024&&(e=1024),lr=e}get maxDataTextureHeight(){return lr}set maxGeometryBatchSize(e){e<1e5?e=1e5:e>5e6&&(e=5e6),Ar=e}get maxGeometryBatchSize(){return Ar}}const cr=new hr;class ur{constructor(){this.maxVerts=cr.maxGeometryBatchSize,this.maxIndices=3*cr.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]}}const dr=u.mat4(),pr=u.mat4();function gr(e,t,i){const s=e.length,r=new Uint16Array(s),o=t[0],n=t[1],a=t[2],l=t[3]-o,A=t[4]-n,h=t[5]-a,c=65525,d=c/l,p=c/A,g=c/h,m=e=>e>=0?e:0;for(let t=0;t=0?1:-1),t=(1-Math.abs(s))*(r>=0?1:-1),s=e,r=t}return new Int8Array([Math[t](127.5*s+(s<0?-1:0)),Math[i](127.5*r+(r<0?-1:0))])}function _r(e){let t=e[0],i=e[1];t/=t<0?127:128,i/=i<0?127:128;const s=1-Math.abs(t)-Math.abs(i);s<0&&(t=(1-Math.abs(i))*(t>=0?1:-1),i=(1-Math.abs(t))*(i>=0?1:-1));const r=Math.sqrt(t*t+i*i+s*s);return[t/r,i/r,s/r]}const vr=u.mat4(),br=u.mat4(),xr=u.vec4([0,0,0,1]),wr=u.vec3(),yr=u.vec3(),Pr=u.vec3(),Br=u.vec3(),Cr=u.vec3(),Mr=u.vec3(),Er=u.vec3();class Fr{constructor(e){console.info("Creating VBOBatchingTrianglesLayer"),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._renderers=function(e){const t=e.id;let i=ar[t];return i||(i=new nr(e),ar[t]=i,i._compile(),i.eagerCreateRenders(),e.on("compile",(()=>{i._compile(),i.eagerCreateRenders()})),e.on("destroyed",(()=>{delete ar[t],i._destroy()}))),i}(e.model.scene),this._buffer=new ur(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Ye({origin:u.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=u.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=u.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=u.mat4(e.positionsDecodeMatrix)),e.uvDecodeMatrix?(this._state.uvDecodeMatrix=u.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){u.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)for(let e=0,t=o.length;e0){const e=vr;f?u.inverseMat4(u.transposeMat4(f,br),e):u.identityMat4(e,e),function(e,t,i,s,r){function o(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}let n,a,l,A,h,c,d=new Float32Array([0,0,0,0]),p=new Float32Array([0,0,0,0]);for(c=0;ch&&(l=n,h=A),n=fr(p,"floor","ceil"),a=_r(n),A=o(p,a),A>h&&(l=n,h=A),n=fr(p,"ceil","ceil"),a=_r(n),A=o(p,a),A>h&&(l=n,h=A),s[r+c+0]=l[0],s[r+c+1]=l[1],s[r+c+2]=0}(e,r,r.length,b.normals,b.normals.length)}if(l)for(let e=0,t=l.length;e0)for(let e=0,t=n.length;e0)for(let e=0,t=a.length;e0){const s=this._state.positionsDecodeMatrix?new Uint16Array(i.positions):gr(i.positions,this._modelAABB,this._state.positionsDecodeMatrix=u.mat4());if(e.positionsBuf=new Fe(t,t.ARRAY_BUFFER,s,s.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(let e=0,t=this._portions.length;e0){const s=new Int8Array(i.normals);let r=!0;e.normalsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.normals.length,3,t.STATIC_DRAW,r)}if(i.colors.length>0){const s=new Uint8Array(i.colors);let r=!1;e.colorsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.colors.length,4,t.DYNAMIC_DRAW,r)}if(i.uv.length>0)if(e.uvDecodeMatrix){let s=!1;e.uvBuf=new Fe(t,t.ARRAY_BUFFER,i.uv,i.uv.length,2,t.STATIC_DRAW,s)}else{const s=Et.getUVBounds(i.uv),r=Et.compressUVs(i.uv,s.min,s.max),o=r.quantized;let n=!1;e.uvDecodeMatrix=u.mat3(r.decodeMatrix),e.uvBuf=new Fe(t,t.ARRAY_BUFFER,o,o.length,2,t.STATIC_DRAW,n)}if(i.metallicRoughness.length>0){const s=new Uint8Array(i.metallicRoughness);let r=!1;e.metallicRoughnessBuf=new Fe(t,t.ARRAY_BUFFER,s,i.metallicRoughness.length,2,t.STATIC_DRAW,r)}if(i.positions.length>0){const s=i.positions.length/3,r=new Float32Array(s),o=!1;e.flagsBuf=new Fe(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(i.pickColors.length>0){const s=new Uint8Array(i.pickColors);let r=!1;e.pickColorsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.pickColors.length,4,t.STATIC_DRAW,r)}if(this.model.scene.entityOffsetsEnabled&&i.offsets.length>0){const s=new Float32Array(i.offsets);e.offsetsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.offsets.length,3,t.DYNAMIC_DRAW)}if(i.indices.length>0){const s=new Uint32Array(i.indices);e.indicesBuf=new Fe(t,t.ELEMENT_ARRAY_BUFFER,s,i.indices.length,1,t.STATIC_DRAW)}if(i.edgeIndices.length>0){const s=new Uint32Array(i.edgeIndices);e.edgeIndicesBuf=new Fe(t,t.ELEMENT_ARRAY_BUFFER,s,i.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,i){t&G&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&Z&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,i,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&G?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&q?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&X?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";const i=e,s=this._portions[i],r=4*s.vertsBaseIndex,o=4*s.numVerts,n=this._scratchMemory.getUInt8Array(o),a=t[0],l=t[1],A=t[2],h=t[3];for(let e=0;e_)&&(_=e,s.set(v),r&&u.triangleNormal(p,g,m,r),f=!0)}}return f&&r&&(u.transformVec3(this.model.worldNormalMatrix,r,r),u.normalizeVec3(r)),f}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 Ir extends Is{constructor(e,t,{edges:i=!1}={}){super(e,t,{instancing:!0,edges:i})}_draw(e){const{gl:t}=this._scene.canvas,{state:i,frameCtx:s,incrementDrawState:r}=e;this._edges?t.drawElementsInstanced(t.LINES,i.edgeIndicesBuf.numItems,i.edgeIndicesBuf.itemType,0,i.numInstances):(t.drawElementsInstanced(t.TRIANGLES,i.indicesBuf.numItems,i.indicesBuf.itemType,0,i.numInstances),r&&s.drawElements++)}}class Dr extends Ir{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState,s=t.getNumAllocatedSectionPlanes()>0;let r,o,n;const a=[];for(a.push("#version 300 es"),a.push("// Instancing geometry drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec2 normal;"),a.push("in vec4 color;"),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),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;"),r=0,o=i.lights.length;r= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),s&&(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 = 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), 0.0);"),a.push("vec3 viewNormal = normalize(vec4(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;"),r=0,o=i.lights.length;r0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry 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;")),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("}")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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;"),this._withSAO?(s.push(" float viewportWidth = uSAOParams[0];"),s.push(" float viewportHeight = uSAOParams[1];"),s.push(" float blendCutoff = uSAOParams[2];"),s.push(" float blendFactor = uSAOParams[3];"),s.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),s.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),s.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):s.push(" outColor = vColor;"),s.push("}"),s}}class Sr extends Ir{_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,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry flat-shading drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vViewPosition = viewPosition;"),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState;let s,r;const o=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry flat-shading 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("}")),o){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}for(n.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),n.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),n.push("float lambertian = 1.0;"),n.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),n.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),n.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),s=0,r=i.lights.length;s0,i=[];return i.push("#version 300 es"),i.push("// Instancing silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 color;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec4 silhouetteColor;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing fill 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class Rr extends Ir{constructor(e,t){super(e,t,{instancing:!0,edges:!0})}}class Lr extends Rr{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer vertex shader"),i.push("uniform int renderPass;"),i.push("uniform vec4 color;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeFlag = int(flags) >> 8 & 0xF;"),i.push("if (edgeFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = worldMatrix * positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vColor = vec4(color.r, color.g, color.b, color.a);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// EdgesEmphasisRenderer 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class Ur extends Rr{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!1})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// EdgesColorRenderer vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeFlag = int(flags) >> 8 & 0xF;"),i.push("if (edgeFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.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);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// EdgesColorRenderer 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class kr extends Ir{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry picking vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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 = vPickColor; "),s.push("}"),s}}class Or extends Ir{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push(" vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry 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;"),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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(" outColor = packDepth(zNormalizedDepth); "),s.push("}"),s}}class Nr extends Ir{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec2 normal;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("in vec4 modelNormalMatrixCol0;"),i.push("in vec4 modelNormalMatrixCol1;"),i.push("in vec4 modelNormalMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i,3),e.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("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec3 vWorldNormal;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),i.push(" vec3 worldNormal = vec3(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2));"),i.push(" vWorldNormal = worldNormal;"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 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(` outNormal = ivec4(vWorldNormal * float(${u.MAX_INT}), 1.0);`),s.push("}"),s}}class Qr extends Ir{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// TrianglesInstancingOcclusionRenderer vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesInstancingOcclusionRenderer 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){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),i.push("}"),i}}class Vr extends Ir{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry depth drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec2 vHighPrecisionZW;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vHighPrecisionZW = gl_Position.zw;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Instancing geometry depth drawing fragment shader"),o.push("precision highp float;"),o.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),o.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),o.push("}"),o}}class jr extends Ir{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry normals drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec3 normal;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i,!0),e.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("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec3 vViewNormal;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),i.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push(" vViewNormal = viewNormal;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry depth 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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 = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}}class Hr extends Ir{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry shadow drawing vertex shader"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform mat4 shadowViewMatrix;"),i.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(i),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("bool visible = (colorFlag > 0);"),i.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),i.push("if (!visible || transparent) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push(" gl_Position = shadowProjMatrix * viewPosition;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry depth 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}}const zr={3e3:"linearToLinear",3001:"sRGBToLinear"};class Gr extends Ir{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState,s=t.getNumAllocatedSectionPlanes()>0,r=t.clippingCaps,o=[];return o.push("#version 300 es"),o.push("// Instancing geometry quality drawing vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in vec2 uv;"),o.push("in vec2 metallicRoughness;"),o.push("in float flags;"),e.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),o.push("uniform mat3 uvDecodeMatrix;"),e.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("vec3 octDecode(vec2 oct) {"),o.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),o.push(" if (v.z < 0.0) {"),o.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);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),o.push("out vec4 vViewPosition;"),o.push("out vec3 vViewNormal;"),o.push("out vec4 vColor;"),o.push("out vec2 vUV;"),o.push("out vec2 vMetallicRoughness;"),i.lightMaps.length>0&&o.push("out vec3 vWorldNormal;"),s&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;"),r&&o.push("out vec4 vClipPosition;")),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);"),e.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), 1.0);"),o.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("vFragDepth = 1.0 + clipPos.w;"),o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s&&(o.push("vWorldPosition = worldPosition;"),o.push("vFlags = flags;"),r&&o.push("vClipPosition = clipPos;")),o.push("vViewPosition = viewPosition;"),o.push("vViewNormal = viewNormal;"),o.push("vColor = color;"),o.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),o.push("vMetallicRoughness = metallicRoughness;"),i.lightMaps.length>0&&o.push("vWorldNormal = worldNormal.xyz;"),o.push("gl_Position = clipPos;"),o.push("}"),o.push("}"),o}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,i=e._sectionPlanesState,s=e._lightsState,r=i.getNumAllocatedSectionPlanes()>0,o=i.clippingCaps,n=[];n.push("#version 300 es"),n.push("// Instancing geometry quality 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;")),n.push("uniform sampler2D uColorMap;"),n.push("uniform sampler2D uMetallicRoughMap;"),n.push("uniform sampler2D uEmissiveMap;"),n.push("uniform sampler2D uNormalMap;"),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.reflectionMaps.length>0&&n.push("uniform samplerCube reflectionMap;"),s.lightMaps.length>0&&n.push("uniform samplerCube lightMap;"),n.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e0&&n.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(n,!0),n.push("#define PI 3.14159265359"),n.push("#define RECIPROCAL_PI 0.31830988618"),n.push("#define RECIPROCAL_PI2 0.15915494"),n.push("#define EPSILON 1e-6"),n.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),n.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),n.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),n.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),n.push(" return normalize(surf_norm );"),n.push(" }"),n.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),n.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),n.push(" vec2 st0 = dFdx( uv.st );"),n.push(" vec2 st1 = dFdy( uv.st );"),n.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),n.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),n.push(" vec3 N = normalize( surf_norm );"),n.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),n.push(" mat3 tsn = mat3( S, T, N );"),n.push(" return normalize( tsn * mapN );"),n.push("}"),n.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),n.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),n.push("}"),n.push("struct IncidentLight {"),n.push(" vec3 color;"),n.push(" vec3 direction;"),n.push("};"),n.push("struct ReflectedLight {"),n.push(" vec3 diffuse;"),n.push(" vec3 specular;"),n.push("};"),n.push("struct Geometry {"),n.push(" vec3 position;"),n.push(" vec3 viewNormal;"),n.push(" vec3 worldNormal;"),n.push(" vec3 viewEyeDir;"),n.push("};"),n.push("struct Material {"),n.push(" vec3 diffuseColor;"),n.push(" float specularRoughness;"),n.push(" vec3 specularColor;"),n.push(" float shine;"),n.push("};"),n.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),n.push(" float r = ggxRoughness + 0.0001;"),n.push(" return (2.0 / (r * r) - 2.0);"),n.push("}"),n.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),n.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),n.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),n.push("}"),s.reflectionMaps.length>0&&(n.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),n.push(" vec3 envMapColor = "+zr[s.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),n.push(" return envMapColor;"),n.push("}")),n.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),n.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),n.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),n.push("}"),n.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" return 1.0 / ( gl * gv );"),n.push("}"),n.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" return 0.5 / max( gv + gl, EPSILON );"),n.push("}"),n.push("float D_GGX(const in float alpha, const in float dotNH) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),n.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float alpha = ( roughness * roughness );"),n.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),n.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),n.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),n.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),n.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),n.push(" vec3 F = F_Schlick( specularColor, dotLH );"),n.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),n.push(" float D = D_GGX( alpha, dotNH );"),n.push(" return F * (G * D);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),n.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),n.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),n.push(" vec4 r = roughness * c0 + c1;"),n.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),n.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),n.push(" return specularColor * AB.x + AB.y;"),n.push("}"),(s.lightMaps.length>0||s.reflectionMaps.length>0)&&(n.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),s.lightMaps.length>0&&(n.push(" vec3 irradiance = "+zr[s.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),n.push(" irradiance *= PI;"),n.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),s.reflectionMaps.length>0&&(n.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),n.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),n.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),n.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),n.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),n.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),n.push("}")),n.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),n.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),n.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),n.push("}"),n.push("out vec4 outColor;"),n.push("void main(void) {"),r){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),n.push(" discard;"),n.push(" }"),n.push(" if (dist > 0.0) { "),n.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" return;"),n.push("}")):(n.push(" if (dist > 0.0) { "),n.push(" discard;"),n.push(" }")),n.push("}")}n.push("IncidentLight light;"),n.push("Material material;"),n.push("Geometry geometry;"),n.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),n.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),n.push("float opacity = float(vColor.a) / 255.0;"),n.push("vec3 baseColor = rgb;"),n.push("float specularF0 = 1.0;"),n.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),n.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),n.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),n.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),n.push("baseColor *= colorTexel.rgb;"),n.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),n.push("metallic *= metalRoughTexel.b;"),n.push("roughness *= metalRoughTexel.g;"),n.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),n.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),n.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),n.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),n.push("geometry.position = vViewPosition.xyz;"),n.push("geometry.viewNormal = -normalize(viewNormal);"),n.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),s.lightMaps.length>0&&n.push("geometry.worldNormal = normalize(vWorldNormal);"),(s.lightMaps.length>0||s.reflectionMaps.length>0)&&n.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=s.lights.length;e0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i,3),e.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;")),t&&i.push("out float vFlags;"),i.push("out vec4 vWorldPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&i.push("vFlags = flags;"),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals 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;"),i){s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 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(" 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(${u.MAX_INT}), 1.0);`),s.push("}"),s}}class Kr extends Ir{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in vec2 uv;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform mat3 uvDecodeMatrix;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 vColor;"),i.push("out vec2 vUV;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vViewPosition = viewPosition;"),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),i.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,i=e._sectionPlanesState,s=e._lightsState;let r,o;const n=i.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry 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"),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("}")),n){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}for(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 ) );"),r=0,o=s.lights.length;r0,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick depth 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(`outNormal = ivec4(worldNormal * float(${u.MAX_INT}), 1.0);`),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const eo=u.vec3(),to=u.vec3(),io=u.vec3(),so=u.vec3(),ro=u.mat4();class oo extends Is{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=eo;let m,f;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=to;if(l){const e=u.transformPoint3(h,l,io);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,ro),f=so,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(a.edgeIndicesBuf.bind(),n.drawElementsInstanced(n.LINES,a.edgeIndicesBuf.numItems,a.edgeIndicesBuf.itemType,0,a.numInstances),a.edgeIndicesBuf.unbind()):n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class no{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._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=null),this._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=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._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new Tr(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new kr(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Or(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new $r(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new oo(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Dr(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Dr(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new Sr(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new Sr(this._scene,!0)),this._flatColorRendererWithSAO}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new Gr(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new Gr(this._scene,!0)),this._pbrRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new Kr(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new Kr(this._scene,!0)),this._colorTextureRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Tr(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Vr(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new jr(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new Lr(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Ur(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new kr(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Nr(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new Wr(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Or(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Qr(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new Hr(this._scene)),this._shadowRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new $r(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new oo(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.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._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const ao={};const lo=new Uint8Array(4),Ao=new Float32Array(1),ho=u.vec4([0,0,0,1]),co=new Float32Array(3),uo=u.vec3(),po=u.vec3(),go=u.vec3(),mo=u.vec3(),fo=u.vec3(),_o=u.vec3(),vo=u.vec3(),bo=new Float32Array(4);class xo{constructor(e){console.info("Creating VBOInstancingTrianglesLayer"),this.model=e.model,this.sortId="TrianglesInstancingLayer"+(e.solid?"-solid":"-surface")+(e.normals?"-normals":"-autoNormals"),this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=ao[t];return i||(i=new no(e),ao[t]=i,i._compile(),i.eagerCreateRenders(),e.on("compile",(()=>{i._compile(),i.eagerCreateRenders()})),e.on("destroyed",(()=>{delete ao[t],i._destroy()}))),i}(e.model.scene),this._aabb=u.collapseAABB3(),this._state=new Ye({numInstances:0,obb:u.OBB3(),origin:u.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=u.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){u.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;e.colorsBuf=new Fe(s,s.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,s.DYNAMIC_DRAW,t),this._colors=[]}if(this._metallicRoughness.length>0){const t=new Uint8Array(this._metallicRoughness);let i=!1;e.metallicRoughnessBuf=new Fe(s,s.ARRAY_BUFFER,t,this._metallicRoughness.length,2,s.STATIC_DRAW,i)}if(o>0){let t=!1;e.flagsBuf=new Fe(s,s.ARRAY_BUFFER,new Float32Array(o),o,1,s.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;e.offsetsBuf=new Fe(s,s.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,s.DYNAMIC_DRAW,t),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){const i=!1;e.positionsBuf=new Fe(s,s.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,s.STATIC_DRAW,i),e.positionsDecodeMatrix=u.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){const i=new Uint8Array(t.colorsCompressed),r=!1;e.colorsBuf=new Fe(s,s.ARRAY_BUFFER,i,i.length,4,s.STATIC_DRAW,r)}if(t.uvCompressed&&t.uvCompressed.length>0){const i=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new Fe(s,s.ARRAY_BUFFER,i,i.length,2,s.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new Fe(s,s.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,s.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new Fe(s,s.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,s.STATIC_DRAW)),this._modelMatrixCol0.length>0){const t=!1;e.modelMatrixCol0Buf=new Fe(s,s.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,s.STATIC_DRAW,t),e.modelMatrixCol1Buf=new Fe(s,s.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,s.STATIC_DRAW,t),e.modelMatrixCol2Buf=new Fe(s,s.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,s.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new Fe(s,s.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,s.STATIC_DRAW,t),e.modelNormalMatrixCol1Buf=new Fe(s,s.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,s.STATIC_DRAW,t),e.modelNormalMatrixCol2Buf=new Fe(s,s.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,s.STATIC_DRAW,t),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){const t=!1;e.pickColorsBuf=new Fe(s,s.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,s.STATIC_DRAW,t),this._pickColors=[]}e.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&i&&i.colorTexture&&i.metallicRoughnessTexture),e.colorTextureSupported=!!e.uvBuf&&!!i&&!!i.colorTexture,this._state.geometry=null,this._finalized=!0}initFlags(e,t,i){t&G&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&Z&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,i)}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&G?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&q?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&X?(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,i){if(!this._finalized)throw"Not finalized";t&K?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";lo[0]=t[0],lo[1]=t[1],lo[2]=t[2],lo[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(lo,4*e)}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i){if(!this._finalized)throw"Not finalized";const s=!!(t&G),r=!!(t&q),o=!!(t&Z),n=!!(t&J),a=!!(t&$),l=!!(t&K),A=!!(t&W);let h,c;h=!s||A||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?ys.NOT_RENDERED:i?ys.COLOR_TRANSPARENT:ys.COLOR_OPAQUE,c=!s||A?ys.NOT_RENDERED:n?ys.SILHOUETTE_SELECTED:o?ys.SILHOUETTE_HIGHLIGHTED:r?ys.SILHOUETTE_XRAYED:ys.NOT_RENDERED;let u=0;u=!s||A?ys.NOT_RENDERED:n?ys.EDGES_SELECTED:o?ys.EDGES_HIGHLIGHTED:r?ys.EDGES_XRAYED:a?i?ys.EDGES_COLOR_TRANSPARENT:ys.EDGES_COLOR_OPAQUE:ys.NOT_RENDERED;let d=0;d|=h,d|=c<<4,d|=u<<8,d|=(s&&!A&&l?ys.PICK:ys.NOT_RENDERED)<<12,d|=(t&X?1:0)<<16,Ao[0]=d,this._state.flagsBuf&&this._state.flagsBuf.setData(Ao,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(co[0]=t[0],co[1]=t[1],co[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(co,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}getEachVertex(e,t){if(!this.model.scene.pickSurfacePrecisionEnabled)return!1;const i=this._state,s=i.geometry,r=this._portions[e];if(!r)return void this.model.error("portion not found: "+e);const o=s.quantizedPositions,n=i.origin,a=r.offset,l=n[0]+a[0],A=n[1]+a[1],h=n[2]+a[2],c=ho,d=r.matrix,p=this.model.sceneModelMatrix,g=i.positionsDecodeMatrix;for(let e=0,i=o.length;ev)&&(v=e,s.set(b),r&&u.triangleNormal(g,m,f,r),_=!0)}}return _&&r&&(u.transformVec3(a.normalMatrix,r,r),u.transformVec3(this.model.worldNormalMatrix,r,r),u.normalizeVec3(r)),_}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 wo extends Is{_draw(e){const{gl:t}=this._scene.canvas,{state:i,frameCtx:s,incrementDrawState:r}=e;t.drawElements(t.LINES,i.indicesBuf.numItems,i.indicesBuf.itemType,0),r&&s.drawElements++}}class yo extends wo{drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Lines batching color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),this._addMatricesUniformBlockLines(i),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Lines batching color 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("}"),s}}class Po extends wo{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Lines batching silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Lines batching silhouette 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outColor = color;"),s.push("}"),s}}const Bo=u.vec3(),Co=u.vec3(),Mo=u.vec3(),Eo=u.vec3(),Fo=u.mat4();class Io extends Is{drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=Bo;let m,f;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=Co;if(l){const e=Mo;u.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,Fo),f=Eo,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),a.indicesBuf.bind(),n.drawElements(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0),a.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,i=[];return i.push("#version 300 es"),i.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// VBO SnapBatchingDepthBufInitRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(`outNormal = ivec4(worldNormal * float(${u.MAX_INT}), 1.0);`),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Do=u.vec3(),So=u.vec3(),To=u.vec3(),Ro=u.vec3(),Lo=u.mat4();class Uo extends Is{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=Do;let m,f;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=So;if(l){const e=To;u.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,Lo),f=Ro,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(a.indicesBuf.bind(),n.drawElements(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0),a.indicesBuf.unbind()):n.drawArrays(n.POINTS,0,a.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 i=[];return i.push("#version 300 es"),i.push("// SnapBatchingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapBatchingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class ko{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._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new yo(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Po(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Io(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Uo(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Oo={};class No{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]}}class Qo{constructor(e){console.info("Creating VBOBatchingLinesLayer"),this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=Oo[t];return i||(i=new ko(e),Oo[t]=i,i._compile(),e.on("compile",(()=>{i._compile()})),e.on("destroyed",(()=>{delete Oo[t],i._destroy()}))),i}(e.model.scene),this.model=e.model,this._buffer=new No(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Ye({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:u.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=u.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=u.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=u.vec3(e.origin))}get aabb(){if(this.aabbDirty){u.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const s=new Uint16Array(i.positions);e.positionsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.positions.length,3,t.STATIC_DRAW)}else{const s=gr(new Float32Array(i.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.positions.length,3,t.STATIC_DRAW)}if(i.colors.length>0){const s=new Uint8Array(i.colors);let r=!1;e.colorsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.colors.length,4,t.DYNAMIC_DRAW,r)}if(i.colors.length>0){const s=i.colors.length/4,r=new Float32Array(s);let o=!1;e.flagsBuf=new Fe(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(this.model.scene.entityOffsetsEnabled&&i.offsets.length>0){const s=new Float32Array(i.offsets);e.offsetsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.offsets.length,3,t.DYNAMIC_DRAW)}if(i.indices.length>0){const s=new Uint32Array(i.indices);e.indicesBuf=new Fe(t,t.ELEMENT_ARRAY_BUFFER,s,i.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,i){t&G&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&Z&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,i,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&G?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&q?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&X?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";const i=2*e,s=4*this._portions[i],r=4*this._portions[i+1],o=this._scratchMemory.getUInt8Array(r),n=t[0],a=t[1],l=t[2],A=t[3];for(let e=0;e0,i=[];return i.push("#version 300 es"),i.push("// Lines instancing color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),i.push("uniform vec4 lightAmbient;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Lines instancing color 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return this._withSAO?(o.push(" float viewportWidth = uSAOParams[0];"),o.push(" float viewportHeight = uSAOParams[1];"),o.push(" float blendCutoff = uSAOParams[2];"),o.push(" float blendFactor = uSAOParams[3];"),o.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),o.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),o.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):o.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("}"),o}}class Ho extends Vo{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Lines instancing silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),i.push("uniform vec4 color;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Lines instancing silhouette 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outColor = color;"),s.push("}"),s}}const zo=u.vec3(),Go=u.vec3(),Wo=u.vec3();u.vec3();const Ko=u.mat4();class Xo extends Is{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.canvas.gl,n=r.camera,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||n.viewMatrix;this._vaoCache.has(t)?o.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=zo;let m;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=Go;if(l){const e=u.transformPoint3(h,l,Wo);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,Ko),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,e.snapVectorA),o.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),o.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,g),o.uniform1i(this._uRenderPass,i),o.uniform1i(this._uPickInvisible,e.pickInvisible);let f=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,f+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,f+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,f+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),o.vertexAttribDivisor(this._aModelMatrixCol0.location,1),o.vertexAttribDivisor(this._aModelMatrixCol1.location,1),o.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags&&(this._aFlags.bindArrayBuffer(a.flagsBuf),o.vertexAttribDivisor(this._aFlags.location,1)),a.indicesBuf.bind(),o.drawElementsInstanced(o.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0,a.numInstances),a.indicesBuf.unbind(),o.vertexAttribDivisor(this._aModelMatrixCol0.location,0),o.vertexAttribDivisor(this._aModelMatrixCol1.location,0),o.vertexAttribDivisor(this._aModelMatrixCol2.location,0),this._aFlags&&o.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&o.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick depth 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Yo=u.vec3(),qo=u.vec3(),Zo=u.vec3();u.vec3();const Jo=u.mat4();class $o extends Is{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=Yo;let m;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=qo;if(l){const e=u.transformPoint3(h,l,Zo);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,Jo),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let f=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,f+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,f+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,f+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(a.indicesBuf.bind(),n.drawElementsInstanced(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0,a.numInstances),a.indicesBuf.unbind()):n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class en{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._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._snapInitRenderer||(this._snapInitRenderer=new Xo(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new $o(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new jo(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Ho(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Xo(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new $o(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const tn={};const sn=new Uint8Array(4),rn=new Float32Array(1),on=new Float32Array(3),nn=new Float32Array(4);class an{constructor(e){console.info("VBOInstancingLinesLayer"),this.model=e.model,this.material=e.material,this.sortId="LinesInstancingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=tn[t];return i||(i=new en(e),tn[t]=i,i._compile(),e.on("compile",(()=>{i._compile()})),e.on("destroyed",(()=>{delete tn[t],i._destroy()}))),i}(e.model.scene),this._aabb=u.collapseAABB3(),this._state=new Ye({obb:u.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=u.collapseAABB3(),this.aabbDirty=!0,e.origin&&(this._state.origin=u.vec3(e.origin)),this._finalized=!1}get aabb(){if(this.aabbDirty){u.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;this._state.colorsBuf=new Fe(e,e.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,e.DYNAMIC_DRAW,t),this._colors=[]}if(r>0){let t=!1;this._state.flagsBuf=new Fe(e,e.ARRAY_BUFFER,new Float32Array(r),r,1,e.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;this._state.offsetsBuf=new Fe(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(i.colorsCompressed&&i.colorsCompressed.length>0){const s=new Uint8Array(i.colorsCompressed),r=!1;t.colorsBuf=new Fe(e,e.ARRAY_BUFFER,s,s.length,4,e.STATIC_DRAW,r)}if(i.positionsCompressed&&i.positionsCompressed.length>0){const s=!1;t.positionsBuf=new Fe(e,e.ARRAY_BUFFER,i.positionsCompressed,i.positionsCompressed.length,3,e.STATIC_DRAW,s),t.positionsDecodeMatrix=u.mat4(i.positionsDecodeMatrix)}if(i.indices&&i.indices.length>0&&(t.indicesBuf=new Fe(e,e.ELEMENT_ARRAY_BUFFER,new Uint32Array(i.indices),i.indices.length,1,e.STATIC_DRAW),t.numIndices=i.indices.length),this._modelMatrixCol0.length>0){const t=!1;this._state.modelMatrixCol0Buf=new Fe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol1Buf=new Fe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol2Buf=new Fe(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,i){t&G&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&Z&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,i)}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&G?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&q?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&X?(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,i){if(!this._finalized)throw"Not finalized";t&K?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";sn[0]=t[0],sn[1]=t[1],sn[2]=t[2],sn[3]=t[3],this._state.colorsBuf.setData(sn,4*e,4)}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i){if(!this._finalized)throw"Not finalized";const s=!!(t&G),r=!!(t&q),o=!!(t&Z),n=!!(t&J),a=!!(t&$),l=!!(t&K),A=!!(t&W);let h,c;h=!s||A||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?ys.NOT_RENDERED:i?ys.COLOR_TRANSPARENT:ys.COLOR_OPAQUE,c=!s||A?ys.NOT_RENDERED:n?ys.SILHOUETTE_SELECTED:o?ys.SILHOUETTE_HIGHLIGHTED:r?ys.SILHOUETTE_XRAYED:ys.NOT_RENDERED;let u=0;u=!s||A?ys.NOT_RENDERED:n?ys.EDGES_SELECTED:o?ys.EDGES_HIGHLIGHTED:r?ys.EDGES_XRAYED:a?i?ys.EDGES_COLOR_TRANSPARENT:ys.EDGES_COLOR_OPAQUE:ys.NOT_RENDERED;let d=0;d|=h,d|=c<<4,d|=u<<8,d|=(s&&!A&&l?ys.PICK:ys.NOT_RENDERED)<<12,d|=(t&X?255:0)<<16,rn[0]=d,this._state.flagsBuf.setData(rn,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(on[0]=t[0],on[1]=t[1],on[2]=t[2],this._state.offsetsBuf.setData(on,3*e,3)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const i=4*e;nn[0]=t[0],nn[1]=t[4],nn[2]=t[8],nn[3]=t[12],this._state.modelMatrixCol0Buf.setData(nn,i),nn[0]=t[1],nn[1]=t[5],nn[2]=t[9],nn[3]=t[13],this._state.modelMatrixCol1Buf.setData(nn,i),nn[0]=t[2],nn[1]=t[6],nn[2]=t[10],nn[3]=t[14],this._state.modelMatrixCol2Buf.setData(nn,i)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,ys.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,ys.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,ys.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,ys.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,ys.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesXRayed(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,ys.PICK)}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,ys.PICK)}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 ln extends Is{_draw(e){const{gl:t}=this._scene.canvas,{state:i,frameCtx:s,incrementDrawState:r}=e;t.drawArrays(t.POINTS,0,i.positionsBuf.numItems),r&&s.drawArrays++}}class An extends ln{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial,s=[];return s.push("#version 300 es"),s.push("// Points 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),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),i.filterIntensity&&s.push("uniform vec2 intensityRange;"),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 {"),i.filterIntensity&&(s.push("float intensity = float(color.a) / 255.0;"),s.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),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, 1.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;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),i.filterIntensity&&s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points batching color 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("}"),s}}class hn extends ln{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points 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;"),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Points batching silhouette vertex 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i 1.0) {"),o.push(" discard;"),o.push(" }")),r){for(o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("outColor = color;"),o.push("}"),o}}class cn extends ln{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points batching pick mesh 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),this._addRemapClipPosLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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("gl_Position = remapClipPos(clipPos);"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("gl_PointSize += 10.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points batching pick mesh vertex 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var r=0;r 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vPickColor; "),s.push("}"),s}}class un extends ln{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points batched 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),this._addRemapClipPosLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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("gl_Position = remapClipPos(clipPos);"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("gl_PointSize += 10.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points batched 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform float pickZNear;"),s.push("uniform float pickZFar;"),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),s.push(" outColor = packDepth(zNormalizedDepth); "),s.push("}"),s}}class dn extends ln{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points batching occlusion 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 float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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(" gl_Position = clipPos;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points 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"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}const pn=u.vec3(),gn=u.vec3(),mn=u.vec3(),fn=u.vec3(),_n=u.mat4();class vn extends Is{drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=pn;let m,f;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=gn;if(l){const e=mn;u.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,_n),f=fn,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),n.drawArrays(n.POINTS,0,a.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,i=[];return i.push("#version 300 es"),i.push("// VBOBatchingPointsSnapInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// VBOBatchingPointsSnapInitRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const bn=u.vec3(),xn=u.vec3(),wn=u.vec3(),yn=u.vec3(),Pn=u.mat4();class Bn extends Is{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=bn;let m,f;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=xn;if(l){const e=wn;u.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,Pn),f=yn,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),n.drawArrays(n.POINTS,0,a.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 i=[];return i.push("#version 300 es"),i.push("// VBOBatchingPointsSnapRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// VBOBatchingPointsSnapRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Cn{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),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new An(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new hn(this._scene)),this._silhouetteRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new cn(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new un(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new dn(this._scene)),this._occlusionRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new vn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Bn(this._scene)),this._snapRenderer}_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(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Mn={};class En{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 Fn{constructor(e){console.info("Creating VBOBatchingPointsLayer"),this.model=e.model,this.sortId="PointsBatchingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=Mn[t];return i||(i=new Cn(e),Mn[t]=i,i._compile(),e.on("compile",(()=>{i._compile()})),e.on("destroyed",(()=>{delete Mn[t],i._destroy()}))),i}(e.model.scene),this._buffer=new En(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Ye({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,positionsDecodeMatrix:u.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=u.collapseAABB3(),this._portions=[],this._meshes=[],this._aabb=u.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=u.vec3(e.origin))}get aabb(){if(this.aabbDirty){u.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const s=new Uint16Array(i.positions);e.positionsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.positions.length,3,t.STATIC_DRAW)}else{const s=gr(new Float32Array(i.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.positions.length,3,t.STATIC_DRAW)}if(i.colors.length>0){const s=new Uint8Array(i.colors);let r=!1;e.colorsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.colors.length,4,t.STATIC_DRAW,r)}if(i.positions.length>0){const s=i.positions.length/3,r=new Float32Array(s);let o=!1;e.flagsBuf=new Fe(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(i.pickColors.length>0){const s=new Uint8Array(i.pickColors);let r=!1;e.pickColorsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.pickColors.length,4,t.STATIC_DRAW,r)}if(this.model.scene.entityOffsetsEnabled&&i.offsets.length>0){const s=new Float32Array(i.offsets);e.offsetsBuf=new Fe(t,t.ARRAY_BUFFER,s,i.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,i){t&G&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&Z&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,i)}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&G?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&q?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized"}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&X?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";const i=2*e,s=4*this._portions[i],r=4*this._portions[i+1],o=this._scratchMemory.getUInt8Array(r),n=t[0],a=t[1],l=t[2];for(let e=0;e0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points 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),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),i.filterIntensity&&s.push("uniform vec2 intensityRange;"),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 {"),i.filterIntensity&&(s.push("float intensity = float(color.a) / 255.0;"),s.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),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, 1.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;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),i.filterIntensity&&s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing color 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("}"),s}}class Sn extends In{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points 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 float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 silhouetteColor;"),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("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),s.push("gl_Position = clipPos;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing silhouette 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outColor = vColor;"),s.push("}"),s}}class Tn extends In{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points instancing pick mesh 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),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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;"),s.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing pick mesh 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outColor = vPickColor; "),s.push("}"),s}}class Rn extends In{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points instancing 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("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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;"),s.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = remapClipPos(clipPos);"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.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"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform float pickZNear;"),s.push("uniform float pickZFar;"),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),s.push(" outColor = packDepth(zNormalizedDepth); "),s.push("}"),s}}class Ln extends In{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points instancing 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;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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("gl_Position = clipPos;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing occlusion vertex 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("}"),s}}class Un extends In{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points instancing 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;"),this._addMatricesUniformBlockLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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("gl_Position = clipPos;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Points instancing depth vertex 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i 1.0) {"),o.push(" discard;"),o.push(" }")),r){for(o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return o.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("}"),o}}class kn extends In{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry shadow drawing vertex shader"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform mat4 shadowViewMatrix;"),i.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("bool visible = (colorFlag > 0);"),i.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),i.push("if (!visible || transparent) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push(" gl_Position = shadowProjMatrix * viewPosition;"),i.push("}"),i.push("gl_PointSize = pointSize;"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry depth 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 1.0) {"),s.push(" discard;"),s.push(" }"),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}}const On=u.vec3(),Nn=u.vec3(),Qn=u.vec3();u.vec3();const Vn=u.mat4();class jn extends Is{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.canvas.gl,n=r.camera,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||n.viewMatrix;this._vaoCache.has(t)?o.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=On;let m;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=Nn;if(l){const e=u.transformPoint3(h,l,Qn);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,Vn),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,e.snapVectorA),o.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),o.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,g),o.uniform1i(this._uRenderPass,i),o.uniform1i(this._uPickInvisible,e.pickInvisible);let f=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,f+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,f+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,f+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),o.vertexAttribDivisor(this._aModelMatrixCol0.location,1),o.vertexAttribDivisor(this._aModelMatrixCol1.location,1),o.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags&&(this._aFlags.bindArrayBuffer(a.flagsBuf),o.vertexAttribDivisor(this._aFlags.location,1)),o.drawArraysInstanced(o.POINTS,0,a.positionsBuf.numItems,a.numInstances),o.vertexAttribDivisor(this._aModelMatrixCol0.location,0),o.vertexAttribDivisor(this._aModelMatrixCol1.location,0),o.vertexAttribDivisor(this._aModelMatrixCol2.location,0),this._aFlags&&o.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&o.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick depth 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Hn=u.vec3(),zn=u.vec3(),Gn=u.vec3();u.vec3();const Wn=u.mat4();class Kn extends Is{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=Hn;let m;if(g[0]=u.safeInv(d[3]-d[0])*u.MAX_INT,g[1]=u.safeInv(d[4]-d[1])*u.MAX_INT,g[2]=u.safeInv(d[5]-d[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(g[0]),e.snapPickCoordinateScale[1]=u.safeInv(g[1]),e.snapPickCoordinateScale[2]=u.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=zn;if(l){const e=u.transformPoint3(h,l,Gn);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=V(p,t,Wn),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let f=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,f+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,f+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,f+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Xn{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),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Dn(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Sn(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Un(this._scene)),this._depthRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Tn(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Rn(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Ln(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new kn(this._scene)),this._shadowRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new jn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Kn(this._scene)),this._snapRenderer}_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(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Yn={};const qn=new Uint8Array(4),Zn=new Float32Array(1),Jn=new Float32Array(3),$n=new Float32Array(4);class ea{constructor(e){console.info("VBOInstancingPointsLayer"),this.model=e.model,this.material=e.material,this.sortId="PointsInstancingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=Yn[t];return i||(i=new Xn(e),Yn[t]=i,i._compile(),e.on("compile",(()=>{i._compile()})),e.on("destroyed",(()=>{delete Yn[t],i._destroy()}))),i}(e.model.scene),this._aabb=u.collapseAABB3(),this._state=new Ye({obb:u.OBB3(),numInstances:0,origin:e.origin?u.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=u.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1}get aabb(){if(this.aabbDirty){u.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let s=!1;i.flagsBuf=new Fe(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,s)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;i.offsetsBuf=new Fe(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(s.positionsCompressed&&s.positionsCompressed.length>0){const t=!1;i.positionsBuf=new Fe(e,e.ARRAY_BUFFER,s.positionsCompressed,s.positionsCompressed.length,3,e.STATIC_DRAW,t),i.positionsDecodeMatrix=u.mat4(s.positionsDecodeMatrix)}if(s.colorsCompressed&&s.colorsCompressed.length>0){const t=new Uint8Array(s.colorsCompressed),r=!1;i.colorsBuf=new Fe(e,e.ARRAY_BUFFER,t,t.length,4,e.STATIC_DRAW,r)}if(this._modelMatrixCol0.length>0){const t=!1;i.modelMatrixCol0Buf=new Fe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),i.modelMatrixCol1Buf=new Fe(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),i.modelMatrixCol2Buf=new Fe(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;i.pickColorsBuf=new Fe(e,e.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,e.STATIC_DRAW,t),this._pickColors=[]}i.geometry=null,this._finalized=!0}initFlags(e,t,i){t&G&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&Z&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,i)}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&G?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&q?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&X?(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,i){if(!this._finalized)throw"Not finalized";t&K?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";qn[0]=t[0],qn[1]=t[1],qn[2]=t[2],this._state.colorsBuf.setData(qn,3*e)}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i){if(!this._finalized)throw"Not finalized";const s=!!(t&G),r=!!(t&q),o=!!(t&Z),n=!!(t&J),a=!!(t&$),l=!!(t&K),A=!!(t&W);let h,c;h=!s||A||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?ys.NOT_RENDERED:i?ys.COLOR_TRANSPARENT:ys.COLOR_OPAQUE,c=!s||A?ys.NOT_RENDERED:n?ys.SILHOUETTE_SELECTED:o?ys.SILHOUETTE_HIGHLIGHTED:r?ys.SILHOUETTE_XRAYED:ys.NOT_RENDERED;let u=0;u=!s||A?ys.NOT_RENDERED:n?ys.EDGES_SELECTED:o?ys.EDGES_HIGHLIGHTED:r?ys.EDGES_XRAYED:a?i?ys.EDGES_COLOR_TRANSPARENT:ys.EDGES_COLOR_OPAQUE:ys.NOT_RENDERED;let d=0;d|=h,d|=c<<4,d|=u<<8,d|=(s&&!A&&l?ys.PICK:ys.NOT_RENDERED)<<12,d|=(t&X?255:0)<<16,Zn[0]=d,this._state.flagsBuf.setData(Zn,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Jn[0]=t[0],Jn[1]=t[1],Jn[2]=t[2],this._state.offsetsBuf.setData(Jn,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const i=4*e;$n[0]=t[0],$n[1]=t[4],$n[2]=t[8],$n[3]=t[12],this._state.modelMatrixCol0Buf.setData($n,i),$n[0]=t[1],$n[1]=t[5],$n[2]=t[9],$n[3]=t[13],this._state.modelMatrixCol1Buf.setData($n,i),$n[0]=t[2],$n[1]=t[6],$n[2]=t[10],$n[3]=t[14],this._state.modelMatrixCol2Buf.setData($n,i)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,ys.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,ys.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,ys.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,ys.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,ys.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._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(t,this,ys.COLOR_OPAQUE)}drawShadow(e,t){}drawPickMesh(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(t,this,ys.PICK)}drawPickDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(t,this,ys.PICK)}drawPickNormals(e,t){}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,ys.PICK)}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,ys.PICK)}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()}}const ta=u.vec3(),ia=u.vec3(),sa=u.mat4();class ra{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=o,p=r.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uPerObjectDecodeMatrix,this._uPerVertexPosition,this.uPerObjectColorAndFlags,this._uPerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=ta;if(m){const t=u.transformPoint3(c,A,ia);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],g=V(p,e,sa)}else g=p;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform1i(this._uRenderPass,i),s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const _=s._sectionPlanesState.getNumAllocatedSectionPlanes(),v=s._sectionPlanesState.sectionPlanes.length;if(_>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,r=o.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,8),n.drawArrays(n.LINES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,16),n.drawArrays(n.LINES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,32),n.drawArrays(n.LINES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// LinesDataTextureColorRenderer"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled,i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uPerObjectDecodeMatrix;"),i.push("uniform highp sampler2D uPerObjectMatrix;"),i.push("uniform lowp usampler2D uPerObjectColorAndFlags;"),i.push("uniform mediump usampler2D uPerVertexPosition;"),i.push("uniform highp usampler2D uPerLineIndices;"),i.push("uniform mediump usampler2D uPerLineObject;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push(" int lineIndex = gl_VertexID / 2;"),i.push(" int h_packed_object_id_index = (lineIndex >> 3) & 4095;"),i.push(" int v_packed_object_id_index = (lineIndex >> 3) >> 12;"),i.push(" int objectIndex = int(texelFetch(uPerLineObject, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push(" ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push(" uvec4 flags = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push(" if (int(flags.x) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push(" } else {"),i.push(" ivec4 packedVertexBase = ivec4(texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push(" ivec4 packedLineIndexBaseOffset = ivec4(texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),i.push(" int lineIndexBaseOffset = (packedLineIndexBaseOffset.r << 24) + (packedLineIndexBaseOffset.g << 16) + (packedLineIndexBaseOffset.b << 8) + packedLineIndexBaseOffset.a;"),i.push(" int h_index = (lineIndex - lineIndexBaseOffset) & 4095;"),i.push(" int v_index = (lineIndex - lineIndexBaseOffset) >> 12;"),i.push(" ivec3 vertexIndices = ivec3(texelFetch(uPerLineIndices, ivec2(h_index, v_index), 0));"),i.push(" ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push(" int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),i.push(" int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),i.push(" mat4 objectInstanceMatrix = mat4 (texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),i.push(" mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),i.push(" uvec4 flags = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push(" vec3 position = vec3(texelFetch(uPerVertexPosition, ivec2(indexPositionH, indexPositionV), 0));"),i.push(" uvec4 color = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push(" if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push(" };"),i.push(" vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push(" vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push(" vFragDepth = 1.0 + clipPos.w;"),i.push(" isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push(" gl_Position = clipPos;"),i.push(" vec4 rgb = vec4(color.rgba);"),i.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);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// LinesDataTextureColorRenderer 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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 = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class oa{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null)}eagerCreateRenders(){}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new ra(this._scene,!1)),this._colorRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy()}}const na={};class aa{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perLineNumberPortionId8Bits=[],this.perLineNumberPortionId16Bits=[],this.perLineNumberPortionId32Bits=[]}}class la{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerLineIdPortionIds8Bits=null,this.texturePerLineIdPortionIds16Bits=null,this.texturePerLineIdPortionIds32Bits=null,this.texturePerLineIdIndices8Bits=null,this.texturePerLineIdIndices16Bits=null,this.texturePerLineIdIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerLineIdIndices8Bits,16:this.texturePerLineIdIndices16Bits,32:this.texturePerLineIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerLineIdPortionIds8Bits,16:this.texturePerLineIdPortionIds16Bits,32:this.texturePerLineIdPortionIds32Bits}}bindCommonTextures(e,t,i,s,r){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,i,2),this.texturePerObjectColorsAndFlags.bindTexture(e,s,3),this.texturePerObjectInstanceMatrices.bindTexture(e,r,4)}bindLineIndicesTextures(e,t,i,s){this.indicesPortionIdsPerBitnessTextures[s].bindTexture(e,t,5),this.indicesPerBitnessTextures[s].bindTexture(e,i,6)}}class Aa{constructor(e,t,i,s,r=null){this._gl=e,this._texture=t,this._textureWidth=i,this._textureHeight=s,this._textureData=r}bindTexture(e,t,i){return e.bindTexture(t,this,i)}bind(e){return this._gl.activeTexture(this._gl["TEXTURE"+e]),this._gl.bindTexture(this._gl.TEXTURE_2D,this._texture),!0}unbind(e){}}const ha={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalLines:0,totalLines8Bits:0,totalLines16Bits:0,totalLines32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(ha,null,4));let e=0;Object.keys(ha).forEach((t=>{t.startsWith("size")&&(e+=ha[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/ha.totalLines).toFixed(2)}`);let t={};Object.keys(ha).forEach((i=>{i.startsWith("size")&&(t[i]=`${(ha[i]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class ca{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,i,s,r){const o=t.length;this.numPortions=o;const n=4096,a=Math.ceil(o/512);if(0===a)throw"texture height===0";const l=new Uint8Array(16384*a);ha.sizeDataColorsAndFlags+=l.byteLength,ha.numberOfTextures++;for(let e=0;e>24&255,s[e]>>16&255,s[e]>>8&255,255&s[e]],32*e+16),l.set([r[e]>>24&255,r[e]>>16&255,r[e]>>8&255,255&r[e]],32*e+20);const A=e.createTexture();return e.bindTexture(e.TEXTURE_2D,A),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,n,a),e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA_INTEGER,e.UNSIGNED_BYTE,l,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 Aa(e,A,n,a,l)}generateTextureForObjectOffsets(e,t){const i=512,s=Math.ceil(t/i);if(0===s)throw"texture height===0";const r=new Float32Array(1536*s).fill(0);ha.sizeDataTextureOffsets+=r.byteLength,ha.numberOfTextures++;const o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,i,s),e.texSubImage2D(e.TEXTURE_2D,0,0,0,i,s,e.RGB,e.FLOAT,r,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 Aa(e,o,i,s,r)}generateTextureForInstancingMatrices(e,t){const i=t.length;if(0===i)throw"num instance matrices===0";const s=2048,r=Math.ceil(i/512),o=new Float32Array(8192*r);ha.numberOfTextures++;for(let e=0;e{i._compile(),i.eagerCreateRenders()})),e.on("destroyed",(()=>{delete na[t],i._destroy()}))),i}(e.scene),this.model=e,this._buffer=new aa,this._dataTextureState=new la,this._dataTextureGenerator=new ca,this._state=new Ye({origin:u.vec3(t.origin),textureState:this._dataTextureState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits: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._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._subPortions=[],this._portionToSubPortionsMap=[],this._bucketGeometries={},this._meshes=[],this._aabb=u.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){u.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&ha.cannotCreatePortion.because10BitsObjectId++;let i=this._numPortions+t<=65536;const s=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[s]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let s=0,r=0;e.buckets.forEach((e=>{s+=e.positionsCompressed.length/3,r+=e.indices.length/2})),(this._state.numVertices+s>4096*da||t+r>4096*da)&&ha.cannotCreatePortion.becauseTextureSize++,i&&=this._state.numVertices+s<=4096*da&&t+r<=4096*da}return i}createPortion(e,t){if(this._finalized)throw"Already finalized";const i=[];t.buckets.forEach(((e,s)=>{const r=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${s}`:`${t.id}#${s}`;let o=this._bucketGeometries[r];o||(o=this._createBucketGeometry(t,e),this._bucketGeometries[r]=o);const n=this._createSubPortion(t,o,e);i.push(n)}));const s=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(i),this.model.numPortions++,this._meshes.push(e),s}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/2/8)*2;ha.overheadSizeAlignementIndices+=2*(e-t.indices.length);const i=new Uint32Array(e);i.fill(0),i.set(t.indices),t.indices=i}const i=t.positionsCompressed,s=t.indices,r=this._buffer;r.positionsCompressed.push(i);const o=r.lenPositionsCompressed/3,n=i.length/3;let a;r.lenPositionsCompressed+=i.length;let l=0;if(s){let e;l=s.length/2,n<=256?(e=r.indices8Bits,a=r.lenIndices8Bits/2,r.lenIndices8Bits+=s.length):n<=65536?(e=r.indices16Bits,a=r.lenIndices16Bits/2,r.lenIndices16Bits+=s.length):(e=r.indices32Bits,a=r.lenIndices32Bits/2,r.lenIndices32Bits+=s.length),e.push(s)}this._state.numVertices+=n,ha.numberOfGeometries++;return{vertexBase:o,numVertices:n,numLines:l,indicesBase:a}}_createSubPortion(e,t){const i=e.color,s=e.colors,r=e.opacity,o=e.meshMatrix,n=e.pickColor,a=this._buffer,l=this._state;a.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),a.perObjectInstancePositioningMatrices.push(o||_a),a.perObjectSolid.push(!!e.solid),s?a.perObjectColors.push([255*s[0],255*s[1],255*s[2],255]):i&&a.perObjectColors.push([i[0],i[1],i[2],r]),a.perObjectPickColors.push(n),a.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?l.numIndices8Bits:t.numVertices<=65536?l.numIndices16Bits:l.numIndices32Bits,a.perObjectIndexBaseOffsets.push(e/2-t.indicesBase)}const A=this._subPortions.length;if(t.numLines>0){let e,i=2*t.numLines;t.numVertices<=256?(e=a.perLineNumberPortionId8Bits,l.numIndices8Bits+=i,ha.totalLines8Bits+=t.numLines):t.numVertices<=65536?(e=a.perLineNumberPortionId16Bits,l.numIndices16Bits+=i,ha.totalLines16Bits+=t.numLines):(e=a.perLineNumberPortionId32Bits,l.numIndices32Bits+=i,ha.totalLines32Bits+=t.numLines),ha.totalLines+=t.numLines;for(let i=0;i0&&(t.texturePerLineIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(i,s.indices8Bits,s.lenIndices8Bits)),s.lenIndices16Bits>0&&(t.texturePerLineIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(i,s.indices16Bits,s.lenIndices16Bits)),s.lenIndices32Bits>0&&(t.texturePerLineIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(i,s.indices32Bits,s.lenIndices32Bits)),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}))}initFlags(e,t,i){t&G&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&Z&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,i,true),this._setFlags2(e,t,true)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&G?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&q?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&X?(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,i){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,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),s.texSubImage2D(s.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,s.RGBA_INTEGER,s.UNSIGNED_BYTE,ga))}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i,s=!1){const r=this._portionToSubPortionsMap[e];for(let e=0,o=r.length;e=10&&this._beginDeferredFlags(),c.bindTexture(c.TEXTURE_2D,h.texturePerObjectColorsAndFlags._texture),c.texSubImage2D(c.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,c.RGBA_INTEGER,c.UNSIGNED_BYTE,ga))}_setDeferredFlags(){}_setFlags2(e,t,i=!1){const s=this._portionToSubPortionsMap[e];for(let e=0,r=s.length;e=10&&this._beginDeferredFlags(),o.bindTexture(o.TEXTURE_2D,r.texturePerObjectColorsAndFlags._texture),o.texSubImage2D(o.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,o.RGBA_INTEGER,o.UNSIGNED_BYTE,ga))}_setDeferredFlags2(){}setOffset(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectOffsets._texture),s.texSubImage2D(s.TEXTURE_2D,0,0,e,1,1,s.RGB,s.FLOAT,ma))}setMatrix(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectInstanceMatrices._texture),s.texSubImage2D(s.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,s.RGBA,s.FLOAT,pa))}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,ys.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,ys.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){}drawSilhouetteHighlighted(e,t){}drawSilhouetteSelected(e,t){}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawEdgesXRayed(e,t){}drawOcclusion(e,t){}drawShadow(e,t){}setPickMatrices(e,t){}drawPickMesh(e,t){}drawPickDepths(e,t){}drawSnapInit(e,t){}drawSnap(e,t){}drawPickNormals(e,t){}destroy(){if(this._destroyed)return;const e=this._state;this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}const ba=u.vec3(),xa=u.vec3(),wa=u.vec3();u.vec3();const ya=u.vec4(),Pa=u.mat4();class Ba{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=o;if(!this._program&&(this._allocate(),this.errors))return;let p,g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=ba;if(m){const t=u.transformPoint3(c,A,xa);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],p=V(r.viewMatrix,e,Pa),g=wa,g[0]=r.eye[0]-e[0],g[1]=r.eye[1]-e[1],g[2]=r.eye[2]-e[2]}else p=r.viewMatrix,g=r.eye;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,g),n.uniform1i(this._uRenderPass,i),s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const _=s._sectionPlanesState.getNumAllocatedSectionPlanes(),v=s._sectionPlanesState.sectionPlanes.length;if(_>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,r=o.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl,i=e._lightsState;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uLightAmbient=s.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];const r=i.lights;let o;for(let e=0,t=r.length;e0;let r;const o=[];o.push("#version 300 es"),o.push("// TrianglesDataTextureColorRenderer vertex shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("precision highp usampler2D;"),o.push("precision highp isampler2D;"),o.push("precision highp sampler2D;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("precision mediump usampler2D;"),o.push("precision mediump isampler2D;"),o.push("precision mediump sampler2D;"),o.push("#endif"),o.push("uniform int renderPass;"),o.push("uniform mat4 sceneModelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),o.push("uniform highp sampler2D uTexturePerObjectMatrix;"),o.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),o.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),o.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),o.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),o.push("uniform vec3 uCameraEyeRtc;"),o.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("out float isPerspective;")),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("uniform vec4 lightAmbient;");for(let e=0,t=i.lights.length;e> 3) & 4095;"),o.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),o.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),o.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),o.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),o.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),o.push("if (int(flags.x) != renderPass) {"),o.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),o.push(" return;"),o.push("} else {"),o.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),o.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),o.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),o.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),o.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),o.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),o.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),o.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),o.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),o.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));"),o.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));"),o.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),o.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),o.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),o.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),o.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),o.push("if (color.a == 0u) {"),o.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),o.push(" return;"),o.push("};"),o.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),o.push("vec3 position;"),o.push("position = positions[gl_VertexID % 3];"),o.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),o.push("if (solid != 1u) {"),o.push("if (isPerspectiveMatrix(projMatrix)) {"),o.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),o.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),o.push("position = positions[2 - (gl_VertexID % 3)];"),o.push("viewNormal = -viewNormal;"),o.push("}"),o.push("} else {"),o.push("if (viewNormal.z < 0.0) {"),o.push("position = positions[2 - (gl_VertexID % 3)];"),o.push("viewNormal = -viewNormal;"),o.push("}"),o.push("}"),o.push("}"),o.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),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;");for(let e=0,t=i.lights.length;e0,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"),e.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("}")),i){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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;"),this._withSAO?(s.push(" float viewportWidth = uSAOParams[0];"),s.push(" float viewportHeight = uSAOParams[1];"),s.push(" float blendCutoff = uSAOParams[2];"),s.push(" float blendFactor = uSAOParams[3];"),s.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),s.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),s.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Ca=new Float32Array([1,1,1]),Ma=u.vec3(),Ea=u.vec3(),Fa=u.vec3();u.vec3();const Ia=u.mat4();class Da{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=o,p=r.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let g,m;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),A||0!==h[0]||0!==h[1]||0!==h[2]){const e=Ma;if(A){const t=Ea;u.transformPoint3(c,A,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]+=h[0],e[1]+=h[1],e[2]+=h[2],g=V(p,e,Ia),m=Fa,m[0]=r.eye[0]-e[0],m[1]=r.eye[1]-e[1],m[2]=r.eye[2]-e[2]}else g=p,m=r.eye;if(n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uWorldMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),i===ys.SILHOUETTE_XRAYED){const e=s.xrayMaterial._state,t=e.fillColor,i=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else if(i===ys.SILHOUETTE_HIGHLIGHTED){const e=s.highlightMaterial._state,t=e.fillColor,i=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else if(i===ys.SILHOUETTE_SELECTED){const e=s.selectedMaterial._state,t=e.fillColor,i=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else n.uniform4fv(this._uColor,Ca);if(s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const f=s._sectionPlanesState.getNumAllocatedSectionPlanes(),_=s._sectionPlanesState.sectionPlanes.length;if(f>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*_,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uColor=i.getLocation("color"),this._uWorldMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Triangles dataTexture silhouette vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.y) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("} else {"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags2 = flags2.r;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles dataTexture 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;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = color;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Sa=new Float32Array([0,0,0,1]),Ta=u.vec3(),Ra=u.vec3();u.vec3();const La=u.mat4();class Ua{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=s,p=o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=Ta;if(m){const t=u.transformPoint3(c,A,Ra);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],g=V(p,e,La)}else g=p;if(n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),i===ys.EDGES_XRAYED){const e=r.xrayMaterial._state,t=e.edgeColor,i=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else if(i===ys.EDGES_HIGHLIGHTED){const e=r.highlightMaterial._state,t=e.edgeColor,i=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else if(i===ys.EDGES_SELECTED){const e=r.selectedMaterial._state,t=e.edgeColor,i=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else n.uniform4fv(this._uColor,Sa);const _=r._sectionPlanesState.getNumAllocatedSectionPlanes(),v=r._sectionPlanesState.sectionPlanes.length;if(_>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,o=s.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(n.LINES,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(n.LINES,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(n.LINES,0,a.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uColor=i.getLocation("color"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uWorldMatrix=i.getLocation("worldMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// DTXTrianglesEdgesRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),i.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),i.push("uniform vec4 color;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeIndex = gl_VertexID / 2;"),i.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.z) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),i.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),i.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),i.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),i.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),i.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));"),i.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));"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),i.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));"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vColor = vec4(color.r, color.g, color.b, color.a);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// DTXTrianglesEdgesRenderer fragment shader"),e.logarithmicDepthBufferEnabled&&i.push("#extension GL_EXT_frag_depth : enable"),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;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ka=u.vec3(),Oa=u.vec3(),Na=u.mat4();class Qa{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=s,p=o.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=ka;if(m){const t=u.transformPoint3(c,A,Oa);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],g=V(p,e,Na)}else g=p;n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);const _=r._sectionPlanesState.getNumAllocatedSectionPlanes(),v=r._sectionPlanesState.sectionPlanes.length;if(_>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,o=s.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(n.LINES,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(n.LINES,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(n.LINES,0,a.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// TrianglesDataTextureEdgesColorRenderer"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled,i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform highp sampler2D uObjectPerObjectOffsets;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),i.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeIndex = gl_VertexID / 2;"),i.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.z) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),i.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),i.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),i.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),i.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),i.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));"),i.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));"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vec4 rgb = vec4(color.rgba);"),i.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);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesDataTextureEdgesColorRenderer"),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;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Va=u.vec3(),ja=u.vec3(),Ha=u.vec3(),za=u.mat4();class Ga{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,i){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e));const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=s;let p,g;l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=Va;if(m){const t=u.transformPoint3(c,A,ja);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],p=V(o.viewMatrix,e,za),g=Ha,g[0]=o.eye[0]-e[0],g[1]=o.eye[1]-e[1],g[2]=o.eye[2]-e[2]}else p=o.viewMatrix,g=o.eye;if(n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),n.uniform3fv(this._uCameraEyeRtc,g),n.uniform1i(this._uRenderPass,i),r.logarithmicDepthBufferEnabled){const e=2/(Math.log(o.project.far+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}const _=r._sectionPlanesState.getNumAllocatedSectionPlanes(),v=r._sectionPlanesState.sectionPlanes.length;if(_>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,o=s.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uPickClipPos=i.getLocation("pickClipPos"),this._uDrawingBufferSize=i.getLocation("drawingBufferSize"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry picking vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform bool pickInvisible;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("uniform vec2 pickClipPos;"),i.push("uniform vec2 drawingBufferSize;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),t&&(i.push("smooth out vec4 vWorldPosition;"),i.push("flat out uvec4 vFlags2;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.w) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0)) / 255.0;"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("} else {"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry 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"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uvec4 vFlags2;");for(var s=0;s 0.0);"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(s=0;s 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outPickColor = vPickColor; "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Wa=u.vec3(),Ka=u.vec3(),Xa=u.vec3();u.vec3();const Ya=u.mat4();class qa{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=s,p=e.pickViewMatrix||o.viewMatrix;let g,m;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),A||0!==h[0]||0!==h[1]||0!==h[2]){const t=Wa;if(A){const e=Ka;u.transformPoint3(c,A,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]+=h[0],t[1]+=h[1],t[2]+=h[2],g=V(p,t,Ya),m=Xa,m[0]=o.eye[0]-t[0],m[1]=o.eye[1]-t[1],m[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else g=p,m=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniform1f(this._uPickZNear,e.pickZNear),n.uniform1f(this._uPickZFar,e.pickZFar),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),r.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const f=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(f>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*_,o=s.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uPickClipPos=i.getLocation("pickClipPos"),this._uDrawingBufferSize=i.getLocation("drawingBufferSize"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Triangles dataTexture pick depth vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform bool pickInvisible;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("uniform vec2 pickClipPos;"),i.push("uniform vec2 drawingBufferSize;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.w) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("} else {"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push("vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles dataTexture pick depth 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;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(var s=0;s 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(s=0;s 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outPackedDepth = packDepth(zNormalizedDepth); "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Za=u.vec3(),Ja=u.vec3(),$a=u.vec3(),el=u.vec3();u.vec3();const tl=u.mat4();class il{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,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=s,p=t.aabb,g=e.pickViewMatrix||o.viewMatrix,m=Za;let f,_;m[0]=u.safeInv(p[3]-p[0])*u.MAX_INT,m[1]=u.safeInv(p[4]-p[1])*u.MAX_INT,m[2]=u.safeInv(p[5]-p[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(m[0]),e.snapPickCoordinateScale[1]=u.safeInv(m[1]),e.snapPickCoordinateScale[2]=u.safeInv(m[2]),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==A[0]||0!==A[1]||0!==A[2],b=0!==h[0]||0!==h[1]||0!==h[2];if(v||b){const t=Ja;if(v){const e=u.transformPoint3(c,A,$a);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],f=V(g,t,tl),_=el,_[0]=o.eye[0]-t[0],_[1]=o.eye[1]-t[1],_[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=g,_=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,_),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,m),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const x=r._sectionPlanesState.getNumAllocatedSectionPlanes(),w=r._sectionPlanesState.sectionPlanes.length;if(x>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*w,o=s.renderFlags;for(let t=0;t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(y,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(y,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(y,0,a.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry edges drawing vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),i.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 uSnapVectorA;"),i.push("uniform vec2 uSnapInvVectorAB;"),i.push("vec3 positions[3];"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - uSnapVectorA.x) * uSnapInvVectorAB.x;"),i.push(" float y = (clipPos.y - uSnapVectorA.y) * uSnapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vViewPosition;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int edgeIndex = gl_VertexID / 2;"),i.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("{"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),i.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),i.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),i.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),i.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),i.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));"),i.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));"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push("vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vViewPosition = clipPos;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles dataTexture pick depth 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int uLayerNumber;"),i.push("uniform vec3 uCoordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, uLayerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const sl=u.vec3(),rl=u.vec3(),ol=u.vec3(),nl=u.vec3();u.vec3();const al=u.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,i){this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=s,p=t.aabb,g=e.pickViewMatrix||o.viewMatrix,m=sl;let f,_;m[0]=u.safeInv(p[3]-p[0])*u.MAX_INT,m[1]=u.safeInv(p[4]-p[1])*u.MAX_INT,m[2]=u.safeInv(p[5]-p[2])*u.MAX_INT,e.snapPickCoordinateScale[0]=u.safeInv(m[0]),e.snapPickCoordinateScale[1]=u.safeInv(m[1]),e.snapPickCoordinateScale[2]=u.safeInv(m[2]),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==A[0]||0!==A[1]||0!==A[2],b=0!==h[0]||0!==h[1]||0!==h[2];if(v||b){const t=rl;if(v){const e=ol;u.transformPoint3(c,A,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]+=h[0],t[1]+=h[1],t[2]+=h[2],f=V(g,t,al),_=nl,_[0]=o.eye[0]-t[0],_[1]=o.eye[1]-t[1],_[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=g,_=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,_),n.uniform2fv(this._uVectorA,e.snapVectorA),n.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,m),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const x=r._sectionPlanesState.getNumAllocatedSectionPlanes(),w=r._sectionPlanesState.sectionPlanes.length;if(x>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*w,o=s.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uSceneWorldModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// DTXTrianglesSnapInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 uVectorAB;"),i.push("uniform vec2 uInverseVectorAB;"),i.push("vec3 positions[3];"),i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - uVectorAB.x) * uInverseVectorAB.x;"),i.push(" float y = (clipPos.y - uVectorAB.y) * uInverseVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("flat out uint vFlags2;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("{"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (solid != 1u) {"),i.push(" if (isPerspectiveMatrix(projMatrix)) {"),i.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push(" position = positions[2 - (gl_VertexID % 3)];"),i.push(" viewNormal = -viewNormal;"),i.push(" }"),i.push(" } else {"),i.push(" if (viewNormal.z < 0.0) {"),i.push(" position = positions[2 - (gl_VertexID % 3)];"),i.push(" viewNormal = -viewNormal;"),i.push(" }"),i.push(" }"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vWorldPosition = worldPosition;"),t&&i.push("vFlags2 = flags2.r;"),i.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0));"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// DTXTrianglesSnapInitRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int uLayerNumber;"),i.push("uniform vec3 uCoordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);"),i.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(`outNormal = ivec4(worldNormal * float(${u.MAX_INT}), 1.0);`),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Al=u.vec3(),hl=u.vec3(),cl=u.vec3();u.vec3();const ul=u.mat4();class dl{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=s,p=e.pickViewMatrix||o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let g,m;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),A||0!==h[0]||0!==h[1]||0!==h[2]){const e=Al;if(A){const t=hl;u.transformPoint3(c,A,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]+=h[0],e[1]+=h[1],e[2]+=h[2],g=V(p,e,ul),m=cl,m[0]=o.eye[0]-e[0],m[1]=o.eye[1]-e[1],m[2]=o.eye[2]-e[2]}else g=p,m=o.eye;n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uWorldMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);const f=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(f>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*_,o=s.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uWorldMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// TrianglesDataTextureOcclusionRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.x) != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("if (solid != 1u) {"),i.push(" if (isPerspectiveMatrix(projMatrix)) {"),i.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push(" position = positions[2 - (gl_VertexID % 3)];"),i.push(" }"),i.push(" } else {"),i.push(" vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push(" if (viewNormal.z < 0.0) {"),i.push(" position = positions[2 - (gl_VertexID % 3)];"),i.push(" }"),i.push(" }"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vec4 clipPos = projMatrix * viewPosition;"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags2 = flags2.r;")),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesDataTextureColorRenderer 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){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0;t 0.0);"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push(" }")}return i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const pl=u.vec3(),gl=u.vec3(),ml=u.vec3();u.vec3();const fl=u.mat4();class _l{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=o;if(!this._program&&(this._allocate(),this.errors))return;let p,g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=pl;if(m){const t=u.transformPoint3(c,A,gl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],p=V(r.viewMatrix,e,fl),g=ml,g[0]=r.eye[0]-e[0],g[1]=r.eye[1]-e[1],g[2]=r.eye[2]-e[2]}else p=r.viewMatrix,g=r.eye;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,g),n.uniform1i(this._uRenderPass,i),s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const _=s._sectionPlanesState.getNumAllocatedSectionPlanes(),v=s._sectionPlanesState.sectionPlanes.length;if(_>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,r=o.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPositionsDecodeMatrix=i.getLocation("objectDecodeAndInstanceMatrix"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Triangles dataTexture draw vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out highp vec2 vHighPrecisionZW;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.x) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("} else {"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags2 = flags2.r;")),i.push("gl_Position = clipPos;"),i.push("vHighPrecisionZW = gl_Position.zw;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles dataTexture 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"),i.push("in highp vec2 vHighPrecisionZW;"),i.push("out vec4 outColor;"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),i.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const vl=u.vec3(),bl=u.vec3(),xl=u.vec3();u.vec3();const wl=u.mat4();class yl{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,d=o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let p,g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(t));const m=0!==l[0]||0!==l[1]||0!==l[2],f=0!==A[0]||0!==A[1]||0!==A[2];if(m||f){const e=vl;if(m){const t=bl;u.transformPoint3(h,l,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]+=A[0],e[1]+=A[1],e[2]+=A[2],p=V(d,e,wl),g=xl,g[0]=o.eye[0]-e[0],g[1]=o.eye[1]-e[1],g[2]=o.eye[2]-e[2]}else p=d,g=o.eye;n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uWorldMatrix,!1,c),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),n.uniformMatrix4fv(this._uViewNormalMatrix,!1,o.viewNormalMatrix),n.uniformMatrix4fv(this._uWorldNormalMatrix,!1,s.worldNormalMatrix);const _=r._sectionPlanesState.getNumAllocatedSectionPlanes(),v=r._sectionPlanesState.sectionPlanes.length;if(_>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,o=s.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0,i=[];return i.push("// Batched geometry normals vertex shader"),e.logarithmicDepthBufferEnabled&&ve.SUPPORTED_EXTENSIONS.EXT_frag_depth&&i.push("#extension GL_EXT_frag_depth : enable"),i.push("uniform int renderPass;"),i.push("attribute vec3 position;"),e.entityOffsetsEnabled&&i.push("attribute vec3 offset;"),i.push("attribute vec3 normal;"),i.push("attribute vec4 color;"),i.push("attribute vec4 flags;"),i.push("attribute vec4 flags2;"),i.push("uniform mat4 worldMatrix;"),i.push("uniform mat4 worldNormalMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform mat4 viewNormalMatrix;"),i.push("uniform mat4 objectDecodeAndInstanceMatrix;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),ve.SUPPORTED_EXTENSIONS.EXT_frag_depth&&i.push("out float vFragDepth;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("varying float isPerspective;")),i.push("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out vec4 vFlags2;")),i.push("out vec3 vViewNormal;"),i.push("void main(void) {"),i.push("if (int(flags.x) != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),i.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2;")),i.push(" vViewNormal = viewNormal;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(ve.SUPPORTED_EXTENSIONS.EXT_frag_depth?i.push("vFragDepth = 1.0 + clipPos.w;"):(i.push("clipPos.z = log2( max( 1e-6, clipPos.w + 1.0 ) ) * logDepthBufFC - 1.0;"),i.push("clipPos.z *= clipPos.w;")),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals fragment shader"),e.logarithmicDepthBufferEnabled&&ve.SUPPORTED_EXTENSIONS.EXT_frag_depth&&i.push("#extension GL_EXT_frag_depth : enable"),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&&ve.SUPPORTED_EXTENSIONS.EXT_frag_depth&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in vec4 vFlags2;");for(let t=0;t 0.0);"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&ve.SUPPORTED_EXTENSIONS.EXT_frag_depth&&i.push(" gl_FragDepthEXT = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" gl_FragColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Pl=u.vec3(),Bl=u.vec3(),Cl=u.vec3();u.vec3(),u.vec4();const Ml=u.mat4();class El{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:d}=o;if(!this._program&&(this._allocate(),this.errors))return;let p,g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=Pl;if(m){const t=u.transformPoint3(c,A,Bl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],p=V(r.viewMatrix,e,Ml),g=Cl,g[0]=r.eye[0]-e[0],g[1]=r.eye[1]-e[1],g[2]=r.eye[2]-e[2]}else p=r.viewMatrix,g=r.eye;if(n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,d),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,g),n.uniform1i(this._uRenderPass,i),s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const _=s._sectionPlanesState.getNumAllocatedSectionPlanes(),v=s._sectionPlanesState.sectionPlanes.length;if(_>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,r=o.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ee(t,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uPickClipPos=i.getLocation("pickClipPos"),this._uDrawingBufferSize=i.getLocation("drawingBufferSize"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// trianglesDatatextureNormalsRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("uniform vec2 pickClipPos;"),i.push("uniform vec2 drawingBufferSize;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out vec4 vWorldPosition;"),t&&i.push("flat out uint vFlags2;"),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.w) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("} else {"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("vWorldPosition = worldPosition;"),t&&i.push("vFlags2 = flags2.r;"),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesDataTexturePickNormalsRenderer 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;")),i.push("in vec4 vWorldPosition;"),t){i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(` outNormal = ivec4(worldNormal * float(${u.MAX_INT}), 1.0);`),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Fl{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._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=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 Da(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Ga(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new qa(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new El(this._scene)),this._snapRenderer||(this._snapRenderer=new il(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new ll(this._scene)),this._snapRenderer||(this._snapRenderer=new il(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ba(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Ba(this._scene,!0)),this._colorRendererWithSAO}get colorQualityRendererWithSAO(){return this._colorQualityRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Da(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new _l(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new yl(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new Ua(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Qa(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Ga(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new El(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new El(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new qa(this._scene)),this._pickDepthRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new il(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new ll(this._scene)),this._snapInitRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new dl(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._snapRenderer&&this._snapRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const Il={};class Dl{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 Sl{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,i,s,r){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,i,2),this.texturePerObjectColorsAndFlags.bindTexture(e,s,3),this.texturePerObjectInstanceMatrices.bindTexture(e,r,4)}bindTriangleIndicesTextures(e,t,i,s){this.indicesPortionIdsPerBitnessTextures[s].bindTexture(e,t,5),this.indicesPerBitnessTextures[s].bindTexture(e,i,6)}bindEdgeIndicesTextures(e,t,i,s){this.edgeIndicesPortionIdsPerBitnessTextures[s].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[s].bindTexture(e,i,6)}}const Tl={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(Tl,null,4));let e=0;Object.keys(Tl).forEach((t=>{t.startsWith("size")&&(e+=Tl[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/Tl.totalPolygons).toFixed(2)}`);let t={};Object.keys(Tl).forEach((i=>{i.startsWith("size")&&(t[i]=`${(Tl[i]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class Rl{constructor(){}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)}createTextureForColorsAndFlags(e,t,i,s,r,o,n){const a=t.length;this.numPortions=a;const l=4096,A=Math.ceil(a/512);if(0===A)throw"texture height===0";const h=new Uint8Array(16384*A);Tl.sizeDataColorsAndFlags+=h.byteLength,Tl.numberOfTextures++;for(let e=0;e>24&255,s[e]>>16&255,s[e]>>8&255,255&s[e]],32*e+16),h.set([r[e]>>24&255,r[e]>>16&255,r[e]>>8&255,255&r[e]],32*e+20),h.set([o[e]>>24&255,o[e]>>16&255,o[e]>>8&255,255&o[e]],32*e+24),h.set([n[e]?1:0,0,0,0],32*e+28);const c=e.createTexture();return e.bindTexture(e.TEXTURE_2D,c),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,l,A),e.texSubImage2D(e.TEXTURE_2D,0,0,0,l,A,e.RGBA_INTEGER,e.UNSIGNED_BYTE,h,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 Aa(e,c,l,A,h)}createTextureForObjectOffsets(e,t){const i=512,s=Math.ceil(t/i);if(0===s)throw"texture height===0";const r=new Float32Array(1536*s).fill(0);Tl.sizeDataTextureOffsets+=r.byteLength,Tl.numberOfTextures++;const o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,i,s),e.texSubImage2D(e.TEXTURE_2D,0,0,0,i,s,e.RGB,e.FLOAT,r,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 Aa(e,o,i,s,r)}createTextureForInstancingMatrices(e,t){const i=t.length;if(0===i)throw"num instance matrices===0";const s=2048,r=Math.ceil(i/512),o=new Float32Array(8192*r);Tl.numberOfTextures++;for(let e=0;e{i._compile(),i.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Il[t],i._destroy()}))),i}(e.scene),this.model=e,this._buffer=new Dl,this._dtxState=new Sl,this._dtxTextureFactory=new Rl,this._state=new Ye({origin:u.vec3(t.origin),metallicRoughnessBuf:null,textureState:this._dtxState,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=u.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){u.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&Tl.cannotCreatePortion.because10BitsObjectId++;let i=this._numPortions+t<=65536;const s=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[s]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let s=0,r=0;e.buckets.forEach((e=>{s+=e.positionsCompressed.length/3,r+=e.indices.length/3})),(this._state.numVertices+s>4096*Ul||t+r>4096*Ul)&&Tl.cannotCreatePortion.becauseTextureSize++,i&&=this._state.numVertices+s<=4096*Ul&&t+r<=4096*Ul}return i}createPortion(e,t){if(this._finalized)throw"Already finalized";const i=[];t.buckets.forEach(((e,s)=>{const r=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${s}`:`${t.id}#${s}`;let o=this._bucketGeometries[r];o||(o=this._createBucketGeometry(t,e),this._bucketGeometries[r]=o);const n=this._createSubPortion(t,o,e);i.push(n)}));const s=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(i),this.model.numPortions++,this._meshes.push(e),s}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/3/8)*3;Tl.overheadSizeAlignementIndices+=2*(e-t.indices.length);const i=new Uint32Array(e);i.fill(0),i.set(t.indices),t.indices=i}if(t.edgeIndices){const e=8*Math.ceil(t.edgeIndices.length/2/8)*2;Tl.overheadSizeAlignementEdgeIndices+=2*(e-t.edgeIndices.length);const i=new Uint32Array(e);i.fill(0),i.set(t.edgeIndices),t.edgeIndices=i}const i=t.positionsCompressed,s=t.indices,r=t.edgeIndices,o=this._buffer;o.positionsCompressed.push(i);const n=o.lenPositionsCompressed/3,a=i.length/3;let l;o.lenPositionsCompressed+=i.length;let A,h=0;if(s){let e;h=s.length/3,a<=256?(e=o.indices8Bits,l=o.lenIndices8Bits/3,o.lenIndices8Bits+=s.length):a<=65536?(e=o.indices16Bits,l=o.lenIndices16Bits/3,o.lenIndices16Bits+=s.length):(e=o.indices32Bits,l=o.lenIndices32Bits/3,o.lenIndices32Bits+=s.length),e.push(s)}let c=0;if(r){let e;c=r.length/2,a<=256?(e=o.edgeIndices8Bits,A=o.lenEdgeIndices8Bits/2,o.lenEdgeIndices8Bits+=r.length):a<=65536?(e=o.edgeIndices16Bits,A=o.lenEdgeIndices16Bits/2,o.lenEdgeIndices16Bits+=r.length):(e=o.edgeIndices32Bits,A=o.lenEdgeIndices32Bits/2,o.lenEdgeIndices32Bits+=r.length),e.push(r)}this._state.numVertices+=a,Tl.numberOfGeometries++;return{vertexBase:n,numVertices:a,numTriangles:h,numEdges:c,indicesBase:l,edgeIndicesBase:A}}_createSubPortion(e,t,i,s){const r=e.color;e.metallic,e.roughness;const o=e.colors,n=e.opacity,a=e.meshMatrix,l=e.pickColor,A=this._buffer,h=this._state;A.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),A.perObjectInstancePositioningMatrices.push(a||Vl),A.perObjectSolid.push(!!e.solid),o?A.perObjectColors.push([255*o[0],255*o[1],255*o[2],255]):r&&A.perObjectColors.push([r[0],r[1],r[2],n]),A.perObjectPickColors.push(l),A.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?h.numIndices8Bits:t.numVertices<=65536?h.numIndices16Bits:h.numIndices32Bits,A.perObjectIndexBaseOffsets.push(e/3-t.indicesBase)}{let e;e=t.numVertices<=256?h.numEdgeIndices8Bits:t.numVertices<=65536?h.numEdgeIndices16Bits:h.numEdgeIndices32Bits,A.perObjectEdgeIndexBaseOffsets.push(e/2-t.edgeIndicesBase)}const c=this._subPortions.length;if(t.numTriangles>0){let e,i=3*t.numTriangles;t.numVertices<=256?(e=A.perTriangleNumberPortionId8Bits,h.numIndices8Bits+=i,Tl.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(e=A.perTriangleNumberPortionId16Bits,h.numIndices16Bits+=i,Tl.totalPolygons16Bits+=t.numTriangles):(e=A.perTriangleNumberPortionId32Bits,h.numIndices32Bits+=i,Tl.totalPolygons32Bits+=t.numTriangles),Tl.totalPolygons+=t.numTriangles;for(let i=0;i0){let e,i=2*t.numEdges;t.numVertices<=256?(e=A.perEdgeNumberPortionId8Bits,h.numEdgeIndices8Bits+=i,Tl.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(e=A.perEdgeNumberPortionId16Bits,h.numEdgeIndices16Bits+=i,Tl.totalEdges16Bits+=t.numEdges):(e=A.perEdgeNumberPortionId32Bits,h.numEdgeIndices32Bits+=i,Tl.totalEdges32Bits+=t.numEdges),Tl.totalEdges+=t.numEdges;for(let i=0;i0&&(t.texturePerEdgeIdPortionIds8Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(i,s.perEdgeNumberPortionId8Bits)),s.perEdgeNumberPortionId16Bits.length>0&&(t.texturePerEdgeIdPortionIds16Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(i,s.perEdgeNumberPortionId16Bits)),s.perEdgeNumberPortionId32Bits.length>0&&(t.texturePerEdgeIdPortionIds32Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(i,s.perEdgeNumberPortionId32Bits)),s.lenIndices8Bits>0&&(t.texturePerPolygonIdIndices8Bits=this._dtxTextureFactory.createTextureFor8BitIndices(i,s.indices8Bits,s.lenIndices8Bits)),s.lenIndices16Bits>0&&(t.texturePerPolygonIdIndices16Bits=this._dtxTextureFactory.createTextureFor16BitIndices(i,s.indices16Bits,s.lenIndices16Bits)),s.lenIndices32Bits>0&&(t.texturePerPolygonIdIndices32Bits=this._dtxTextureFactory.createTextureFor32BitIndices(i,s.indices32Bits,s.lenIndices32Bits)),s.lenEdgeIndices8Bits>0&&(t.texturePerPolygonIdEdgeIndices8Bits=this._dtxTextureFactory.createTextureFor8BitsEdgeIndices(i,s.edgeIndices8Bits,s.lenEdgeIndices8Bits)),s.lenEdgeIndices16Bits>0&&(t.texturePerPolygonIdEdgeIndices16Bits=this._dtxTextureFactory.createTextureFor16BitsEdgeIndices(i,s.edgeIndices16Bits,s.lenEdgeIndices16Bits)),s.lenEdgeIndices32Bits>0&&(t.texturePerPolygonIdEdgeIndices32Bits=this._dtxTextureFactory.createTextureFor32BitsEdgeIndices(i,s.edgeIndices32Bits,s.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,i){t&G&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&Z&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&J&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&$&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&K&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&W&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,i,true),this._setFlags2(e,t,true)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&G?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&q?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&X?(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._dtxState;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,i){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,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),s.texSubImage2D(s.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,s.RGBA_INTEGER,s.UNSIGNED_BYTE,Ol)}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i,s=!1){const r=this._portionToSubPortionsMap[e];for(let e=0,o=r.length;e=10&&this._beginDeferredFlags(),p.bindTexture(p.TEXTURE_2D,d.texturePerObjectColorsAndFlags._texture),p.texSubImage2D(p.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,p.RGBA_INTEGER,p.UNSIGNED_BYTE,Ol))}_setDeferredFlags(){}_setFlags2(e,t,i=!1){const s=this._portionToSubPortionsMap[e];for(let e=0,r=s.length;e=10&&this._beginDeferredFlags(),o.bindTexture(o.TEXTURE_2D,r.texturePerObjectColorsAndFlags._texture),o.texSubImage2D(o.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,o.RGBA_INTEGER,o.UNSIGNED_BYTE,Ol))}_setDeferredFlags2(){}setOffset(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectOffsets._texture),s.texSubImage2D(s.TEXTURE_2D,0,0,e,1,1,s.RGB,s.FLOAT,Nl))}setMatrix(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectInstanceMatrices._texture),s.texSubImage2D(s.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,s.RGBA,s.FLOAT,kl))}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._renderers.colorRendererWithSAO&&this._renderers.colorRendererWithSAO.drawLayer(t,this,ys.COLOR_OPAQUE):this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,ys.COLOR_OPAQUE))}_updateBackfaceCull(e,t){const i=this.model.backfaces||e.sectioned;if(t.backfaces!==i){const e=t.gl;i?e.disable(e.CULL_FACE):e.enable(e.CULL_FACE),t.backfaces=i}}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,ys.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._renderers.depthRenderer&&this._renderers.depthRenderer.drawLayer(t,this,ys.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._renderers.normalsRenderer&&this._renderers.normalsRenderer.drawLayer(t,this,ys.COLOR_OPAQUE))}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,ys.SILHOUETTE_XRAYED))}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,ys.SILHOUETTE_HIGHLIGHTED))}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,ys.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._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(t,this,ys.EDGES_COLOR_OPAQUE)}drawEdgesColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(t,this,ys.EDGES_COLOR_TRANSPARENT)}drawEdgesHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,ys.EDGES_HIGHLIGHTED)}drawEdgesSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,ys.EDGES_SELECTED)}drawEdgesXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,ys.EDGES_XRAYED)}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(t,this,ys.COLOR_OPAQUE))}drawShadow(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.shadowRenderer&&this._renderers.shadowRenderer.drawLayer(t,this,ys.COLOR_OPAQUE))}setPickMatrices(e,t){}drawPickMesh(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(t,this,ys.PICK))}drawPickDepths(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(t,this,ys.PICK))}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,ys.PICK))}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,ys.PICK))}drawPickNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickNormalsRenderer&&this._renderers.pickNormalsRenderer.drawLayer(t,this,ys.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}}class Hl{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 Gl={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={}}};const Wl=new class{constructor(e,t,i){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=i}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,i=this.handlers.length;t{t&&t(r),this.manager.itemEnd(e)}),0),r;if(void 0!==Kl[e])return void Kl[e].push({onLoad:t,onProgress:i,onError:s});Kl[e]=[],Kl[e].push({onLoad:t,onProgress:i,onError:s});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),n=this.mimeType,a=this.responseType;fetch(o).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 i=Kl[e],s=t.body.getReader(),r=t.headers.get("Content-Length"),o=r?parseInt(r):0,n=0!==o;let a=0;const l=new ReadableStream({start(e){!function t(){s.read().then((({done:s,value:r})=>{if(s)e.close();else{a+=r.byteLength;const s=new ProgressEvent("progress",{lengthComputable:n,loaded:a,total:o});for(let e=0,t=i.length;e{switch(a){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,n)));case"json":return e.json();default:if(void 0===n)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(n),i=t&&t[1]?t[1].toLowerCase():void 0,s=new TextDecoder(i);return e.arrayBuffer().then((e=>s.decode(e)))}}})).then((t=>{Gl.add(e,t);const i=Kl[e];delete Kl[e];for(let e=0,s=i.length;e{const i=Kl[e];if(void 0===i)throw this.manager.itemError(e),t;delete Kl[e];for(let e=0,s=i.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 Yl{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 s=this._getIdleWorker();-1!==s?(this._initWorker(s),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}let ql=0;class Zl{constructor({viewer:e,transcoderPath:t,workerLimit:i}){this._transcoderPath=t||"https://cdn.jsdelivr.net/npm/@xeokit/xeokit-sdk/dist/basis/",this._transcoderBinary=null,this._transcoderPending=null,this._workerPool=new Yl,this._workerSourceURL="",i&&this._workerPool.setWorkerLimit(i);const s=e.capabilities;this._workerConfig={astcSupported:s.astcSupported,etc1Supported:s.etc1Supported,etc2Supported:s.etc2Supported,dxtSupported:s.dxtSupported,bptcSupported:s.bptcSupported,pvrtcSupported:s.pvrtcSupported},this._supportedFileTypes=["xkt2"]}_init(){if(!this._transcoderPending){const e=new Xl;e.setPath(this._transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),i=new Xl;i.setPath(this._transcoderPath),i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials);const s=i.loadAsync("basis_transcoder.wasm");this._transcoderPending=Promise.all([t,s]).then((([e,t])=>{const i=Zl.BasisWorker.toString(),s=["/* constants */","let _EngineFormat = "+JSON.stringify(Zl.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(Zl.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Zl.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join("\n");this._workerSourceURL=URL.createObjectURL(new Blob([s])),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}))})),ql>0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),ql++}return this._transcoderPending}transcode(e,t,i={}){return new Promise(((s,r)=>{const o=i;this._init().then((()=>this._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:o},e))).then((e=>{const i=e.data,{mipmaps:o,width:n,height:a,format:l,type:A,error:h,dfdTransferFn:c,dfdFlags:u}=i;if("error"===A)return r(h);t.setCompressedData({mipmaps:o,props:{format:l,minFilter:1===o.length?1006:1008,magFilter:1===o.length?1006:1008,encoding:2===c?3001:3e3,premultiplyAlpha:!!(1&u)}}),s()}))}))}destroy(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),ql--}}Zl.BasisFormat={ETC1S:0,UASTC_4x4:1},Zl.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},Zl.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},Zl.BasisWorker=function(){let e,t,i;const s=_EngineFormat,r=_TranscoderFormat,o=_BasisFormat;self.addEventListener("message",(function(n){const h=n.data;switch(h.type){case"init":e=h.config,c=h.transcoderBinary,t=new Promise((e=>{i={wasmBinary:c,onRuntimeInitialized:e},BASIS(i)})).then((()=>{i.initializeBasis(),void 0===i.KTX2File&&console.warn("KTX2TextureTranscoder: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:n,hasAlpha:c,mipmaps:u,format:d,dfdTransferFn:p,dfdFlags:g}=function(t){const n=new i.KTX2File(new Uint8Array(t));function h(){n.close(),n.delete()}if(!n.isValid())throw h(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");const c=n.isUASTC()?o.UASTC_4x4:o.ETC1S,u=n.getWidth(),d=n.getHeight(),p=n.getLevels(),g=n.getHasAlpha(),m=n.getDFDTransferFunc(),f=n.getDFDFlags(),{transcoderFormat:_,engineFormat:v}=function(t,i,n,h){let c,u;const d=t===o.ETC1S?a:l;for(let s=0;s=e)){th=new Uint32Array(e);for(let t=0;t=e)){tA=new Uint32Array(e);for(let t=0;t>t;s.sort(rh);const i=new Int32Array(e.length);for(let t=0,r=s.length;te[t+1]){let s=e[t];e[t]=e[t+1],e[t+1]=s}oh=new Int32Array(e),t.sort(nh);const s=new Int32Array(e.length);for(let i=0,r=t.length;it){let s=e;e=t,t=s}function s(s,i){return s!==e?e-s:i!==t?t-i:0}let i=0,r=(o.length>>1)-1;for(;i<=r;){const e=r+i>>1,t=s(o[2*e],o[2*e+1]);if(t>0)i=e+1;else{if(!(t<0))return e;r=e-1}}return-i-1}const a=new Int32Array(o.length/2);a.fill(0);const l=i.length/3;if(l>8*(1<A.maxNumPositions&&(A=u()),A.bucketNumber>8)return[e];let d;-1===h[l]&&(h[l]=A.numPositions++,A.positionsCompressed.push(i[3*l]),A.positionsCompressed.push(i[3*l+1]),A.positionsCompressed.push(i[3*l+2])),-1===h[c]&&(h[c]=A.numPositions++,A.positionsCompressed.push(i[3*c]),A.positionsCompressed.push(i[3*c+1]),A.positionsCompressed.push(i[3*c+2])),-1===h[p]&&(h[p]=A.numPositions++,A.positionsCompressed.push(i[3*p]),A.positionsCompressed.push(i[3*p+1]),A.positionsCompressed.push(i[3*p+2])),A.indices.push(h[l]),A.indices.push(h[c]),A.indices.push(h[p]),(d=n(l,c))>=0&&0===a[d]&&(a[d]=1,A.edgeIndices.push(h[o[2*d]]),A.edgeIndices.push(h[o[2*d+1]])),(d=n(l,p))>=0&&0===a[d]&&(a[d]=1,A.edgeIndices.push(h[o[2*d]]),A.edgeIndices.push(h[o[2*d+1]])),(d=n(c,p))>=0&&0===a[d]&&(a[d]=1,A.edgeIndices.push(h[o[2*d]]),A.edgeIndices.push(h[o[2*d+1]]))}const p=t/8*2,d=t/8,f=2*i.length+(r.length+o.length)*p;let m=0,y=-i.length/3;return c.forEach((e=>{m+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*d,y+=e.positionsCompressed.length/3})),m>f?[e]:(s&&function(e,t){const s={};let i=0;e.forEach((e=>{const t=e.indices,r=e.edgeIndices,o=e.positionsCompressed;for(let e=0,i=t.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{delete Jl[t],s.destroy()}))),s}(this.scene.viewer),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this._aabb=A.collapseAABB3(),this._aabbDirty=!0,this._quantizationRanges={},this._vboInstancingLayers={},this._vboBatchingLayers={},this._dtxLayers={},this.layerList=[],this._entityList=[],this._geometries={},this._dtxBuckets={},this._textures={},this._textureSets={},this._transforms={},this._meshes={},this._entities={},this._scheduledMeshes={},this._meshesCfgsBeforeMeshCreation={},this.renderFlags=new Ns,this.numGeometries=0,this.numPortions=0,this.numVisibleLayerPortions=0,this.numTransparentLayerPortions=0,this.numXRayedLayerPortions=0,this.numHighlightedLayerPortions=0,this.numSelectedLayerPortions=0,this.numEdgesLayerPortions=0,this.numPickableLayerPortions=0,this.numClippableLayerPortions=0,this.numCulledLayerPortions=0,this.numEntities=0,this._numTriangles=0,this._numLines=0,this._numPoints=0,this._edgeThreshold=t.edgeThreshold||10,this._origin=A.vec3(t.origin||[0,0,0]),this._position=A.vec3(t.position||[0,0,0]),this._rotation=A.vec3(t.rotation||[0,0,0]),this._quaternion=A.vec4(t.quaternion||[0,0,0,1]),this._conjugateQuaternion=A.vec4(t.quaternion||[0,0,0,1]),t.rotation&&A.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._scale=A.vec3(t.scale||[1,1,1]),this._worldRotationMatrix=A.mat4(),this._worldRotationMatrixConjugate=A.mat4(),this._matrix=A.mat4(),this._matrixDirty=!0,this._rebuildMatrices(),this._worldNormalMatrix=A.mat4(),A.inverseMat4(this._matrix,this._worldNormalMatrix),A.transposeMat4(this._worldNormalMatrix),(t.matrix||t.position||t.rotation||t.scale||t.quaternion)&&(this._viewMatrix=A.mat4(),this._viewNormalMatrix=A.mat4(),this._viewMatrixDirty=!0,this._matrixNonIdentity=!0),this._opacity=1,this._colorize=[1,1,1],this._saoEnabled=!1!==t.saoEnabled,this._pbrEnabled=!1!==t.pbrEnabled,this._colorTextureEnabled=!1!==t.colorTextureEnabled,this._isModel=t.isModel,this._isModel&&this.scene._registerModel(this),this._onCameraViewMatrix=this.scene.camera.on("matrix",(()=>{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 Ql({id:"defaultColorTexture",texture:new ii({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new Ql({id:"defaultMetalRoughTexture",texture:new ii({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),s=new Ql({id:"defaultNormalsTexture",texture:new ii({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),i=new Ql({id:"defaultEmissiveTexture",texture:new ii({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),r=new Ql({id:"defaultOcclusionTexture",texture:new ii({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=i,this._textures.defaultOcclusionTexture=r,this._textureSets.defaultTextureSet=new jl({id:"defaultTextureSet",model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:s,emissiveTexture:i,occlusionTexture:r})}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||_h),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,i=t.length;e{l.setImage(h,{minFilter:s,magFilter:i,wrapS:r,wrapT:o,wrapR:n,flipY:e.flipY,encoding:a}),this.glRedraw()},h.src=e.src;break;default:this._textureTranscoder?y.loadArraybuffer(e.src,(e=>{e.byteLength?this._textureTranscoder.transcode([e],l).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,l).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 Ql({id:t,texture:l})}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,i,r,o,n;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(i=this._textures[e.metallicRoughnessTextureId],!i)return void this.error(`[createTextureSet] Texture not found: ${e.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`)}else i=this._textures.defaultMetalRoughTexture;if(void 0!==e.normalsTextureId&&null!==e.normalsTextureId){if(r=this._textures[e.normalsTextureId],!r)return void this.error(`[createTextureSet] Texture not found: ${e.normalsTextureId} - ensure that you create it first with createTexture()`)}else r=this._textures.defaultNormalsTexture;if(void 0!==e.emissiveTextureId&&null!==e.emissiveTextureId){if(o=this._textures[e.emissiveTextureId],!o)return void this.error(`[createTextureSet] Texture not found: ${e.emissiveTextureId} - ensure that you create it first with createTexture()`)}else o=this._textures.defaultEmissiveTexture;if(void 0!==e.occlusionTextureId&&null!==e.occlusionTextureId){if(n=this._textures[e.occlusionTextureId],!n)return void this.error(`[createTextureSet] Texture not found: ${e.occlusionTextureId} - ensure that you create it first with createTexture()`)}else n=this._textures.defaultOcclusionTexture;const a=new jl({id:t,model:this,colorTexture:s,metallicRoughnessTexture:i,normalsTexture:r,emissiveTexture:o,occlusionTexture:n});return this._textureSets[t]=a,a}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 fh({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 this.error("[createMesh] SceneModel.createMesh() config missing: id"),!1;if(this._scheduledMeshes[e.id])return this.error(`[createMesh] SceneModel already has a mesh with this ID: ${e.id}`),!1;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 this.error(`Unsupported value for 'primitive': '${primitive}' ('geometryId' is absent) - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'.`),!1;if(!e.positions&&!e.positionsCompressed&&!e.buckets)return this.error("Param expected: 'positions', 'positionsCompressed' or `buckets` ('geometryId' is absent)"),!1;if(e.positions&&(e.positionsDecodeMatrix||e.positionsDecodeBoundary))return this.error("Illegal params: 'positions' not expected with 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(e.positionsCompressed&&!e.positionsDecodeMatrix&&!e.positionsDecodeBoundary)return this.error("Param expected: 'positionsCompressed' should be accompanied by 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(e.uvCompressed&&!e.uvDecodeMatrix)return this.error("Param expected: 'uvCompressed' should be accompanied by `uvDecodeMatrix` ('geometryId' is absent)"),!1;if(!(e.buckets||e.indices||"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive)){const t=(e.positions||e.positionsCompressed).length/3;e.indices=this._createDefaultIndices(t)}if(!e.buckets&&!e.indices&&"points"!==e.primitive)return e.indices=this._createDefaultIndices(numIndices),this.error(`Param expected: indices (required for '${e.primitive}' primitive type)`),!1;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'"),!1;const t=!(!this._dtxEnabled||"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive||e.textureSetId);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||Eh,s=e.position||gh,i=e.rotation||vh;A.eulerToQuaternion(i,"XYZ",Ih),e.meshMatrix=A.composeMat4(s,Ih,t,A.mat4())}if(e.positionsDecodeBoundary&&(e.positionsDecodeMatrix=mr(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])]):Th,e.opacity=void 0!==e.opacity&&null!==e.opacity?Math.floor(255*e.opacity):255,e.positions){const t=A.vec3(),s=[];j(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=fr(e.positions,t,e.positionsDecodeMatrix),e.aabb=t}else if(e.positionsCompressed){const t=A.collapseAABB3();A.expandAABB3Points3(t,e.positionsCompressed),Ct.decompressAABB(t,e.positionsDecodeMatrix),e.aabb=t}if(e.buckets){const t=A.collapseAABB3();for(let s=0,i=e.buckets.length;s>24&255,r=s>>16&255,o=s>>8&255,n=255&s;switch(e.pickColor=new Uint8Array([n,o,r,i]),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),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,i=e.buckets.length;s>>0).toString(16)}_getVBOInstancingLayer(e){const t=this,s=e.origin,i=e.textureSetId||"-",r=e.geometryId,o=`${Math.round(s[0])}.${Math.round(s[1])}.${Math.round(s[2])}.${i}.${r}`;let n=this._vboInstancingLayers[o];if(n)return n;let a=e.textureSet;const l=e.geometry;for(;!n;)switch(l.primitive){case"triangles":case"surface":n=new Io({model:t,textureSet:a,geometry:l,origin:s,layerIndex:0,solid:!1});break;case"solid":n=new Io({model:t,textureSet:a,geometry:l,origin:s,layerIndex:0,solid:!0});break;case"lines":n=new an({model:t,textureSet:a,geometry:l,origin:s,layerIndex:0});break;case"points":n=new ea({model:t,textureSet:a,geometry:l,origin:s,layerIndex:0})}return this._vboInstancingLayers[o]=n,this.layerList.push(n),n}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|=W),this._pickable&&!1!==e.pickable&&(t|=K),this._culled&&!1!==e.culled&&(t|=z),this._clippable&&!1!==e.clippable&&(t|=Y),this._collidable&&!1!==e.collidable&&(t|=X),this._edges&&!1!==e.edges&&(t|=$),this._xrayed&&!1!==e.xrayed&&(t|=Z),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,i=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,i=t.visibleLayers.length;s65536?16:8)}else n=[{positionsCompressed:i,indices:r,edgeIndices:o}];return n}class Rh extends O{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)||m.has(e.id)||f.has(e.id))).reduce(((e,s)=>{let i,r=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?(i=0===t.xrayMaterial.fillAlpha&&0!==t.xrayMaterial.edgeAlpha?.1:t.xrayMaterial.fillAlpha,i=Math.round(255*i).toString(16).padStart(2,"0"),r=i+r):d.has(s.id)&&(i=Math.round(255*s.opacity).toString(16).padStart(2,"0"),r=i+r),e[r]||(e[r]=[]);const o=s.id,n=s.originalSystemId,a={ifc_guid:n,originating_system:this.originatingSystem};return n!==o&&(a.authoring_tool_id=o),e[r].push(a),e}),{}),E=Object.entries(y).map((([e,t])=>({color:e,components:t})));o.components.coloring=E;const g=t.objectIds,v=t.visibleObjects,I=t.visibleObjectIds,_=g.filter((e=>!v[e])),T=t.selectedObjectIds;return e.defaultInvisible||I.length<_.length?(o.components.visibility.exceptions=this._createBCFComponents(I),o.components.visibility.default_visibility=!1):(o.components.visibility.exceptions=this._createBCFComponents(_),o.components.visibility.default_visibility=!0),o.components.selection=this._createBCFComponents(T),o.components.translucency=this._createBCFComponents(t.xrayedObjectIds),!1!==e.snapshot&&(o.snapshot={snapshot_type:"png",snapshot_data:this.viewer.getSnapshot({format:"png"})}),o}_createBCFComponents(e){const t=this.viewer.scene,s=[];for(let i=0,r=e.length;i0&&e.clipping_planes.forEach((function(e){let t=wh(e.location,Dh),s=wh(e.direction,Dh);h&&A.negateVec3(s),A.subVec3(t,l),r.yUp&&(t=Bh(t),s=Bh(s)),new Qs(i,{pos:t,dir:s})})),i.clearLines(),e.lines&&e.lines.length>0){const t=[],s=[];let r=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(r++),s.push(r++))})),new Rh(i,{positions:t,indices:s,clippable:!1,collidable:!0})}if(i.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){const t=e.bitmap_type||"jpg",s=e.bitmap_data;let o=wh(e.location,Ch),n=wh(e.normal,Nh),a=wh(e.up,Oh),l=e.height||1;t&&s&&o&&n&&a&&(r.yUp&&(o=Bh(o),n=Bh(n),a=Bh(a)),new mi(i,{src:s,type:t,pos:o,normal:n,up:a,clippable:!1,collidable:!0,height:l}))})),a&&(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((e=>this._withBCFComponent(t,e,(e=>e.visible=!1))))):(i.setObjectsVisible(i.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!0)))));const r=e.components.visibility.view_setup_hints;r&&(!1===r.spaces_visible&&i.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==r.spaces_translucent&&i.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcSpace"),!0),r.space_boundaries_visible,!1===r.openings_visible&&i.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcOpening"),!0),r.space_boundaries_translucent,void 0!==r.openings_translucent&&i.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(i.setObjectsSelected(i.selectedObjectIds,!1),e.components.selection.forEach((e=>this._withBCFComponent(t,e,(e=>e.selected=!0))))),e.components.translucency&&(i.setObjectsXRayed(i.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,i=0,r=!1;8===s.length&&(i=parseInt(s.substring(0,2),16)/256,i<=1&&i>=.95&&(i=1),s=s.substring(2),r=!0);const o=[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=o,r&&(e.opacity=i)}))))}))}if(e.perspective_camera||e.orthogonal_camera){let a,h,c,u;if(e.perspective_camera?(a=wh(e.perspective_camera.camera_view_point,Dh),h=wh(e.perspective_camera.camera_direction,Dh),c=wh(e.perspective_camera.camera_up_vector,Dh),r.perspective.fov=e.perspective_camera.field_of_view,u="perspective"):(a=wh(e.orthogonal_camera.camera_view_point,Dh),h=wh(e.orthogonal_camera.camera_direction,Dh),c=wh(e.orthogonal_camera.camera_up_vector,Dh),r.ortho.scale=e.orthogonal_camera.view_to_world_scale,u="ortho"),A.subVec3(a,l),r.yUp&&(a=Bh(a),h=Bh(h),c=Bh(c)),o){const e=i.pick({pickSurface:!0,origin:a,direction:h});h=e?e.worldPos:A.addVec3(a,h,Dh)}else h=A.addVec3(a,h,Dh);n?(r.eye=a,r.look=h,r.up=c,r.projection=u):s.cameraFlight.flyTo({eye:a,look:h,up:c,duration:t.duration,projection:u})}}_withBCFComponent(e,t,s){const i=this.viewer,r=i.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){const o=t.authoring_tool_id,n=r.objects[o];if(n)return void s(n);if(e.updateCompositeObjects){if(i.metaScene.metaObjects[o])return void r.withObjects(i.metaScene.getObjectIDsInSubtree(o),s)}}if(t.ifc_guid){const o=t.ifc_guid,n=r.objects[o];if(n)return void s(n);if(e.updateCompositeObjects){if(i.metaScene.metaObjects[o])return void r.withObjects(i.metaScene.getObjectIDsInSubtree(o),s)}Object.keys(r.models).forEach((t=>{const n=A.globalizeObjectId(t,o),a=r.objects[n];if(a)s(a);else if(e.updateCompositeObjects){i.metaScene.metaObjects[n]&&r.withObjects(i.metaScene.getObjectIDsInSubtree(n),s)}}))}}destroy(){super.destroy()}}function Sh(e){return{x:e[0],y:e[1],z:e[2]}}function wh(e,t){return(t=new Float64Array(3))[0]=e.x,t[1]=e.y,t[2]=e.z,t}function Mh(e){return new Float64Array([e[0],-e[2],e[1]])}function Bh(e){return new Float64Array([e[0],e[2],-e[1]])}const Fh=A.vec3(),Lh=(e,t,s,i)=>{var r=e-s,o=t-i;return Math.sqrt(r*r+o*o)};class Uh extends O{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 oe(s,t.origin),this._targetMarker=new oe(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 i=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,r=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,o=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},n=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))},l=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,h=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._targetDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._lengthWire=new ne(this._container,{color:this._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._xAxisWire=new ne(this._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._yAxisWire=new ne(this._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._zAxisWire=new ne(this._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._lengthLabel=new le(this._container,{fillColor:this._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._xAxisLabel=new le(this._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._yAxisLabel=new le(this._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._zAxisLabel=new le(this._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),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._labelsOnWires=!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,this.labelsOnWires=t.labelsOnWires}_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 i=this._pp,r=this._cp,o=e.canvas.canvas.getBoundingClientRect();const t=this._container.getBoundingClientRect();var n=o.top-t.top,a=o.left-t.left,l=e.canvas.boundary,h=l[2],c=l[3],u=0;const s=this.plugin.viewer.scene.metrics,f=s.scale,m=s.units,y=s.unitsInfo[m].abbrev;for(var p=0,d=i.length;p{const t=e.snappedCanvasPos||e.canvasPos;if(r=!0,o.set(e.worldPos),n.set(e.canvasPos),0===this._mouseState){const s=i.getBoundingClientRect(),r=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop,n=s.left+r,a=s.top+o;this._markerDiv.style.left=n+t[0]-5+"px",this._markerDiv.style.top=a+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"),h=e.entity}else this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px";i.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=o.slice(),this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px")})),i.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(a=e.clientX,l=e.clientY)}),i.addEventListener("mouseup",this._onMouseUp=t=>{1===t.which&&(t.clientX>a+20||t.clientXl+20||t.clientY{this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos),r=!1,this._markerDiv.style.left="-100px",this._markerDiv.style.top="-100px",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=!1,this._currentDistanceMeasurement.targetVisible=!1,this._currentDistanceMeasurement.axisVisible=!1),i.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 kh 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.defaultLabelsOnWires=!1!==t.defaultLabelsOnWires,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 Gh(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,i=new Uh(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,labelsOnWires:!1!==e.labelsOnWires&&!1!==this.defaultLabelsOnWires,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("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,i||(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,i=!0)};this._onCanvasBoundary=e.scene.canvas.on("boundary",r),this._onCameraMatrix=e.scene.camera.on("matrix",r),this._onSceneTick=e.scene.on("tick",(t=>{i&&(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),i=!1))}));let o=!1;this._onSceneMouseDown=e.scene.input.on("mousedown",(()=>{o=!0})),this._onSceneMouseUp=e.scene.input.on("mouseup",(()=>{o=!1})),this._onSceneMouseMove=e.scene.input.on("mousemove",(()=>{o&&r()}))}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 jh{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 i=Qh(e,s);return i?t?Wh(i,t):i:null}translatePlurals(e,t,s){const i=this._messages[this._locale];if(!i)return null;let r=Qh(e,i);return r=0===(t=parseInt(""+t,10))?r.zero:t>1?r.other:r.one,r?(r=Wh(r,[t]),s&&(r=Wh(r,s)),r):null}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==s&&(this._events[e]=t||!0);const i=this._eventSubs[e];if(i)for(const e in i)if(i.hasOwnProperty(e)){i[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 i=this._eventSubs[t];i||(i={},this._eventSubs[t]=i);const r=this._eventSubIDMap.addItem();i[r]={callback:s},this._eventSubEvents[r]=t;const o=this._events[t];return void 0!==o&&s(o),r}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 Qh(e,t){if(t[e])return t[e];const s=e.split(".");let i=t;for(let e=0,t=s.length;i&&e=1;e>1&&(e=1);const s=this.easing?qh._ease(e,0,1,1):e,i=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?(A.subVec3(i.eye,i.look,Zh),i.eye=A.lerpVec3(s,0,1,this._eye1,this._eye2,Yh),i.look=A.subVec3(Yh,Zh,Kh)):this._flyingLook&&(i.look=A.lerpVec3(s,0,1,this._look1,this._look2,Kh),i.up=A.lerpVec3(s,0,1,this._up1,this._up2,Xh)):this._flyingEyeLookUp&&(i.eye=A.lerpVec3(s,0,1,this._eye1,this._eye2,Yh),i.look=A.lerpVec3(s,0,1,this._look1,this._look2,Kh),i.up=A.lerpVec3(s,0,1,this._up1,this._up2,Xh)),this._projection2){const t="ortho"===this._projection2?qh._easeOutExpo(e,0,1,1):qh._easeInCubic(e,0,1,1);i.customProjection.matrix=A.lerpMat4(t,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();R.scheduleTask(this._update,this)}static _ease(e,t,s,i){return-s*(e/=i)*(e-2)+t}static _easeInCubic(e,t,s,i){return s*(e/=i)*e*e+t}static _easeOutExpo(e,t,s,i){return s*(1-Math.pow(2,-10*e/i))+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 Jh extends O{get type(){return"CameraPathAnimation"}constructor(e,t={}){super(e,t),this._cameraFlightAnimation=new qh(this),this._t=0,this.state=Jh.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 i=performance.now(),r=this._lastTime?.001*(i-this._lastTime):0;if(this._lastTime=i,0!==r)switch(this.state){case Jh.SCRUBBING:return;case Jh.PLAYING:if(this._t+=this._playingRate*r,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=Jh.SCRUBBING,this._t=this._cameraPath.frames[t-1].t,void this.fire("stopped");e.loadFrame(this._t);break;case Jh.PLAYING_TO:s=this._t+this._playingRate*r*this._playingDir,(this._playingDir<0&&s<=this._playingToT||this._playingDir>0&&s>=this._playingToT)&&(s=this._playingToT,this.state=Jh.SCRUBBING,this.fire("stopped")),this._t=s,e.loadFrame(this._t)}}_ease(e,t,s,i){return-s*(e/=i)*(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=Jh.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=Jh.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 i=s.frames[e];i?(this.state=Jh.SCRUBBING,this._cameraFlightAnimation.flyTo(i,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=Jh.SCRUBBING)}scrubToFrame(e){const t=this._cameraPath;if(!t)return;if(!this.scene.camera)return;t.frames[e]?(t.loadFrame(this._t),this.state=Jh.SCRUBBING):this.error("playToFrame - frame index out of range: "+e)}stop(){this.state=Jh.SCRUBBING,this.fire("stopped")}destroy(){super.destroy(),this.scene.off(this._tick)}}Jh.STOPPED=0,Jh.SCRUBBING=1,Jh.PLAYING=2,Jh.PLAYING_TO=3,A.vec3(),A.vec3(),A.vec3(),A.vec3([0,-1,0]),A.vec4([0,0,0,1]);const $h=A.vec3();class ec{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?y.apply(s,{}):null;const i=!s||s.visible,r=!s||s.edges,o=!s||s.xrayed,n=!s||s.highlighted,a=!s||s.selected,l=!s||s.clippable,h=!s||s.pickable,c=!s||s.colorize,u=!s||s.opacity,A=t.metaObjects,p=e.objects;for(let e=0,t=A.length;e{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 i=Math.tan(Math.PI/500)*s*this._pivotSphereSize;"ortho"==this._scene.camera.projection&&(i/=this._scene.camera.ortho.scale/2),V(e,this._rtcCenter,this._rtcPos),this._pivotSphereGeometry=new Ai(this._scene,js({radius:i})),this._pivotSphere=new Gs(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,i=s[2],r=s[3];this._pivotCanvasPos[0]=Math.floor((1+this._pivotProjPos[0]/this._pivotProjPos[3])*i/2),this._pivotCanvasPos[1]=Math.floor((1-this._pivotProjPos[1]/this._pivotProjPos[3])*r/2);let o=t._lastBoundingClientRect;if(!o||t._canvasSizeChanged){const e=t.canvas;o=t._lastBoundingClientRect=e.getBoundingClientRect()}this._pivotElement&&(this._pivotElement.style.left=Math.floor(o.left+this._pivotCanvasPos[0])-this._pivotElement.clientWidth/2+window.scrollX+"px",this._pivotElement.style.top=Math.floor(o.top+this._pivotCanvasPos[1])-this._pivotElement.clientHeight/2+window.scrollY+"px"),this._cameraDirty=!1}}updatePivotSphere(){this._pivoting&&this._pivotSphere&&(V(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 Ft(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 i=A.transformVec3(t,this._cameraOffset),r=A.vec3();if(A.subVec3(e.eye,s,r),A.addVec3(r,i),e.zUp){const e=r[1];r[1]=r[2],r[2]=e}this._radius=A.lenVec3(r),this._polar=Math.acos(r[1]/this._radius),this._azimuth=Math.atan2(r[0],r[2]),this._pivoting=!0}_cameraLookingDownwards(){const e=this._scene.camera,t=A.normalizeVec3(A.subVec3(e.look,e.eye,cc)),s=A.cross3Vec3(t,e.worldUp,uc);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)),i=t.project.transposedMatrix,r=i.subarray(8,12),o=i.subarray(12),n=[0,0,-1,1],a=A.dotVec4(n,r)/A.dotVec4(n,o),l=pc;t.project.unproject(e,a,dc,fc,l);const h=A.normalizeVec3(A.subVec3(l,t.eye,cc)),c=A.addVec3(t.eye,A.mulVec3Scalar(h,s,uc),Ac);this.setPivotPos(c)}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 i=-e;const r=-t;1===s.worldUp[2]&&(i=-i),this._azimuth+=.01*-i,this._polar+=.01*r,this._polar=A.clamp(this._polar,.001,Math.PI-.001);const o=[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=o[1];o[1]=o[2],o[2]=e}const n=A.lenVec3(A.subVec3(s.look,s.eye,A.vec3())),a=this.getPivotPos();A.addVec3(o,a);let l=A.lookAtMat4v(o,a,s.worldUp);l=A.inverseMat4(l);const h=A.transformVec3(l,this._cameraOffset);l[12]-=h[0],l[13]-=h[1],l[14]-=h[2];const c=[l[8],l[9],l[10]];s.eye=[l[12],l[13],l[14]],A.subVec3(s.eye,A.mulVec3Scalar(c,n),s.look),s.up=[l[4],l[5],l[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 yc{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 Ie;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 Ec=A.vec2();class gc{constructor(e,t,s,i,r){this._scene=e;const o=t.pickController;let n,a,l,h=0,c=0,u=0,p=0,d=!1;const f=A.vec3();let m=!0;const y=this._scene.canvas.canvas,E=[];function g(e=!0){y.style.cursor="move",h=i.pointerCanvasPos[0],c=i.pointerCanvasPos[1],u=i.pointerCanvasPos[0],p=i.pointerCanvasPos[1],e&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),o.picked&&o.pickedSurface&&o.pickResult&&o.pickResult.worldPos?(d=!0,f.set(o.pickResult.worldPos)):d=!1)}document.addEventListener("keydown",this._documentKeyDownHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const i=t.keyCode;E[i]=!0}),document.addEventListener("keyup",this._documentKeyUpHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const i=t.keyCode;E[i]=!1}),y.addEventListener("mousedown",this._mouseDownHandler=t=>{if(s.active&&s.pointerEnabled)switch(t.which){case 1:E[e.input.KEY_SHIFT]||s.planView?(n=!0,g()):(n=!0,g(!1));break;case 2:a=!0,g();break;case 3:l=!0,s.panRightClick&&g()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=()=>{if(!s.active||!s.pointerEnabled)return;if(!n&&!a&&!l)return;const t=e.canvas.boundary,o=t[2],u=t[3],p=i.pointerCanvasPos[0],m=i.pointerCanvasPos[1];if(E[e.input.KEY_SHIFT]||s.planView||!s.panRightClick&&a||s.panRightClick&&l){const t=p-h,s=m-c,i=e.camera;if("perspective"===i.projection){const o=Math.abs(d?A.lenVec3(A.subVec3(f,e.camera.eye,[])):e.camera.eyeLookDist)*Math.tan(i.perspective.fov/2*Math.PI/180);r.panDeltaX+=1.5*t*o/u,r.panDeltaY+=1.5*s*o/u}else r.panDeltaX+=.5*i.ortho.scale*(t/u),r.panDeltaY+=.5*i.ortho.scale*(s/u)}else!n||a||l||s.planView||(s.firstPerson?(r.rotateDeltaY-=(p-h)/o*s.dragRotationRate/2,r.rotateDeltaX+=(m-c)/u*(s.dragRotationRate/4)):(r.rotateDeltaY-=(p-h)/o*(1.5*s.dragRotationRate),r.rotateDeltaX+=(m-c)/u*(1.5*s.dragRotationRate)));h=p,c=m}),y.addEventListener("mousemove",this._canvasMouseMoveHandler=e=>{s.active&&s.pointerEnabled&&i.mouseover&&(m=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{if(s.active&&s.pointerEnabled)switch(e.which){case 1:case 2:case 3:n=!1,a=!1,l=!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,i=0,r=0,o=0,n=0;for(;s.offsetParent;)i+=s.offsetLeft,r+=s.offsetTop,o+=s.scrollLeft,n+=s.scrollTop,s=s.offsetParent;t[0]=e.pageX+o-i,t[1]=e.pageY+n-r}else e=window.event,t[0]=e.x,t[1]=e.y}(e,Ec);const s=Ec[0],i=Ec[1];Math.abs(s-u)<3&&Math.abs(i-p)<3&&t.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:Ec,event:e},!0)}y.style.removeProperty("cursor")}}),y.addEventListener("mouseenter",this._mouseEnterHandler=()=>{s.active&&s.pointerEnabled});const v=1/60;let I=null;y.addEventListener("wheel",this._mouseWheelHandler=e=>{if(!s.active||!s.pointerEnabled)return;const t=performance.now()/1e3;var o=null!==I?t-I:0;I=t,o>.05&&(o=.05),o{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!i.mouseover)return;const n=r._isKeyDownForAction(r.AXIS_VIEW_RIGHT),a=r._isKeyDownForAction(r.AXIS_VIEW_BACK),l=r._isKeyDownForAction(r.AXIS_VIEW_LEFT),h=r._isKeyDownForAction(r.AXIS_VIEW_FRONT),c=r._isKeyDownForAction(r.AXIS_VIEW_TOP),u=r._isKeyDownForAction(r.AXIS_VIEW_BOTTOM);if(!(n||a||l||h||c||u))return;const p=e.aabb,d=A.getAABB3Diag(p);A.getAABB3Center(p,vc);const f=Math.abs(d/Math.tan(t.cameraFlight.fitFOV*A.DEGTORAD)),m=1.1*d;bc.orthoScale=m,n?(bc.eye.set(A.addVec3(vc,A.mulVec3Scalar(o.worldRight,f,Ic),Pc)),bc.look.set(vc),bc.up.set(o.worldUp)):a?(bc.eye.set(A.addVec3(vc,A.mulVec3Scalar(o.worldForward,f,Ic),Pc)),bc.look.set(vc),bc.up.set(o.worldUp)):l?(bc.eye.set(A.addVec3(vc,A.mulVec3Scalar(o.worldRight,-f,Ic),Pc)),bc.look.set(vc),bc.up.set(o.worldUp)):h?(bc.eye.set(A.addVec3(vc,A.mulVec3Scalar(o.worldForward,-f,Ic),Pc)),bc.look.set(vc),bc.up.set(o.worldUp)):c?(bc.eye.set(A.addVec3(vc,A.mulVec3Scalar(o.worldUp,f,Ic),Pc)),bc.look.set(vc),bc.up.set(A.normalizeVec3(A.mulVec3Scalar(o.worldForward,1,_c),Tc))):u&&(bc.eye.set(A.addVec3(vc,A.mulVec3Scalar(o.worldUp,-f,Ic),Pc)),bc.look.set(vc),bc.up.set(A.normalizeVec3(A.mulVec3Scalar(o.worldForward,-1,_c)))),!s.firstPerson&&s.followPointer&&t.pivotController.setPivotPos(vc),t.cameraFlight.duration>0?t.cameraFlight.flyTo(bc,(()=>{t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot()})):(t.cameraFlight.jumpTo(bc),t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot())}))}reset(){}destroy(){this._scene.input.off(this._onSceneKeyDown)}}class Dc{constructor(e,t,s,i,r){this._scene=e;const o=t.pickController,n=t.pivotController,a=t.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;let l=!1,h=!1;const c=this._scene.canvas.canvas,u=s=>{let i;s&&s.worldPos&&(i=s.worldPos);const r=s&&s.entity?s.entity.aabb:e.aabb;if(i){const s=e.camera;A.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:r})}else t.cameraFlight.flyTo({aabb:r})},p=e.tickify(this._canvasMouseMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(l||h)return;const r=a.hasSubs("hover"),n=a.hasSubs("hoverEnter"),c=a.hasSubs("hoverOut"),u=a.hasSubs("hoverOff"),A=a.hasSubs("hoverSurface"),p=a.hasSubs("hoverSnapOrSurface");if(r||n||c||u||A||p)if(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=A,o.scheduleSnapOrPick=p,o.update(),o.pickResult){if(o.pickResult.entity){const t=o.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&a.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),a.fire("hoverEnter",o.pickResult,!0),this._lastPickedEntityId=t)}a.fire("hover",o.pickResult,!0),(o.pickResult.worldPos||o.pickResult.snappedWorldPos)&&a.fire("hoverSurface",o.pickResult,!0)}else void 0!==this._lastPickedEntityId&&(a.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),a.fire("hoverOff",{canvasPos:o.pickCursorPos},!0)});c.addEventListener("mousemove",p),c.addEventListener("mousedown",this._canvasMouseDownHandler=t=>{1===t.which&&(l=!0),3===t.which&&(h=!0);if(1===t.which&&s.active&&s.pointerEnabled&&(i.mouseDownClientX=t.clientX,i.mouseDownClientY=t.clientY,i.mouseDownCursorX=i.pointerCanvasPos[0],i.mouseDownCursorY=i.pointerCanvasPos[1],!s.firstPerson&&s.followPointer&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),1===t.which))){const t=o.pickResult;t&&t.worldPos?(n.setPivotPos(t.worldPos),n.startPivot()):(s.smartPivot?n.setCanvasPivotPos(i.pointerCanvasPos):n.setPivotPos(e.camera.look),n.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{1===e.which&&(l=!1),3===e.which&&(h=!1),n.getPivoting()&&n.endPivot()}),c.addEventListener("mouseup",this._canvasMouseUpHandler=r=>{if(!s.active||!s.pointerEnabled)return;if(!(1===r.which))return;if(n.hidePivot(),Math.abs(r.clientX-i.mouseDownClientX)>3||Math.abs(r.clientY-i.mouseDownClientY)>3)return;const l=a.hasSubs("picked"),h=a.hasSubs("pickedNothing"),c=a.hasSubs("pickedSurface"),p=a.hasSubs("doublePicked"),d=a.hasSubs("doublePickedSurface"),f=a.hasSubs("doublePickedNothing");if(!(s.doublePickFlyTo||p||d||f))return(l||h||c)&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=c,o.update(),o.pickResult?(a.fire("picked",o.pickResult,!0),o.pickedSurface&&a.fire("pickedSurface",o.pickResult,!0)):a.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0)),void(this._clicks=0);if(this._clicks++,1===this._clicks){o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=s.doublePickFlyTo,o.schedulePickSurface=c,o.update();const e=o.pickResult,r=o.pickedSurface;this._timeout=setTimeout((()=>{e?(a.fire("picked",e,!0),r&&(a.fire("pickedSurface",e,!0),!s.firstPerson&&s.followPointer&&(t.pivotController.setPivotPos(e.worldPos),t.pivotController.startPivot()&&t.pivotController.showPivot()))):a.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0),this._clicks=0}),s.doubleClickTimeFrame)}else{if(null!==this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=s.doublePickFlyTo||p||d,o.schedulePickSurface=o.schedulePickEntity&&d,o.update(),o.pickResult){if(a.fire("doublePicked",o.pickResult,!0),o.pickedSurface&&a.fire("doublePickedSurface",o.pickResult,!0),s.doublePickFlyTo&&(u(o.pickResult),!s.firstPerson&&s.followPointer)){const e=o.pickResult.entity.aabb,s=A.getAABB3Center(e);t.pivotController.setPivotPos(s),t.pivotController.startPivot()&&t.pivotController.showPivot()}}else if(a.fire("doublePickedNothing",{canvasPos:i.pointerCanvasPos},!0),s.doublePickFlyTo&&(u(),!s.firstPerson&&s.followPointer)){const s=e.aabb,i=A.getAABB3Center(s);t.pivotController.setPivotPos(i),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 Cc{constructor(e,t,s,i,r){this._scene=e;const o=e.input,n=[],a=e.canvas.canvas;let l=!0;this._onSceneMouseMove=o.on("mousemove",(()=>{l=!0})),this._onSceneKeyDown=o.on("keydown",(t=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&i.mouseover&&(n[t]=!0,t===o.KEY_SHIFT&&(a.style.cursor="move"))})),this._onSceneKeyUp=o.on("keyup",(i=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&(n[i]=!1,i===o.KEY_SHIFT&&(a.style.cursor=null),t.pivotController.getPivoting()&&t.pivotController.endPivot())})),this._onTick=e.on("tick",(a=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!i.mouseover)return;const h=t.cameraControl,c=a.deltaTime/1e3;if(!s.planView){const e=h._isKeyDownForAction(h.ROTATE_Y_POS,n),i=h._isKeyDownForAction(h.ROTATE_Y_NEG,n),o=h._isKeyDownForAction(h.ROTATE_X_POS,n),a=h._isKeyDownForAction(h.ROTATE_X_NEG,n),l=c*s.keyboardRotationRate;(e||i||o||a)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),e?r.rotateDeltaY+=l:i&&(r.rotateDeltaY-=l),o?r.rotateDeltaX+=l:a&&(r.rotateDeltaX-=l),!s.firstPerson&&s.followPointer&&t.pivotController.startPivot())}if(!n[o.KEY_CTRL]&&!n[o.KEY_ALT]){const e=h._isKeyDownForAction(h.DOLLY_BACKWARDS,n),o=h._isKeyDownForAction(h.DOLLY_FORWARDS,n);if(e||o){const n=c*s.keyboardDollyRate;!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),o?r.dollyDelta-=n:e&&(r.dollyDelta+=n),l&&(i.followPointerDirty=!0,l=!1)}}const u=h._isKeyDownForAction(h.PAN_FORWARDS,n),A=h._isKeyDownForAction(h.PAN_BACKWARDS,n),p=h._isKeyDownForAction(h.PAN_LEFT,n),d=h._isKeyDownForAction(h.PAN_RIGHT,n),f=h._isKeyDownForAction(h.PAN_UP,n),m=h._isKeyDownForAction(h.PAN_DOWN,n),y=(n[o.KEY_ALT]?.3:1)*c*s.keyboardPanRate;(u||A||p||d||f||m)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),m?r.panDeltaY+=y:f&&(r.panDeltaY+=-y),d?r.panDeltaX+=-y:p&&(r.panDeltaX+=y),A?r.panDeltaZ+=y:u&&(r.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 Nc=A.vec3();class Oc{constructor(e,t,s,i,r){this._scene=e;const o=e.camera,n=t.pickController,a=t.pivotController,l=t.panController;let h=1,c=1,u=null;this._onTick=e.on("tick",(()=>{if(!s.active||!s.pointerEnabled)return;let t="default";if(Math.abs(r.dollyDelta)<.001&&(r.dollyDelta=0),Math.abs(r.rotateDeltaX)<.001&&(r.rotateDeltaX=0),Math.abs(r.rotateDeltaY)<.001&&(r.rotateDeltaY=0),0===r.rotateDeltaX&&0===r.rotateDeltaY||(r.dollyDelta=0),s.followPointer&&--h<=0&&(h=1,0!==r.dollyDelta)){if(0===r.rotateDeltaY&&0===r.rotateDeltaX&&s.followPointer&&i.followPointerDirty&&(n.pickCursorPos=i.pointerCanvasPos,n.schedulePickSurface=!0,n.update(),n.pickResult&&n.pickResult.worldPos?u=n.pickResult.worldPos:(c=1,u=null),i.followPointerDirty=!1),u){const t=Math.abs(A.lenVec3(A.subVec3(u,e.camera.eye,Nc)));c=t/s.dollyProximityThreshold}c{i.mouseover=!0}),o.addEventListener("mouseleave",this._mouseLeaveHandler=()=>{i.mouseover=!1,o.style.cursor=null}),document.addEventListener("mousemove",this._mouseMoveHandler=e=>{Sc(e,o,i.pointerCanvasPos)}),o.addEventListener("mousedown",this._mouseDownHandler=e=>{s.active&&s.pointerEnabled&&(Sc(e,o,i.pointerCanvasPos),i.mouseover=!0)}),o.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 Sc(e,t,s){if(e){const{left:i,top:r}=t.getBoundingClientRect();s[0]=e.clientX-i-window.scrollX,s[1]=e.clientY-r-window.scrollY}else e=window.event,s[0]=e.x,s[1]=e.y;return s}const wc=function(e,t){if(e){let s=e.target,i=0,r=0;for(;s.offsetParent;)i+=s.offsetLeft,r+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-i,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t};class Mc{constructor(e,t,s,i,r){this._scene=e;const o=t.pickController,n=t.pivotController,a=A.vec2(),l=A.vec2(),h=A.vec2(),c=A.vec2(),u=[],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 r=t.touches,l=t.changedTouches;for(i.touchStartTime=Date.now(),1===r.length&&1===l.length&&(wc(r[0],a),s.followPointer&&(o.pickCursorPos=a,o.schedulePickSurface=!0,o.update(),s.planView||(o.picked&&o.pickedSurface&&o.pickResult&&o.pickResult.worldPos?(n.setPivotPos(o.pickResult.worldPos),!s.firstPerson&&n.startPivot()&&n.showPivot()):(s.smartPivot?n.setCanvasPivotPos(i.pointerCanvasPos):n.setPivotPos(e.camera.look),!s.firstPerson&&n.startPivot()&&n.showPivot()))));u.length{n.getPivoting()&&n.endPivot()}),p.addEventListener("touchmove",this._canvasTouchMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(t.stopPropagation(),t.preventDefault(),f)return;f=!0;const n=e.canvas.boundary,a=n[2],p=n[3],m=t.touches;if(t.touches.length===d){if(1===d){wc(m[0],l),A.subVec2(l,u[0],c);const t=c[0],o=c[1];if(null!==i.longTouchTimeout&&(Math.abs(t)>s.longTapRadius||Math.abs(o)>s.longTapRadius)&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null),s.planView){const i=e.camera;if("perspective"===i.projection){const n=Math.abs(e.camera.eyeLookDist)*Math.tan(i.perspective.fov/2*Math.PI/180);r.panDeltaX+=t*n/p*s.touchPanRate,r.panDeltaY+=o*n/p*s.touchPanRate}else r.panDeltaX+=.5*i.ortho.scale*(t/p)*s.touchPanRate,r.panDeltaY+=.5*i.ortho.scale*(o/p)*s.touchPanRate}else r.rotateDeltaY-=t/a*(1*s.dragRotationRate),r.rotateDeltaX+=o/p*(1.5*s.dragRotationRate)}else if(2===d){const t=m[0],n=m[1];wc(t,l),wc(n,h);const a=A.geometricMeanVec2(u[0],u[1]),c=A.geometricMeanVec2(l,h),d=A.vec2();A.subVec2(a,c,d);const f=d[0],y=d[1],E=e.camera,g=A.distVec2([t.pageX,t.pageY],[n.pageX,n.pageY]),v=(A.distVec2(u[0],u[1])-g)*s.touchDollyRate;if(r.dollyDelta=v,Math.abs(v)<1)if("perspective"===E.projection){const t=o.pickResult?o.pickResult.worldPos:e.center,i=Math.abs(A.lenVec3(A.subVec3(t,e.camera.eye,[])))*Math.tan(E.perspective.fov/2*Math.PI/180);r.panDeltaX-=f*i/p*s.touchPanRate,r.panDeltaY-=y*i/p*s.touchPanRate}else r.panDeltaX-=.5*E.ortho.scale*(f/p)*s.touchPanRate,r.panDeltaY-=.5*E.ortho.scale*(y/p)*s.touchPanRate;i.pointerCanvasPos=c}for(let e=0;e{let i;s&&s.worldPos&&(i=s.worldPos);const r=s?s.entity.aabb:e.aabb;if(i){const s=e.camera;A.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:r})}else t.cameraFlight.flyTo({aabb:r})};p.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{if(!s.active||!s.pointerEnabled)return;null!==i.longTouchTimeout&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null);const r=e.touches,o=e.changedTouches;if(a=Date.now(),1===r.length&&1===o.length){c=a,Bc(r[0],h);const o=h[0],n=h[1],l=r[0].pageX,u=r[0].pageY;i.longTouchTimeout=setTimeout((()=>{t.cameraControl.fire("rightClick",{pagePos:[Math.round(l),Math.round(u)],canvasPos:[Math.round(o),Math.round(n)],event:e},!0),i.longTouchTimeout=null}),s.longTapTimeout)}else c=-1;for(;l.length{if(!s.active||!s.pointerEnabled)return;const t=Date.now(),r=e.touches,a=e.changedTouches,p=n.hasSubs("pickedSurface");null!==i.longTouchTimeout&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null),0===r.length&&1===a.length&&c>-1&&t-c<150&&(u>-1&&c-u<325?(Bc(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=p,o.update(),o.pickResult?(o.pickResult.touchInput=!0,n.fire("doublePicked",o.pickResult),o.pickedSurface&&n.fire("doublePickedSurface",o.pickResult),s.doublePickFlyTo&&d(o.pickResult)):(n.fire("doublePickedNothing"),s.doublePickFlyTo&&d()),u=-1):A.distVec2(l[0],h)<4&&(Bc(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=p,o.update(),o.pickResult?(o.pickResult.touchInput=!0,n.fire("picked",o.pickResult),o.pickedSurface&&n.fire("pickedSurface",o.pickResult)):n.fire("pickedNothing"),u=t),c=-1),l.length=r.length;for(let e=0,t=r.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 yc(this,this._configs),pivotController:new mc(s,this._configs),panController:new hc(s),cameraFlight:new qh(this,{duration:.5})},this._handlers=[new xc(this.scene,this._controllers,this._configs,this._states,this._updates),new Mc(this.scene,this._controllers,this._configs,this._states,this._updates),new gc(this.scene,this._controllers,this._configs,this._states,this._updates),new Rc(this.scene,this._controllers,this._configs,this._states,this._updates),new Dc(this.scene,this._controllers,this._configs,this._states,this._updates),new Fc(this.scene,this._controllers,this._configs,this._states,this._updates),new Cc(this.scene,this._controllers,this._configs,this._states,this._updates)],this._cameraUpdater=new Oc(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",y.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,i=s.length;e0?jc(t):null,n=s&&s.length>0?jc(s):null,a=e=>{if(!e)return;var t=!0;(n&&n[e.type]||o&&!o[e.type])&&(t=!1),t&&i.push(e.id);const s=e.children;if(s)for(var r=0,l=s.length;r>t;i.sort(rA);const s=new Int32Array(e.length);for(let t=0,r=i.length;te[t+1]){let i=e[t];e[t]=e[t+1],e[t+1]=i}oA=new Int32Array(e),t.sort(nA);const i=new Int32Array(e.length);for(let s=0,r=t.length;st){let i=e;e=t,t=i}function i(i,s){return i!==e?e-i:s!==t?t-s:0}let s=0,r=(o.length>>1)-1;for(;s<=r;){const e=r+s>>1,t=i(o[2*e],o[2*e+1]);if(t>0)s=e+1;else{if(!(t<0))return e;r=e-1}}return-s-1}const a=new Int32Array(o.length/2);a.fill(0);const l=s.length/3;if(l>8*(1<u.maxNumPositions&&(u=c()),u.bucketNumber>8)return[e];let p;-1===A[l]&&(A[l]=u.numPositions++,u.positionsCompressed.push(s[3*l]),u.positionsCompressed.push(s[3*l+1]),u.positionsCompressed.push(s[3*l+2])),-1===A[h]&&(A[h]=u.numPositions++,u.positionsCompressed.push(s[3*h]),u.positionsCompressed.push(s[3*h+1]),u.positionsCompressed.push(s[3*h+2])),-1===A[d]&&(A[d]=u.numPositions++,u.positionsCompressed.push(s[3*d]),u.positionsCompressed.push(s[3*d+1]),u.positionsCompressed.push(s[3*d+2])),u.indices.push(A[l]),u.indices.push(A[h]),u.indices.push(A[d]),(p=n(l,h))>=0&&0===a[p]&&(a[p]=1,u.edgeIndices.push(A[o[2*p]]),u.edgeIndices.push(A[o[2*p+1]])),(p=n(l,d))>=0&&0===a[p]&&(a[p]=1,u.edgeIndices.push(A[o[2*p]]),u.edgeIndices.push(A[o[2*p+1]])),(p=n(h,d))>=0&&0===a[p]&&(a[p]=1,u.edgeIndices.push(A[o[2*p]]),u.edgeIndices.push(A[o[2*p+1]]))}const d=t/8*2,p=t/8,g=2*s.length+(r.length+o.length)*d;let m=0,f=-s.length/3;return h.forEach((e=>{m+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*p,f+=e.positionsCompressed.length/3})),m>g?[e]:(i&&function(e,t){const i={};let s=0;e.forEach((e=>{const t=e.indices,r=e.edgeIndices,o=e.positionsCompressed;for(let e=0,s=t.length;e0){const e=t._meshes;for(let t=0,i=e.length;t0){const e=this._meshes;for(let t=0,i=e.length;t{delete Jl[t],i.destroy()}))),i}(this.scene.viewer),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this._aabb=u.collapseAABB3(),this._aabbDirty=!0,this._quantizationRanges={},this._vboInstancingLayers={},this._vboBatchingLayers={},this._dtxLayers={},this.layerList=[],this._entityList=[],this._geometries={},this._dtxBuckets={},this._textures={},this._textureSets={},this._transforms={},this._meshes={},this._entities={},this._scheduledMeshes={},this._meshesCfgsBeforeMeshCreation={},this.renderFlags=new Fi,this.numGeometries=0,this.numPortions=0,this.numVisibleLayerPortions=0,this.numTransparentLayerPortions=0,this.numXRayedLayerPortions=0,this.numHighlightedLayerPortions=0,this.numSelectedLayerPortions=0,this.numEdgesLayerPortions=0,this.numPickableLayerPortions=0,this.numClippableLayerPortions=0,this.numCulledLayerPortions=0,this.numEntities=0,this._numTriangles=0,this._numLines=0,this._numPoints=0,this._edgeThreshold=t.edgeThreshold||10,this._origin=u.vec3(t.origin||[0,0,0]),this._position=u.vec3(t.position||[0,0,0]),this._rotation=u.vec3(t.rotation||[0,0,0]),this._quaternion=u.vec4(t.quaternion||[0,0,0,1]),this._conjugateQuaternion=u.vec4(t.quaternion||[0,0,0,1]),t.rotation&&u.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._scale=u.vec3(t.scale||[1,1,1]),this._worldRotationMatrix=u.mat4(),this._worldRotationMatrixConjugate=u.mat4(),this._matrix=u.mat4(),this._matrixDirty=!0,this._rebuildMatrices(),this._worldNormalMatrix=u.mat4(),u.inverseMat4(this._matrix,this._worldNormalMatrix),u.transposeMat4(this._worldNormalMatrix),(t.matrix||t.position||t.rotation||t.scale||t.quaternion)&&(this._viewMatrix=u.mat4(),this._viewNormalMatrix=u.mat4(),this._viewMatrixDirty=!0,this._matrixNonIdentity=!0),this._opacity=1,this._colorize=[1,1,1],this._saoEnabled=!1!==t.saoEnabled,this._pbrEnabled=!1!==t.pbrEnabled,this._colorTextureEnabled=!1!==t.colorTextureEnabled,this._isModel=t.isModel,this._isModel&&this.scene._registerModel(this),this._onCameraViewMatrix=this.scene.camera.on("matrix",(()=>{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 ss({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new zl({id:"defaultMetalRoughTexture",texture:new ss({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),i=new zl({id:"defaultNormalsTexture",texture:new ss({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),s=new zl({id:"defaultEmissiveTexture",texture:new ss({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),r=new zl({id:"defaultOcclusionTexture",texture:new ss({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})});this._textures.defaultColorTexture=e,this._textures.defaultMetalRoughTexture=t,this._textures.defaultNormalsTexture=i,this._textures.defaultEmissiveTexture=s,this._textures.defaultOcclusionTexture=r,this._textureSets.defaultTextureSet=new Hl({id:"defaultTextureSet",model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:i,emissiveTexture:s,occlusionTexture:r})}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]),u.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]),u.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||wA),u.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),u.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),u.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),u.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&&(u.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),u.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),u.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),u.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,i=this._entityList.length;t0}set xrayed(e){e=!!e,this._xrayed=e;for(let t=0,i=this._entityList.length;t0}set highlighted(e){e=!!e,this._highlighted=e;for(let t=0,i=this._entityList.length;t0}set selected(e){e=!!e,this._selected=e;for(let t=0,i=this._entityList.length;t0}set edges(e){e=!!e,this._edges=e;for(let t=0,i=this._entityList.length;t0}set pickable(e){e=!1!==e,this._pickable=e;for(let t=0,i=this._entityList.length;t0)e.colorsCompressed=new Uint8Array(e.colorsCompressed);else if(e.colors&&e.colors.length>0){const t=e.colors,i=new Uint8Array(t.length);for(let e=0,s=t.length;e{l.setImage(A,{minFilter:i,magFilter:s,wrapS:r,wrapT:o,wrapR:n,flipY:e.flipY,encoding:a}),this.glRedraw()},A.src=e.src;break;default:this._textureTranscoder?f.loadArraybuffer(e.src,(e=>{e.byteLength?this._textureTranscoder.transcode([e],l).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,l).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:l})}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 i,s,r,o,n;if(void 0!==e.colorTextureId&&null!==e.colorTextureId){if(i=this._textures[e.colorTextureId],!i)return void this.error(`[createTextureSet] Texture not found: ${e.colorTextureId} - ensure that you create it first with createTexture()`)}else i=this._textures.defaultColorTexture;if(void 0!==e.metallicRoughnessTextureId&&null!==e.metallicRoughnessTextureId){if(s=this._textures[e.metallicRoughnessTextureId],!s)return void this.error(`[createTextureSet] Texture not found: ${e.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`)}else s=this._textures.defaultMetalRoughTexture;if(void 0!==e.normalsTextureId&&null!==e.normalsTextureId){if(r=this._textures[e.normalsTextureId],!r)return void this.error(`[createTextureSet] Texture not found: ${e.normalsTextureId} - ensure that you create it first with createTexture()`)}else r=this._textures.defaultNormalsTexture;if(void 0!==e.emissiveTextureId&&null!==e.emissiveTextureId){if(o=this._textures[e.emissiveTextureId],!o)return void this.error(`[createTextureSet] Texture not found: ${e.emissiveTextureId} - ensure that you create it first with createTexture()`)}else o=this._textures.defaultEmissiveTexture;if(void 0!==e.occlusionTextureId&&null!==e.occlusionTextureId){if(n=this._textures[e.occlusionTextureId],!n)return void this.error(`[createTextureSet] Texture not found: ${e.occlusionTextureId} - ensure that you create it first with createTexture()`)}else n=this._textures.defaultOcclusionTexture;const a=new Hl({id:t,model:this,colorTexture:i,metallicRoughnessTexture:s,normalsTexture:r,emissiveTexture:o,occlusionTexture:n});return this._textureSets[t]=a,a}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 i=new gA({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[i.id]=i,i}createMesh(e){if(void 0===e.id||null===e.id)return this.error("[createMesh] SceneModel.createMesh() config missing: id"),!1;if(this._scheduledMeshes[e.id])return this.error(`[createMesh] SceneModel already has a mesh with this ID: ${e.id}`),!1;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 this.error(`Unsupported value for 'primitive': '${primitive}' ('geometryId' is absent) - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'.`),!1;if(!e.positions&&!e.positionsCompressed&&!e.buckets)return this.error("Param expected: 'positions', 'positionsCompressed' or `buckets` ('geometryId' is absent)"),!1;if(e.positions&&(e.positionsDecodeMatrix||e.positionsDecodeBoundary))return this.error("Illegal params: 'positions' not expected with 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(e.positionsCompressed&&!e.positionsDecodeMatrix&&!e.positionsDecodeBoundary)return this.error("Param expected: 'positionsCompressed' should be accompanied by 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(e.uvCompressed&&!e.uvDecodeMatrix)return this.error("Param expected: 'uvCompressed' should be accompanied by `uvDecodeMatrix` ('geometryId' is absent)"),!1;if(!(e.buckets||e.indices||"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive)){const t=(e.positions||e.positionsCompressed).length/3;e.indices=this._createDefaultIndices(t)}if(!e.buckets&&!e.indices&&"points"!==e.primitive)return e.indices=this._createDefaultIndices(numIndices),this.error(`Param expected: indices (required for '${e.primitive}' primitive type)`),!1;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'"),!1;const t=!(!this._dtxEnabled||"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive||e.textureSetId);if(e.origin=e.origin?u.addVec3(this._origin,e.origin,u.vec3()):this._origin,e.matrix)e.meshMatrix=e.matrix;else if(e.scale||e.rotation||e.position){const t=e.scale||_A,i=e.position||vA,s=e.rotation||bA;u.eulerToQuaternion(s,"XYZ",xA),e.meshMatrix=u.composeMat4(i,xA,t,u.mat4())}if(e.positionsDecodeBoundary&&(e.positionsDecodeMatrix=mr(e.positionsDecodeBoundary,u.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])]):yA,e.opacity=void 0!==e.opacity&&null!==e.opacity?Math.floor(255*e.opacity):255,e.positions){const t=u.vec3(),i=[];H(e.positions,i,t)&&(e.positions=i,e.origin=u.addVec3(e.origin,t,t))}if(e.positions){const t=u.collapseAABB3();e.positionsDecodeMatrix=u.mat4(),u.expandAABB3Points3(t,e.positions),e.positionsCompressed=gr(e.positions,t,e.positionsDecodeMatrix),e.aabb=t}else if(e.positionsCompressed){const t=u.collapseAABB3();u.expandAABB3Points3(t,e.positionsCompressed),Et.decompressAABB(t,e.positionsDecodeMatrix),e.aabb=t}if(e.buckets){const t=u.collapseAABB3();for(let i=0,s=e.buckets.length;i>24&255,r=i>>16&255,o=i>>8&255,n=255&i;switch(e.pickColor=new Uint8Array([n,o,r,s]),e.solid="solid"===e.primitive,t.origin=u.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),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 i=0,s=e.buckets.length;i>>0).toString(16)}_getVBOInstancingLayer(e){const t=this,i=e.origin,s=e.textureSetId||"-",r=e.geometryId,o=`${Math.round(i[0])}.${Math.round(i[1])}.${Math.round(i[2])}.${s}.${r}`;let n=this._vboInstancingLayers[o];if(n)return n;let a=e.textureSet;const l=e.geometry;for(;!n;)switch(l.primitive){case"triangles":case"surface":n=new xo({model:t,textureSet:a,geometry:l,origin:i,layerIndex:0,solid:!1});break;case"solid":n=new xo({model:t,textureSet:a,geometry:l,origin:i,layerIndex:0,solid:!0});break;case"lines":n=new an({model:t,textureSet:a,geometry:l,origin:i,layerIndex:0});break;case"points":n=new ea({model:t,textureSet:a,geometry:l,origin:i,layerIndex:0})}return this._vboInstancingLayers[o]=n,this.layerList.push(n),n}createEntity(e){if(void 0===e.id?e.id=u.createUUID():this.scene.components[e.id]&&(this.error(`Scene already has a Component with this ID: ${e.id} - will assign random ID`),e.id=u.createUUID()),void 0===e.meshIds)return void this.error("Config missing: meshIds");let t=0;this._visible&&!1!==e.visible&&(t|=G),this._pickable&&!1!==e.pickable&&(t|=K),this._culled&&!1!==e.culled&&(t|=W),this._clippable&&!1!==e.clippable&&(t|=X),this._collidable&&!1!==e.collidable&&(t|=Y),this._edges&&!1!==e.edges&&(t|=$),this._xrayed&&!1!==e.xrayed&&(t|=q),this._highlighted&&!1!==e.highlighted&&(t|=Z),this._selected&&!1!==e.selected&&(t|=J),e.flags=t,this._createEntity(e)}_createEntity(e){let t=[];for(let i=0,s=e.meshIds.length;ie.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,i=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 i=0,s=t.visibleLayers.length;i65536?16:8)}else n=[{positionsCompressed:s,indices:r,edgeIndices:o}];return n}class CA extends I{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;ep.has(e.id)||m.has(e.id)||g.has(e.id))).reduce(((e,i)=>{let s,r=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}(i.colorize);i.xrayed?(s=0===t.xrayMaterial.fillAlpha&&0!==t.xrayMaterial.edgeAlpha?.1:t.xrayMaterial.fillAlpha,s=Math.round(255*s).toString(16).padStart(2,"0"),r=s+r):p.has(i.id)&&(s=Math.round(255*i.opacity).toString(16).padStart(2,"0"),r=s+r),e[r]||(e[r]=[]);const o=i.id,n=i.originalSystemId,a={ifc_guid:n,originating_system:this.originatingSystem};return n!==o&&(a.authoring_tool_id=o),e[r].push(a),e}),{}),_=Object.entries(f).map((([e,t])=>({color:e,components:t})));o.components.coloring=_;const v=t.objectIds,b=t.visibleObjects,x=t.visibleObjectIds,w=v.filter((e=>!b[e])),y=t.selectedObjectIds;return e.defaultInvisible||x.length0&&e.clipping_planes.forEach((function(e){let t=TA(e.location,MA),i=TA(e.direction,MA);A&&u.negateVec3(i),u.subVec3(t,l),r.yUp&&(t=LA(t),i=LA(i)),new zi(s,{pos:t,dir:i})})),s.clearLines(),e.lines&&e.lines.length>0){const t=[],i=[];let r=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),i.push(r++),i.push(r++))})),new CA(s,{positions:t,indices:i,clippable:!1,collidable:!0})}if(s.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){const t=e.bitmap_type||"jpg",i=e.bitmap_data;let o=TA(e.location,EA),n=TA(e.normal,FA),a=TA(e.up,IA),l=e.height||1;t&&i&&o&&n&&a&&(r.yUp&&(o=LA(o),n=LA(n),a=LA(a)),new ms(s,{src:i,type:t,pos:o,normal:n,up:a,clippable:!1,collidable:!0,height:l}))})),a&&(s.setObjectsXRayed(s.xrayedObjectIds,!1),s.setObjectsHighlighted(s.highlightedObjectIds,!1),s.setObjectsSelected(s.selectedObjectIds,!1)),e.components){if(e.components.visibility){e.components.visibility.default_visibility?(s.setObjectsVisible(s.objectIds,!0),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!1))))):(s.setObjectsVisible(s.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!0)))));const r=e.components.visibility.view_setup_hints;r&&(!1===r.spaces_visible&&s.setObjectsVisible(i.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==r.spaces_translucent&&s.setObjectsXRayed(i.metaScene.getObjectIDsByType("IfcSpace"),!0),r.space_boundaries_visible,!1===r.openings_visible&&s.setObjectsVisible(i.metaScene.getObjectIDsByType("IfcOpening"),!0),r.space_boundaries_translucent,void 0!==r.openings_translucent&&s.setObjectsXRayed(i.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(s.setObjectsSelected(s.selectedObjectIds,!1),e.components.selection.forEach((e=>this._withBCFComponent(t,e,(e=>e.selected=!0))))),e.components.translucency&&(s.setObjectsXRayed(s.xrayedObjectIds,!1),e.components.translucency.forEach((e=>this._withBCFComponent(t,e,(e=>e.xrayed=!0))))),e.components.coloring&&e.components.coloring.forEach((e=>{let i=e.color,s=0,r=!1;8===i.length&&(s=parseInt(i.substring(0,2),16)/256,s<=1&&s>=.95&&(s=1),i=i.substring(2),r=!0);const o=[parseInt(i.substring(0,2),16)/256,parseInt(i.substring(2,4),16)/256,parseInt(i.substring(4,6),16)/256];e.components.map((e=>this._withBCFComponent(t,e,(e=>{e.colorize=o,r&&(e.opacity=s)}))))}))}if(e.perspective_camera||e.orthogonal_camera){let a,A,h,c;if(e.perspective_camera?(a=TA(e.perspective_camera.camera_view_point,MA),A=TA(e.perspective_camera.camera_direction,MA),h=TA(e.perspective_camera.camera_up_vector,MA),r.perspective.fov=e.perspective_camera.field_of_view,c="perspective"):(a=TA(e.orthogonal_camera.camera_view_point,MA),A=TA(e.orthogonal_camera.camera_direction,MA),h=TA(e.orthogonal_camera.camera_up_vector,MA),r.ortho.scale=e.orthogonal_camera.view_to_world_scale,c="ortho"),u.subVec3(a,l),r.yUp&&(a=LA(a),A=LA(A),h=LA(h)),o){const e=s.pick({pickSurface:!0,origin:a,direction:A});A=e?e.worldPos:u.addVec3(a,A,MA)}else A=u.addVec3(a,A,MA);n?(r.eye=a,r.look=A,r.up=h,r.projection=c):i.cameraFlight.flyTo({eye:a,look:A,up:h,duration:t.duration,projection:c})}}_withBCFComponent(e,t,i){const s=this.viewer,r=s.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){const o=t.authoring_tool_id,n=r.objects[o];if(n)return void i(n);if(e.updateCompositeObjects){if(s.metaScene.metaObjects[o])return void r.withObjects(s.metaScene.getObjectIDsInSubtree(o),i)}}if(t.ifc_guid){const o=t.ifc_guid,n=r.objects[o];if(n)return void i(n);if(e.updateCompositeObjects){if(s.metaScene.metaObjects[o])return void r.withObjects(s.metaScene.getObjectIDsInSubtree(o),i)}Object.keys(r.models).forEach((t=>{const n=u.globalizeObjectId(t,o),a=r.objects[n];if(a)i(a);else if(e.updateCompositeObjects){s.metaScene.metaObjects[n]&&r.withObjects(s.metaScene.getObjectIDsInSubtree(n),i)}}))}}destroy(){super.destroy()}}function SA(e){return{x:e[0],y:e[1],z:e[2]}}function TA(e,t){return(t=new Float64Array(3))[0]=e.x,t[1]=e.y,t[2]=e.z,t}function RA(e){return new Float64Array([e[0],-e[2],e[1]])}function LA(e){return new Float64Array([e[0],e[2],-e[1]])}const UA=u.vec3(),kA=(e,t,i,s)=>{var r=e-i,o=t-s;return Math.sqrt(r*r+o*o)};class OA extends I{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 i=this.plugin.viewer.scene;this._originMarker=new oe(i,t.origin),this._targetMarker=new oe(i,t.target),this._originWorld=u.vec3(),this._targetWorld=u.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 s=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,r=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,o=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},n=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))},l=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,A=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._targetDot=new ae(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._lengthWire=new ne(this._container,{color:this._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._xAxisWire=new ne(this._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._yAxisWire=new ne(this._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._zAxisWire=new ne(this._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._lengthLabel=new le(this._container,{fillColor:this._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._xAxisLabel=new le(this._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._yAxisLabel=new le(this._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._zAxisLabel=new le(this._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),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._labelsOnWires=!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=i.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=i.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=i.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onMetricsUnits=i.metrics.on("units",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsScale=i.metrics.on("scale",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsOrigin=i.metrics.on("origin",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onSectionPlaneUpdated=i.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,this.labelsOnWires=t.labelsOnWires}_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&&(u.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],i=this._targetMarker.viewPos[2];if(t>-.3||i>-.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){u.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var s=this._pp,r=this._cp,o=e.canvas.canvas.getBoundingClientRect();const t=this._container.getBoundingClientRect();var n=o.top-t.top,a=o.left-t.left,l=e.canvas.boundary,A=l[2],h=l[3],c=0;const i=this.plugin.viewer.scene.metrics,g=i.scale,m=i.units,f=i.unitsInfo[m].abbrev;for(var d=0,p=s.length;d{const t=e.snappedCanvasPos||e.canvasPos;if(r=!0,o.set(e.worldPos),n.set(e.canvasPos),0===this._mouseState){const i=s.getBoundingClientRect(),r=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop,n=i.left+r,a=i.top+o;this._markerDiv.style.left=n+t[0]-5+"px",this._markerDiv.style.top=a+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"),A=e.entity}else this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px";s.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=o.slice(),this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px")})),s.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(a=e.clientX,l=e.clientY)}),s.addEventListener("mouseup",this._onMouseUp=t=>{1===t.which&&(t.clientX>a+20||t.clientXl+20||t.clientY{this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos),r=!1,this._markerDiv.style.left="-100px",this._markerDiv.style.top="-100px",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=!1,this._currentDistanceMeasurement.targetVisible=!1,this._currentDistanceMeasurement.axisVisible=!1),s.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 VA extends N{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.defaultLabelsOnWires=!1!==t.defaultLabelsOnWires,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 QA(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,i=e.target,s=new OA(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},target:{entity:i.entity,worldPos:i.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,labelsOnWires:!1!==e.labelsOnWires&&!1!==this.defaultLabelsOnWires,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[s.id]=s,s.on("destroyed",(()=>{delete this._measurements[s.id]})),this.fire("measurementCreated",s),s}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,i]of Object.entries(this.measurements))i.labelShown=e}setAxisVisible(e){for(const[t,i]of Object.entries(this.measurements))i.axisVisible=e;this.defaultAxisVisible=e}getAxisVisible(){return this.defaultAxisVisible}clear(){const e=Object.keys(this._measurements);for(var t=0,i=e.length;t{i=1e3*this._delayBeforeRestoreSeconds,s||(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,s=!0)};this._onCanvasBoundary=e.scene.canvas.on("boundary",r),this._onCameraMatrix=e.scene.camera.on("matrix",r),this._onSceneTick=e.scene.on("tick",(t=>{s&&(i-=t.deltaTime,(!this._delayBeforeRestore||i<=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),s=!1))}));let o=!1;this._onSceneMouseDown=e.scene.input.on("mousedown",(()=>{o=!0})),this._onSceneMouseUp=e.scene.input.on("mouseup",(()=>{o=!1})),this._onSceneMouseMove=e.scene.input.on("mousemove",(()=>{o&&r()}))}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 HA{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 i=this._messages[this._locale];if(!i)return null;const s=zA(e,i);return s?t?GA(s,t):s:null}translatePlurals(e,t,i){const s=this._messages[this._locale];if(!s)return null;let r=zA(e,s);return r=0===(t=parseInt(""+t,10))?r.zero:t>1?r.other:r.one,r?(r=GA(r,[t]),i&&(r=GA(r,i)),r):null}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];if(s)for(const e in s)if(s.hasOwnProperty(e)){s[e].callback(t)}}on(t,i){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new e),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});let s=this._eventSubs[t];s||(s={},this._eventSubs[t]=s);const r=this._eventSubIDMap.addItem();s[r]={callback:i},this._eventSubEvents[r]=t;const o=this._events[t];return void 0!==o&&i(o),r}off(e){if(null==e)return;if(!this._eventSubEvents)return;const t=this._eventSubEvents[e];if(t){delete this._eventSubEvents[e];const i=this._eventSubs[t];i&&delete i[e],this._eventSubIDMap.removeItem(e)}}}function zA(e,t){if(t[e])return t[e];const i=e.split(".");let s=t;for(let e=0,t=i.length;s&&e=1;e>1&&(e=1);const i=this.easing?ZA._ease(e,0,1,1):e,s=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?(u.subVec3(s.eye,s.look,qA),s.eye=u.lerpVec3(i,0,1,this._eye1,this._eye2,XA),s.look=u.subVec3(XA,qA,KA)):this._flyingLook&&(s.look=u.lerpVec3(i,0,1,this._look1,this._look2,KA),s.up=u.lerpVec3(i,0,1,this._up1,this._up2,YA)):this._flyingEyeLookUp&&(s.eye=u.lerpVec3(i,0,1,this._eye1,this._eye2,XA),s.look=u.lerpVec3(i,0,1,this._look1,this._look2,KA),s.up=u.lerpVec3(i,0,1,this._up1,this._up2,YA)),this._projection2){const t="ortho"===this._projection2?ZA._easeOutExpo(e,0,1,1):ZA._easeInCubic(e,0,1,1);s.customProjection.matrix=u.lerpMat4(t,0,1,this._projMatrix1,this._projMatrix2)}else s.ortho.scale=this._orthoScale1+e*(this._orthoScale2-this._orthoScale1);if(t)return s.ortho.scale=this._orthoScale2,void this.stop();C.scheduleTask(this._update,this)}static _ease(e,t,i,s){return-i*(e/=s)*(e-2)+t}static _easeInCubic(e,t,i,s){return i*(e/=s)*e*e+t}static _easeOutExpo(e,t,i,s){return i*(1-Math.pow(2,-10*e/s))+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 JA extends I{get type(){return"CameraPathAnimation"}constructor(e,t={}){super(e,t),this._cameraFlightAnimation=new ZA(this),this._t=0,this.state=JA.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,i;const s=performance.now(),r=this._lastTime?.001*(s-this._lastTime):0;if(this._lastTime=s,0!==r)switch(this.state){case JA.SCRUBBING:return;case JA.PLAYING:if(this._t+=this._playingRate*r,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=JA.SCRUBBING,this._t=this._cameraPath.frames[t-1].t,void this.fire("stopped");e.loadFrame(this._t);break;case JA.PLAYING_TO:i=this._t+this._playingRate*r*this._playingDir,(this._playingDir<0&&i<=this._playingToT||this._playingDir>0&&i>=this._playingToT)&&(i=this._playingToT,this.state=JA.SCRUBBING,this.fire("stopped")),this._t=i,e.loadFrame(this._t)}}_ease(e,t,i,s){return-i*(e/=s)*(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=JA.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=JA.PLAYING_TO)}playToFrame(e){const t=this._cameraPath;if(!t)return;const i=t.frames[e];i?this.playToT(i.t):this.error("playToFrame - frame index out of range: "+e)}flyToFrame(e,t){const i=this._cameraPath;if(!i)return;const s=i.frames[e];s?(this.state=JA.SCRUBBING,this._cameraFlightAnimation.flyTo(s,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=JA.SCRUBBING)}scrubToFrame(e){const t=this._cameraPath;if(!t)return;if(!this.scene.camera)return;t.frames[e]?(t.loadFrame(this._t),this.state=JA.SCRUBBING):this.error("playToFrame - frame index out of range: "+e)}stop(){this.state=JA.SCRUBBING,this.fire("stopped")}destroy(){super.destroy(),this.scene.off(this._tick)}}JA.STOPPED=0,JA.SCRUBBING=1,JA.PLAYING=2,JA.PLAYING_TO=3,u.vec3(),u.vec3(),u.vec3(),u.vec3([0,-1,0]),u.vec4([0,0,0,1]);const $A=u.vec3();class eh{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,i){this.numObjects=0,this._mask=i?f.apply(i,{}):null;const s=!i||i.visible,r=!i||i.edges,o=!i||i.xrayed,n=!i||i.highlighted,a=!i||i.selected,l=!i||i.clippable,A=!i||i.pickable,h=!i||i.colorize,c=!i||i.opacity,u=t.metaObjects,d=e.objects;for(let e=0,t=u.length;e{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=u.vec3();u.decomposeMat4(u.inverseMat4(this._scene.viewer.camera.viewMatrix,u.mat4()),t,u.vec4(),u.vec3());const i=u.distVec3(t,e);let s=Math.tan(Math.PI/500)*i*this._pivotSphereSize;"ortho"==this._scene.camera.projection&&(s/=this._scene.camera.ortho.scale/2),j(e,this._rtcCenter,this._rtcPos),this._pivotSphereGeometry=new us(this._scene,Hi({radius:s})),this._pivotSphere=new Qi(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){u.transformPoint3(e.viewMatrix,this.getPivotPos(),this._pivotViewPos),this._pivotViewPos[3]=1,u.transformPoint4(e.projMatrix,this._pivotViewPos,this._pivotProjPos);const i=t.boundary,s=i[2],r=i[3];this._pivotCanvasPos[0]=Math.floor((1+this._pivotProjPos[0]/this._pivotProjPos[3])*s/2),this._pivotCanvasPos[1]=Math.floor((1-this._pivotProjPos[1]/this._pivotProjPos[3])*r/2);let o=t._lastBoundingClientRect;if(!o||t._canvasSizeChanged){const e=t.canvas;o=t._lastBoundingClientRect=e.getBoundingClientRect()}this._pivotElement&&(this._pivotElement.style.left=Math.floor(o.left+this._pivotCanvasPos[0])-this._pivotElement.clientWidth/2+window.scrollX+"px",this._pivotElement.style.top=Math.floor(o.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),u.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 Ut(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=u.lookAtMat4v(e.eye,e.look,e.worldUp);u.transformPoint3(t,this.getPivotPos(),this._cameraOffset);const i=this.getPivotPos();this._cameraOffset[2]+=u.distVec3(e.eye,i),t=u.inverseMat4(t);const s=u.transformVec3(t,this._cameraOffset),r=u.vec3();if(u.subVec3(e.eye,i,r),u.addVec3(r,s),e.zUp){const e=r[1];r[1]=r[2],r[2]=e}this._radius=u.lenVec3(r),this._polar=Math.acos(r[1]/this._radius),this._azimuth=Math.atan2(r[0],r[2]),this._pivoting=!0}_cameraLookingDownwards(){const e=this._scene.camera,t=u.normalizeVec3(u.subVec3(e.look,e.eye,hh)),i=u.cross3Vec3(t,e.worldUp,ch);return u.sqLenVec3(i)<=1e-4}getPivoting(){return this._pivoting}setPivotPos(e){this._pivotWorldPos.set(e),this._pivotPosSet=!0}setCanvasPivotPos(e){const t=this._scene.camera,i=Math.abs(u.distVec3(this._scene.center,t.eye)),s=t.project.transposedMatrix,r=s.subarray(8,12),o=s.subarray(12),n=[0,0,-1,1],a=u.dotVec4(n,r)/u.dotVec4(n,o),l=dh;t.project.unproject(e,a,ph,gh,l);const A=u.normalizeVec3(u.subVec3(l,t.eye,hh)),h=u.addVec3(t.eye,u.mulVec3Scalar(A,i,ch),uh);this.setPivotPos(h)}getPivotPos(){return this._pivotPosSet?this._pivotWorldPos:this._scene.camera.look}continuePivot(e,t){if(!this._pivoting)return;if(0===e&&0===t)return;const i=this._scene.camera;var s=-e;const r=-t;1===i.worldUp[2]&&(s=-s),this._azimuth+=.01*-s,this._polar+=.01*r,this._polar=u.clamp(this._polar,.001,Math.PI-.001);const o=[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===i.worldUp[2]){const e=o[1];o[1]=o[2],o[2]=e}const n=u.lenVec3(u.subVec3(i.look,i.eye,u.vec3())),a=this.getPivotPos();u.addVec3(o,a);let l=u.lookAtMat4v(o,a,i.worldUp);l=u.inverseMat4(l);const A=u.transformVec3(l,this._cameraOffset);l[12]-=A[0],l[13]-=A[1],l[14]-=A[2];const h=[l[8],l[9],l[10]];i.eye=[l[12],l[13],l[14]],u.subVec3(i.eye,u.mulVec3Scalar(h,n),i.look),i.up=[l[4],l[5],l[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 fh{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=u.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 xe;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 _h=u.vec2();class vh{constructor(e,t,i,s,r){this._scene=e;const o=t.pickController;let n,a,l,A=0,h=0,c=0,d=0,p=!1;const g=u.vec3();let m=!0;const f=this._scene.canvas.canvas,_=[];function v(e=!0){f.style.cursor="move",A=s.pointerCanvasPos[0],h=s.pointerCanvasPos[1],c=s.pointerCanvasPos[0],d=s.pointerCanvasPos[1],e&&(o.pickCursorPos=s.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),o.picked&&o.pickedSurface&&o.pickResult&&o.pickResult.worldPos?(p=!0,g.set(o.pickResult.worldPos)):p=!1)}document.addEventListener("keydown",this._documentKeyDownHandler=t=>{if(!i.active||!i.pointerEnabled||!e.input.keyboardEnabled)return;const s=t.keyCode;_[s]=!0}),document.addEventListener("keyup",this._documentKeyUpHandler=t=>{if(!i.active||!i.pointerEnabled||!e.input.keyboardEnabled)return;const s=t.keyCode;_[s]=!1}),f.addEventListener("mousedown",this._mouseDownHandler=t=>{if(i.active&&i.pointerEnabled)switch(t.which){case 1:_[e.input.KEY_SHIFT]||i.planView?(n=!0,v()):(n=!0,v(!1));break;case 2:a=!0,v();break;case 3:l=!0,i.panRightClick&&v()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=()=>{if(!i.active||!i.pointerEnabled)return;if(!n&&!a&&!l)return;const t=e.canvas.boundary,o=t[2],c=t[3],d=s.pointerCanvasPos[0],m=s.pointerCanvasPos[1];if(_[e.input.KEY_SHIFT]||i.planView||!i.panRightClick&&a||i.panRightClick&&l){const t=d-A,i=m-h,s=e.camera;if("perspective"===s.projection){const o=Math.abs(p?u.lenVec3(u.subVec3(g,e.camera.eye,[])):e.camera.eyeLookDist)*Math.tan(s.perspective.fov/2*Math.PI/180);r.panDeltaX+=1.5*t*o/c,r.panDeltaY+=1.5*i*o/c}else r.panDeltaX+=.5*s.ortho.scale*(t/c),r.panDeltaY+=.5*s.ortho.scale*(i/c)}else!n||a||l||i.planView||(i.firstPerson?(r.rotateDeltaY-=(d-A)/o*i.dragRotationRate/2,r.rotateDeltaX+=(m-h)/c*(i.dragRotationRate/4)):(r.rotateDeltaY-=(d-A)/o*(1.5*i.dragRotationRate),r.rotateDeltaX+=(m-h)/c*(1.5*i.dragRotationRate)));A=d,h=m}),f.addEventListener("mousemove",this._canvasMouseMoveHandler=e=>{i.active&&i.pointerEnabled&&s.mouseover&&(m=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{if(i.active&&i.pointerEnabled)switch(e.which){case 1:case 2:case 3:n=!1,a=!1,l=!1}}),f.addEventListener("mouseup",this._mouseUpHandler=e=>{if(i.active&&i.pointerEnabled){if(3===e.which){!function(e,t){if(e){let i=e.target,s=0,r=0,o=0,n=0;for(;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,o+=i.scrollLeft,n+=i.scrollTop,i=i.offsetParent;t[0]=e.pageX+o-s,t[1]=e.pageY+n-r}else e=window.event,t[0]=e.x,t[1]=e.y}(e,_h);const i=_h[0],s=_h[1];Math.abs(i-c)<3&&Math.abs(s-d)<3&&t.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:_h,event:e},!0)}f.style.removeProperty("cursor")}}),f.addEventListener("mouseenter",this._mouseEnterHandler=()=>{i.active&&i.pointerEnabled});const b=1/60;let x=null;f.addEventListener("wheel",this._mouseWheelHandler=e=>{if(!i.active||!i.pointerEnabled)return;const t=performance.now()/1e3;var o=null!==x?t-x:0;x=t,o>.05&&(o=.05),o{if(!i.active||!i.pointerEnabled||!e.input.keyboardEnabled)return;if(!s.mouseover)return;const n=r._isKeyDownForAction(r.AXIS_VIEW_RIGHT),a=r._isKeyDownForAction(r.AXIS_VIEW_BACK),l=r._isKeyDownForAction(r.AXIS_VIEW_LEFT),A=r._isKeyDownForAction(r.AXIS_VIEW_FRONT),h=r._isKeyDownForAction(r.AXIS_VIEW_TOP),c=r._isKeyDownForAction(r.AXIS_VIEW_BOTTOM);if(!(n||a||l||A||h||c))return;const d=e.aabb,p=u.getAABB3Diag(d);u.getAABB3Center(d,bh);const g=Math.abs(p/Math.tan(t.cameraFlight.fitFOV*u.DEGTORAD)),m=1.1*p;Bh.orthoScale=m,n?(Bh.eye.set(u.addVec3(bh,u.mulVec3Scalar(o.worldRight,g,xh),Ph)),Bh.look.set(bh),Bh.up.set(o.worldUp)):a?(Bh.eye.set(u.addVec3(bh,u.mulVec3Scalar(o.worldForward,g,xh),Ph)),Bh.look.set(bh),Bh.up.set(o.worldUp)):l?(Bh.eye.set(u.addVec3(bh,u.mulVec3Scalar(o.worldRight,-g,xh),Ph)),Bh.look.set(bh),Bh.up.set(o.worldUp)):A?(Bh.eye.set(u.addVec3(bh,u.mulVec3Scalar(o.worldForward,-g,xh),Ph)),Bh.look.set(bh),Bh.up.set(o.worldUp)):h?(Bh.eye.set(u.addVec3(bh,u.mulVec3Scalar(o.worldUp,g,xh),Ph)),Bh.look.set(bh),Bh.up.set(u.normalizeVec3(u.mulVec3Scalar(o.worldForward,1,wh),yh))):c&&(Bh.eye.set(u.addVec3(bh,u.mulVec3Scalar(o.worldUp,-g,xh),Ph)),Bh.look.set(bh),Bh.up.set(u.normalizeVec3(u.mulVec3Scalar(o.worldForward,-1,wh)))),!i.firstPerson&&i.followPointer&&t.pivotController.setPivotPos(bh),t.cameraFlight.duration>0?t.cameraFlight.flyTo(Bh,(()=>{t.pivotController.getPivoting()&&i.followPointer&&t.pivotController.showPivot()})):(t.cameraFlight.jumpTo(Bh),t.pivotController.getPivoting()&&i.followPointer&&t.pivotController.showPivot())}))}reset(){}destroy(){this._scene.input.off(this._onSceneKeyDown)}}class Mh{constructor(e,t,i,s,r){this._scene=e;const o=t.pickController,n=t.pivotController,a=t.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;let l=!1,A=!1;const h=this._scene.canvas.canvas,c=i=>{let s;i&&i.worldPos&&(s=i.worldPos);const r=i&&i.entity?i.entity.aabb:e.aabb;if(s){const i=e.camera;u.subVec3(i.eye,i.look,[]),t.cameraFlight.flyTo({aabb:r})}else t.cameraFlight.flyTo({aabb:r})},d=e.tickify(this._canvasMouseMoveHandler=t=>{if(!i.active||!i.pointerEnabled)return;if(l||A)return;const r=a.hasSubs("hover"),n=a.hasSubs("hoverEnter"),h=a.hasSubs("hoverOut"),c=a.hasSubs("hoverOff"),u=a.hasSubs("hoverSurface"),d=a.hasSubs("hoverSnapOrSurface");if(r||n||h||c||u||d)if(o.pickCursorPos=s.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=u,o.scheduleSnapOrPick=d,o.update(),o.pickResult){if(o.pickResult.entity){const t=o.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&a.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),a.fire("hoverEnter",o.pickResult,!0),this._lastPickedEntityId=t)}a.fire("hover",o.pickResult,!0),(o.pickResult.worldPos||o.pickResult.snappedWorldPos)&&a.fire("hoverSurface",o.pickResult,!0)}else void 0!==this._lastPickedEntityId&&(a.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),a.fire("hoverOff",{canvasPos:o.pickCursorPos},!0)});h.addEventListener("mousemove",d),h.addEventListener("mousedown",this._canvasMouseDownHandler=t=>{1===t.which&&(l=!0),3===t.which&&(A=!0);if(1===t.which&&i.active&&i.pointerEnabled&&(s.mouseDownClientX=t.clientX,s.mouseDownClientY=t.clientY,s.mouseDownCursorX=s.pointerCanvasPos[0],s.mouseDownCursorY=s.pointerCanvasPos[1],!i.firstPerson&&i.followPointer&&(o.pickCursorPos=s.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),1===t.which))){const t=o.pickResult;t&&t.worldPos?(n.setPivotPos(t.worldPos),n.startPivot()):(i.smartPivot?n.setCanvasPivotPos(s.pointerCanvasPos):n.setPivotPos(e.camera.look),n.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{1===e.which&&(l=!1),3===e.which&&(A=!1),n.getPivoting()&&n.endPivot()}),h.addEventListener("mouseup",this._canvasMouseUpHandler=r=>{if(!i.active||!i.pointerEnabled)return;if(!(1===r.which))return;if(n.hidePivot(),Math.abs(r.clientX-s.mouseDownClientX)>3||Math.abs(r.clientY-s.mouseDownClientY)>3)return;const l=a.hasSubs("picked"),A=a.hasSubs("pickedNothing"),h=a.hasSubs("pickedSurface"),d=a.hasSubs("doublePicked"),p=a.hasSubs("doublePickedSurface"),g=a.hasSubs("doublePickedNothing");if(!(i.doublePickFlyTo||d||p||g))return(l||A||h)&&(o.pickCursorPos=s.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=h,o.update(),o.pickResult?(a.fire("picked",o.pickResult,!0),o.pickedSurface&&a.fire("pickedSurface",o.pickResult,!0)):a.fire("pickedNothing",{canvasPos:s.pointerCanvasPos},!0)),void(this._clicks=0);if(this._clicks++,1===this._clicks){o.pickCursorPos=s.pointerCanvasPos,o.schedulePickEntity=i.doublePickFlyTo,o.schedulePickSurface=h,o.update();const e=o.pickResult,r=o.pickedSurface;this._timeout=setTimeout((()=>{e?(a.fire("picked",e,!0),r&&(a.fire("pickedSurface",e,!0),!i.firstPerson&&i.followPointer&&(t.pivotController.setPivotPos(e.worldPos),t.pivotController.startPivot()&&t.pivotController.showPivot()))):a.fire("pickedNothing",{canvasPos:s.pointerCanvasPos},!0),this._clicks=0}),i.doubleClickTimeFrame)}else{if(null!==this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),o.pickCursorPos=s.pointerCanvasPos,o.schedulePickEntity=i.doublePickFlyTo||d||p,o.schedulePickSurface=o.schedulePickEntity&&p,o.update(),o.pickResult){if(a.fire("doublePicked",o.pickResult,!0),o.pickedSurface&&a.fire("doublePickedSurface",o.pickResult,!0),i.doublePickFlyTo&&(c(o.pickResult),!i.firstPerson&&i.followPointer)){const e=o.pickResult.entity.aabb,i=u.getAABB3Center(e);t.pivotController.setPivotPos(i),t.pivotController.startPivot()&&t.pivotController.showPivot()}}else if(a.fire("doublePickedNothing",{canvasPos:s.pointerCanvasPos},!0),i.doublePickFlyTo&&(c(),!i.firstPerson&&i.followPointer)){const i=e.aabb,s=u.getAABB3Center(i);t.pivotController.setPivotPos(s),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 Eh{constructor(e,t,i,s,r){this._scene=e;const o=e.input,n=[],a=e.canvas.canvas;let l=!0;this._onSceneMouseMove=o.on("mousemove",(()=>{l=!0})),this._onSceneKeyDown=o.on("keydown",(t=>{i.active&&i.pointerEnabled&&e.input.keyboardEnabled&&s.mouseover&&(n[t]=!0,t===o.KEY_SHIFT&&(a.style.cursor="move"))})),this._onSceneKeyUp=o.on("keyup",(s=>{i.active&&i.pointerEnabled&&e.input.keyboardEnabled&&(n[s]=!1,s===o.KEY_SHIFT&&(a.style.cursor=null),t.pivotController.getPivoting()&&t.pivotController.endPivot())})),this._onTick=e.on("tick",(a=>{if(!i.active||!i.pointerEnabled||!e.input.keyboardEnabled)return;if(!s.mouseover)return;const A=t.cameraControl,h=a.deltaTime/1e3;if(!i.planView){const e=A._isKeyDownForAction(A.ROTATE_Y_POS,n),s=A._isKeyDownForAction(A.ROTATE_Y_NEG,n),o=A._isKeyDownForAction(A.ROTATE_X_POS,n),a=A._isKeyDownForAction(A.ROTATE_X_NEG,n),l=h*i.keyboardRotationRate;(e||s||o||a)&&(!i.firstPerson&&i.followPointer&&t.pivotController.startPivot(),e?r.rotateDeltaY+=l:s&&(r.rotateDeltaY-=l),o?r.rotateDeltaX+=l:a&&(r.rotateDeltaX-=l),!i.firstPerson&&i.followPointer&&t.pivotController.startPivot())}if(!n[o.KEY_CTRL]&&!n[o.KEY_ALT]){const e=A._isKeyDownForAction(A.DOLLY_BACKWARDS,n),o=A._isKeyDownForAction(A.DOLLY_FORWARDS,n);if(e||o){const n=h*i.keyboardDollyRate;!i.firstPerson&&i.followPointer&&t.pivotController.startPivot(),o?r.dollyDelta-=n:e&&(r.dollyDelta+=n),l&&(s.followPointerDirty=!0,l=!1)}}const c=A._isKeyDownForAction(A.PAN_FORWARDS,n),u=A._isKeyDownForAction(A.PAN_BACKWARDS,n),d=A._isKeyDownForAction(A.PAN_LEFT,n),p=A._isKeyDownForAction(A.PAN_RIGHT,n),g=A._isKeyDownForAction(A.PAN_UP,n),m=A._isKeyDownForAction(A.PAN_DOWN,n),f=(n[o.KEY_ALT]?.3:1)*h*i.keyboardPanRate;(c||u||d||p||g||m)&&(!i.firstPerson&&i.followPointer&&t.pivotController.startPivot(),m?r.panDeltaY+=f:g&&(r.panDeltaY+=-f),p?r.panDeltaX+=-f:d&&(r.panDeltaX+=f),u?r.panDeltaZ+=f:c&&(r.panDeltaZ+=-f))}))}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 Fh=u.vec3();class Ih{constructor(e,t,i,s,r){this._scene=e;const o=e.camera,n=t.pickController,a=t.pivotController,l=t.panController;let A=1,h=1,c=null;this._onTick=e.on("tick",(()=>{if(!i.active||!i.pointerEnabled)return;let t="default";if(Math.abs(r.dollyDelta)<.001&&(r.dollyDelta=0),Math.abs(r.rotateDeltaX)<.001&&(r.rotateDeltaX=0),Math.abs(r.rotateDeltaY)<.001&&(r.rotateDeltaY=0),0===r.rotateDeltaX&&0===r.rotateDeltaY||(r.dollyDelta=0),i.followPointer&&--A<=0&&(A=1,0!==r.dollyDelta)){if(0===r.rotateDeltaY&&0===r.rotateDeltaX&&i.followPointer&&s.followPointerDirty&&(n.pickCursorPos=s.pointerCanvasPos,n.schedulePickSurface=!0,n.update(),n.pickResult&&n.pickResult.worldPos?c=n.pickResult.worldPos:(h=1,c=null),s.followPointerDirty=!1),c){const t=Math.abs(u.lenVec3(u.subVec3(c,e.camera.eye,Fh)));h=t/i.dollyProximityThreshold}h{s.mouseover=!0}),o.addEventListener("mouseleave",this._mouseLeaveHandler=()=>{s.mouseover=!1,o.style.cursor=null}),document.addEventListener("mousemove",this._mouseMoveHandler=e=>{Sh(e,o,s.pointerCanvasPos)}),o.addEventListener("mousedown",this._mouseDownHandler=e=>{i.active&&i.pointerEnabled&&(Sh(e,o,s.pointerCanvasPos),s.mouseover=!0)}),o.addEventListener("mouseup",this._mouseUpHandler=e=>{i.active&&i.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 Sh(e,t,i){if(e){const{left:s,top:r}=t.getBoundingClientRect();i[0]=e.clientX-s-window.scrollX,i[1]=e.clientY-r-window.scrollY}else e=window.event,i[0]=e.x,i[1]=e.y;return i}const Th=function(e,t){if(e){let i=e.target,s=0,r=0;for(;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;t[0]=e.pageX-s,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t};class Rh{constructor(e,t,i,s,r){this._scene=e;const o=t.pickController,n=t.pivotController,a=u.vec2(),l=u.vec2(),A=u.vec2(),h=u.vec2(),c=[],d=this._scene.canvas.canvas;let p=0,g=!1;this._onTick=e.on("tick",(()=>{g=!1})),d.addEventListener("touchstart",this._canvasTouchStartHandler=t=>{if(!i.active||!i.pointerEnabled)return;t.preventDefault();const r=t.touches,l=t.changedTouches;for(s.touchStartTime=Date.now(),1===r.length&&1===l.length&&(Th(r[0],a),i.followPointer&&(o.pickCursorPos=a,o.schedulePickSurface=!0,o.update(),i.planView||(o.picked&&o.pickedSurface&&o.pickResult&&o.pickResult.worldPos?(n.setPivotPos(o.pickResult.worldPos),!i.firstPerson&&n.startPivot()&&n.showPivot()):(i.smartPivot?n.setCanvasPivotPos(s.pointerCanvasPos):n.setPivotPos(e.camera.look),!i.firstPerson&&n.startPivot()&&n.showPivot()))));c.length{n.getPivoting()&&n.endPivot()}),d.addEventListener("touchmove",this._canvasTouchMoveHandler=t=>{if(!i.active||!i.pointerEnabled)return;if(t.stopPropagation(),t.preventDefault(),g)return;g=!0;const n=e.canvas.boundary,a=n[2],d=n[3],m=t.touches;if(t.touches.length===p){if(1===p){Th(m[0],l),u.subVec2(l,c[0],h);const t=h[0],o=h[1];if(null!==s.longTouchTimeout&&(Math.abs(t)>i.longTapRadius||Math.abs(o)>i.longTapRadius)&&(clearTimeout(s.longTouchTimeout),s.longTouchTimeout=null),i.planView){const s=e.camera;if("perspective"===s.projection){const n=Math.abs(e.camera.eyeLookDist)*Math.tan(s.perspective.fov/2*Math.PI/180);r.panDeltaX+=t*n/d*i.touchPanRate,r.panDeltaY+=o*n/d*i.touchPanRate}else r.panDeltaX+=.5*s.ortho.scale*(t/d)*i.touchPanRate,r.panDeltaY+=.5*s.ortho.scale*(o/d)*i.touchPanRate}else r.rotateDeltaY-=t/a*(1*i.dragRotationRate),r.rotateDeltaX+=o/d*(1.5*i.dragRotationRate)}else if(2===p){const t=m[0],n=m[1];Th(t,l),Th(n,A);const a=u.geometricMeanVec2(c[0],c[1]),h=u.geometricMeanVec2(l,A),p=u.vec2();u.subVec2(a,h,p);const g=p[0],f=p[1],_=e.camera,v=u.distVec2([t.pageX,t.pageY],[n.pageX,n.pageY]),b=(u.distVec2(c[0],c[1])-v)*i.touchDollyRate;if(r.dollyDelta=b,Math.abs(b)<1)if("perspective"===_.projection){const t=o.pickResult?o.pickResult.worldPos:e.center,s=Math.abs(u.lenVec3(u.subVec3(t,e.camera.eye,[])))*Math.tan(_.perspective.fov/2*Math.PI/180);r.panDeltaX-=g*s/d*i.touchPanRate,r.panDeltaY-=f*s/d*i.touchPanRate}else r.panDeltaX-=.5*_.ortho.scale*(g/d)*i.touchPanRate,r.panDeltaY-=.5*_.ortho.scale*(f/d)*i.touchPanRate;s.pointerCanvasPos=h}for(let e=0;e{let s;i&&i.worldPos&&(s=i.worldPos);const r=i?i.entity.aabb:e.aabb;if(s){const i=e.camera;u.subVec3(i.eye,i.look,[]),t.cameraFlight.flyTo({aabb:r})}else t.cameraFlight.flyTo({aabb:r})};d.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{if(!i.active||!i.pointerEnabled)return;null!==s.longTouchTimeout&&(clearTimeout(s.longTouchTimeout),s.longTouchTimeout=null);const r=e.touches,o=e.changedTouches;if(a=Date.now(),1===r.length&&1===o.length){h=a,Lh(r[0],A);const o=A[0],n=A[1],l=r[0].pageX,c=r[0].pageY;s.longTouchTimeout=setTimeout((()=>{t.cameraControl.fire("rightClick",{pagePos:[Math.round(l),Math.round(c)],canvasPos:[Math.round(o),Math.round(n)],event:e},!0),s.longTouchTimeout=null}),i.longTapTimeout)}else h=-1;for(;l.length{if(!i.active||!i.pointerEnabled)return;const t=Date.now(),r=e.touches,a=e.changedTouches,d=n.hasSubs("pickedSurface");null!==s.longTouchTimeout&&(clearTimeout(s.longTouchTimeout),s.longTouchTimeout=null),0===r.length&&1===a.length&&h>-1&&t-h<150&&(c>-1&&h-c<325?(Lh(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=d,o.update(),o.pickResult?(o.pickResult.touchInput=!0,n.fire("doublePicked",o.pickResult),o.pickedSurface&&n.fire("doublePickedSurface",o.pickResult),i.doublePickFlyTo&&p(o.pickResult)):(n.fire("doublePickedNothing"),i.doublePickFlyTo&&p()),c=-1):u.distVec2(l[0],A)<4&&(Lh(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=d,o.update(),o.pickResult?(o.pickResult.touchInput=!0,n.fire("picked",o.pickResult),o.pickedSurface&&n.fire("pickedSurface",o.pickResult)):n.fire("pickedNothing"),c=t),h=-1),l.length=r.length;for(let e=0,t=r.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:u.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:u.vec2(),tapStartTime:-1,lastTapTime:-1,longTouchTimeout:null},this._updates={rotateDeltaX:0,rotateDeltaY:0,panDeltaX:0,panDeltaY:0,panDeltaZ:0,dollyDelta:0};const i=this.scene;this._controllers={cameraControl:this,pickController:new fh(this,this._configs),pivotController:new mh(i,this._configs),panController:new Ah(i),cameraFlight:new ZA(this,{duration:.5})},this._handlers=[new Dh(this.scene,this._controllers,this._configs,this._states,this._updates),new Rh(this.scene,this._controllers,this._configs,this._states,this._updates),new vh(this.scene,this._controllers,this._configs,this._states,this._updates),new Ch(this.scene,this._controllers,this._configs,this._states,this._updates),new Mh(this.scene,this._controllers,this._configs,this._states,this._updates),new Uh(this.scene,this._controllers,this._configs,this._states,this._updates),new Eh(this.scene,this._controllers,this._configs,this._states,this._updates)],this._cameraUpdater=new Ih(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",f.isString(e)){const t=this.scene.input,i={};switch(e){default:this.error("Unsupported value for 'keyMap': "+e+" defaulting to 'qwerty'");case"qwerty":i[this.PAN_LEFT]=[t.KEY_A],i[this.PAN_RIGHT]=[t.KEY_D],i[this.PAN_UP]=[t.KEY_Z],i[this.PAN_DOWN]=[t.KEY_X],i[this.PAN_BACKWARDS]=[],i[this.PAN_FORWARDS]=[],i[this.DOLLY_FORWARDS]=[t.KEY_W,t.KEY_ADD],i[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],i[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],i[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],i[this.ROTATE_Y_POS]=[t.KEY_Q,t.KEY_LEFT_ARROW],i[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],i[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],i[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],i[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],i[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],i[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],i[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6];break;case"azerty":i[this.PAN_LEFT]=[t.KEY_Q],i[this.PAN_RIGHT]=[t.KEY_D],i[this.PAN_UP]=[t.KEY_W],i[this.PAN_DOWN]=[t.KEY_X],i[this.PAN_BACKWARDS]=[],i[this.PAN_FORWARDS]=[],i[this.DOLLY_FORWARDS]=[t.KEY_Z,t.KEY_ADD],i[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],i[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],i[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],i[this.ROTATE_Y_POS]=[t.KEY_A,t.KEY_LEFT_ARROW],i[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],i[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],i[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],i[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],i[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],i[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],i[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6]}this._keyMap=i}else{const t=e;this._keyMap=t}}get keyMap(){return this._keyMap}_isKeyDownForAction(e,t){const i=this._keyMap[e];if(!i)return!1;t||(t=this.scene.input.keyDown);for(let e=0,s=i.length;e0?Hh(t):null,n=i&&i.length>0?Hh(i):null,a=e=>{if(!e)return;var t=!0;(n&&n[e.type]||o&&!o[e.type])&&(t=!1),t&&s.push(e.id);const i=e.children;if(i)for(var r=0,l=i.length;r * Copyright (c) 2022 Niklas von Hertzen @@ -34,5 +34,5 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var Qc=function(e,t){return Qc=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])},Qc(e,t)};function Wc(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}Qc(e,t),e.prototype=null===t?Object.create(t):(s.prototype=t.prototype,new s)}var zc=function(){return zc=Object.assign||function(e){for(var t,s=1,i=arguments.length;s0&&r[r.length-1])||6!==o[0]&&2!==o[0])){n=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=55296&&r<=56319&&s>10),n%1024+56320)),(r+1===s||i.length>16384)&&(o+=String.fromCharCode.apply(String,i),i.length=0)}return o},eu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",tu="undefined"==typeof Uint8Array?[]:new Uint8Array(256),su=0;su=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}(),lu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",hu="undefined"==typeof Uint8Array?[]:new Uint8Array(256),cu=0;cu>4,c[l++]=(15&i)<<4|r>>2,c[l++]=(3&r)<<6|63&o;return h}(e),n=Array.isArray(o)?function(e){for(var t=e.length,s=[],i=0;i0;){var n=i[--o];if(Array.isArray(e)?-1!==e.indexOf(n):e===n)for(var a=s;a<=i.length;){var l;if((l=i[++a])===t)return!0;if(l!==uu)break}if(n!==uu)break}return!1},Wu=function(e,t){for(var s=e;s>=0;){var i=t[s];if(i!==uu)return i;s--}return 0},zu=function(e,t,s,i,r){if(0===s[i])return"×";var o=i-1;if(Array.isArray(r)&&!0===r[o])return"×";var n=o-1,a=o+1,l=t[o],h=n>=0?t[n]:0,c=t[a];if(2===l&&3===c)return"×";if(-1!==Uu.indexOf(l))return"!";if(-1!==Uu.indexOf(c))return"×";if(-1!==Hu.indexOf(c))return"×";if(8===Wu(o,t))return"÷";if(11===Fu.get(e[o]))return"×";if((l===Ru||l===Du)&&11===Fu.get(e[a]))return"×";if(7===l||7===c)return"×";if(9===l)return"×";if(-1===[uu,Au,pu].indexOf(l)&&9===c)return"×";if(-1!==[du,fu,mu,vu,Pu].indexOf(c))return"×";if(Wu(o,t)===gu)return"×";if(Qu(23,gu,o,t))return"×";if(Qu([du,fu],Eu,o,t))return"×";if(Qu(12,12,o,t))return"×";if(l===uu)return"÷";if(23===l||23===c)return"×";if(16===c||16===l)return"÷";if(-1!==[Au,pu,Eu].indexOf(c)||14===l)return"×";if(36===h&&-1!==ju.indexOf(l))return"×";if(l===Pu&&36===c)return"×";if(c===yu)return"×";if(-1!==Lu.indexOf(c)&&l===Iu||-1!==Lu.indexOf(l)&&c===Iu)return"×";if(l===Tu&&-1!==[Ou,Ru,Du].indexOf(c)||-1!==[Ou,Ru,Du].indexOf(l)&&c===_u)return"×";if(-1!==Lu.indexOf(l)&&-1!==Gu.indexOf(c)||-1!==Gu.indexOf(l)&&-1!==Lu.indexOf(c))return"×";if(-1!==[Tu,_u].indexOf(l)&&(c===Iu||-1!==[gu,pu].indexOf(c)&&t[a+1]===Iu)||-1!==[gu,pu].indexOf(l)&&c===Iu||l===Iu&&-1!==[Iu,Pu,vu].indexOf(c))return"×";if(-1!==[Iu,Pu,vu,du,fu].indexOf(c))for(var u=o;u>=0;){if((A=t[u])===Iu)return"×";if(-1===[Pu,vu].indexOf(A))break;u--}if(-1!==[Tu,_u].indexOf(c))for(u=-1!==[du,fu].indexOf(l)?n:o;u>=0;){var A;if((A=t[u])===Iu)return"×";if(-1===[Pu,vu].indexOf(A))break;u--}if(xu===l&&-1!==[xu,Su,Cu,Nu].indexOf(c)||-1!==[Su,Cu].indexOf(l)&&-1!==[Su,wu].indexOf(c)||-1!==[wu,Nu].indexOf(l)&&c===wu)return"×";if(-1!==Vu.indexOf(l)&&-1!==[yu,_u].indexOf(c)||-1!==Vu.indexOf(c)&&l===Tu)return"×";if(-1!==Lu.indexOf(l)&&-1!==Lu.indexOf(c))return"×";if(l===vu&&-1!==Lu.indexOf(c))return"×";if(-1!==Lu.concat(Iu).indexOf(l)&&c===gu&&-1===Bu.indexOf(e[a])||-1!==Lu.concat(Iu).indexOf(c)&&l===fu)return"×";if(41===l&&41===c){for(var p=s[o],d=1;p>0&&41===t[--p];)d++;if(d%2!=0)return"×"}return l===Ru&&c===Du?"×":"÷"},Ku=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var s=function(e,t){void 0===t&&(t="strict");var s=[],i=[],r=[];return e.forEach((function(e,o){var n=Fu.get(e);if(n>50?(r.push(!0),n-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return i.push(o),s.push(16);if(4===n||11===n){if(0===o)return i.push(o),s.push(bu);var a=s[o-1];return-1===ku.indexOf(a)?(i.push(i[o-1]),s.push(a)):(i.push(o),s.push(bu))}return i.push(o),31===n?s.push("strict"===t?Eu:Ou):n===Mu||29===n?s.push(bu):43===n?e>=131072&&e<=196605||e>=196608&&e<=262141?s.push(Ou):s.push(bu):void s.push(n)})),[i,s,r]}(e,t.lineBreak),i=s[0],r=s[1],o=s[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(r=r.map((function(e){return-1!==[Iu,bu,Mu].indexOf(e)?Ou:e})));var n="keep-all"===t.wordBreak?o.map((function(t,s){return t&&e[s]>=19968&&e[s]<=40959})):void 0;return[i,r,n]},Yu=function(){function e(e,t,s,i){this.codePoints=e,this.required="!"===t,this.start=s,this.end=i}return e.prototype.slice=function(){return $c.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),Xu=function(e){return e>=48&&e<=57},Zu=function(e){return Xu(e)||e>=65&&e<=70||e>=97&&e<=102},qu=function(e){return 10===e||9===e||32===e},Ju=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},$u=function(e){return Ju(e)||Xu(e)||45===e},eA=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},tA=function(e,t){return 92===e&&10!==t},sA=function(e,t,s){return 45===e?Ju(t)||tA(t,s):!!Ju(e)||!(92!==e||!tA(e,t))},iA=function(e,t,s){return 43===e||45===e?!!Xu(t)||46===t&&Xu(s):Xu(46===e?t:e)},rA=function(e){var t=0,s=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(s=-1),t++);for(var i=[];Xu(e[t]);)i.push(e[t++]);var r=i.length?parseInt($c.apply(void 0,i),10):0;46===e[t]&&t++;for(var o=[];Xu(e[t]);)o.push(e[t++]);var n=o.length,a=n?parseInt($c.apply(void 0,o),10):0;69!==e[t]&&101!==e[t]||t++;var l=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(l=-1),t++);for(var h=[];Xu(e[t]);)h.push(e[t++]);var c=h.length?parseInt($c.apply(void 0,h),10):0;return s*(r+a*Math.pow(10,-n))*Math.pow(10,l*c)},oA={type:2},nA={type:3},aA={type:4},lA={type:13},hA={type:8},cA={type:21},uA={type:9},AA={type:10},pA={type:11},dA={type:12},fA={type:14},mA={type:23},yA={type:1},EA={type:25},gA={type:24},vA={type:26},IA={type:27},_A={type:28},TA={type:29},PA={type:31},bA={type:32},RA=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(Jc(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==bA;)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),i=this.peekCodePoint(2);if($u(t)||tA(s,i)){var r=sA(t,s,i)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),lA;break;case 39:return this.consumeStringToken(39);case 40:return oA;case 41:return nA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),fA;break;case 43:if(iA(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return aA;case 45:var o=e,n=this.peekCodePoint(0),a=this.peekCodePoint(1);if(iA(o,n,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(sA(o,n,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(45===n&&62===a)return this.consumeCodePoint(),this.consumeCodePoint(),gA;break;case 46:if(iA(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 l=this.consumeCodePoint();if(42===l&&47===(l=this.consumeCodePoint()))return this.consumeToken();if(-1===l)return this.consumeToken()}break;case 58:return vA;case 59:return IA;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),EA;break;case 64:var h=this.peekCodePoint(0),c=this.peekCodePoint(1),u=this.peekCodePoint(2);if(sA(h,c,u))return{type:7,value:this.consumeName()};break;case 91:return _A;case 92:if(tA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return TA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),hA;break;case 123:return pA;case 125:return dA;case 117:case 85:var A=this.peekCodePoint(0),p=this.peekCodePoint(1);return 43!==A||!Zu(p)&&63!==p||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),uA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),cA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),AA;break;case-1:return bA}return qu(e)?(this.consumeWhiteSpace(),PA):Xu(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):Ju(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:$c(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();Zu(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($c.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt($c.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var i=parseInt($c.apply(void 0,e),16);if(45===this.peekCodePoint(0)&&Zu(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var r=[];Zu(t)&&r.length<6;)r.push(t),t=this.consumeCodePoint();return{type:30,start:i,end:parseInt($c.apply(void 0,r),16)}}return{type:30,start:i,end:i}},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(),mA)}for(;;){var i=this.consumeCodePoint();if(-1===i||41===i)return{type:22,value:$c.apply(void 0,e)};if(qu(i))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:$c.apply(void 0,e)}):(this.consumeBadUrlRemnants(),mA);if(34===i||39===i||40===i||eA(i))return this.consumeBadUrlRemnants(),mA;if(92===i){if(!tA(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),mA;e.push(this.consumeEscapedCodePoint())}else e.push(i)}},e.prototype.consumeWhiteSpace=function(){for(;qu(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||-1===e)return;tA(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var s=Math.min(5e4,e);t+=$c.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 i=this._value[s];if(-1===i||void 0===i||i===e)return{type:0,value:t+=this.consumeStringSlice(s)};if(10===i)return this._value.splice(0,s),yA;if(92===i){var r=this._value[s+1];-1!==r&&void 0!==r&&(10===r?(t+=this.consumeStringSlice(s),s=-1,this._value.shift()):tA(i,r)&&(t+=this.consumeStringSlice(s),t+=$c(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());Xu(this.peekCodePoint(0));)e.push(this.consumeCodePoint());s=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===s&&Xu(i))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Xu(this.peekCodePoint(0));)e.push(this.consumeCodePoint());s=this.peekCodePoint(0),i=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===s||101===s)&&((43===i||45===i)&&Xu(r)||Xu(i)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Xu(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[rA(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],s=e[1],i=this.peekCodePoint(0),r=this.peekCodePoint(1),o=this.peekCodePoint(2);return sA(i,r,o)?{type:15,number:t,flags:s,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:t,flags:s}):{type:17,number:t,flags:s}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(Zu(e)){for(var t=$c(e);Zu(this.peekCodePoint(0))&&t.length<6;)t+=$c(this.consumeCodePoint());qu(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($u(t))e+=$c(t);else{if(!tA(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=$c(this.consumeEscapedCodePoint())}}},e}(),DA=function(){function e(e){this._tokens=e}return e.create=function(t){var s=new RA;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||FA(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?bA:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),CA=function(e){return 15===e.type},NA=function(e){return 17===e.type},OA=function(e){return 20===e.type},xA=function(e){return 0===e.type},SA=function(e,t){return OA(e)&&e.value===t},wA=function(e){return 31!==e.type},MA=function(e){return 31!==e.type&&4!==e.type},BA=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},FA=function(e,t){return 11===t&&12===e.type||(28===t&&29===e.type||2===t&&3===e.type)},LA=function(e){return 17===e.type||15===e.type},UA=function(e){return 16===e.type||LA(e)},HA=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},GA={type:17,number:0,flags:4},kA={type:16,number:50,flags:4},VA={type:16,number:100,flags:4},jA=function(e,t,s){var i=e[0],r=e[1];return[QA(i,t),QA(void 0!==r?r:i,s)]},QA=function(e,t){if(16===e.type)return e.number/100*t;if(CA(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},WA=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")},zA=function(e){return 15===e.type&&("deg"===e.unit||"grad"===e.unit||"rad"===e.unit||"turn"===e.unit)},KA=function(e){switch(e.filter(OA).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[GA,GA];case"to top":case"bottom":return YA(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[GA,VA];case"to right":case"left":return YA(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[VA,VA];case"to bottom":case"top":return YA(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[VA,GA];case"to left":case"right":return YA(270)}return 0},YA=function(e){return Math.PI*e/180},XA=function(e,t){if(18===t.type){var s=ip[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 i=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);return JA(parseInt(i+i,16),parseInt(r+r,16),parseInt(o+o,16),1)}if(4===t.value.length){i=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);var n=t.value.substring(3,4);return JA(parseInt(i+i,16),parseInt(r+r,16),parseInt(o+o,16),parseInt(n+n,16)/255)}if(6===t.value.length){i=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6);return JA(parseInt(i,16),parseInt(r,16),parseInt(o,16),1)}if(8===t.value.length){i=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6),n=t.value.substring(6,8);return JA(parseInt(i,16),parseInt(r,16),parseInt(o,16),parseInt(n,16)/255)}}if(20===t.type){var a=op[t.value.toUpperCase()];if(void 0!==a)return a}return op.TRANSPARENT},ZA=function(e){return 0==(255&e)},qA=function(e){var t=255&e,s=255&e>>8,i=255&e>>16,r=255&e>>24;return t<255?"rgba("+r+","+i+","+s+","+t/255+")":"rgb("+r+","+i+","+s+")"},JA=function(e,t,s,i){return(e<<24|t<<16|s<<8|Math.round(255*i)<<0)>>>0},$A=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(MA);if(3===s.length){var i=s.map($A),r=i[0],o=i[1],n=i[2];return JA(r,o,n,1)}if(4===s.length){var a=s.map($A),l=(r=a[0],o=a[1],n=a[2],a[3]);return JA(r,o,n,l)}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 sp=function(e,t){var s=t.filter(MA),i=s[0],r=s[1],o=s[2],n=s[3],a=(17===i.type?YA(i.number):WA(e,i))/(2*Math.PI),l=UA(r)?r.number/100:0,h=UA(o)?o.number/100:0,c=void 0!==n&&UA(n)?QA(n,1):1;if(0===l)return JA(255*h,255*h,255*h,1);var u=h<=.5?h*(l+1):h+l-h*l,A=2*h-u,p=tp(A,u,a+1/3),d=tp(A,u,a),f=tp(A,u,a-1/3);return JA(255*p,255*d,255*f,c)},ip={hsl:sp,hsla:sp,rgb:ep,rgba:ep},rp=function(e,t){return XA(e,DA.create(t).parseComponentValue())},op={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},np={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(OA(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},ap={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},lp=function(e,t){var s=XA(e,t[0]),i=t[1];return i&&UA(i)?{color:s,stop:i}:{color:s,stop:null}},hp=function(e,t){var s=e[0],i=e[e.length-1];null===s.stop&&(s.stop=GA),null===i.stop&&(i.stop=VA);for(var r=[],o=0,n=0;no?r.push(l):r.push(o),o=l}else r.push(null)}var h=null;for(n=0;ne.optimumDistance)?{optimumCorner:t,optimumDistance:a}:e}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},pp=function(e,t){var s=YA(180),i=[];return BA(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&-1!==["top","left","right","bottom"].indexOf(o.value))return void(s=KA(t));if(zA(o))return void(s=(WA(e,o)+YA(270))%YA(360))}var n=lp(e,t);i.push(n)})),{angle:s,stops:i,type:1}},dp=function(e,t){var s=0,i=3,r=[],o=[];return BA(t).forEach((function(t,n){var a=!0;if(0===n?a=t.reduce((function(e,t){if(OA(t))switch(t.value){case"center":return o.push(kA),!1;case"top":case"left":return o.push(GA),!1;case"right":case"bottom":return o.push(VA),!1}else if(UA(t)||LA(t))return o.push(t),!1;return e}),a):1===n&&(a=t.reduce((function(e,t){if(OA(t))switch(t.value){case"circle":return s=0,!1;case"ellipse":return s=1,!1;case"contain":case"closest-side":return i=0,!1;case"farthest-side":return i=1,!1;case"closest-corner":return i=2,!1;case"cover":case"farthest-corner":return i=3,!1}else if(LA(t)||UA(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),a)),a){var l=lp(e,t);r.push(l)}})),{size:i,shape:s,stops:r,position:o,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 i=yp[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return i(e,t.values)}throw new Error("Unsupported image type "+t.type)};var mp,yp={"linear-gradient":function(e,t){var s=YA(180),i=[];return BA(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&"to"===o.value)return void(s=KA(t));if(zA(o))return void(s=WA(e,o))}var n=lp(e,t);i.push(n)})),{angle:s,stops:i,type:1}},"-moz-linear-gradient":pp,"-ms-linear-gradient":pp,"-o-linear-gradient":pp,"-webkit-linear-gradient":pp,"radial-gradient":function(e,t){var s=0,i=3,r=[],o=[];return BA(t).forEach((function(t,n){var a=!0;if(0===n){var l=!1;a=t.reduce((function(e,t){if(l)if(OA(t))switch(t.value){case"center":return o.push(kA),e;case"top":case"left":return o.push(GA),e;case"right":case"bottom":return o.push(VA),e}else(UA(t)||LA(t))&&o.push(t);else if(OA(t))switch(t.value){case"circle":return s=0,!1;case"ellipse":return s=1,!1;case"at":return l=!0,!1;case"closest-side":return i=0,!1;case"cover":case"farthest-side":return i=1,!1;case"contain":case"closest-corner":return i=2,!1;case"farthest-corner":return i=3,!1}else if(LA(t)||UA(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),a)}if(a){var h=lp(e,t);r.push(h)}})),{size:i,shape:s,stops:r,position:o,type:2}},"-moz-radial-gradient":dp,"-ms-radial-gradient":dp,"-o-radial-gradient":dp,"-webkit-radial-gradient":dp,"-webkit-gradient":function(e,t){var s=YA(180),i=[],r=1;return BA(t).forEach((function(t,s){var o=t[0];if(0===s){if(OA(o)&&"linear"===o.value)return void(r=1);if(OA(o)&&"radial"===o.value)return void(r=2)}if(18===o.type)if("from"===o.name){var n=XA(e,o.values[0]);i.push({stop:GA,color:n})}else if("to"===o.name){n=XA(e,o.values[0]);i.push({stop:VA,color:n})}else if("color-stop"===o.name){var a=o.values.filter(MA);if(2===a.length){n=XA(e,a[1]);var l=a[0];NA(l)&&i.push({stop:{type:16,number:100*l.number,flags:l.flags},color:n})}}})),1===r?{angle:(s+YA(180))%YA(360),stops:i,type:r}:{size:3,shape:0,stops:i,position:[],type:r}}},Ep={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 MA(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!yp[e.name])}(e)})).map((function(t){return fp(e,t)}))}},gp={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(OA(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 BA(t).map((function(e){return e.filter(UA)})).map(HA)}},Ip={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return BA(t).map((function(e){return e.filter(OA).map((function(e){return e.value})).join(" ")})).map(_p)}},_p=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"}(mp||(mp={}));var Tp,Pp={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return BA(t).map((function(e){return e.filter(bp)}))}},bp=function(e){return OA(e)||UA(e)},Rp=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Dp=Rp("top"),Cp=Rp("right"),Np=Rp("bottom"),Op=Rp("left"),xp=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return HA(t.filter(UA))}}},Sp=xp("top-left"),wp=xp("top-right"),Mp=xp("bottom-right"),Bp=xp("bottom-left"),Fp=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}}},Lp=Fp("top"),Up=Fp("right"),Hp=Fp("bottom"),Gp=Fp("left"),kp=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return CA(t)?t.number:0}}},Vp=kp("top"),jp=kp("right"),Qp=kp("bottom"),Wp=kp("left"),zp={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Kp={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},Yp={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(OA).reduce((function(e,t){return e|Xp(t.value)}),0)}},Xp=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},Zp={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}},qp={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"}(Tp||(Tp={}));var Jp,$p={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?Tp.STRICT:Tp.NORMAL}},ed={name:"line-height",initialValue:"normal",prefix:!1,type:4},td=function(e,t){return OA(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:UA(e)?QA(e,t):t},sd={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)}},id={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},rd={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}}},od=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},nd=od("top"),ad=od("right"),ld=od("bottom"),hd=od("left"),cd={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(OA).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}}))}},ud={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},Ad=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},pd=Ad("top"),dd=Ad("right"),fd=Ad("bottom"),md=Ad("left"),yd={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}}},Ed={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}},gd={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&SA(t[0],"none")?[]:BA(t).map((function(t){for(var s={color:op.TRANSPARENT,offsetX:GA,offsetY:GA,blur:GA},i=0,r=0;r1?1:0],this.overflowWrap=Jd(e,ud,t.overflowWrap),this.paddingTop=Jd(e,pd,t.paddingTop),this.paddingRight=Jd(e,dd,t.paddingRight),this.paddingBottom=Jd(e,fd,t.paddingBottom),this.paddingLeft=Jd(e,md,t.paddingLeft),this.paintOrder=Jd(e,zd,t.paintOrder),this.position=Jd(e,Ed,t.position),this.textAlign=Jd(e,yd,t.textAlign),this.textDecorationColor=Jd(e,xd,null!==(s=t.textDecorationColor)&&void 0!==s?s:t.color),this.textDecorationLine=Jd(e,Sd,null!==(i=t.textDecorationLine)&&void 0!==i?i:t.textDecoration),this.textShadow=Jd(e,gd,t.textShadow),this.textTransform=Jd(e,vd,t.textTransform),this.transform=Jd(e,Id,t.transform),this.transformOrigin=Jd(e,bd,t.transformOrigin),this.visibility=Jd(e,Rd,t.visibility),this.webkitTextStrokeColor=Jd(e,Kd,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=Jd(e,Yd,t.webkitTextStrokeWidth),this.wordBreak=Jd(e,Dd,t.wordBreak),this.zIndex=Jd(e,Cd,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return ZA(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 Ud(this.display,4)||Ud(this.display,33554432)||Ud(this.display,268435456)||Ud(this.display,536870912)||Ud(this.display,67108864)||Ud(this.display,134217728)},e}(),Zd=function(e,t){this.content=Jd(e,Hd,t.content),this.quotes=Jd(e,jd,t.quotes)},qd=function(e,t){this.counterIncrement=Jd(e,Gd,t.counterIncrement),this.counterReset=Jd(e,kd,t.counterReset)},Jd=function(e,t,s){var i=new RA,r=null!=s?s.toString():t.initialValue;i.write(r);var o=new DA(i.read());switch(t.type){case 2:var n=o.parseComponentValue();return t.parse(e,OA(n)?n.value:t.initialValue);case 0:return t.parse(e,o.parseComponentValue());case 1:return t.parse(e,o.parseComponentValues());case 4:return o.parseComponentValue();case 3:switch(t.format){case"angle":return WA(e,o.parseComponentValue());case"color":return XA(e,o.parseComponentValue());case"image":return fp(e,o.parseComponentValue());case"length":var a=o.parseComponentValue();return LA(a)?a:GA;case"length-percentage":var l=o.parseComponentValue();return UA(l)?l:GA;case"time":return Nd(e,o.parseComponentValue())}}},$d=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},ef=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,$d(t,3),this.styles=new Xd(e,window.getComputedStyle(t,null)),tm(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=qc(this.context,t),$d(t,4)&&(this.flags|=16)},tf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sf="undefined"==typeof Uint8Array?[]:new Uint8Array(256),rf=0;rf=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}(),af="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",lf="undefined"==typeof Uint8Array?[]:new Uint8Array(256),hf=0;hf>10),n%1024+56320)),(r+1===s||i.length>16384)&&(o+=String.fromCharCode.apply(String,i),i.length=0)}return o},mf=function(e,t){var s,i,r,o=function(e){var t,s,i,r,o,n=.75*e.length,a=e.length,l=0;"="===e[e.length-1]&&(n--,"="===e[e.length-2]&&n--);var h="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(n):new Array(n),c=Array.isArray(h)?h:new Uint8Array(h);for(t=0;t>4,c[l++]=(15&i)<<4|r>>2,c[l++]=(3&r)<<6|63&o;return h}(e),n=Array.isArray(o)?function(e){for(var t=e.length,s=[],i=0;i=55296&&r<=56319&&s=s)return{done:!0,value:null};for(var e="×";in.x||r.y>n.y;return n=r,0===t||a}));return e.body.removeChild(t),a}(document);return Object.defineProperty(Tf,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,s=e.createElement("canvas"),i=s.getContext("2d");if(!i)return!1;t.src="data:image/svg+xml,";try{i.drawImage(t,0,0),s.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(Tf,"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 i=t.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,s,s);var r=new Image,o=t.toDataURL();r.src=o;var n=If(s,s,0,0,r);return i.fillStyle="red",i.fillRect(0,0,s,s),_f(n).then((function(t){i.drawImage(t,0,0);var r=i.getImageData(0,0,s,s).data;i.fillStyle="red",i.fillRect(0,0,s,s);var n=e.createElement("div");return n.style.backgroundImage="url("+o+")",n.style.height="100px",vf(r)?_f(If(s,s,0,0,n)):Promise.reject(!1)})).then((function(e){return i.drawImage(e,0,0),vf(i.getImageData(0,0,s,s).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Tf,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(Tf,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Tf,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Tf,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Tf,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},Pf=function(e,t){this.text=e,this.bounds=t},bf=function(e,t){var s=t.ownerDocument;if(s){var i=s.createElement("html2canvaswrapper");i.appendChild(t.cloneNode(!0));var r=t.parentNode;if(r){r.replaceChild(i,t);var o=qc(e,i);return i.firstChild&&r.replaceChild(i.firstChild,i),o}}return Zc.EMPTY},Rf=function(e,t,s){var i=e.ownerDocument;if(!i)throw new Error("Node has no owner document");var r=i.createRange();return r.setStart(e,t),r.setEnd(e,t+s),r},Df=function(e){if(Tf.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=gf(e),i=[];!(t=s.next()).done;)t.value&&i.push(t.value.slice());return i}(e)},Cf=function(e,t){return 0!==t.letterSpacing?Df(e):function(e,t){if(Tf.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 Of(e,t)}(e,t)},Nf=[32,160,4961,65792,65793,4153,4241],Of=function(e,t){for(var s,i=function(e,t){var s=Jc(e),i=Ku(s,t),r=i[0],o=i[1],n=i[2],a=s.length,l=0,h=0;return{next:function(){if(h>=a)return{done:!0,value:null};for(var e="×";h0)if(Tf.SUPPORT_RANGE_BOUNDS){var r=Rf(i,n,t.length).getClientRects();if(r.length>1){var a=Df(t),l=0;a.forEach((function(t){o.push(new Pf(t,Zc.fromDOMRectList(e,Rf(i,l+n,t.length).getClientRects()))),l+=t.length}))}else o.push(new Pf(t,Zc.fromDOMRectList(e,r)))}else{var h=i.splitText(t.length);o.push(new Pf(t,bf(e,i))),i=h}else Tf.SUPPORT_RANGE_BOUNDS||(i=i.splitText(t.length));n+=t.length})),o}(e,this.text,s,t)},Sf=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(wf,Mf);case 2:return e.toUpperCase();default:return e}},wf=/(^|\s|:|-|\(|\))([a-z])/g,Mf=function(e,t,s){return e.length>0?t+s.toUpperCase():e},Bf=function(e){function t(t,s){var i=e.call(this,t,s)||this;return i.src=s.currentSrc||s.src,i.intrinsicWidth=s.naturalWidth,i.intrinsicHeight=s.naturalHeight,i.context.cache.addImage(i.src),i}return Wc(t,e),t}(ef),Ff=function(e){function t(t,s){var i=e.call(this,t,s)||this;return i.canvas=s,i.intrinsicWidth=s.width,i.intrinsicHeight=s.height,i}return Wc(t,e),t}(ef),Lf=function(e){function t(t,s){var i=e.call(this,t,s)||this,r=new XMLSerializer,o=qc(t,s);return s.setAttribute("width",o.width+"px"),s.setAttribute("height",o.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(s)),i.intrinsicWidth=s.width.baseVal.value,i.intrinsicHeight=s.height.baseVal.value,i.context.cache.addImage(i.svg),i}return Wc(t,e),t}(ef),Uf=function(e){function t(t,s){var i=e.call(this,t,s)||this;return i.value=s.value,i}return Wc(t,e),t}(ef),Hf=function(e){function t(t,s){var i=e.call(this,t,s)||this;return i.start=s.start,i.reversed="boolean"==typeof s.reversed&&!0===s.reversed,i}return Wc(t,e),t}(ef),Gf=[{type:15,flags:0,unit:"px",number:3}],kf=[{type:16,flags:0,number:50}],Vf="password",jf=function(e){function t(t,s){var i,r,o,n=e.call(this,t,s)||this;switch(n.type=s.type.toLowerCase(),n.checked=s.checked,n.value=0===(r=(i=s).type===Vf?new Array(i.value.length+1).join("•"):i.value).length?i.placeholder||"":r,"checkbox"!==n.type&&"radio"!==n.type||(n.styles.backgroundColor=3739148031,n.styles.borderTopColor=n.styles.borderRightColor=n.styles.borderBottomColor=n.styles.borderLeftColor=2779096575,n.styles.borderTopWidth=n.styles.borderRightWidth=n.styles.borderBottomWidth=n.styles.borderLeftWidth=1,n.styles.borderTopStyle=n.styles.borderRightStyle=n.styles.borderBottomStyle=n.styles.borderLeftStyle=1,n.styles.backgroundClip=[0],n.styles.backgroundOrigin=[0],n.bounds=(o=n.bounds).width>o.height?new Zc(o.left+(o.width-o.height)/2,o.top,o.height,o.height):o.width0)s.textNodes.push(new xf(e,r,s.styles));else if(em(r))if(fm(r)&&r.assignedNodes)r.assignedNodes().forEach((function(t){return Yf(e,t,s,i)}));else{var n=Xf(e,r);n.styles.isVisible()&&(qf(r,n,i)?n.flags|=4:Jf(n.styles)&&(n.flags|=2),-1!==Kf.indexOf(r.tagName)&&(n.flags|=8),s.elements.push(n),r.slot,r.shadowRoot?Yf(e,r.shadowRoot,n,i):pm(r)||nm(r)||dm(r)||Yf(e,r,n,i))}},Xf=function(e,t){return cm(t)?new Bf(e,t):lm(t)?new Ff(e,t):nm(t)?new Lf(e,t):im(t)?new Uf(e,t):rm(t)?new Hf(e,t):om(t)?new jf(e,t):dm(t)?new Qf(e,t):pm(t)?new Wf(e,t):um(t)?new zf(e,t):new ef(e,t)},Zf=function(e,t){var s=Xf(e,t);return s.flags|=4,Yf(e,t,s,s),s},qf=function(e,t,s){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||am(e)&&s.styles.isTransparent()},Jf=function(e){return e.isPositioned()||e.isFloating()},$f=function(e){return e.nodeType===Node.TEXT_NODE},em=function(e){return e.nodeType===Node.ELEMENT_NODE},tm=function(e){return em(e)&&void 0!==e.style&&!sm(e)},sm=function(e){return"object"==typeof e.className},im=function(e){return"LI"===e.tagName},rm=function(e){return"OL"===e.tagName},om=function(e){return"INPUT"===e.tagName},nm=function(e){return"svg"===e.tagName},am=function(e){return"BODY"===e.tagName},lm=function(e){return"CANVAS"===e.tagName},hm=function(e){return"VIDEO"===e.tagName},cm=function(e){return"IMG"===e.tagName},um=function(e){return"IFRAME"===e.tagName},Am=function(e){return"STYLE"===e.tagName},pm=function(e){return"TEXTAREA"===e.tagName},dm=function(e){return"SELECT"===e.tagName},fm=function(e){return"SLOT"===e.tagName},mm=function(e){return e.tagName.indexOf("-")>0},ym=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,i=e.counterReset,r=!0;null!==s&&s.forEach((function(e){var s=t.counters[e.counter];s&&0!==e.increment&&(r=!1,s.length||s.push(1),s[Math.max(0,s.length-1)]+=e.increment)}));var o=[];return r&&i.forEach((function(e){var s=t.counters[e.counter];o.push(e.counter),s||(s=t.counters[e.counter]=[]),s.push(e.reset)})),o},e}(),Em={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"]},gm={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:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},vm={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:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Im={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:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},_m=function(e,t,s,i,r,o){return es?Dm(e,r,o.length>0):i.integers.reduce((function(t,s,r){for(;e>=s;)e-=s,t+=i.values[r];return t}),"")+o},Tm=function(e,t,s,i){var r="";do{s||e--,r=i(e)+r,e/=t}while(e*t>=t);return r},Pm=function(e,t,s,i,r){var o=s-t+1;return(e<0?"-":"")+(Tm(Math.abs(e),o,i,(function(e){return $c(Math.floor(e%o)+t)}))+r)},bm=function(e,t,s){void 0===s&&(s=". ");var i=t.length;return Tm(Math.abs(e),i,!1,(function(e){return t[Math.floor(e%i)]}))+s},Rm=function(e,t,s,i,r,o){if(e<-9999||e>9999)return Dm(e,4,r.length>0);var n=Math.abs(e),a=r;if(0===n)return t[0]+a;for(var l=0;n>0&&l<=4;l++){var h=n%10;0===h&&Ud(o,1)&&""!==a?a=t[h]+a:h>1||1===h&&0===l||1===h&&1===l&&Ud(o,2)||1===h&&1===l&&Ud(o,4)&&e>100||1===h&&l>1&&Ud(o,8)?a=t[h]+(l>0?s[l-1]:"")+a:1===h&&l>0&&(a=s[l-1]+a),n=Math.floor(n/10)}return(e<0?i:"")+a},Dm=function(e,t,s){var i=s?". ":"",r=s?"、":"",o=s?", ":"",n=s?" ":"";switch(t){case 0:return"•"+n;case 1:return"◦"+n;case 2:return"◾"+n;case 5:var a=Pm(e,48,57,!0,i);return a.length<4?"0"+a:a;case 4:return bm(e,"〇一二三四五六七八九",r);case 6:return _m(e,1,3999,Em,3,i).toLowerCase();case 7:return _m(e,1,3999,Em,3,i);case 8:return Pm(e,945,969,!1,i);case 9:return Pm(e,97,122,!1,i);case 10:return Pm(e,65,90,!1,i);case 11:return Pm(e,1632,1641,!0,i);case 12:case 49:return _m(e,1,9999,gm,3,i);case 35:return _m(e,1,9999,gm,3,i).toLowerCase();case 13:return Pm(e,2534,2543,!0,i);case 14:case 30:return Pm(e,6112,6121,!0,i);case 15:return bm(e,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return bm(e,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return Rm(e,"零一二三四五六七八九","十百千萬","負",r,14);case 47:return Rm(e,"零壹貳參肆伍陸柒捌玖","拾佰仟萬","負",r,15);case 42:return Rm(e,"零一二三四五六七八九","十百千萬","负",r,14);case 41:return Rm(e,"零壹贰叁肆伍陆柒捌玖","拾佰仟萬","负",r,15);case 26:return Rm(e,"〇一二三四五六七八九","十百千万","マイナス",r,0);case 25:return Rm(e,"零壱弐参四伍六七八九","拾百千万","マイナス",r,7);case 31:return Rm(e,"영일이삼사오육칠팔구","십백천만","마이너스",o,7);case 33:return Rm(e,"零一二三四五六七八九","十百千萬","마이너스",o,0);case 32:return Rm(e,"零壹貳參四五六七八九","拾百千","마이너스",o,7);case 18:return Pm(e,2406,2415,!0,i);case 20:return _m(e,1,19999,Im,3,i);case 21:return Pm(e,2790,2799,!0,i);case 22:return Pm(e,2662,2671,!0,i);case 22:return _m(e,1,10999,vm,3,i);case 23:return bm(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return bm(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Pm(e,3302,3311,!0,i);case 28:return bm(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return bm(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return Pm(e,3792,3801,!0,i);case 37:return Pm(e,6160,6169,!0,i);case 38:return Pm(e,4160,4169,!0,i);case 39:return Pm(e,2918,2927,!0,i);case 40:return Pm(e,1776,1785,!0,i);case 43:return Pm(e,3046,3055,!0,i);case 44:return Pm(e,3174,3183,!0,i);case 45:return Pm(e,3664,3673,!0,i);case 46:return Pm(e,3872,3881,!0,i);default:return Pm(e,48,57,!0,i)}},Cm=function(){function e(e,t,s){if(this.context=e,this.options=s,this.scrolledElements=[],this.referenceElement=t,this.counters=new ym,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,i=Om(e,t);if(!i.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,o=e.defaultView.pageYOffset,n=i.contentWindow,a=n.document,l=wm(i).then((function(){return Kc(s,void 0,void 0,(function(){var e,s;return Yc(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(Um),n&&(n.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||n.scrollY===t.top&&n.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(n.scrollX-t.left,n.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")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Sm(a)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(a,s)})).then((function(){return i}))]:[2,i]}}))}))}));return a.open(),a.write(Fm(document.doctype)+""),Lm(this.referenceElement.ownerDocument,r,o),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),l},e.prototype.createElementClone=function(e){if($d(e,2),lm(e))return this.createCanvasClone(e);if(hm(e))return this.createVideoClone(e);if(Am(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return cm(t)&&(cm(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),mm(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return Bm(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}),""),i=e.cloneNode(!1);return i.textContent=s,i}}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 i=e.cloneNode(!1);try{i.width=e.width,i.height=e.height;var r=e.getContext("2d"),o=i.getContext("2d");if(o)if(!this.options.allowTaint&&r)o.putImageData(r.getImageData(0,0,e.width,e.height),0,0);else{var n=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(n){var a=n.getContextAttributes();!1===(null==a?void 0:a.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}o.drawImage(e,0,0)}return i}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return i},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 i=e.ownerDocument.createElement("canvas");return i.width=e.offsetWidth,i.height=e.offsetHeight,i},e.prototype.appendChildNode=function(e,t,s){em(t)&&("SCRIPT"===t.tagName||t.hasAttribute("data-html2canvas-ignore")||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&em(t)&&Am(t)||e.appendChild(this.cloneNode(t,s))},e.prototype.cloneChildNodes=function(e,t,s){for(var i=this,r=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;r;r=r.nextSibling)if(em(r)&&fm(r)&&"function"==typeof r.assignedNodes){var o=r.assignedNodes();o.length&&o.forEach((function(e){return i.appendChildNode(t,e,s)}))}else this.appendChildNode(t,r,s)},e.prototype.cloneNode=function(e,t){if($f(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var s=e.ownerDocument.defaultView;if(s&&em(e)&&(tm(e)||sm(e))){var i=this.createElementClone(e);i.style.transitionProperty="none";var r=s.getComputedStyle(e),o=s.getComputedStyle(e,":before"),n=s.getComputedStyle(e,":after");this.referenceElement===e&&tm(i)&&(this.clonedReferenceElement=i),am(i)&&km(i);var a=this.counters.parse(new qd(this.context,r)),l=this.resolvePseudoContent(e,i,o,cf.BEFORE);mm(e)&&(t=!0),hm(e)||this.cloneChildNodes(e,i,t),l&&i.insertBefore(l,i.firstChild);var h=this.resolvePseudoContent(e,i,n,cf.AFTER);return h&&i.appendChild(h),this.counters.pop(a),(r&&(this.options.copyStyles||sm(e))&&!um(e)||t)&&Bm(r,i),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([i,e.scrollLeft,e.scrollTop]),(pm(e)||dm(e))&&(pm(i)||dm(i))&&(i.value=e.value),i}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,s,i){var r=this;if(s){var o=s.content,n=t.ownerDocument;if(n&&o&&"none"!==o&&"-moz-alt-content"!==o&&"none"!==s.display){this.counters.parse(new qd(this.context,s));var a=new Zd(this.context,s),l=n.createElement("html2canvaspseudoelement");Bm(s,l),a.content.forEach((function(t){if(0===t.type)l.appendChild(n.createTextNode(t.value));else if(22===t.type){var s=n.createElement("img");s.src=t.value,s.style.opacity="1",l.appendChild(s)}else if(18===t.type){if("attr"===t.name){var i=t.values.filter(OA);i.length&&l.appendChild(n.createTextNode(e.getAttribute(i[0].value)||""))}else if("counter"===t.name){var o=t.values.filter(MA),h=o[0],c=o[1];if(h&&OA(h)){var u=r.counters.getCounterValue(h.value),A=c&&OA(c)?rd.parse(r.context,c.value):3;l.appendChild(n.createTextNode(Dm(u,A,!1)))}}else if("counters"===t.name){var p=t.values.filter(MA),d=(h=p[0],p[1]);c=p[2];if(h&&OA(h)){var f=r.counters.getCounterValues(h.value),m=c&&OA(c)?rd.parse(r.context,c.value):3,y=d&&0===d.type?d.value:"",E=f.map((function(e){return Dm(e,m,!1)})).join(y);l.appendChild(n.createTextNode(E))}}}else if(20===t.type)switch(t.value){case"open-quote":l.appendChild(n.createTextNode(Qd(a.quotes,r.quoteDepth++,!0)));break;case"close-quote":l.appendChild(n.createTextNode(Qd(a.quotes,--r.quoteDepth,!1)));break;default:l.appendChild(n.createTextNode(t.value))}})),l.className=Hm+" "+Gm;var h=i===cf.BEFORE?" "+Hm:" "+Gm;return sm(t)?t.className.baseValue+=h:t.className+=h,l}}},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"}(cf||(cf={}));var Nm,Om=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},xm=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},Sm=function(e){return Promise.all([].slice.call(e.images,0).map(xm))},wm=function(e){return new Promise((function(t,s){var i=e.contentWindow;if(!i)return s("No window assigned for iframe");var r=i.document;i.onload=e.onload=function(){i.onload=e.onload=null;var s=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(s),t(e))}),50)}}))},Mm=["all","d","content"],Bm=function(e,t){for(var s=e.length-1;s>=0;s--){var i=e.item(s);-1===Mm.indexOf(i)&&t.style.setProperty(i,e.getPropertyValue(i))}return t},Fm=function(e){var t="";return e&&(t+=""),t},Lm=function(e,t,s){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||s!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,s)},Um=function(e){var t=e[0],s=e[1],i=e[2];t.scrollLeft=s,t.scrollTop=i},Hm="___html2canvas___pseudoelement_before",Gm="___html2canvas___pseudoelement_after",km=function(e){Vm(e,"."+Hm+':before{\n content: "" !important;\n display: none !important;\n}\n .'+Gm+':after{\n content: "" !important;\n display: none !important;\n}')},Vm=function(e,t){var s=e.ownerDocument;if(s){var i=s.createElement("style");i.textContent=t,e.appendChild(i)}},jm=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}(),Qm=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:qm(e)||Ym(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 Kc(this,void 0,void 0,(function(){var t,s,i,r,o=this;return Yc(this,(function(n){switch(n.label){case 0:return t=jm.isSameOrigin(e),s=!Xm(e)&&!0===this._options.useCORS&&Tf.SUPPORT_CORS_IMAGES&&!t,i=!Xm(e)&&!t&&!qm(e)&&"string"==typeof this._options.proxy&&Tf.SUPPORT_CORS_XHR&&!s,t||!1!==this._options.allowTaint||Xm(e)||qm(e)||i||s?(r=e,i?[4,this.proxy(r)]:[3,2]):[2];case 1:r=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var i=new Image;i.onload=function(){return e(i)},i.onerror=t,(Zm(r)||s)&&(i.crossOrigin="anonymous"),i.src=r,!0===i.complete&&setTimeout((function(){return e(i)}),500),o._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.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 i=e.substring(0,256);return new Promise((function(r,o){var n=Tf.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=function(){if(200===a.status)if("text"===n)r(a.response);else{var e=new FileReader;e.addEventListener("load",(function(){return r(e.result)}),!1),e.addEventListener("error",(function(e){return o(e)}),!1),e.readAsDataURL(a.response)}else o("Failed to proxy resource "+i+" with status code "+a.status)},a.onerror=o;var l=s.indexOf("?")>-1?"&":"?";if(a.open("GET",""+s+l+"url="+encodeURIComponent(e)+"&responseType="+n),"text"!==n&&a instanceof XMLHttpRequest&&(a.responseType=n),t._options.imageTimeout){var h=t._options.imageTimeout;a.timeout=h,a.ontimeout=function(){return o("Timed out ("+h+"ms) proxying "+i)}}a.send()}))},e}(),Wm=/^data:image\/svg\+xml/i,zm=/^data:image\/.*;base64,/i,Km=/^data:image\/.*/i,Ym=function(e){return Tf.SUPPORT_SVG_DRAWING||!Jm(e)},Xm=function(e){return Km.test(e)},Zm=function(e){return zm.test(e)},qm=function(e){return"blob"===e.substr(0,4)},Jm=function(e){return"svg"===e.substr(-3).toLowerCase()||Wm.test(e)},$m=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}(),ey=function(e,t,s){return new $m(e.x+(t.x-e.x)*s,e.y+(t.y-e.y)*s)},ty=function(){function e(e,t,s,i){this.type=1,this.start=e,this.startControl=t,this.endControl=s,this.end=i}return e.prototype.subdivide=function(t,s){var i=ey(this.start,this.startControl,t),r=ey(this.startControl,this.endControl,t),o=ey(this.endControl,this.end,t),n=ey(i,r,t),a=ey(r,o,t),l=ey(n,a,t);return s?new e(this.start,i,n,l):new e(l,a,o,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}(),sy=function(e){return 1===e.type},iy=function(e){var t=e.styles,s=e.bounds,i=jA(t.borderTopLeftRadius,s.width,s.height),r=i[0],o=i[1],n=jA(t.borderTopRightRadius,s.width,s.height),a=n[0],l=n[1],h=jA(t.borderBottomRightRadius,s.width,s.height),c=h[0],u=h[1],A=jA(t.borderBottomLeftRadius,s.width,s.height),p=A[0],d=A[1],f=[];f.push((r+a)/s.width),f.push((p+c)/s.width),f.push((o+d)/s.height),f.push((l+u)/s.height);var m=Math.max.apply(Math,f);m>1&&(r/=m,o/=m,a/=m,l/=m,c/=m,u/=m,p/=m,d/=m);var y=s.width-a,E=s.height-u,g=s.width-c,v=s.height-d,I=t.borderTopWidth,_=t.borderRightWidth,T=t.borderBottomWidth,P=t.borderLeftWidth,b=QA(t.paddingTop,e.bounds.width),R=QA(t.paddingRight,e.bounds.width),D=QA(t.paddingBottom,e.bounds.width),C=QA(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||o>0?ry(s.left+P/3,s.top+I/3,r-P/3,o-I/3,Nm.TOP_LEFT):new $m(s.left+P/3,s.top+I/3),this.topRightBorderDoubleOuterBox=r>0||o>0?ry(s.left+y,s.top+I/3,a-_/3,l-I/3,Nm.TOP_RIGHT):new $m(s.left+s.width-_/3,s.top+I/3),this.bottomRightBorderDoubleOuterBox=c>0||u>0?ry(s.left+g,s.top+E,c-_/3,u-T/3,Nm.BOTTOM_RIGHT):new $m(s.left+s.width-_/3,s.top+s.height-T/3),this.bottomLeftBorderDoubleOuterBox=p>0||d>0?ry(s.left+P/3,s.top+v,p-P/3,d-T/3,Nm.BOTTOM_LEFT):new $m(s.left+P/3,s.top+s.height-T/3),this.topLeftBorderDoubleInnerBox=r>0||o>0?ry(s.left+2*P/3,s.top+2*I/3,r-2*P/3,o-2*I/3,Nm.TOP_LEFT):new $m(s.left+2*P/3,s.top+2*I/3),this.topRightBorderDoubleInnerBox=r>0||o>0?ry(s.left+y,s.top+2*I/3,a-2*_/3,l-2*I/3,Nm.TOP_RIGHT):new $m(s.left+s.width-2*_/3,s.top+2*I/3),this.bottomRightBorderDoubleInnerBox=c>0||u>0?ry(s.left+g,s.top+E,c-2*_/3,u-2*T/3,Nm.BOTTOM_RIGHT):new $m(s.left+s.width-2*_/3,s.top+s.height-2*T/3),this.bottomLeftBorderDoubleInnerBox=p>0||d>0?ry(s.left+2*P/3,s.top+v,p-2*P/3,d-2*T/3,Nm.BOTTOM_LEFT):new $m(s.left+2*P/3,s.top+s.height-2*T/3),this.topLeftBorderStroke=r>0||o>0?ry(s.left+P/2,s.top+I/2,r-P/2,o-I/2,Nm.TOP_LEFT):new $m(s.left+P/2,s.top+I/2),this.topRightBorderStroke=r>0||o>0?ry(s.left+y,s.top+I/2,a-_/2,l-I/2,Nm.TOP_RIGHT):new $m(s.left+s.width-_/2,s.top+I/2),this.bottomRightBorderStroke=c>0||u>0?ry(s.left+g,s.top+E,c-_/2,u-T/2,Nm.BOTTOM_RIGHT):new $m(s.left+s.width-_/2,s.top+s.height-T/2),this.bottomLeftBorderStroke=p>0||d>0?ry(s.left+P/2,s.top+v,p-P/2,d-T/2,Nm.BOTTOM_LEFT):new $m(s.left+P/2,s.top+s.height-T/2),this.topLeftBorderBox=r>0||o>0?ry(s.left,s.top,r,o,Nm.TOP_LEFT):new $m(s.left,s.top),this.topRightBorderBox=a>0||l>0?ry(s.left+y,s.top,a,l,Nm.TOP_RIGHT):new $m(s.left+s.width,s.top),this.bottomRightBorderBox=c>0||u>0?ry(s.left+g,s.top+E,c,u,Nm.BOTTOM_RIGHT):new $m(s.left+s.width,s.top+s.height),this.bottomLeftBorderBox=p>0||d>0?ry(s.left,s.top+v,p,d,Nm.BOTTOM_LEFT):new $m(s.left,s.top+s.height),this.topLeftPaddingBox=r>0||o>0?ry(s.left+P,s.top+I,Math.max(0,r-P),Math.max(0,o-I),Nm.TOP_LEFT):new $m(s.left+P,s.top+I),this.topRightPaddingBox=a>0||l>0?ry(s.left+Math.min(y,s.width-_),s.top+I,y>s.width+_?0:Math.max(0,a-_),Math.max(0,l-I),Nm.TOP_RIGHT):new $m(s.left+s.width-_,s.top+I),this.bottomRightPaddingBox=c>0||u>0?ry(s.left+Math.min(g,s.width-P),s.top+Math.min(E,s.height-T),Math.max(0,c-_),Math.max(0,u-T),Nm.BOTTOM_RIGHT):new $m(s.left+s.width-_,s.top+s.height-T),this.bottomLeftPaddingBox=p>0||d>0?ry(s.left+P,s.top+Math.min(v,s.height-T),Math.max(0,p-P),Math.max(0,d-T),Nm.BOTTOM_LEFT):new $m(s.left+P,s.top+s.height-T),this.topLeftContentBox=r>0||o>0?ry(s.left+P+C,s.top+I+b,Math.max(0,r-(P+C)),Math.max(0,o-(I+b)),Nm.TOP_LEFT):new $m(s.left+P+C,s.top+I+b),this.topRightContentBox=a>0||l>0?ry(s.left+Math.min(y,s.width+P+C),s.top+I+b,y>s.width+P+C?0:a-P+C,l-(I+b),Nm.TOP_RIGHT):new $m(s.left+s.width-(_+R),s.top+I+b),this.bottomRightContentBox=c>0||u>0?ry(s.left+Math.min(g,s.width-(P+C)),s.top+Math.min(E,s.height+I+b),Math.max(0,c-(_+R)),u-(T+D),Nm.BOTTOM_RIGHT):new $m(s.left+s.width-(_+R),s.top+s.height-(T+D)),this.bottomLeftContentBox=p>0||d>0?ry(s.left+P+C,s.top+v,Math.max(0,p-(P+C)),d-(T+D),Nm.BOTTOM_LEFT):new $m(s.left+P+C,s.top+s.height-(T+D))};!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"}(Nm||(Nm={}));var ry=function(e,t,s,i,r){var o=(Math.sqrt(2)-1)/3*4,n=s*o,a=i*o,l=e+s,h=t+i;switch(r){case Nm.TOP_LEFT:return new ty(new $m(e,h),new $m(e,h-a),new $m(l-n,t),new $m(l,t));case Nm.TOP_RIGHT:return new ty(new $m(e,t),new $m(e+n,t),new $m(l,h-a),new $m(l,h));case Nm.BOTTOM_RIGHT:return new ty(new $m(l,t),new $m(l,t+a),new $m(e+n,h),new $m(e,h));case Nm.BOTTOM_LEFT:default:return new ty(new $m(l,h),new $m(l-n,h),new $m(e,t+a),new $m(e,t))}},oy=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},ny=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},ay=function(e,t,s){this.offsetX=e,this.offsetY=t,this.matrix=s,this.type=0,this.target=6},ly=function(e,t){this.path=e,this.target=t,this.type=1},hy=function(e){this.opacity=e,this.type=2,this.target=6},cy=function(e){return 1===e.type},uy=function(e,t){return e.length===t.length&&e.some((function(e,s){return e===t[s]}))},Ay=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},py=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new iy(this.container),this.container.styles.opacity<1&&this.effects.push(new hy(this.container.styles.opacity)),null!==this.container.styles.transform){var s=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new ay(s,i,r))}if(0!==this.container.styles.overflowX){var o=oy(this.curves),n=ny(this.curves);uy(o,n)?this.effects.push(new ly(o,6)):(this.effects.push(new ly(o,2)),this.effects.push(new ly(n,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),s=this.parent,i=this.effects.slice(0);s;){var r=s.effects.filter((function(e){return!cy(e)}));if(t||0!==s.container.styles.position||!s.parent){if(i.unshift.apply(i,r),t=-1===[2,3].indexOf(s.container.styles.position),0!==s.container.styles.overflowX){var o=oy(s.curves),n=ny(s.curves);uy(o,n)||i.unshift(new ly(n,6))}}else i.unshift.apply(i,r);s=s.parent}return i.filter((function(t){return Ud(t.target,e)}))},e}(),dy=function(e,t,s,i){e.container.elements.forEach((function(r){var o=Ud(r.flags,4),n=Ud(r.flags,2),a=new py(r,e);Ud(r.styles.display,2048)&&i.push(a);var l=Ud(r.flags,8)?[]:i;if(o||n){var h=o||r.styles.isPositioned()?s:t,c=new Ay(a);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var u=r.styles.zIndex.order;if(u<0){var A=0;h.negativeZIndex.some((function(e,t){return u>e.element.container.styles.zIndex.order?(A=t,!1):A>0})),h.negativeZIndex.splice(A,0,c)}else if(u>0){var p=0;h.positiveZIndex.some((function(e,t){return u>=e.element.container.styles.zIndex.order?(p=t+1,!1):p>0})),h.positiveZIndex.splice(p,0,c)}else h.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else r.styles.isFloating()?h.nonPositionedFloats.push(c):h.nonPositionedInlineLevel.push(c);dy(a,c,o?c:s,l)}else r.styles.isInlineLevel()?t.inlineLevel.push(a):t.nonInlineLevel.push(a),dy(a,t,s,l);Ud(r.flags,8)&&fy(r,l)}))},fy=function(e,t){for(var s=e instanceof Hf?e.start:1,i=e instanceof Hf&&e.reversed,r=0;r0&&e.intrinsicHeight>0){var i=vy(e),r=ny(t);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(s,0,0,e.intrinsicWidth,e.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return Kc(this,void 0,void 0,(function(){var s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g;return Yc(this,(function(v){switch(v.label){case 0:this.applyEffects(e.getEffects(4)),s=e.container,i=e.curves,r=s.styles,o=0,n=s.textNodes,v.label=1;case 1:return o0&&T>0&&(y=i.ctx.createPattern(d,"repeat"),i.renderRepeat(g,y,b,R))):function(e){return 2===e.type}(s)&&(E=Iy(e,t,[null,null,null]),g=E[0],v=E[1],I=E[2],_=E[3],T=E[4],P=0===s.position.length?[kA]:s.position,b=QA(P[0],_),R=QA(P[P.length-1],T),D=function(e,t,s,i,r){var o=0,n=0;switch(e.size){case 0:0===e.shape?o=n=Math.min(Math.abs(t),Math.abs(t-i),Math.abs(s),Math.abs(s-r)):1===e.shape&&(o=Math.min(Math.abs(t),Math.abs(t-i)),n=Math.min(Math.abs(s),Math.abs(s-r)));break;case 2:if(0===e.shape)o=n=Math.min(up(t,s),up(t,s-r),up(t-i,s),up(t-i,s-r));else if(1===e.shape){var a=Math.min(Math.abs(s),Math.abs(s-r))/Math.min(Math.abs(t),Math.abs(t-i)),l=Ap(i,r,t,s,!0),h=l[0],c=l[1];n=a*(o=up(h-t,(c-s)/a))}break;case 1:0===e.shape?o=n=Math.max(Math.abs(t),Math.abs(t-i),Math.abs(s),Math.abs(s-r)):1===e.shape&&(o=Math.max(Math.abs(t),Math.abs(t-i)),n=Math.max(Math.abs(s),Math.abs(s-r)));break;case 3:if(0===e.shape)o=n=Math.max(up(t,s),up(t,s-r),up(t-i,s),up(t-i,s-r));else if(1===e.shape){a=Math.max(Math.abs(s),Math.abs(s-r))/Math.max(Math.abs(t),Math.abs(t-i));var u=Ap(i,r,t,s,!1);h=u[0],c=u[1],n=a*(o=up(h-t,(c-s)/a))}}return Array.isArray(e.size)&&(o=QA(e.size[0],i),n=2===e.size.length?QA(e.size[1],r):o),[o,n]}(s,b,R,_,T),C=D[0],N=D[1],C>0&&N>0&&(O=i.ctx.createRadialGradient(v+b,I+R,0,v+b,I+R,C),hp(s.stops,2*C).forEach((function(e){return O.addColorStop(e.stop,qA(e.color))})),i.path(g),i.ctx.fillStyle=O,C!==N?(x=e.bounds.left+.5*e.bounds.width,S=e.bounds.top+.5*e.bounds.height,M=1/(w=N/C),i.ctx.save(),i.ctx.translate(x,S),i.ctx.transform(1,0,0,w,0,0),i.ctx.translate(-x,-S),i.ctx.fillRect(v,M*(I-S)+S,_,T*M),i.ctx.restore()):i.ctx.fill())),B.label=6;case 6:return t--,[2]}}))},i=this,r=0,o=e.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return r0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,2)]:[3,11]:[3,13];case 4:return c.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,3)];case 6:return c.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,o,e.curves)];case 8:return c.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,o,e.curves)];case 10:c.sent(),c.label=11;case 11:o++,c.label=12;case 12:return n++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,t,s,i,r){return Kc(this,void 0,void 0,(function(){var o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v;return Yc(this,(function(I){return this.ctx.save(),o=function(e,t){switch(t){case 0:return yy(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return yy(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return yy(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return yy(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(i,s),n=my(i,s),2===r&&(this.path(n),this.ctx.clip()),sy(n[0])?(a=n[0].start.x,l=n[0].start.y):(a=n[0].x,l=n[0].y),sy(n[1])?(h=n[1].end.x,c=n[1].end.y):(h=n[1].x,c=n[1].y),u=0===s||2===s?Math.abs(a-h):Math.abs(l-c),this.ctx.beginPath(),3===r?this.formatPath(o):this.formatPath(n.slice(0,2)),A=t<3?3*t:2*t,p=t<3?2*t:t,3===r&&(A=t,p=t),d=!0,u<=2*A?d=!1:u<=2*A+p?(A*=f=u/(2*A+p),p*=f):(m=Math.floor((u+p)/(A+p)),y=(u-m*A)/(m-1),p=(E=(u-(m+1)*A)/m)<=0||Math.abs(p-y){})),Yy(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){Qy(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){Qy(this.isRunning),this.isRunning=!1,this._reject(e)}}class Zy{}const qy=new Map;function Jy(e){Qy(e.source&&!e.url||!e.source&&e.url);let t=qy.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return $y((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),qy.set(e.url,t)),e.source&&(t=$y(e.source),qy.set(e.source,t))),Qy(t),t}function $y(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function eE(e,t=!0,s){const i=s||new Set;if(e){if(tE(e))i.add(e);else if(tE(e.buffer))i.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const s in e)eE(e[s],t,i)}else;return void 0===s?Array.from(i):[]}function tE(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 sE=()=>{};class iE{static isSupported(){return"undefined"!=typeof Worker&&Wy||void 0!==typeof Zy}constructor(e){Yy(this,"name",void 0),Yy(this,"source",void 0),Yy(this,"url",void 0),Yy(this,"terminated",!1),Yy(this,"worker",void 0),Yy(this,"onMessage",void 0),Yy(this,"onError",void 0),Yy(this,"_loadableURL","");const{name:t,source:s,url:i}=e;Qy(s||i),this.name=t,this.source=s,this.url=i,this.onMessage=sE,this.onError=e=>console.log(e),this.worker=Wy?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=sE,this.onError=sE,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||eE(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=Jy({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 Zy(t,{eval:!1})}else{if(!this.source)throw new Error("no worker");e=new Zy(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 rE{static isSupported(){return iE.isSupported()}constructor(e){Yy(this,"name","unnamed"),Yy(this,"source",void 0),Yy(this,"url",void 0),Yy(this,"maxConcurrency",1),Yy(this,"maxMobileConcurrency",1),Yy(this,"onDebug",(()=>{})),Yy(this,"reuseWorkers",!0),Yy(this,"props",{}),Yy(this,"jobQueue",[]),Yy(this,"idleQueue",[]),Yy(this,"count",0),Yy(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 i=new Promise((i=>(this.jobQueue.push({name:e,onMessage:t,onError:s,onStart:i}),this)));return this._startQueuedJob(),await i}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 Xy(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 nE{static isSupported(){return iE.isSupported()}static getWorkerFarm(e={}){return nE._workerFarm=nE._workerFarm||new nE({}),nE._workerFarm.setProps(e),nE._workerFarm}constructor(e){Yy(this,"props",void 0),Yy(this,"workerPools",new Map),this.props={...oE},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:i}=e;let r=this.workerPools.get(t);return r||(r=new rE({name:t,source:s,url:i}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}Yy(nE,"_workerFarm",void 0);const aE={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},lE=aE.window||aE.self||aE.global,hE=aE.process||{},cE="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source",uE=!("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)}();class AE{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 pE(e,t,s,i=600){const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>i&&(s=Math.min(s,i/e.width));const o=e.width*s,n=e.height*s,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}const dE={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 fE(e){return"string"==typeof e?dE[e.toUpperCase()]||dE.WHITE:e}function mE(e,t){if(!e)throw new Error(t||"Assertion failed")}function yE(){let e;if(uE&&lE.performance)e=lE.performance.now();else if(hE.hrtime){const t=hE.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}const EE={debug:uE&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},gE={enabled:!0,level:0};function vE(){}const IE={},_E={once:!0};function TE(e){for(const t in e)for(const s in e[t])return s||"untitled";return"empty"}class PE{constructor({id:e}={id:""}){this.id=e,this.VERSION=cE,this._startTs=yE(),this._deltaTs=yE(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new AE("__probe-".concat(this.id,"__"),gE),this.userData={},this.timeStamp("".concat(this.id," started")),function(e,t=["constructor"]){const s=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(s);for(const s of i)"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((yE()-this._startTs).toPrecision(10))}getDelta(){return Number((yE()-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){mE(e,t)}warn(e){return this._getLogFunction(0,e,EE.warn,arguments,_E)}error(e){return this._getLogFunction(0,e,EE.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,EE.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,EE.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,EE.debug||EE.info,arguments,_E)}table(e,t,s){return t?this._getLogFunction(e,t,console.table||vE,s&&[s],{tag:TE(t)}):vE}image({logLevel:e,priority:t,image:s,message:i="",scale:r=1}){return this._shouldLog(e||t)?uE?function({image:e,message:t="",scale:s=1}){if("string"==typeof e){const i=new Image;return i.onload=()=>{const e=pE(i,t,s);console.log(...e)},i.src=e,vE}const i=e.nodeName||"";if("img"===i.toLowerCase())return console.log(...pE(e,t,s)),vE;if("canvas"===i.toLowerCase()){const i=new Image;return i.onload=()=>console.log(...pE(i,t,s)),i.src=e.toDataURL(),vE}return vE}({image:s,message:i,scale:r}):function({image:e,message:t="",scale:s=1}){let i=null;try{i=module.require("asciify-image")}catch(e){}if(i)return()=>i(e,{fit:"box",width:"".concat(Math.round(80*s),"%")}).then((e=>console.log(e)));return vE}({image:s,message:i,scale:r}):vE}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||vE)}group(e,t,s={collapsed:!1}){s=RE({logLevel:e,message:t,opts:s});const{collapsed:i}=s;return s.method=(i?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||vE)}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()>=bE(e)}_getLogFunction(e,t,s,i=[],r){if(this._shouldLog(e)){r=RE({logLevel:e,message:t,args:i,opts:r}),mE(s=s||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=yE();const o=r.tag||r.message;if(r.once){if(IE[o])return vE;IE[o]=yE()}return t=function(e,t,s){if("string"==typeof t){const i=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(i," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,s){return uE||"string"!=typeof e||(t&&(t=fE(t),e="[".concat(t,"m").concat(e,"")),s&&(t=fE(s),e="[".concat(s+10,"m").concat(e,""))),e}(t,s.color,s.background)}return t}(this.id,r.message,r),s.bind(console,t,...r.args)}return vE}}function bE(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 mE(Number.isFinite(t)&&t>=0),t}function RE(e){const{logLevel:t,message:s}=e;e.logLevel=bE(t);const i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==s;);switch(e.args=i,typeof t){case"string":case"function":void 0!==s&&i.unshift(s),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return mE("string"===r||"object"===r),Object.assign(e,e.opts)}PE.VERSION=cE,new PE({id:"loaders.gl"});function DE(){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)}()}new class{constructor(){Yy(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)}};const CE={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},NE=CE.window||CE.self||CE.global,OE=CE.process||{},xE="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source";DE();class SE{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";Yy(this,"storage",void 0),Yy(this,"id",void 0),Yy(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 wE(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600;const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>i&&(s=Math.min(s,i/e.width));const o=e.width*s,n=e.height*s,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}let ME;function BE(e){return"string"==typeof e?ME[e.toUpperCase()]||ME.WHITE:e}function FE(e,t){if(!e)throw new Error(t||"Assertion failed")}function LE(){let e;var t,s;if(DE&&"performance"in NE)e=null==NE||null===(t=NE.performance)||void 0===t||null===(s=t.now)||void 0===s?void 0:s.call(t);else if("hrtime"in OE){var i;const t=null==OE||null===(i=OE.hrtime)||void 0===i?void 0:i.call(OE);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"}(ME||(ME={}));const UE={debug:DE&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},HE={enabled:!0,level:0};function GE(){}const kE={},VE={once:!0};class jE{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""};Yy(this,"id",void 0),Yy(this,"VERSION",xE),Yy(this,"_startTs",LE()),Yy(this,"_deltaTs",LE()),Yy(this,"_storage",void 0),Yy(this,"userData",{}),Yy(this,"LOG_THROTTLE_TIMEOUT",0),this.id=e,this._storage=new SE("__probe-".concat(this.id,"__"),HE),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),i=Object.getOwnPropertyNames(s);for(const s of i)"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((LE()-this._startTs).toPrecision(10))}getDelta(){return Number((LE()-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){FE(e,t)}warn(e){return this._getLogFunction(0,e,UE.warn,arguments,VE)}error(e){return this._getLogFunction(0,e,UE.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,UE.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,UE.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){for(var s=arguments.length,i=new Array(s>2?s-2:0),r=2;r{const t=wE(e,s,i);console.log(...t)},e.src=t,GE}const r=t.nodeName||"";if("img"===r.toLowerCase())return console.log(...wE(t,s,i)),GE;if("canvas"===r.toLowerCase()){const e=new Image;return e.onload=()=>console.log(...wE(e,s,i)),e.src=t.toDataURL(),GE}return GE}({image:i,message:r,scale:o}):function(e){let{image:t,message:s="",scale:i=1}=e,r=null;try{r=module.require("asciify-image")}catch(e){}if(r)return()=>r(t,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((e=>console.log(e)));return GE}({image:i,message:r,scale:o}):GE}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||GE)}group(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1};const i=WE({logLevel:e,message:t,opts:s}),{collapsed:r}=s;return i.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}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||GE)}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()>=QE(e)}_getLogFunction(e,t,s,i,r){if(this._shouldLog(e)){r=WE({logLevel:e,message:t,args:i,opts:r}),FE(s=s||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=LE();const o=r.tag||r.message;if(r.once){if(kE[o])return GE;kE[o]=LE()}return t=function(e,t,s){if("string"==typeof t){const i=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(i," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,s){return DE||"string"!=typeof e||(t&&(t=BE(t),e="[".concat(t,"m").concat(e,"")),s&&(t=BE(s),e="[".concat(s+10,"m").concat(e,""))),e}(t,s.color,s.background)}return t}(this.id,r.message,r),s.bind(console,t,...r.args)}return GE}}function QE(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 FE(Number.isFinite(t)&&t>=0),t}function WE(e){const{logLevel:t,message:s}=e;e.logLevel=QE(t);const i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==s;);switch(typeof t){case"string":case"function":void 0!==s&&i.unshift(s),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return FE("string"===r||"object"===r),Object.assign(e,{args:i},e.opts)}function zE(e){for(const t in e)for(const s in e[t])return s||"untitled";return"empty"}var KE,YE,XE,ZE,qE,JE,$E,eg,tg;let sg;Yy(jE,"VERSION",xE),new jE({id:"loaders.gl"}),(tg=KE||(KE={}))[tg.NONE=0]="NONE",tg[tg.BASISLZ=1]="BASISLZ",tg[tg.ZSTD=2]="ZSTD",tg[tg.ZLIB=3]="ZLIB",function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(YE||(YE={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(XE||(XE={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}(ZE||(ZE={})),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"}(qE||(qE={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(JE||(JE={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}($E||($E={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(eg||(eg={})),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"}(sg||(sg={}));const ig={DEFAULT:{}};function rg(e,t,s={}){const i="lightgrey",r=s.hoverColor||"rgba(0,0,0,0.4)",o=s.textColor||"black",n=500,a=n+n/3,l=a/24,h=[{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=r[0]*l&&t<=(r[0]+r[2])*l&&s>=r[1]*l&&s<=(r[1]+r[3])*l)return i}}return-1},this.setAreaHighlighted=function(e,t){var s=p[e];if(!s)throw"Area not found: "+e;s.highlighted=!!t,m()},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 og=A.vec3(),ng=A.vec3();A.mat4();class ag extends H{constructor(e,t={}){super("NavCube",e,t),e.navCube=this;try{this._navCubeScene=new Xt(e,{canvasId:t.canvasId,canvasElement:t.canvasElement,transparent:!0}),this._navCubeCanvas=this._navCubeScene.canvas.canvas,this._navCubeScene.input.keyboardEnabled=!1}catch(e){return void this.error(e)}const s=this._navCubeScene;s.clearLights(),new Et(s,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new Et(s,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new Et(s,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._navCubeCamera=s.camera,this._navCubeCamera.ortho.scale=7,this._navCubeCamera.ortho.near=.1,this._navCubeCamera.ortho.far=2e3,s.edgeMaterial.edgeColor=[.2,.2,.2],s.edgeMaterial.edgeAlpha=.6,this._zUp=Boolean(e.camera.zUp);var i=this;this.setIsProjectNorth(t.isProjectNorth),this.setProjectNorthOffsetAngle(t.projectNorthOffsetAngle);const r=function(){const e=A.mat4();return function(t,s,r){return A.identityMat4(e),A.rotationMat4v(t*i._projectNorthOffsetAngle*A.DEGTORAD,[0,1,0],e),A.transformVec3(e,s,r)}}();this._synchCamera=function(){var t=A.rotationMat4c(-90*A.DEGTORAD,1,0,0),s=A.vec3(),o=A.vec3(),n=A.vec3();return function(){var a=e.camera.eye,l=e.camera.look,h=e.camera.up;s=A.mulVec3Scalar(A.normalizeVec3(A.subVec3(a,l,s)),5),i._isProjectNorth&&i._projectNorthOffsetAngle&&(s=r(-1,s,og),h=r(-1,h,ng)),i._zUp?(A.transformVec3(t,s,o),A.transformVec3(t,h,n),i._navCubeCamera.look=[0,0,0],i._navCubeCamera.eye=A.transformVec3(t,s,o),i._navCubeCamera.up=A.transformPoint3(t,h,n)):(i._navCubeCamera.look=[0,0,0],i._navCubeCamera.eye=s,i._navCubeCamera.up=h)}}(),this._cubeTextureCanvas=new rg(e,s,t),this._cubeSampler=new hi(s,{image:this._cubeTextureCanvas.getImage(),flipY:!0,wrapS:1001,wrapT:1001}),this._cubeMesh=new Gs(s,{geometry:new xt(s,{primitive:"triangles",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],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]}),material:new Ft(s,{diffuse:[.4,.4,.4],specular:[.4,.4,.4],emissive:[.6,.6,.6],diffuseMap:this._cubeSampler,emissiveMap:this._cubeSampler}),visible:!0,edges:!0}),this._shadow=!1===t.shadowVisible?null:new Gs(s,{geometry:new xt(s,Vs({center:[0,0,0],radiusTop:.001,radiusBottom:1.4,height:.01,radialSegments:20,heightSegments:1,openEnded:!0})),material:new Ft(s,{diffuse:[0,0,0],specular:[0,0,0],emissive:[0,0,0],alpha:.5}),position:[0,-1.5,0],visible:!0,pickable:!1,backfaces:!1}),this._onCameraMatrix=e.camera.on("matrix",this._synchCamera),this._onCameraWorldAxis=e.camera.on("worldAxis",(()=>{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 o=-1;function n(e){var t=[0,0];if(e){for(var s=e.target,i=0,r=0;s.offsetParent;)i+=s.offsetLeft,r+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-i,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var a,l,h=null,c=null,u=!1,p=!1,d=.5;i._navCubeCanvas.addEventListener("mouseenter",i._onMouseEnter=function(e){p=!0}),i._navCubeCanvas.addEventListener("mouseleave",i._onMouseLeave=function(e){p=!1}),i._navCubeCanvas.addEventListener("mousedown",i._onMouseDown=function(e){if(1===e.which){h=e.x,c=e.y,a=e.clientX,l=e.clientY;var t=n(e),i=s.pick({canvasPos:t});u=!!i}}),document.addEventListener("mouseup",i._onMouseUp=function(e){if(1===e.which&&(u=!1,null!==h)){var t=n(e),a=s.pick({canvasPos:t,pickSurface:!0});if(a&&a.uv){var l=i._cubeTextureCanvas.getArea(a.uv);if(l>=0&&(document.body.style.cursor="pointer",o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1),l>=0)){if(i._cubeTextureCanvas.setAreaHighlighted(l,!0),o=l,i._repaint(),e.xh+3||e.yc+3)return;var A=i._cubeTextureCanvas.getAreaDir(l);if(A){var p=i._cubeTextureCanvas.getAreaUp(l);i._isProjectNorth&&i._projectNorthOffsetAngle&&(A=r(1,A,og),p=r(1,p,ng)),f(A,p,(function(){o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1),document.body.style.cursor="pointer",o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1),l>=0&&(i._cubeTextureCanvas.setAreaHighlighted(l,!1),o=-1,i._repaint())}))}}}}}),document.addEventListener("mousemove",i._onMouseMove=function(t){if(o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1),1!==t.buttons||u){if(u){var r=t.clientX,h=t.clientY;return document.body.style.cursor="move",void function(t,s){var i=(t-a)*-d,r=(s-l)*-d;e.camera.orbitYaw(i),e.camera.orbitPitch(-r),a=t,l=s}(r,h)}if(p){var c=n(t),A=s.pick({canvasPos:c,pickSurface:!0});if(A){if(A.uv){document.body.style.cursor="pointer";var f=i._cubeTextureCanvas.getArea(A.uv);if(f===o)return;o>=0&&i._cubeTextureCanvas.setAreaHighlighted(o,!1),f>=0&&(i._cubeTextureCanvas.setAreaHighlighted(f,!0),i._repaint(),o=f)}}else document.body.style.cursor="default",o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1)}}});var f=function(){var t=A.vec3();return function(s,r,o){var n=i._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,a=A.getAABB3Diag(n);A.getAABB3Center(n,t);var l=Math.abs(a/Math.tan(i._cameraFitFOV*A.DEGTORAD));e.cameraControl.pivotPos=t,i._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-l*s[0],t[1]-l*s[1],t[2]-l*s[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:i._cameraFitFOV,duration:i._cameraFlyDuration},o):e.cameraFlight.jumpTo({look:t,eye:[t[0]-l*s[0],t[1]-l*s[1],t[2]-l*s[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:i._cameraFitFOV},o)}}();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()}}A.vec3();const lg=new Float64Array([0,0,1]),hg=new Float64Array(4);class cg{constructor(e){this.id=null,this._viewer=e.viewer,this._visible=!1,this._pos=A.vec3(),this._origin=A.vec3(),this._rtcPos=A.vec3(),this._baseDir=A.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),V(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=A.vec3PairToQuaternion(lg,e,hg)}_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 ei(t,{position:[0,0,0],scale:[5,5,5]});const i=this._rootNode,r={arrowHead:new xt(i,Vs({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new xt(i,Vs({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),arrowHeadHandle:new xt(i,Vs({radiusTop:.09,radiusBottom:.09,radialSegments:8,heightSegments:1,height:.37,openEnded:!1})),curve:new xt(i,fi({radius:.8,tube:s,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),curveHandle:new xt(i,fi({radius:.8,tube:.06,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),hoop:new xt(i,fi({radius:.8,tube:s,radialSegments:64,tubeSegments:8,arc:2*Math.PI})),axis:new xt(i,Vs({radiusTop:s,radiusBottom:s,radialSegments:20,heightSegments:1,height:1,openEnded:!1})),axisHandle:new xt(i,Vs({radiusTop:.08,radiusBottom:.08,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},o={pickable:new Ft(i,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),red:new Ft(i,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Ut(i,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6}),green:new Ft(i,{diffuse:[0,1,0],emissive:[0,1,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightGreen:new Ut(i,{edges:!1,fill:!0,fillColor:[0,1,0],fillAlpha:.6}),blue:new Ft(i,{diffuse:[0,0,1],emissive:[0,0,1],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightBlue:new Ut(i,{edges:!1,fill:!0,fillColor:[0,0,1],fillAlpha:.2}),center:new Ft(i,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),highlightBall:new Ut(i,{edges:!1,fill:!0,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1}),highlightPlane:new Ut(i,{edges:!0,edgeWidth:3,fill:!1,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1})};this._displayMeshes={plane:i.addChild(new Gs(i,{geometry:new xt(i,{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 Ft(i,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new Ut(i,{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:i.addChild(new Gs(i,{geometry:new xt(i,fi({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ft(i,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new Ut(i,{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:i.addChild(new Gs(i,{geometry:r.curve,material:o.red,matrix:function(){const e=A.rotationMat4v(90*A.DEGTORAD,[0,1,0],A.identityMat4()),t=A.rotationMat4v(270*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveHandle:i.addChild(new Gs(i,{geometry:r.curveHandle,material:o.pickable,matrix:function(){const e=A.rotationMat4v(90*A.DEGTORAD,[0,1,0],A.identityMat4()),t=A.rotationMat4v(270*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveArrow1:i.addChild(new Gs(i,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=A.translateMat4c(0,-.07,-.8,A.identityMat4()),t=A.scaleMat4v([.6,.6,.6],A.identityMat4()),s=A.rotationMat4v(0*A.DEGTORAD,[0,0,1],A.identityMat4());return A.mulMat4(A.mulMat4(e,t,A.identityMat4()),s,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xCurveArrow2:i.addChild(new Gs(i,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=A.translateMat4c(0,-.8,-.07,A.identityMat4()),t=A.scaleMat4v([.6,.6,.6],A.identityMat4()),s=A.rotationMat4v(90*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(A.mulMat4(e,t,A.identityMat4()),s,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurve:i.addChild(new Gs(i,{geometry:r.curve,material:o.green,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveHandle:i.addChild(new Gs(i,{geometry:r.curveHandle,material:o.pickable,rotation:[-90,0,0],pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveArrow1:i.addChild(new Gs(i,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=A.translateMat4c(.07,0,-.8,A.identityMat4()),t=A.scaleMat4v([.6,.6,.6],A.identityMat4()),s=A.rotationMat4v(90*A.DEGTORAD,[0,0,1],A.identityMat4());return A.mulMat4(A.mulMat4(e,t,A.identityMat4()),s,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurveArrow2:i.addChild(new Gs(i,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=A.translateMat4c(.8,0,-.07,A.identityMat4()),t=A.scaleMat4v([.6,.6,.6],A.identityMat4()),s=A.rotationMat4v(90*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(A.mulMat4(e,t,A.identityMat4()),s,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurve:i.addChild(new Gs(i,{geometry:r.curve,material:o.blue,matrix:A.rotationMat4v(180*A.DEGTORAD,[1,0,0],A.identityMat4()),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zCurveHandle:i.addChild(new Gs(i,{geometry:r.curveHandle,material:o.pickable,matrix:A.rotationMat4v(180*A.DEGTORAD,[1,0,0],A.identityMat4()),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveCurveArrow1:i.addChild(new Gs(i,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=A.translateMat4c(.8,-.07,0,A.identityMat4()),t=A.scaleMat4v([.6,.6,.6],A.identityMat4());return A.mulMat4(e,t,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveArrow2:i.addChild(new Gs(i,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=A.translateMat4c(.05,-.8,0,A.identityMat4()),t=A.scaleMat4v([.6,.6,.6],A.identityMat4()),s=A.rotationMat4v(90*A.DEGTORAD,[0,0,1],A.identityMat4());return A.mulMat4(A.mulMat4(e,t,A.identityMat4()),s,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),center:i.addChild(new Gs(i,{geometry:new xt(i,js({radius:.05})),material:o.center,pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrow:i.addChild(new Gs(i,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=A.translateMat4c(0,1.1,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[0,0,1],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrowHandle:i.addChild(new Gs(i,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=A.translateMat4c(0,1.1,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[0,0,1],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xAxis:i.addChild(new Gs(i,{geometry:r.axis,material:o.red,matrix:function(){const e=A.translateMat4c(0,.5,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[0,0,1],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisHandle:i.addChild(new Gs(i,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=A.translateMat4c(0,.5,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[0,0,1],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:i.addChild(new Gs(i,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=A.translateMat4c(0,1.1,0,A.identityMat4()),t=A.rotationMat4v(180*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrowHandle:i.addChild(new Gs(i,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=A.translateMat4c(0,1.1,0,A.identityMat4()),t=A.rotationMat4v(180*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,opacity:.2}),e),yShaft:i.addChild(new Gs(i,{geometry:r.axis,material:o.green,position:[0,-.5,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yShaftHandle:i.addChild(new Gs(i,{geometry:r.axisHandle,material:o.pickable,position:[0,-.5,0],pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:i.addChild(new Gs(i,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=A.translateMat4c(0,1.1,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[.8,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrowHandle:i.addChild(new Gs(i,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=A.translateMat4c(0,1.1,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[.8,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zShaft:i.addChild(new Gs(i,{geometry:r.axis,material:o.blue,matrix:function(){const e=A.translateMat4c(0,.5,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1}),e),zAxisHandle:i.addChild(new Gs(i,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=A.translateMat4c(0,.5,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),clippable:!1,pickable:!0,collidable:!0,visible:!1}),e)},this._affordanceMeshes={planeFrame:i.addChild(new Gs(i,{geometry:new xt(i,fi({center:[0,0,0],radius:2,tube:s,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ft(i,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Ut(i,{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:i.addChild(new Gs(i,{geometry:r.hoop,material:o.red,highlighted:!0,highlightMaterial:o.highlightRed,matrix:function(){const e=A.rotationMat4v(90*A.DEGTORAD,[0,1,0],A.identityMat4()),t=A.rotationMat4v(270*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yHoop:i.addChild(new Gs(i,{geometry:r.hoop,material:o.green,highlighted:!0,highlightMaterial:o.highlightGreen,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zHoop:i.addChild(new Gs(i,{geometry:r.hoop,material:o.blue,highlighted:!0,highlightMaterial:o.highlightBlue,matrix:A.rotationMat4v(180*A.DEGTORAD,[1,0,0],A.identityMat4()),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xAxisArrow:i.addChild(new Gs(i,{geometry:r.arrowHeadBig,material:o.red,matrix:function(){const e=A.translateMat4c(0,1.1,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[0,0,1],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:i.addChild(new Gs(i,{geometry:r.arrowHeadBig,material:o.green,matrix:function(){const e=A.translateMat4c(0,1.1,0,A.identityMat4()),t=A.rotationMat4v(180*A.DEGTORAD,[1,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:i.addChild(new Gs(i,{geometry:r.arrowHeadBig,material:o.blue,matrix:function(){const e=A.translateMat4c(0,1.1,0,A.identityMat4()),t=A.rotationMat4v(-90*A.DEGTORAD,[.8,0,0],A.identityMat4());return A.mulMat4(t,e,A.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e)}}_bindEvents(){const e=this;var t=!1;const s=-1,i=0,r=1,o=2,n=3,a=4,l=5,h=this._rootNode;var c=null,u=null;const p=A.vec2(),d=A.vec3([1,0,0]),f=A.vec3([0,1,0]),m=A.vec3([0,0,1]),y=this._viewer.scene.canvas.canvas,E=this._viewer.camera,g=this._viewer.scene;{const e=A.vec3([0,0,0]);let t=-1;this._onCameraViewMatrix=g.camera.on("viewMatrix",(()=>{})),this._onCameraProjMatrix=g.camera.on("projMatrix",(()=>{})),this._onSceneTick=g.on("tick",(()=>{const s=Math.abs(A.lenVec3(A.subVec3(g.camera.eye,this._pos,e)));if(s!==t&&"perspective"===E.projection){const e=.07*(Math.tan(E.perspective.fov*A.DEGTORAD)*s);h.scale=[e,e,e],t=s}if("ortho"===E.projection){const e=E.ortho.scale/10;h.scale=[e,e,e],t=s}}))}const v=function(){const e=new Float64Array(2);return function(t){if(t){for(var s=t.target,i=0,r=0;s.offsetParent;)i+=s.offsetLeft,r+=s.offsetTop,s=s.offsetParent;e[0]=t.pageX-i,e[1]=t.pageY-r}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),I=function(){const t=A.mat4();return function(s,i){return A.quaternionToMat4(e._rootNode.quaternion,t),A.transformVec3(t,s,i),A.normalizeVec3(i),i}}();var _=function(){const e=A.vec3();return function(t){const s=Math.abs(t[0]);return s>Math.abs(t[1])&&s>Math.abs(t[2])?A.cross3Vec3(t,[0,1,0],e):A.cross3Vec3(t,[1,0,0],e),A.cross3Vec3(e,t,e),A.normalizeVec3(e),e}}();const T=function(){const t=A.vec3(),s=A.vec3(),i=A.vec4();return function(r,o,n){I(r,i);const a=_(i,o,n);b(o,a,t),b(n,a,s),A.subVec3(s,t);const l=A.dotVec3(s,i);e._pos[0]+=i[0]*l,e._pos[1]+=i[1]*l,e._pos[2]+=i[2]*l,e._rootNode.position=e._pos,e._sectionPlane&&(e._sectionPlane.pos=e._pos)}}();var P=function(){const t=A.vec4(),s=A.vec4(),i=A.vec4(),r=A.vec4();return function(o,n,a){I(o,r);if(!(b(n,r,t)&&b(a,r,s))){const e=_(r,n,a);b(n,e,t,1),b(a,e,s,1);var l=A.dotVec3(t,r);t[0]-=l*r[0],t[1]-=l*r[1],t[2]-=l*r[2],l=A.dotVec3(s,r),s[0]-=l*r[0],s[1]-=l*r[1],s[2]-=l*r[2]}A.normalizeVec3(t),A.normalizeVec3(s),l=A.dotVec3(t,s),l=A.clamp(l,-1,1);var h=Math.acos(l)*A.RADTODEG;A.cross3Vec3(t,s,i),A.dotVec3(i,r)<0&&(h=-h),e._rootNode.rotate(o,h),R()}}(),b=function(){const t=A.vec4([0,0,0,1]),s=A.mat4();return function(i,r,o,n){n=n||0,t[0]=i[0]/y.width*2-1,t[1]=-(i[1]/y.height*2-1),t[2]=0,t[3]=1,A.mulMat4(E.projMatrix,E.viewMatrix,s),A.inverseMat4(s),A.transformVec4(s,t,t),A.mulVec4Scalar(t,1/t[3]);var a=E.eye;A.subVec4(t,a,t);const l=e._sectionPlane.pos;var h=-A.dotVec3(l,r)-n,c=A.dotVec3(r,t);if(Math.abs(c)>.005){var u=-(A.dotVec3(r,a)+h)/c;return A.mulVec3Scalar(t,u,o),A.addVec3(o,a),A.subVec3(o,l,o),!0}return!1}}();const R=function(){const t=A.vec3(),s=A.mat4();return function(){e.sectionPlane&&(A.quaternionToMat4(h.quaternion,s),A.transformVec3(s,[0,0,1],t),e._setSectionPlaneDir(t))}}();var D,C=!1;this._onCameraControlHover=this._viewer.cameraControl.on("hoverEnter",(e=>{if(!this._visible)return;if(C)return;var h;t=!1,D&&(D.visible=!1);switch(e.entity.id){case this._displayMeshes.xAxisArrowHandle.id:case this._displayMeshes.xAxisHandle.id:h=this._affordanceMeshes.xAxisArrow,c=i;break;case this._displayMeshes.yAxisArrowHandle.id:case this._displayMeshes.yShaftHandle.id:h=this._affordanceMeshes.yAxisArrow,c=r;break;case this._displayMeshes.zAxisArrowHandle.id:case this._displayMeshes.zAxisHandle.id:h=this._affordanceMeshes.zAxisArrow,c=o;break;case this._displayMeshes.xCurveHandle.id:h=this._affordanceMeshes.xHoop,c=n;break;case this._displayMeshes.yCurveHandle.id:h=this._affordanceMeshes.yHoop,c=a;break;case this._displayMeshes.zCurveHandle.id:h=this._affordanceMeshes.zHoop,c=l;break;default:return void(c=s)}h&&(h.visible=!0),D=h,t=!0})),this._onCameraControlHoverLeave=this._viewer.cameraControl.on("hoverOutEntity",(e=>{this._visible&&(D&&(D.visible=!1),D=null,c=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=v(e);u=c,p[0]=s[0],p[1]=s[1]}}),y.addEventListener("mousemove",this._canvasMouseMoveListener=e=>{if(!this._visible)return;if(!C)return;var t=v(e);const s=t[0],h=t[1];switch(u){case i:T(d,p,t);break;case r:T(f,p,t);break;case o:T(m,p,t);break;case n:P(d,p,t);break;case a:P(f,p,t);break;case l:P(m,p,t)}p[0]=s,p[1]=h}),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,i=e.camera,r=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),i.off(this._onCameraViewMatrix),i.off(this._onCameraProjMatrix),r.off(this._onCameraControlHover),r.off(this._onCameraControlHoverLeave)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class ug{constructor(e,t,s){this.id=s.id,this._sectionPlane=s,this._mesh=new Gs(t,{id:s.id,geometry:new xt(t,St({xSize:.5,ySize:.5,zSize:.001})),material:new Ft(t,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new Gt(t,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new Ut(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Ut(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=A.vec3([0,0,0]),t=A.vec3(),s=A.vec3([0,0,1]),i=A.vec4(4),r=A.vec3(),o=()=>{const o=this._sectionPlane.scene.center,n=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];A.subVec3(o,this._sectionPlane.pos,e);const a=-A.dotVec3(n,e);A.normalizeVec3(n),A.mulVec3Scalar(n,a,t);const l=A.vec3PairToQuaternion(s,this._sectionPlane.dir,i);r[0]=.1*t[0],r[1]=.1*t[1],r[2]=.1*t[2],this._mesh.quaternion=l,this._mesh.position=r};this._onSectionPlanePos=this._sectionPlane.on("pos",o),this._onSectionPlaneDir=this._sectionPlane.on("dir",o)}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 Ag{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 Xt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new Et(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new Et(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new Et(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=A.rotationMat4c(-90*A.DEGTORAD,1,0,0),s=A.vec3(),i=A.vec3(),r=A.vec3();this._synchCamera=()=>{const o=this._viewer.camera.eye,n=this._viewer.camera.look,a=this._viewer.camera.up;A.mulVec3Scalar(A.normalizeVec3(A.subVec3(o,n,s)),7),this._zUp?(A.transformVec3(t,s,i),A.transformVec3(t,a,r),e.look=[0,0,0],e.eye=A.transformVec3(t,s,i),e.up=A.transformPoint3(t,a,r)):(e.look=[0,0,0],e.eye=s,e.up=a)}}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 ug(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 pg=A.AABB3(),dg=A.vec3();class fg 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 Ag(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;pg.set(this.viewer.scene.aabb),A.getAABB3Center(pg,dg),pg[0]+=t[0]-dg[0],pg[1]+=t[1]-dg[1],pg[2]+=t[2]-dg[2],pg[3]+=t[0]-dg[0],pg[4]+=t[1]-dg[1],pg[5]+=t[2]-dg[2],this.viewer.cameraFlight.flyTo({aabb:pg,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 Qs(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 cg(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;t0){const s=document.createElement("a");s.href="#",s.id=`switch-${e.nodeId}`,s.textContent="+",s.classList.add("plus"),t&&s.addEventListener("click",t),o.appendChild(s)}const n=document.createElement("input");n.id=`checkbox-${e.nodeId}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",s&&n.addEventListener("change",s),o.appendChild(n);const a=document.createElement("span");return a.textContent=e.title,o.appendChild(a),i&&(a.oncontextmenu=i),r&&(a.onclick=r),o}createDisabledNodeElement(e){const t=document.createElement("li"),s=document.createElement("a");s.href="#",s.textContent="!",s.classList.add("warn"),s.classList.add("warning"),t.appendChild(s);const i=document.createElement("span");return i.textContent=e,t.appendChild(i),t}addChildren(e,t){const s=document.createElement("ul");t.forEach((e=>{s.appendChild(e)})),e.parentElement.appendChild(s)}expand(e,t,s){e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",t),e.addEventListener("click",s)}collapse(e,t,s){if(!e)return;const i=e.parentElement;if(!i)return;const r=i.querySelector("ul");r&&(i.removeChild(r),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",s),e.addEventListener("click",t))}isExpanded(e){return void 0!==e.parentElement.getElementsByTagName("li")[0]}getId(e){return e.parentElement.id}getIdFromCheckbox(e){return e.id.replace("checkbox-","")}getSwitchElement(e){return document.getElementById(`switch-${e}`)}isChecked(e){return e.checked}setCheckbox(e,t){const s=document.getElementById(`checkbox-${e}`);s&&t!==s.checked&&(s.checked=t)}setXRayed(e,t){const s=document.getElementById(e);s&&(t?s.classList.add("xrayed-node"):s.classList.remove("xrayed-node"))}setHighlighted(e,t){const s=document.getElementById(e);s&&(t?(s.scrollIntoView({block:"center"}),s.classList.add("highlighted-node")):s.classList.remove("highlighted-node"))}}const yg=[];class Eg 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(!yg[e]){yg[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._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootNames={},this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._renderService=t.renderService||new mg,!this._renderService)throw new Error("TreeViewPlugin: no render service set");if(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 i=e.visible;if(!(i!==s.checked))return;this._muteTreeEvents=!0,s.checked=i,i?s.numVisibleEntities++:s.numVisibleEntities--,this._renderService.setCheckbox(s.nodeId,i);let r=s.parent;for(;r;)r.checked=i,i?r.numVisibleEntities++:r.numVisibleEntities--,this._renderService.setCheckbox(r.nodeId,r.numVisibleEntities>0),r=r.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 i=e.xrayed;i!==s.xrayed&&(s.xrayed=i,this._renderService.setXRayed(s.nodeId,i),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=this._renderService.isChecked(t),i=this._renderService.getIdFromCheckbox(t),r=this._nodeNodes[i],o=this._viewer.scene.objects;let n=0;this._withNodeTree(r,(e=>{const t=e.objectId,i=o[t],r=0===e.children.length;e.numVisibleEntities=s?e.numEntities:0,r&&s!==e.checked&&n++,e.checked=s,this._renderService.setCheckbox(e.nodeId,s),i&&(i.visible=s)}));let a=r.parent;for(;a;)a.checked=s,s?a.numVisibleEntities+=n:a.numVisibleEntities-=n,this._renderService.setCheckbox(a.nodeId,a.numVisibleEntities>0),a=a.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 i=this.viewer.metaScene.metaModels[e];i?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=i,t&&t.rootName&&(this._rootNames[e]=t.rootName),s.on("destroyed",(()=>{this.removeModel(s.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(this._rootNames[e]&&delete this._rootNames[e],delete this._metaModels[e],this._createNodes())}showNode(e){this.unShowNode();const t=this._objectNodes[e];if(!t)return;const s=t.nodeId,i=this._renderService.getSwitchElement(s);if(i)return this._expandSwitchElement(i),i.scrollIntoView(),!0;const r=[];r.unshift(t);let o=t.parent;for(;o;)r.unshift(o),o=o.parent;for(let e=0,t=r.length;e{if(i===e)return;const r=this._renderService.getSwitchElement(s.nodeId);if(r){this._expandSwitchElement(r);const e=s.children;for(var o=0,n=e.length;o0;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=this._renderService.createRootNode();this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let s in t){const i=t[s],r=i.type,o=i.name,n=o&&""!==o&&"Undefined"!==o&&"Default"!==o?o:r,a=this._renderService.createDisabledNodeElement(n);e.appendChild(a)}}_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,i=e.children,r=e.id,o=s.objects[r];if(e._countEntities=0,o&&e._countEntities++,i)for(let t=0,s=i.length;t{e.aabb&&r.aabb||(e.aabb||(e.aabb=t.getAABB(i.getObjectIDsInSubtree(e.objectId))),r.aabb||(r.aabb=t.getAABB(i.getObjectIDsInSubtree(r.objectId))));let o=0;return o=s.xUp?0:s.yUp?1:2,e.aabb[o]>r.aabb[o]?-1:e.aabb[o]i?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,s=this._viewer.scene.objects;for(let i=0,r=e.length;ithis._createNodeElement(e))),t=this._renderService.createRootNode();e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){return this._renderService.createNodeElement(e,this._switchExpandHandler,this._checkboxChangeHandler,(t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}),(t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}))}_expandSwitchElement(e){if(this._renderService.isExpanded(e))return;const t=this._renderService.getId(e),s=this._nodeNodes[t].children.map((e=>this._createNodeElement(e)));this._renderService.addChildren(e,s),this._renderService.expand(e,this._switchExpandHandler,this._switchCollapseHandler)}_collapseNode(e){const t=this._renderService.getSwitchElement(e);this._collapseSwitchElement(t)}_collapseSwitchElement(e){this._renderService.collapse(e,this._switchExpandHandler,this._switchCollapseHandler)}}class gg{constructor(){}getManifest(e,t,s){y.loadJSON(e,(e=>{t(e)}),(function(e){s(e)}))}getMetaModel(e,t,s){y.loadJSON(e,(e=>{t(e)}),(function(e){s(e)}))}getXKT(e,t,s){var i=()=>{};t=t||i,s=s||i;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),s=new Uint8Array(e);for(var n=0;n=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]),i=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]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),o=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),n=new Array(576);t(n);const a=new Array(60);t(a);const l=new Array(512);t(l);const h=new Array(256);t(h);const c=new Array(29);t(c);const u=new Array(30);function A(e,t,s,i,r){this.static_tree=e,this.extra_bits=t,this.extra_base=s,this.elems=i,this.max_length=r,this.has_stree=e&&e.length}let p,d,f;function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(u);const y=e=>e<256?l[e]:l[256+(e>>>7)],E=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},g=(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<{g(e,s[2*t],s[2*t+1])},I=(e,t)=>{let s=0;do{s|=1&e,e>>>=1,s<<=1}while(--t>0);return s>>>1},_=(e,t,s)=>{const i=new Array(16);let r,o,n=0;for(r=1;r<=15;r++)n=n+s[r-1]<<1,i[r]=n;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=I(i[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},P=e=>{e.bi_valid>8?E(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},b=(e,t,s,i)=>{const r=2*t,o=2*s;return e[r]{const i=e.heap[s];let r=s<<1;for(;r<=e.heap_len&&(r{let o,n,a,l,A=0;if(0!==e.sym_next)do{o=255&e.pending_buf[e.sym_buf+A++],o+=(255&e.pending_buf[e.sym_buf+A++])<<8,n=e.pending_buf[e.sym_buf+A++],0===o?v(e,n,t):(a=h[n],v(e,a+256+1,t),l=s[a],0!==l&&(n-=c[a],g(e,n,l)),o--,a=y(o),v(e,a,r),l=i[a],0!==l&&(o-=u[a],g(e,o,l)))}while(A{const s=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let n,a,l,h=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)R(e,s,n);l=o;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],R(e,s,1),a=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=a,s[2*l]=s[2*n]+s[2*a],e.depth[l]=(e.depth[n]>=e.depth[a]?e.depth[n]:e.depth[a])+1,s[2*n+1]=s[2*a+1]=l,e.heap[1]=l++,R(e,s,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const s=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let h,c,u,A,p,d,f=0;for(A=0;A<=15;A++)e.bl_count[A]=0;for(s[2*e.heap[e.heap_max]+1]=0,h=e.heap_max+1;h<573;h++)c=e.heap[h],A=s[2*s[2*c+1]+1]+1,A>l&&(A=l,f++),s[2*c+1]=A,c>i||(e.bl_count[A]++,p=0,c>=a&&(p=n[c-a]),d=s[2*c],e.opt_len+=d*(A+p),o&&(e.static_len+=d*(r[2*c+1]+p)));if(0!==f){do{for(A=l-1;0===e.bl_count[A];)A--;e.bl_count[A]--,e.bl_count[A+1]+=2,e.bl_count[l]--,f-=2}while(f>0);for(A=l;0!==A;A--)for(c=e.bl_count[A];0!==c;)u=e.heap[--h],u>i||(s[2*u+1]!==A&&(e.opt_len+=(A-s[2*u+1])*s[2*u],s[2*u+1]=A),c--)}})(e,t),_(s,h,e.bl_count)},N=(e,t,s)=>{let i,r,o=-1,n=t[1],a=0,l=7,h=4;for(0===n&&(l=138,h=3),t[2*(s+1)+1]=65535,i=0;i<=s;i++)r=n,n=t[2*(i+1)+1],++a{let i,r,o=-1,n=t[1],a=0,l=7,h=4;for(0===n&&(l=138,h=3),i=0;i<=s;i++)if(r=n,n=t[2*(i+1)+1],!(++a{g(e,0+(i?1:0),3),P(e),E(e,s),E(e,~s),s&&e.pending_buf.set(e.window.subarray(t,t+s),e.pending),e.pending+=s};var w={_tr_init:e=>{x||((()=>{let e,t,o,m,y;const E=new Array(16);for(o=0,m=0;m<28;m++)for(c[m]=o,e=0;e<1<>=7;m<30;m++)for(u[m]=y<<7,e=0;e<1<{let r,l,h=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),h=(e=>{let t;for(N(e,e.dyn_ltree,e.l_desc.max_code),N(e,e.dyn_dtree,e.d_desc.max_code),C(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=r&&(r=l)):r=l=s+5,s+4<=r&&-1!==t?S(e,t,s,i):4===e.strategy||l===r?(g(e,2+(i?1:0),3),D(e,n,a)):(g(e,4+(i?1:0),3),((e,t,s,i)=>{let r;for(g(e,t-257,5),g(e,s-1,5),g(e,i-4,4),r=0;r(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*(h[s]+256+1)]++,e.dyn_dtree[2*y(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{g(e,2,3),v(e,256,n),(e=>{16===e.bi_valid?(E(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)}},M=(e,t,s,i)=>{let r=65535&e|0,o=e>>>16&65535|0,n=0;for(;0!==s;){n=s>2e3?2e3:s,s-=n;do{r=r+t[i++]|0,o=o+r|0}while(--n);r%=65521,o%=65521}return r|o<<16|0};const B=new Uint32Array((()=>{let e,t=[];for(var s=0;s<256;s++){e=s;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[s]=e}return t})());var F=(e,t,s,i)=>{const r=B,o=i+s;e^=-1;for(let s=i;s>>8^r[255&(e^t[s])];return-1^e},L={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"},U={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:H,_tr_stored_block:G,_tr_flush_block:k,_tr_tally:V,_tr_align:j}=w,{Z_NO_FLUSH:Q,Z_PARTIAL_FLUSH:W,Z_FULL_FLUSH:z,Z_FINISH:K,Z_BLOCK:Y,Z_OK:X,Z_STREAM_END:Z,Z_STREAM_ERROR:q,Z_DATA_ERROR:J,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:se,Z_RLE:ie,Z_FIXED:re,Z_DEFAULT_STRATEGY:oe,Z_UNKNOWN:ne,Z_DEFLATED:ae}=U,le=258,he=262,ce=42,ue=113,Ae=666,pe=(e,t)=>(e.msg=L[t],t),de=e=>2*e-(e>4?9:0),fe=e=>{let t=e.length;for(;--t>=0;)e[t]=0},me=e=>{let t,s,i,r=e.w_size;t=e.hash_size,i=t;do{s=e.head[--i],e.head[i]=s>=r?s-r:0}while(--t);t=r,i=t;do{s=e.prev[--i],e.prev[i]=s>=r?s-r: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))},ge=(e,t)=>{k(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ee(e.strm)},ve=(e,t)=>{e.pending_buf[e.pending++]=t},Ie=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},_e=(e,t,s,i)=>{let r=e.avail_in;return r>i&&(r=i),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),s),1===e.state.wrap?e.adler=M(e.adler,t,r,s):2===e.state.wrap&&(e.adler=F(e.adler,t,r,s)),e.next_in+=r,e.total_in+=r,r)},Te=(e,t)=>{let s,i,r=e.max_chain_length,o=e.strstart,n=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-he?e.strstart-(e.w_size-he):0,h=e.window,c=e.w_mask,u=e.prev,A=e.strstart+le;let p=h[o+n-1],d=h[o+n];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(s=t,h[s+n]===d&&h[s+n-1]===p&&h[s]===h[o]&&h[++s]===h[o+1]){o+=2,s++;do{}while(h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&on){if(e.match_start=t,n=i,i>=a)break;p=h[o+n-1],d=h[o+n]}}}while((t=u[t&c])>l&&0!=--r);return n<=e.lookahead?n:e.lookahead},Pe=e=>{const t=e.w_size;let s,i,r;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-he)&&(e.window.set(e.window.subarray(t,t+t-i),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),me(e),i+=t),0===e.strm.avail_in)break;if(s=_e(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=s,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=ye(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=ye(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let s,i,r,o=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n=0,a=e.strm.avail_in;do{if(s=65535,r=e.bi_valid+42>>3,e.strm.avail_outi+e.strm.avail_in&&(s=i+e.strm.avail_in),s>r&&(s=r),s>8,e.pending_buf[e.pending-2]=~s,e.pending_buf[e.pending-1]=~s>>8,Ee(e.strm),i&&(i>s&&(i=s),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,s-=i),s&&(_e(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===n);return a-=e.strm.avail_in,a&&(a>=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<=a&&(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-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&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++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(_e(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,o=r>e.w_size?e.w_size:r,i=e.strstart-e.block_start,(i>=o||(i||t===K)&&t!==Q&&0===e.strm.avail_in&&i<=r)&&(s=i>r?r:i,n=t===K&&0===e.strm.avail_in&&s===i?1:0,G(e,e.block_start,s,n),e.block_start+=s,Ee(e.strm)),n?3:1)},Re=(e,t)=>{let s,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),0!==s&&e.strstart-s<=e.w_size-he&&(e.match_length=Te(e,s)),e.match_length>=3)if(i=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 i=V(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(ge(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===K?(ge(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ge(e,!1),0===e.strm.avail_out)?1:2},De=(e,t)=>{let s,i,r;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){r=e.strstart+e.lookahead-3,i=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<=r&&(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++,i&&(ge(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(i=V(e,0,e.window[e.strstart-1]),i&&ge(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&&(i=V(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===K?(ge(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ge(e,!1),0===e.strm.avail_out)?1:2};function Ce(e,t,s,i,r){this.good_length=e,this.max_lazy=t,this.nice_length=s,this.max_chain=i,this.func=r}const Ne=[new Ce(0,0,0,0,be),new Ce(4,4,8,4,Re),new Ce(4,5,16,8,Re),new Ce(4,6,32,32,Re),new Ce(4,4,16,16,De),new Ce(8,16,32,32,De),new Ce(8,16,128,128,De),new Ce(8,32,128,256,De),new Ce(32,128,258,1024,De),new Ce(32,258,258,4096,De)];function Oe(){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=ae,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 xe=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==ce&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==ue&&t.status!==Ae?1:0},Se=e=>{if(xe(e))return pe(e,q);e.total_in=e.total_out=0,e.data_type=ne;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?ce:ue,e.adler=2===t.wrap?0:1,t.last_flush=-2,H(t),X},we=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=Ne[s.level].max_lazy,s.good_match=Ne[s.level].good_length,s.nice_match=Ne[s.level].nice_length,s.max_chain_length=Ne[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},Me=(e,t,s,i,r,o)=>{if(!e)return q;let n=1;if(t===ee&&(t=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),r<1||r>9||s!==ae||i<8||i>15||t<0||t>9||o<0||o>re||8===i&&1!==n)return pe(e,q);8===i&&(i=9);const a=new Oe;return e.state=a,a.strm=e,a.status=ce,a.wrap=n,a.gzhead=null,a.w_bits=i,a.w_size=1<xe(e)||2!==e.state.wrap?q:(e.state.gzhead=t,X),Le=(e,t)=>{if(xe(e)||t>Y||t<0)return e?pe(e,q):q;const s=e.state;if(!e.output||0!==e.avail_in&&!e.input||s.status===Ae&&t!==K)return pe(e,0===e.avail_out?$:q);const i=s.last_flush;if(s.last_flush=t,0!==s.pending){if(Ee(e),0===e.avail_out)return s.last_flush=-1,X}else if(0===e.avail_in&&de(t)<=de(i)&&t!==K)return pe(e,$);if(s.status===Ae&&0!==e.avail_in)return pe(e,$);if(s.status===ce&&0===s.wrap&&(s.status=ue),s.status===ce){let t=ae+(s.w_bits-8<<4)<<8,i=-1;if(i=s.strategy>=se||s.level<2?0:s.level<6?1:6===s.level?2:3,t|=i<<6,0!==s.strstart&&(t|=32),t+=31-t%31,Ie(s,t),0!==s.strstart&&(Ie(s,e.adler>>>16),Ie(s,65535&e.adler)),e.adler=1,s.status=ue,Ee(e),0!==s.pending)return s.last_flush=-1,X}if(57===s.status)if(e.adler=0,ve(s,31),ve(s,139),ve(s,8),s.gzhead)ve(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)),ve(s,255&s.gzhead.time),ve(s,s.gzhead.time>>8&255),ve(s,s.gzhead.time>>16&255),ve(s,s.gzhead.time>>24&255),ve(s,9===s.level?2:s.strategy>=se||s.level<2?4:0),ve(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(ve(s,255&s.gzhead.extra.length),ve(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=F(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=69;else if(ve(s,0),ve(s,0),ve(s,0),ve(s,0),ve(s,0),ve(s,9===s.level?2:s.strategy>=se||s.level<2?4:0),ve(s,3),s.status=ue,Ee(e),0!==s.pending)return s.last_flush=-1,X;if(69===s.status){if(s.gzhead.extra){let t=s.pending,i=(65535&s.gzhead.extra.length)-s.gzindex;for(;s.pending+i>s.pending_buf_size;){let r=s.pending_buf_size-s.pending;if(s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex,s.gzindex+r),s.pending),s.pending=s.pending_buf_size,s.gzhead.hcrc&&s.pending>t&&(e.adler=F(e.adler,s.pending_buf,s.pending-t,t)),s.gzindex+=r,Ee(e),0!==s.pending)return s.last_flush=-1,X;t=0,i-=r}let r=new Uint8Array(s.gzhead.extra);s.pending_buf.set(r.subarray(s.gzindex,s.gzindex+i),s.pending),s.pending+=i,s.gzhead.hcrc&&s.pending>t&&(e.adler=F(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,i=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>i&&(e.adler=F(e.adler,s.pending_buf,s.pending-i,i)),Ee(e),0!==s.pending)return s.last_flush=-1,X;i=0}t=s.gzindexi&&(e.adler=F(e.adler,s.pending_buf,s.pending-i,i)),s.gzindex=0}s.status=91}if(91===s.status){if(s.gzhead.comment){let t,i=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>i&&(e.adler=F(e.adler,s.pending_buf,s.pending-i,i)),Ee(e),0!==s.pending)return s.last_flush=-1,X;i=0}t=s.gzindexi&&(e.adler=F(e.adler,s.pending_buf,s.pending-i,i))}s.status=103}if(103===s.status){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size&&(Ee(e),0!==s.pending))return s.last_flush=-1,X;ve(s,255&e.adler),ve(s,e.adler>>8&255),e.adler=0}if(s.status=ue,Ee(e),0!==s.pending)return s.last_flush=-1,X}if(0!==e.avail_in||0!==s.lookahead||t!==Q&&s.status!==Ae){let i=0===s.level?be(s,t):s.strategy===se?((e,t)=>{let s;for(;;){if(0===e.lookahead&&(Pe(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&&(ge(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ge(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ge(e,!1),0===e.strm.avail_out)?1:2})(s,t):s.strategy===ie?((e,t)=>{let s,i,r,o;const n=e.window;for(;;){if(e.lookahead<=le){if(Pe(e),e.lookahead<=le&&t===Q)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,i=n[r],i===n[++r]&&i===n[++r]&&i===n[++r])){o=e.strstart+le;do{}while(i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&re.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&&(ge(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ge(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ge(e,!1),0===e.strm.avail_out)?1:2})(s,t):Ne[s.level].func(s,t);if(3!==i&&4!==i||(s.status=Ae),1===i||3===i)return 0===e.avail_out&&(s.last_flush=-1),X;if(2===i&&(t===W?j(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))),Ee(e),0===e.avail_out))return s.last_flush=-1,X}return t!==K?X:s.wrap<=0?Z:(2===s.wrap?(ve(s,255&e.adler),ve(s,e.adler>>8&255),ve(s,e.adler>>16&255),ve(s,e.adler>>24&255),ve(s,255&e.total_in),ve(s,e.total_in>>8&255),ve(s,e.total_in>>16&255),ve(s,e.total_in>>24&255)):(Ie(s,e.adler>>>16),Ie(s,65535&e.adler)),Ee(e),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?X:Z)},Ue=e=>{if(xe(e))return q;const t=e.state.status;return e.state=null,t===ue?pe(e,J):X},He=(e,t)=>{let s=t.length;if(xe(e))return q;const i=e.state,r=i.wrap;if(2===r||1===r&&i.status!==ce||i.lookahead)return q;if(1===r&&(e.adler=M(e.adler,t,s,0)),i.wrap=0,s>=i.w_size){0===r&&(fe(i.head),i.strstart=0,i.block_start=0,i.insert=0);let e=new Uint8Array(i.w_size);e.set(t.subarray(s-i.w_size,s),0),t=e,s=i.w_size}const o=e.avail_in,n=e.next_in,a=e.input;for(e.avail_in=s,e.next_in=0,e.input=t,Pe(i);i.lookahead>=3;){let e=i.strstart,t=i.lookahead-2;do{i.ins_h=ye(i,i.ins_h,i.window[e+3-1]),i.prev[e&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=e,e++}while(--t);i.strstart=e,i.lookahead=2,Pe(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,e.next_in=n,e.input=a,e.avail_in=o,i.wrap=r,X};const Ge=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var ke=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,i=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,i,r,o,n=e.length,a=0;for(r=0;r>>6,t[o++]=128|63&s):s<65536?(t[o++]=224|s>>>12,t[o++]=128|s>>>6&63,t[o++]=128|63&s):(t[o++]=240|s>>>18,t[o++]=128|s>>>12&63,t[o++]=128|s>>>6&63,t[o++]=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 i,r;const o=new Array(2*s);for(r=0,i=0;i4)o[r++]=65533,i+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&i1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&je)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let s="";for(let i=0;i{(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:Ze,Z_SYNC_FLUSH:qe,Z_FULL_FLUSH:Je,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:st,Z_DEFAULT_STRATEGY:it,Z_DEFLATED:rt}=U;function ot(e){this.options=ke({level:st,method:rt,chunkSize:16384,windowBits:15,memLevel:8,strategy:it},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=Be(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(s!==et)throw new Error(L[s]);if(t.header&&Fe(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=He(this.strm,e),s!==et)throw new Error(L[s]);this._dict_set=!0}}function nt(e,t){const s=new ot(t);if(s.push(e,!0),s.err)throw s.msg||L[s.err];return s.result}ot.prototype.push=function(e,t){const s=this.strm,i=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?$e:Ze,"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(i),s.next_out=0,s.avail_out=i),(o===qe||o===Je)&&s.avail_out<=6)this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;else{if(r=Le(s,o),r===tt)return s.next_out>0&&this.onData(s.output.subarray(0,s.next_out)),r=Ue(this.strm),this.onEnd(r),this.ended=!0,r===et;if(0!==s.avail_out){if(o>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},ot.prototype.onData=function(e){this.chunks.push(e)},ot.prototype.onEnd=function(e){e===et&&(this.result=Ve(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var at={Deflate:ot,deflate:nt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,nt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,nt(e,t)},constants:U};const lt=16209;var ht=function(e,t){let s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T,P,b;const R=e.state;s=e.next_in,P=e.input,i=s+(e.avail_in-5),r=e.next_out,b=e.output,o=r-(t-e.avail_out),n=r+(e.avail_out-257),a=R.dmax,l=R.wsize,h=R.whave,c=R.wnext,u=R.window,A=R.hold,p=R.bits,d=R.lencode,f=R.distcode,m=(1<>>24,A>>>=g,p-=g,g=E>>>16&255,0===g)b[r++]=65535&E;else{if(!(16&g)){if(0==(64&g)){E=d[(65535&E)+(A&(1<>>=g,p-=g),p<15&&(A+=P[s++]<>>24,A>>>=g,p-=g,g=E>>>16&255,!(16&g)){if(0==(64&g)){E=f[(65535&E)+(A&(1<a){e.msg="invalid distance too far back",R.mode=lt;break e}if(A>>>=g,p-=g,g=r-o,I>g){if(g=I-g,g>h&&R.sane){e.msg="invalid distance too far back",R.mode=lt;break e}if(_=0,T=u,0===c){if(_+=l-g,g2;)b[r++]=T[_++],b[r++]=T[_++],b[r++]=T[_++],v-=3;v&&(b[r++]=T[_++],v>1&&(b[r++]=T[_++]))}else{_=r-I;do{b[r++]=b[_++],b[r++]=b[_++],b[r++]=b[_++],v-=3}while(v>2);v&&(b[r++]=b[_++],v>1&&(b[r++]=b[_++]))}break}}break}}while(s>3,s-=v,p-=v<<3,A&=(1<{const l=a.bits;let h,c,u,A,p,d,f=0,m=0,y=0,E=0,g=0,v=0,I=0,_=0,T=0,P=0,b=null;const R=new Uint16Array(16),D=new Uint16Array(16);let C,N,O,x=null;for(f=0;f<=15;f++)R[f]=0;for(m=0;m=1&&0===R[E];E--);if(g>E&&(g=E),0===E)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(y=1;y0&&(0===e||1!==E))return-1;for(D[1]=0,f=1;f<15;f++)D[f+1]=D[f]+R[f];for(m=0;m852||2===e&&T>592)return 1;for(;;){C=f-I,n[m]+1=d?(N=x[n[m]-d],O=b[n[m]-d]):(N=96,O=0),h=1<>I)+c]=C<<24|N<<16|O|0}while(0!==c);for(h=1<>=1;if(0!==h?(P&=h-1,P+=h):P=0,m++,0==--R[f]){if(f===E)break;f=t[s+n[m]]}if(f>g&&(P&A)!==u){for(0===I&&(I=g),p+=y,v=f-I,_=1<852||2===e&&T>592)return 1;u=P&A,r[u]=g<<24|v<<16|p-o|0}}return 0!==P&&(r[p+P]=f-I<<24|64<<16|0),a.bits=g,0};const{Z_FINISH:ft,Z_BLOCK:mt,Z_TREES:yt,Z_OK:Et,Z_STREAM_END:gt,Z_NEED_DICT:vt,Z_STREAM_ERROR:It,Z_DATA_ERROR:_t,Z_MEM_ERROR:Tt,Z_BUF_ERROR:Pt,Z_DEFLATED:bt}=U,Rt=16180,Dt=16190,Ct=16191,Nt=16192,Ot=16194,xt=16199,St=16200,wt=16206,Mt=16209,Bt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Ft(){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 Lt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ut=e=>{if(Lt(e))return It;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=Rt,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,Et},Ht=e=>{if(Lt(e))return It;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ut(e)},Gt=(e,t)=>{let s;if(Lt(e))return It;const i=e.state;return t<0?(s=0,t=-t):(s=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?It:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=s,i.wbits=t,Ht(e))},kt=(e,t)=>{if(!e)return It;const s=new Ft;e.state=s,s.strm=e,s.window=null,s.mode=Rt;const i=Gt(e,t);return i!==Et&&(e.state=null),i};let Vt,jt,Qt=!0;const Wt=e=>{if(Qt){Vt=new Int32Array(512),jt=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,jt,0,e.work,{bits:5}),Qt=!1}e.lencode=Vt,e.lenbits=9,e.distcode=jt,e.distbits=5},zt=(e,t,s,i)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(s-o.wsize,s),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>i&&(r=i),o.window.set(t.subarray(s-i,s-i+r),o.wnext),(i-=r)?(o.window.set(t.subarray(s-i,s),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T,P=0;const b=new Uint8Array(4);let R,D;const C=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Lt(e)||!e.output||!e.input&&0!==e.avail_in)return It;s=e.state,s.mode===Ct&&(s.mode=Nt),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,i=e.input,a=e.avail_in,h=s.hold,c=s.bits,u=a,A=l,T=Et;e:for(;;)switch(s.mode){case Rt:if(0===s.wrap){s.mode=Nt;break}for(;c<16;){if(0===a)break e;a--,h+=i[o++]<>>8&255,s.check=F(s.check,b,2,0),h=0,c=0,s.mode=16181;break}if(s.head&&(s.head.done=!1),!(1&s.wrap)||(((255&h)<<8)+(h>>8))%31){e.msg="incorrect header check",s.mode=Mt;break}if((15&h)!==bt){e.msg="unknown compression method",s.mode=Mt;break}if(h>>>=4,c-=4,_=8+(15&h),0===s.wbits&&(s.wbits=_),_>15||_>s.wbits){e.msg="invalid window size",s.mode=Mt;break}s.dmax=1<>8&1),512&s.flags&&4&s.wrap&&(b[0]=255&h,b[1]=h>>>8&255,s.check=F(s.check,b,2,0)),h=0,c=0,s.mode=16182;case 16182:for(;c<32;){if(0===a)break e;a--,h+=i[o++]<>>8&255,b[2]=h>>>16&255,b[3]=h>>>24&255,s.check=F(s.check,b,4,0)),h=0,c=0,s.mode=16183;case 16183:for(;c<16;){if(0===a)break e;a--,h+=i[o++]<>8),512&s.flags&&4&s.wrap&&(b[0]=255&h,b[1]=h>>>8&255,s.check=F(s.check,b,2,0)),h=0,c=0,s.mode=16184;case 16184:if(1024&s.flags){for(;c<16;){if(0===a)break e;a--,h+=i[o++]<>>8&255,s.check=F(s.check,b,2,0)),h=0,c=0}else s.head&&(s.head.extra=null);s.mode=16185;case 16185:if(1024&s.flags&&(p=s.length,p>a&&(p=a),p&&(s.head&&(_=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Uint8Array(s.head.extra_len)),s.head.extra.set(i.subarray(o,o+p),_)),512&s.flags&&4&s.wrap&&(s.check=F(s.check,i,p,o)),a-=p,o+=p,s.length-=p),s.length))break e;s.length=0,s.mode=16186;case 16186:if(2048&s.flags){if(0===a)break e;p=0;do{_=i[o+p++],s.head&&_&&s.length<65536&&(s.head.name+=String.fromCharCode(_))}while(_&&p>9&1,s.head.done=!0),e.adler=s.check=0,s.mode=Ct;break;case 16189:for(;c<32;){if(0===a)break e;a--,h+=i[o++]<>>=7&c,c-=7&c,s.mode=wt;break}for(;c<3;){if(0===a)break e;a--,h+=i[o++]<>>=1,c-=1,3&h){case 0:s.mode=16193;break;case 1:if(Wt(s),s.mode=xt,t===yt){h>>>=2,c-=2;break e}break;case 2:s.mode=16196;break;case 3:e.msg="invalid block type",s.mode=Mt}h>>>=2,c-=2;break;case 16193:for(h>>>=7&c,c-=7&c;c<32;){if(0===a)break e;a--,h+=i[o++]<>>16^65535)){e.msg="invalid stored block lengths",s.mode=Mt;break}if(s.length=65535&h,h=0,c=0,s.mode=Ot,t===yt)break e;case Ot:s.mode=16195;case 16195:if(p=s.length,p){if(p>a&&(p=a),p>l&&(p=l),0===p)break e;r.set(i.subarray(o,o+p),n),a-=p,o+=p,l-=p,n+=p,s.length-=p;break}s.mode=Ct;break;case 16196:for(;c<14;){if(0===a)break e;a--,h+=i[o++]<>>=5,c-=5,s.ndist=1+(31&h),h>>>=5,c-=5,s.ncode=4+(15&h),h>>>=4,c-=4,s.nlen>286||s.ndist>30){e.msg="too many length or distance symbols",s.mode=Mt;break}s.have=0,s.mode=16197;case 16197:for(;s.have>>=3,c-=3}for(;s.have<19;)s.lens[C[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,R={bits:s.lenbits},T=dt(0,s.lens,0,19,s.lencode,0,s.work,R),s.lenbits=R.bits,T){e.msg="invalid code lengths set",s.mode=Mt;break}s.have=0,s.mode=16198;case 16198:for(;s.have>>24,y=P>>>16&255,E=65535&P,!(m<=c);){if(0===a)break e;a--,h+=i[o++]<>>=m,c-=m,s.lens[s.have++]=E;else{if(16===E){for(D=m+2;c>>=m,c-=m,0===s.have){e.msg="invalid bit length repeat",s.mode=Mt;break}_=s.lens[s.have-1],p=3+(3&h),h>>>=2,c-=2}else if(17===E){for(D=m+3;c>>=m,c-=m,_=0,p=3+(7&h),h>>>=3,c-=3}else{for(D=m+7;c>>=m,c-=m,_=0,p=11+(127&h),h>>>=7,c-=7}if(s.have+p>s.nlen+s.ndist){e.msg="invalid bit length repeat",s.mode=Mt;break}for(;p--;)s.lens[s.have++]=_}}if(s.mode===Mt)break;if(0===s.lens[256]){e.msg="invalid code -- missing end-of-block",s.mode=Mt;break}if(s.lenbits=9,R={bits:s.lenbits},T=dt(1,s.lens,0,s.nlen,s.lencode,0,s.work,R),s.lenbits=R.bits,T){e.msg="invalid literal/lengths set",s.mode=Mt;break}if(s.distbits=6,s.distcode=s.distdyn,R={bits:s.distbits},T=dt(2,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,R),s.distbits=R.bits,T){e.msg="invalid distances set",s.mode=Mt;break}if(s.mode=xt,t===yt)break e;case xt:s.mode=St;case St:if(a>=6&&l>=258){e.next_out=n,e.avail_out=l,e.next_in=o,e.avail_in=a,s.hold=h,s.bits=c,ht(e,A),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,i=e.input,a=e.avail_in,h=s.hold,c=s.bits,s.mode===Ct&&(s.back=-1);break}for(s.back=0;P=s.lencode[h&(1<>>24,y=P>>>16&255,E=65535&P,!(m<=c);){if(0===a)break e;a--,h+=i[o++]<>g)],m=P>>>24,y=P>>>16&255,E=65535&P,!(g+m<=c);){if(0===a)break e;a--,h+=i[o++]<>>=g,c-=g,s.back+=g}if(h>>>=m,c-=m,s.back+=m,s.length=E,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=Mt;break}s.extra=15&y,s.mode=16201;case 16201:if(s.extra){for(D=s.extra;c>>=s.extra,c-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=16202;case 16202:for(;P=s.distcode[h&(1<>>24,y=P>>>16&255,E=65535&P,!(m<=c);){if(0===a)break e;a--,h+=i[o++]<>g)],m=P>>>24,y=P>>>16&255,E=65535&P,!(g+m<=c);){if(0===a)break e;a--,h+=i[o++]<>>=g,c-=g,s.back+=g}if(h>>>=m,c-=m,s.back+=m,64&y){e.msg="invalid distance code",s.mode=Mt;break}s.offset=E,s.extra=15&y,s.mode=16203;case 16203:if(s.extra){for(D=s.extra;c>>=s.extra,c-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){e.msg="invalid distance too far back",s.mode=Mt;break}s.mode=16204;case 16204:if(0===l)break e;if(p=A-l,s.offset>p){if(p=s.offset-p,p>s.whave&&s.sane){e.msg="invalid distance too far back",s.mode=Mt;break}p>s.wnext?(p-=s.wnext,d=s.wsize-p):d=s.wnext-p,p>s.length&&(p=s.length),f=s.window}else f=r,d=n-s.offset,p=s.length;p>l&&(p=l),l-=p,s.length-=p;do{r[n++]=f[d++]}while(--p);0===s.length&&(s.mode=St);break;case 16205:if(0===l)break e;r[n++]=s.length,l--,s.mode=St;break;case wt:if(s.wrap){for(;c<32;){if(0===a)break e;a--,h|=i[o++]<{if(Lt(e))return It;let t=e.state;return t.window&&(t.window=null),e.state=null,Et},qt=(e,t)=>{if(Lt(e))return It;const s=e.state;return 0==(2&s.wrap)?It:(s.head=t,t.done=!1,Et)},Jt=(e,t)=>{const s=t.length;let i,r,o;return Lt(e)?It:(i=e.state,0!==i.wrap&&i.mode!==Dt?It:i.mode===Dt&&(r=1,r=M(r,t,s,0),r!==i.check)?_t:(o=zt(e,t,s,s),o?(i.mode=16210,Tt):(i.havedict=1,Et)))},$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:is,Z_STREAM_END:rs,Z_NEED_DICT:os,Z_STREAM_ERROR:ns,Z_DATA_ERROR:as,Z_MEM_ERROR:ls}=U;function hs(e){this.options=ke({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!==is)throw new Error(L[s]);if(this.header=new $t,qt(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=Jt(this.strm,t.dictionary),s!==is)))throw new Error(L[s])}function cs(e,t){const s=new hs(t);if(s.push(e),s.err)throw s.msg||L[s.err];return s.result}hs.prototype.push=function(e,t){const s=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let o,n,a;if(this.ended)return!1;for(n=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(i),s.next_out=0,s.avail_out=i),o=Xt(s,n),o===os&&r&&(o=Jt(s,r),o===is?o=Xt(s,n):o===as&&(o=os));s.avail_in>0&&o===rs&&s.state.wrap>0&&0!==e[s.next_in];)Kt(s),o=Xt(s,n);switch(o){case ns:case as:case os:case ls:return this.onEnd(o),this.ended=!0,!1}if(a=s.avail_out,s.next_out&&(0===s.avail_out||o===rs))if("string"===this.options.to){let e=Ke(s.output,s.next_out),t=s.next_out-e,r=ze(s.output,e);s.next_out=t,s.avail_out=i-t,t&&s.output.set(s.output.subarray(e,e+t),0),this.onData(r)}else this.onData(s.output.length===s.next_out?s.output:s.output.subarray(0,s.next_out));if(o!==is||0!==a){if(o===rs)return o=Zt(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===s.avail_in)break}}return!0},hs.prototype.onData=function(e){this.chunks.push(e)},hs.prototype.onEnd=function(e){e===is&&("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 us={Inflate:hs,inflate:cs,inflateRaw:function(e,t){return(t=t||{}).raw=!0,cs(e,t)},ungzip:cs,constants:U};const{Deflate:As,deflate:ps,deflateRaw:ds,gzip:fs}=at,{Inflate:ms,inflate:ys,inflateRaw:Es,ungzip:gs}=us;var vs=As,Is=ps,_s=ds,Ts=fs,Ps=ms,bs=ys,Rs=Es,Ds=gs,Cs=U,Ns={Deflate:vs,deflate:Is,deflateRaw:_s,gzip:Ts,Inflate:Ps,inflate:bs,inflateRaw:Rs,ungzip:Ds,constants:Cs};e.Deflate=vs,e.Inflate=Ps,e.constants=Cs,e.default=Ns,e.deflate=Is,e.deflateRaw=_s,e.gzip=Ts,e.inflate=bs,e.inflateRaw=Rs,e.ungzip=Ds,Object.defineProperty(e,"__esModule",{value:!0})}));var vg=Object.freeze({__proto__:null});let Ig=window.pako||vg;Ig.inflate||(Ig=Ig.default);const _g=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 Tg={version:1,parse:function(e,t,s,i,r,o){const n=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),a=function(e){return{positions:new Uint16Array(Ig.inflate(e.positions).buffer),normals:new Int8Array(Ig.inflate(e.normals).buffer),indices:new Uint32Array(Ig.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Ig.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(Ig.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(Ig.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(Ig.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(Ig.inflate(e.meshColors).buffer),entityIDs:Ig.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(Ig.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(Ig.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(Ig.inflate(e.positionsDecodeMatrix).buffer)}}(n);!function(e,t,s,i,r,o){o.getNextId(),i.positionsCompression="precompressed",i.normalsCompression="precompressed";const n=s.positions,a=s.normals,l=s.indices,h=s.edgeIndices,c=s.meshPositions,u=s.meshIndices,p=s.meshEdgesIndices,d=s.meshColors,f=JSON.parse(s.entityIDs),m=s.entityMeshes,E=s.entityIsObjects,g=c.length,v=m.length;for(let r=0;rm[e]m[t]?1:0));for(let e=0;e1||(C[s]=e)}}for(let e=0;e1,o=xg(E.subarray(4*t,4*t+3)),A=E[4*t+3]/255,g=a.subarray(p[t],s?a.length:p[t+1]),I=l.subarray(p[t],s?l.length:p[t+1]),_=h.subarray(d[t],s?h.length:d[t+1]),P=c.subarray(f[t],s?c.length:f[t+1]),D=u.subarray(m[t],m[t]+16);if(r){const e=`${n}-geometry.${t}`;i.createGeometry({id:e,primitive:"triangles",positionsCompressed:g,normalsCompressed:I,indices:_,edgeIndices:P,positionsDecodeMatrix:D})}else{const e=`${n}-${t}`;v[C[t]];const s={};i.createMesh(y.apply(s,{id:e,primitive:"triangles",positionsCompressed:g,normalsCompressed:I,indices:_,edgeIndices:P,positionsDecodeMatrix:D,color:o,opacity:A}))}}let N=0;for(let e=0;e1){const t={},r=`${n}-instance.${N++}`,o=`${n}-geometry.${s}`,a=16*_[e],h=A.subarray(a,a+16);i.createMesh(y.apply(t,{id:r,geometryId:o,matrix:h})),l.push(r)}else l.push(s)}if(l.length>0){const e={};i.createEntity(y.apply(e,{id:r,isObject:!0,meshIds:l}))}}}(0,0,a,i,0,o)}};let wg=window.pako||vg;wg.inflate||(wg=wg.default);const Mg=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 Bg={version:5,parse:function(e,t,s,i,r,o){const n=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),a=function(e){return{positions:new Float32Array(wg.inflate(e.positions).buffer),normals:new Int8Array(wg.inflate(e.normals).buffer),indices:new Uint32Array(wg.inflate(e.indices).buffer),edgeIndices:new Uint32Array(wg.inflate(e.edgeIndices).buffer),matrices:new Float32Array(wg.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(wg.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(wg.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(wg.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(wg.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(wg.inflate(e.primitiveInstances).buffer),eachEntityId:wg.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(wg.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(wg.inflate(e.eachEntityMatricesPortion).buffer)}}(n);!function(e,t,s,i,r,o){const n=o.getNextId();i.positionsCompression="disabled",i.normalsCompression="precompressed";const a=s.positions,l=s.normals,h=s.indices,c=s.edgeIndices,u=s.matrices,A=s.eachPrimitivePositionsAndNormalsPortion,p=s.eachPrimitiveIndicesPortion,d=s.eachPrimitiveEdgeIndicesPortion,f=s.eachPrimitiveColor,m=s.primitiveInstances,E=JSON.parse(s.eachEntityId),g=s.eachEntityPrimitiveInstancesPortion,v=s.eachEntityMatricesPortion,I=A.length,_=m.length,T=new Uint8Array(I),P=E.length;for(let e=0;e<_;e++)T[m[e]]++;const b={};for(let e=0;e1||(b[s]=e)}}for(let e=0;e1,r=Mg(f.subarray(4*e,4*e+3)),o=f[4*e+3]/255,u=a.subarray(A[e],t?a.length:A[e+1]),m=l.subarray(A[e],t?l.length:A[e+1]),g=h.subarray(p[e],t?h.length:p[e+1]),v=c.subarray(d[e],t?c.length:d[e+1]);if(s){const t=`${n}-geometry.${e}`;i.createGeometry({id:t,primitive:"triangles",positionsCompressed:u,normalsCompressed:m,indices:g,edgeIndices:v})}else{const t=e;E[b[e]];const s={};i.createMesh(y.apply(s,{id:t,primitive:"triangles",positionsCompressed:u,normalsCompressed:m,indices:g,edgeIndices:v,color:r,opacity:o}))}}let R=0;for(let e=0;e1){const t={},r="instance."+R++,o="geometry"+s,n=16*v[e],l=u.subarray(n,n+16);i.createMesh(y.apply(t,{id:r,geometryId:o,matrix:l})),a.push(r)}else a.push(s)}if(a.length>0){const e={};i.createEntity(y.apply(e,{id:r,isObject:!0,meshIds:a}))}}}(0,0,a,i,0,o)}};let Fg=window.pako||vg;Fg.inflate||(Fg=Fg.default);const Lg=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 Ug={version:6,parse:function(e,t,s,i,r,o){const n=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),a=function(e){function t(e,t){return 0===e.length?[]:Fg.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:Fg.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))}}(n);!function(e,t,s,i,r,o){const n=o.getNextId(),a=s.positions,l=s.normals,h=s.indices,c=s.edgeIndices,u=s.matrices,p=s.reusedPrimitivesDecodeMatrix,d=s.eachPrimitivePositionsAndNormalsPortion,f=s.eachPrimitiveIndicesPortion,m=s.eachPrimitiveEdgeIndicesPortion,E=s.eachPrimitiveColorAndOpacity,g=s.primitiveInstances,v=JSON.parse(s.eachEntityId),I=s.eachEntityPrimitiveInstancesPortion,_=s.eachEntityMatricesPortion,T=s.eachTileAABB,P=s.eachTileEntitiesPortion,b=d.length,R=g.length,D=v.length,C=P.length,N=new Uint32Array(b);for(let e=0;e1,u=t===b-1,A=a.subarray(d[t],u?a.length:d[t+1]),v=l.subarray(d[t],u?l.length:d[t+1]),I=h.subarray(f[t],u?h.length:f[t+1]),_=c.subarray(m[t],u?c.length:m[t+1]),T=Lg(E.subarray(4*t,4*t+3)),P=E[4*t+3]/255,R=o.getNextId();if(r){const e=`${n}-geometry.${s}.${t}`;F[e]||(i.createGeometry({id:e,primitive:"triangles",positionsCompressed:A,indices:I,edgeIndices:_,positionsDecodeMatrix:p}),F[e]=!0),i.createMesh(y.apply(H,{id:R,geometryId:e,origin:O,matrix:C,color:T,opacity:P})),M.push(R)}else i.createMesh(y.apply(H,{id:R,origin:O,primitive:"triangles",positionsCompressed:A,normalsCompressed:v,indices:I,edgeIndices:_,positionsDecodeMatrix:B,color:T,opacity:P})),M.push(R)}M.length>0&&i.createEntity(y.apply(U,{id:P,isObject:!0,meshIds:M}))}}}(e,t,a,i,0,o)}};let Hg=window.pako||vg;Hg.inflate||(Hg=Hg.default);const Gg=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 kg(e){const t=[];for(let s=0,i=e.length;s1,A=t===N-1,b=Gg(P.subarray(6*e,6*e+3)),R=P[6*e+3]/255,D=P[6*e+4]/255,C=P[6*e+5]/255,O=o.getNextId();if(r){const r=T[e],o=p.slice(r,r+16),_=`${n}-geometry.${s}.${t}`;if(!G[_]){let e,s,r,o,n,p;switch(f[t]){case 0:e="solid",s=a.subarray(m[t],A?a.length:m[t+1]),r=l.subarray(E[t],A?l.length:E[t+1]),n=c.subarray(v[t],A?c.length:v[t+1]),p=u.subarray(I[t],A?u.length:I[t+1]);break;case 1:e="surface",s=a.subarray(m[t],A?a.length:m[t+1]),r=l.subarray(E[t],A?l.length:E[t+1]),n=c.subarray(v[t],A?c.length:v[t+1]),p=u.subarray(I[t],A?u.length:I[t+1]);break;case 2:e="points",s=a.subarray(m[t],A?a.length:m[t+1]),o=kg(h.subarray(g[t],A?h.length:g[t+1]));break;case 3:e="lines",s=a.subarray(m[t],A?a.length:m[t+1]),n=c.subarray(v[t],A?c.length:v[t+1]);break;default:continue}i.createGeometry({id:_,primitive:e,positionsCompressed:s,normalsCompressed:r,colors:o,indices:n,edgeIndices:p,positionsDecodeMatrix:d}),G[_]=!0}i.createMesh(y.apply(k,{id:O,geometryId:_,origin:M,matrix:o,color:b,metallic:D,roughness:C,opacity:R})),F.push(O)}else{let e,s,r,o,n,p;switch(f[t]){case 0:e="solid",s=a.subarray(m[t],A?a.length:m[t+1]),r=l.subarray(E[t],A?l.length:E[t+1]),n=c.subarray(v[t],A?c.length:v[t+1]),p=u.subarray(I[t],A?u.length:I[t+1]);break;case 1:e="surface",s=a.subarray(m[t],A?a.length:m[t+1]),r=l.subarray(E[t],A?l.length:E[t+1]),n=c.subarray(v[t],A?c.length:v[t+1]),p=u.subarray(I[t],A?u.length:I[t+1]);break;case 2:e="points",s=a.subarray(m[t],A?a.length:m[t+1]),o=kg(h.subarray(g[t],A?h.length:g[t+1]));break;case 3:e="lines",s=a.subarray(m[t],A?a.length:m[t+1]),n=c.subarray(v[t],A?c.length:v[t+1]);break;default:continue}i.createMesh(y.apply(k,{id:O,origin:M,primitive:e,positionsCompressed:s,normalsCompressed:r,colors:o,indices:n,edgeIndices:p,positionsDecodeMatrix:H,color:b,metallic:D,roughness:C,opacity:R})),F.push(O)}}F.length>0&&i.createEntity(y.apply(U,{id:C,isObject:!0,meshIds:F}))}}}(e,t,a,i,0,o)}};let jg=window.pako||vg;jg.inflate||(jg=jg.default);const Qg=A.vec4(),Wg=A.vec4();const zg=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 Kg(e){const t=[];for(let s=0,i=e.length;s1,l=r===B-1,h=zg(N.subarray(6*e,6*e+3)),c=N[6*e+3]/255,u=N[6*e+4]/255,O=N[6*e+5]/255,x=o.getNextId();if(a){const o=C[e],a=g.slice(o,o+16),D=`${n}-geometry.${s}.${r}`;let N=V[D];if(!N){N={batchThisMesh:!t.reuseGeometries};let e=!1;switch(I[r]){case 0:N.primitiveName="solid",N.geometryPositions=p.subarray(_[r],l?p.length:_[r+1]),N.geometryNormals=d.subarray(T[r],l?d.length:T[r+1]),N.geometryIndices=m.subarray(b[r],l?m.length:b[r+1]),N.geometryEdgeIndices=E.subarray(R[r],l?E.length:R[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 1:N.primitiveName="surface",N.geometryPositions=p.subarray(_[r],l?p.length:_[r+1]),N.geometryNormals=d.subarray(T[r],l?d.length:T[r+1]),N.geometryIndices=m.subarray(b[r],l?m.length:b[r+1]),N.geometryEdgeIndices=E.subarray(R[r],l?E.length:R[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 2:N.primitiveName="points",N.geometryPositions=p.subarray(_[r],l?p.length:_[r+1]),N.geometryColors=Kg(f.subarray(P[r],l?f.length:P[r+1])),e=N.geometryPositions.length>0;break;case 3:N.primitiveName="lines",N.geometryPositions=p.subarray(_[r],l?p.length:_[r+1]),N.geometryIndices=m.subarray(b[r],l?m.length:b[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;default:continue}if(e||(N=null),N&&(N.geometryPositions.length,N.batchThisMesh)){N.decompressedPositions=new Float32Array(N.geometryPositions.length);const e=N.geometryPositions,t=N.decompressedPositions;for(let s=0,i=e.length;s0&&n.length>0;break;case 1:e="surface",t=p.subarray(_[r],l?p.length:_[r+1]),s=d.subarray(T[r],l?d.length:T[r+1]),n=m.subarray(b[r],l?m.length:b[r+1]),a=E.subarray(R[r],l?E.length:R[r+1]),A=t.length>0&&n.length>0;break;case 2:e="points",t=p.subarray(_[r],l?p.length:_[r+1]),o=Kg(f.subarray(P[r],l?f.length:P[r+1])),A=t.length>0;break;case 3:e="lines",t=p.subarray(_[r],l?p.length:_[r+1]),n=m.subarray(b[r],l?m.length:b[r+1]),A=t.length>0&&n.length>0;break;default:continue}A&&(i.createMesh(y.apply(Q,{id:x,origin:G,primitive:e,positionsCompressed:t,normalsCompressed:s,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:M,color:h,metallic:u,roughness:O,opacity:c})),w.push(x))}}w.length>0&&i.createEntity(y.apply(j,{id:h,isObject:!0,meshIds:w}))}}}(e,t,a,i,r,o)}};let Xg=window.pako||vg;Xg.inflate||(Xg=Xg.default);const Zg=A.vec4(),qg=A.vec4();const Jg=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 $g={version:9,parse:function(e,t,s,i,r,o){const n=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),a=function(e){function t(e,t){return 0===e.length?[]:Xg.inflate(e,t).buffer}return{metadata:JSON.parse(Xg.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(Xg.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,s,i,r,o){const n=o.getNextId(),a=s.metadata,l=s.positions,h=s.normals,c=s.colors,u=s.indices,p=s.edgeIndices,d=s.matrices,f=s.reusedGeometriesDecodeMatrix,m=s.eachGeometryPrimitiveType,E=s.eachGeometryPositionsPortion,g=s.eachGeometryNormalsPortion,v=s.eachGeometryColorsPortion,I=s.eachGeometryIndicesPortion,_=s.eachGeometryEdgeIndicesPortion,T=s.eachMeshGeometriesPortion,P=s.eachMeshMatricesPortion,b=s.eachMeshMaterial,R=s.eachEntityId,D=s.eachEntityMeshesPortion,C=s.eachTileAABB,N=s.eachTileEntitiesPortion,O=E.length,x=T.length,S=D.length,w=N.length;r&&r.loadData(a,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const M=new Uint32Array(O);for(let e=0;e1,R=r===O-1,D=Jg(b.subarray(6*e,6*e+3)),C=b[6*e+3]/255,N=b[6*e+4]/255,x=b[6*e+5]/255,S=o.getNextId();if(a){const o=P[e],a=d.slice(o,o+16),T=`${n}-geometry.${s}.${r}`;let b=L[T];if(!b){b={batchThisMesh:!t.reuseGeometries};let e=!1;switch(m[r]){case 0:b.primitiveName="solid",b.geometryPositions=l.subarray(E[r],R?l.length:E[r+1]),b.geometryNormals=h.subarray(g[r],R?h.length:g[r+1]),b.geometryIndices=u.subarray(I[r],R?u.length:I[r+1]),b.geometryEdgeIndices=p.subarray(_[r],R?p.length:_[r+1]),e=b.geometryPositions.length>0&&b.geometryIndices.length>0;break;case 1:b.primitiveName="surface",b.geometryPositions=l.subarray(E[r],R?l.length:E[r+1]),b.geometryNormals=h.subarray(g[r],R?h.length:g[r+1]),b.geometryIndices=u.subarray(I[r],R?u.length:I[r+1]),b.geometryEdgeIndices=p.subarray(_[r],R?p.length:_[r+1]),e=b.geometryPositions.length>0&&b.geometryIndices.length>0;break;case 2:b.primitiveName="points",b.geometryPositions=l.subarray(E[r],R?l.length:E[r+1]),b.geometryColors=c.subarray(v[r],R?c.length:v[r+1]),e=b.geometryPositions.length>0;break;case 3:b.primitiveName="lines",b.geometryPositions=l.subarray(E[r],R?l.length:E[r+1]),b.geometryIndices=u.subarray(I[r],R?u.length:I[r+1]),e=b.geometryPositions.length>0&&b.geometryIndices.length>0;break;default:continue}if(e||(b=null),b&&(b.geometryPositions.length,b.batchThisMesh)){b.decompressedPositions=new Float32Array(b.geometryPositions.length),b.transformedAndRecompressedPositions=new Uint16Array(b.geometryPositions.length);const e=b.geometryPositions,t=b.decompressedPositions;for(let s=0,i=e.length;s0&&n.length>0;break;case 1:e="surface",t=l.subarray(E[r],R?l.length:E[r+1]),s=h.subarray(g[r],R?h.length:g[r+1]),n=u.subarray(I[r],R?u.length:I[r+1]),a=p.subarray(_[r],R?p.length:_[r+1]),A=t.length>0&&n.length>0;break;case 2:e="points",t=l.subarray(E[r],R?l.length:E[r+1]),o=c.subarray(v[r],R?c.length:v[r+1]),A=t.length>0;break;case 3:e="lines",t=l.subarray(E[r],R?l.length:E[r+1]),n=u.subarray(I[r],R?u.length:I[r+1]),A=t.length>0&&n.length>0;break;default:continue}A&&(i.createMesh(y.apply(j,{id:S,origin:B,primitive:e,positionsCompressed:t,normalsCompressed:s,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:G,color:D,metallic:N,roughness:x,opacity:C})),U.push(S))}}U.length>0&&i.createEntity(y.apply(V,{id:C,isObject:!0,meshIds:U}))}}}(e,t,a,i,r,o)}};let ev=window.pako||vg;ev.inflate||(ev=ev.default);const tv=A.vec4(),sv=A.vec4();const iv=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 rv(e,t){const s=[];if(t.length>1)for(let e=0,i=t.length-1;e1)for(let t=0,i=e.length/3-1;t0,a=9*e,u=1===c[a+0],A=c[a+1];c[a+2],c[a+3];const p=c[a+4],d=c[a+5],f=c[a+6],m=c[a+7],y=c[a+8];if(o){const t=new Uint8Array(l.subarray(s,r)).buffer,o=`${n}-texture-${e}`;if(u)i.createTexture({id:o,buffers:[t],minFilter:p,magFilter:d,wrapS:f,wrapT:m,wrapR:y});else{const e=new Blob([t],{type:10001===A?"image/jpeg":10002===A?"image/png":"image/gif"}),s=(window.URL||window.webkitURL).createObjectURL(e),r=document.createElement("img");r.src=s,i.createTexture({id:o,image:r,minFilter:p,magFilter:d,wrapS:f,wrapT:m,wrapR:y})}}}for(let e=0;e=0?`${n}-texture-${r}`:null,normalsTextureId:a>=0?`${n}-texture-${a}`:null,metallicRoughnessTextureId:o>=0?`${n}-texture-${o}`:null,emissiveTextureId:l>=0?`${n}-texture-${l}`:null,occlusionTextureId:h>=0?`${n}-texture-${h}`:null})}const j=new Uint32Array(H);for(let e=0;e1,l=r===H-1,h=x[e],c=h>=0?`${n}-textureSet-${h}`:null,w=iv(S.subarray(6*e,6*e+3)),M=S[6*e+3]/255,B=S[6*e+4]/255,U=S[6*e+5]/255,G=o.getNextId();if(a){const o=O[e],a=v.slice(o,o+16),h=`${n}-geometry.${s}.${r}`;let N=z[h];if(!N){N={batchThisMesh:!t.reuseGeometries};let e=!1;switch(_[r]){case 0:N.primitiveName="solid",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryNormals=p.subarray(P[r],l?p.length:P[r+1]),N.geometryUVs=f.subarray(R[r],l?f.length:R[r+1]),N.geometryIndices=m.subarray(D[r],l?m.length:D[r+1]),N.geometryEdgeIndices=E.subarray(C[r],l?E.length:C[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 1:N.primitiveName="surface",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryNormals=p.subarray(P[r],l?p.length:P[r+1]),N.geometryUVs=f.subarray(R[r],l?f.length:R[r+1]),N.geometryIndices=m.subarray(D[r],l?m.length:D[r+1]),N.geometryEdgeIndices=E.subarray(C[r],l?E.length:C[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 2:N.primitiveName="points",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryColors=d.subarray(b[r],l?d.length:b[r+1]),e=N.geometryPositions.length>0;break;case 3:N.primitiveName="lines",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryIndices=m.subarray(D[r],l?m.length:D[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 4:N.primitiveName="lines",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryIndices=rv(N.geometryPositions,m.subarray(D[r],l?m.length:D[r+1])),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;default:continue}if(e||(N=null),N&&(N.geometryPositions.length,N.batchThisMesh)){N.decompressedPositions=new Float32Array(N.geometryPositions.length),N.transformedAndRecompressedPositions=new Uint16Array(N.geometryPositions.length);const e=N.geometryPositions,t=N.decompressedPositions;for(let s=0,i=e.length;s0&&a.length>0;break;case 1:e="surface",t=u.subarray(T[r],l?u.length:T[r+1]),s=p.subarray(P[r],l?p.length:P[r+1]),o=f.subarray(R[r],l?f.length:R[r+1]),a=m.subarray(D[r],l?m.length:D[r+1]),h=E.subarray(C[r],l?E.length:C[r+1]),A=t.length>0&&a.length>0;break;case 2:e="points",t=u.subarray(T[r],l?u.length:T[r+1]),n=d.subarray(b[r],l?d.length:b[r+1]),A=t.length>0;break;case 3:e="lines",t=u.subarray(T[r],l?u.length:T[r+1]),a=m.subarray(D[r],l?m.length:D[r+1]),A=t.length>0&&a.length>0;break;case 4:e="lines",t=u.subarray(T[r],l?u.length:T[r+1]),a=rv(t,m.subarray(D[r],l?m.length:D[r+1])),A=t.length>0&&a.length>0;break;default:continue}A&&(i.createMesh(y.apply(V,{id:G,textureSetId:c,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:s,uv:o&&o.length>0?o:null,colorsCompressed:n,indices:a,edgeIndices:h,positionsDecodeMatrix:g,color:w,metallic:B,roughness:U,opacity:M})),F.push(G))}}F.length>0&&i.createEntity(y.apply(G,{id:l,isObject:!0,meshIds:F}))}}}(e,t,a,i,r,o)}},nv={};nv[Tg.version]=Tg,nv[Rg.version]=Rg,nv[Ng.version]=Ng,nv[Sg.version]=Sg,nv[Bg.version]=Bg,nv[Ug.version]=Ug,nv[Vg.version]=Vg,nv[Yg.version]=Yg,nv[$g.version]=$g,nv[ov.version]=ov;class av extends H{constructor(e,t={}){super("XKTLoader",e,t),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this.textureTranscoder=t.textureTranscoder,this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults,this.includeTypes=t.includeTypes,this.excludeTypes=t.excludeTypes,this.excludeUnclassifiedObjects=t.excludeUnclassifiedObjects,this.reuseGeometries=t.reuseGeometries}get supportedVersions(){return Object.keys(nv)}get textureTranscoder(){return this._textureTranscoder}set textureTranscoder(e){this._textureTranscoder=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new gg}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||ig}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}get reuseGeometries(){return this._reuseGeometries}set reuseGeometries(e){this._reuseGeometries=!1!==e}load(e={}){if(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),!(e.src||e.xkt||e.manifestSrc||e.manifest))return this.error("load() param expected: src, xkt, manifestSrc or manifestData"),o;const t={},s=e.includeTypes||this._includeTypes,i=e.excludeTypes||this._excludeTypes,r=e.objectDefaults||this._objectDefaults;if(t.reuseGeometries=null!==e.reuseGeometries&&void 0!==e.reuseGeometries?e.reuseGeometries:!1!==this._reuseGeometries,s){t.includeTypesMap={};for(let e=0,i=s.length;e{o.finalize(),a.finalize(),this.viewer.scene.canvas.spinner.processes--,o.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(a.id)})),this.scheduleTask((()=>{o.destroyed||(o.scene.fire("modelLoaded",o.id),o.fire("loaded",!0,!1))}))},h=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),o.fire("error",e)};let c=0;const u={getNextId:()=>`${n}.${c++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const r=e.metaModelSrc;this._dataSource.getMetaModel(r,(r=>{o.destroyed||(a.loadData(r,{includeTypes:s,excludeTypes:i,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,u,l,h):(this._parseModel(e.xkt,e,t,o,null,u),l()))}),(e=>{h(`load(): Failed to load model metadata for model '${n} from '${r}' - ${e}`)}))}else e.metaModelData&&(a.loadData(e.metaModelData,{includeTypes:s,excludeTypes:i,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,u,l,h):(this._parseModel(e.xkt,e,t,o,null,u),l()));else if(e.src)this._loadModel(e.src,e,t,o,a,u,l,h);else if(e.xkt)this._parseModel(e.xkt,e,t,o,a,u),l();else if(e.manifestSrc||e.manifest){const r=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",n=(e,o,n)=>{let l=0;const h=()=>{l>=e.length?o():this._dataSource.getMetaModel(`${r}${e[l]}`,(e=>{a.loadData(e,{includeTypes:s,excludeTypes:i,globalizeObjectIds:t.globalizeObjectIds}),l++,this.scheduleTask(h,100)}),n)};h()},c=(s,i,n)=>{let l=0;const h=()=>{l>=s.length?i():this._dataSource.getXKT(`${r}${s[l]}`,(s=>{this._parseModel(s,e,t,o,a,u),l++,this.scheduleTask(h,100)}),n)};h()};if(e.manifest){const t=e.manifest,s=t.xktFiles;if(!s||0===s.length)return void h("load(): Failed to load model manifest - manifest not valid");const i=t.metaModelFiles;i?n(i,(()=>{c(s,l,h)}),h):c(s,l,h)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(o.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void h("load(): Failed to load model manifest - manifest not valid");const s=e.metaModelFiles;s?n(s,(()=>{c(t,l,h)}),h):c(t,l,h)}),h)}return o}_loadModel(e,t,s,i,r,o,n,a){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,s,i,r,o),n()}),a)}_parseModel(e,t,s,i,r,o){if(i.destroyed)return;const n=new DataView(e),a=new Uint8Array(e),l=n.getUint32(0,!0),h=nv[l];if(!h)return void this.error("Unsupported .XKT file version: "+l+" - this XKTLoaderPlugin supports versions "+Object.keys(nv));this.log("Loading .xkt V"+l);const c=n.getUint32(4,!0),u=[];let A=4*(c+2);for(let e=0;ee.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){r(e)}}}function d(){}function f(e){var s,i=this;i.init=function(e){s=new Blob([],{type:n}),e()},i.writeUint8Array=function(e,i){s=new Blob([s,t?e:e.buffer],{type:n}),i()},i.getData=function(t,i){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=i,r.readAsText(s,e)}}function m(t){var s=this,i="",r="";s.init=function(e){i+="data:"+(t||"")+";base64,",e()},s.writeUint8Array=function(t,s){var o,n=r.length,a=r;for(r="",o=0;o<3*Math.floor((n+t.length)/3)-n;o++)a+=String.fromCharCode(t[o]);for(;o2?i+=e.btoa(a):r=a,s()},s.getData=function(t){t(i+e.btoa(r))}}function y(e){var s,i=this;i.init=function(t){s=new Blob([],{type:e}),t()},i.writeUint8Array=function(i,r){s=new Blob([s,t?i:i.buffer],{type:e}),r()},i.getData=function(e){e(s)}}function E(e,t,s,i,r,n,a,l,h,c){var u,A,p,d=0,f=t.sn;function m(){e.removeEventListener("message",y,!1),l(A,p)}function y(t){var s=t.data,r=s.data,o=s.error;if(o)return o.toString=function(){return"Error: "+this.message},void h(o);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":r?(A+=r.length,i.writeUint8Array(r,(function(){E()}),c)):E();break;case"flush":p=s.crc,r?(A+=r.length,i.writeUint8Array(r,(function(){m()}),c)):m();break;case"progress":a&&a(u+s.loaded,n);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",s)}}function E(){(u=d*o)<=n?s.readUint8Array(r+u,Math.min(o,n-u),(function(s){a&&a(u,n);var i=0===u?t:{sn:f};i.type="append",i.data=s;try{e.postMessage(i,[s.buffer])}catch(t){e.postMessage(i)}d++}),h):e.postMessage({sn:f,type:"flush"})}A=0,e.addEventListener("message",y,!1),E()}function g(e,t,s,i,r,n,l,h,c,u){var A,p=0,d=0,f="input"===n,m="output"===n,y=new a;!function n(){var a;if((A=p*o)127?r[s-128]:String.fromCharCode(s);return i}function _(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)?((i||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)):r("File is using Zip64 (4gb+ file size).")):r("File contains encrypted entry.")}function b(t,o,n){var a=0;function l(){}l.prototype.getData=function(i,o,l,c){var u=this;function A(e,t){c&&!function(e){var t=h(4);return t.view.setUint32(0,e),u.crc32==t.view.getUint32(0)}(t)?n("CRC failed."):i.getData((function(e){o(e)}))}function p(e){n(e||r)}function d(e){n(e||"Error while writing file data.")}t.readUint8Array(u.offset,30,(function(r){var o,f=h(r.length,r);1347093252==f.view.getUint32(0)?(P(u,f,4,!1,n),o=u.offset+30+u.filenameLength+u.extraFieldLength,i.init((function(){0===u.compressionMethod?v(u._worker,a++,t,i,o,u.compressedSize,c,A,l,p,d):function(t,s,i,r,o,n,a,l,h,c,u){var A=a?"output":"none";e.zip.useWebWorkers?E(t,{sn:s,codecClass:"Inflater",crcType:A},i,r,o,n,h,l,c,u):g(new e.zip.Inflater,i,r,o,n,A,h,l,c,u)}(u._worker,a++,t,i,o,u.compressedSize,c,A,l,p,d)}),d)):n(s)}),p)};var c={getEntries:function(e){var r=this._worker;!function(e){t.size<22?n(s):r(22,(function(){r(Math.min(65558,t.size),(function(){n(s)}))}));function r(s,r){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));r()}),(function(){n(i)}))}}((function(o){var a,c;a=o.getUint32(16,!0),c=o.getUint16(8,!0),a<0||a>=t.size?n(s):t.readUint8Array(a,t.size-a,(function(t){var i,o,a,u,A=0,p=[],d=h(t.length,t);for(i=0;i>>8^s[255&(t^e[i])];this.crc=t},a.prototype.get=function(){return~this.crc},a.prototype.table=function(){var e,t,s,i=[];for(e=0;e<256;e++){for(s=e,t=0;t<8;t++)1&s?s=s>>>1^3988292384:s>>>=1;i[e]=s}return i}(),l.prototype.append=function(e,t){return e},l.prototype.flush=function(){},u.prototype=new c,u.prototype.constructor=u,A.prototype=new c,A.prototype.constructor=A,p.prototype=new c,p.prototype.constructor=p,d.prototype.getData=function(e){e(this.data)},f.prototype=new d,f.prototype.constructor=f,m.prototype=new d,m.prototype.constructor=m,y.prototype=new d,y.prototype.constructor=y;var N={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function O(t,s,i){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var r;if(e.zip.workerScripts){if(r=e.zip.workerScripts[t],!Array.isArray(r))return void i(new Error("zip.workerScripts."+t+" is not an array!"));r=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(r)}else(r=N[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+r[0];var o=new Worker(r[0]);o.codecTime=o.crcTime=0,o.postMessage({type:"importScripts",scripts:r.slice(1)}),o.addEventListener("message",(function e(t){var r=t.data;if(r.error)return o.terminate(),void i(r.error);"importScripts"===r.type&&(o.removeEventListener("message",e),o.removeEventListener("error",n),s(o))})),o.addEventListener("error",n)}else i(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function n(e){o.terminate(),i(e)}}function x(e){console.error(e)}e.zip={Reader:c,Writer:d,BlobReader:p,Data64URIReader:A,TextReader:u,BlobWriter:y,Data64URIWriter:m,TextWriter:f,createReader:function(e,t,s){s=s||x,e.init((function(){b(e,t,s)}),s)},createWriter:function(e,t,s,i){s=s||x,i=!!i,e.init((function(){C(e,t,s,i)}),s)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(lv);!function(e){var t,s,i=e.Reader,r=e.Writer;try{s=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function o(e){var t=this;function s(s,i){var r;t.data?s():((r=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(r.getResponseHeader("Content-Length"))||Number(r.response.byteLength)),t.data=new Uint8Array(r.response),s()}),!1),r.addEventListener("error",i,!1),r.open("GET",e),r.responseType="arraybuffer",r.send())}t.size=0,t.init=function(i,r){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var o=new XMLHttpRequest;o.addEventListener("load",(function(){t.size=Number(o.getResponseHeader("Content-Length")),t.size?i():s(i,r)}),!1),o.addEventListener("error",r,!1),o.open("HEAD",e),o.send()}else s(i,r)},t.readUint8Array=function(e,i,r,o){s((function(){r(new Uint8Array(t.data.subarray(e,e+i)))}),o)}}function n(e){var t=this;t.size=0,t.init=function(s,i){var r=new XMLHttpRequest;r.addEventListener("load",(function(){t.size=Number(r.getResponseHeader("Content-Length")),"bytes"==r.getResponseHeader("Accept-Ranges")?s():i("HTTP Range not supported.")}),!1),r.addEventListener("error",i,!1),r.open("HEAD",e),r.send()},t.readUint8Array=function(t,s,i,r){!function(t,s,i,r){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="arraybuffer",o.setRequestHeader("Range","bytes="+t+"-"+(t+s-1)),o.addEventListener("load",(function(){i(o.response)}),!1),o.addEventListener("error",r,!1),o.send()}(t,s,(function(e){i(new Uint8Array(e))}),r)}}function a(e){var t=this;t.size=0,t.init=function(s,i){t.size=e.byteLength,s()},t.readUint8Array=function(t,s,i,r){i(new Uint8Array(e.slice(t,t+s)))}}function l(){var e,t=this;t.init=function(t,s){e=new Uint8Array,t()},t.writeUint8Array=function(t,s,i){var r=new Uint8Array(e.length+t.length);r.set(e),r.set(t,e.length),e=r,s()},t.getData=function(t){t(e.buffer)}}function h(e,t){var i,r=this;r.init=function(t,s){e.createWriter((function(e){i=e,t()}),s)},r.writeUint8Array=function(e,r,o){var n=new Blob([s?e:e.buffer],{type:t});i.onwrite=function(){i.onwrite=null,r()},i.onerror=o,i.write(n)},r.getData=function(t){e.file(t)}}o.prototype=new i,o.prototype.constructor=o,n.prototype=new i,n.prototype.constructor=n,a.prototype=new i,a.prototype.constructor=a,l.prototype=new r,l.prototype.constructor=l,h.prototype=new r,h.prototype.constructor=h,e.FileWriter=h,e.HttpReader=o,e.HttpRangeReader=n,e.ArrayBufferReader=a,e.ArrayBufferWriter=l,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(s,i,r){return function(s,i,r,o){if(s.directory)return o?new t(s.fs,i,r,s):new e.fs.ZipFileEntry(s.fs,i,r,s);throw"Parent entry is not a directory."}(this,s,{data:i,Reader:r?n:o})},t.prototype.importHttpContent=function(e,t,s,i){this.importZip(t?new n(e):new o(e),s,i)},e.fs.FS.prototype.importHttpContent=function(e,s,i,r){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,s,i,r)})}(lv.zip);var hv,cv,uv,Av,pv,dv,fv,mv=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},yv=mv({"dist/web-ifc-mt.js"(e,t){var s,i=(s="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e={}){function t(){return D.buffer!=w.buffer&&z(),w}function i(){return D.buffer!=w.buffer&&z(),M}function r(){return D.buffer!=w.buffer&&z(),B}function o(){return D.buffer!=w.buffer&&z(),F}function n(){return D.buffer!=w.buffer&&z(),L}function a(){return D.buffer!=w.buffer&&z(),U}function l(){return D.buffer!=w.buffer&&z(),G}var h,c,u=void 0!==e?e:{};u.ready=new Promise((function(e,t){h=e,c=t}));var A,p,d,f=Object.assign({},u),m="./this.program",y=(e,t)=>{throw t},E="object"==typeof window,g="function"==typeof importScripts,v="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,I=u.ENVIRONMENT_IS_PTHREAD||!1,_="";function T(e){return u.locateFile?u.locateFile(e,_):_+e}(E||g)&&(g?_=self.location.href:"undefined"!=typeof document&&document.currentScript&&(_=document.currentScript.src),s&&(_=s),_=0!==_.indexOf("blob:")?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",A=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},g&&(d=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),p=(e,t,s)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):s()},i.onerror=s,i.send(null)});var P,b=u.print||console.log.bind(console),R=u.printErr||console.warn.bind(console);Object.assign(u,f),f=null,u.arguments,u.thisProgram&&(m=u.thisProgram),u.quit&&(y=u.quit),u.wasmBinary&&(P=u.wasmBinary);var D,C,N=u.noExitRuntime||!0;"object"!=typeof WebAssembly&&ae("no native wasm support detected");var O,x=!1;function S(e,t){e||ae(t)}var w,M,B,F,L,U,H,G,k="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function V(e,t,s){for(var i=(t>>>=0)+s,r=t;e[r]&&!(r>=i);)++r;if(r-t>16&&e.buffer&&k)return k.decode(e.buffer instanceof SharedArrayBuffer?e.slice(t,r):e.subarray(t,r));for(var o="";t>10,56320|1023&h)}}else o+=String.fromCharCode((31&n)<<6|a)}else o+=String.fromCharCode(n)}return o}function j(e,t){return(e>>>=0)?V(i(),e,t):""}function Q(e,t,s,i){if(!(i>0))return 0;for(var r=s>>>=0,o=s+i-1,n=0;n=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++n)),a<=127){if(s>=o)break;t[s++>>>0]=a}else if(a<=2047){if(s+1>=o)break;t[s++>>>0]=192|a>>6,t[s++>>>0]=128|63&a}else if(a<=65535){if(s+2>=o)break;t[s++>>>0]=224|a>>12,t[s++>>>0]=128|a>>6&63,t[s++>>>0]=128|63&a}else{if(s+3>=o)break;t[s++>>>0]=240|a>>18,t[s++>>>0]=128|a>>12&63,t[s++>>>0]=128|a>>6&63,t[s++>>>0]=128|63&a}}return t[s>>>0]=0,s-r}function W(e){for(var t=0,s=0;s=55296&&i<=57343?(t+=4,++s):t+=3}return t}function z(){var e=D.buffer;u.HEAP8=w=new Int8Array(e),u.HEAP16=B=new Int16Array(e),u.HEAP32=L=new Int32Array(e),u.HEAPU8=M=new Uint8Array(e),u.HEAPU16=F=new Uint16Array(e),u.HEAPU32=U=new Uint32Array(e),u.HEAPF32=H=new Float32Array(e),u.HEAPF64=G=new Float64Array(e)}var K,Y=u.INITIAL_MEMORY||16777216;if(S(Y>=5242880,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+Y+"! (STACK_SIZE=5242880)"),I)D=u.wasmMemory;else if(u.wasmMemory)D=u.wasmMemory;else if(!((D=new WebAssembly.Memory({initial:Y/65536,maximum:65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw R("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"),v&&R("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");z(),Y=D.buffer.byteLength;var X=[],Z=[],q=[];function J(){return N}function $(){I||(u.noFSInit||Ee.init.initialized||Ee.init(),Ee.ignorePermissions=!1,Te(Z))}var ee,te,se,ie=0,re=null;function oe(e){ie++,u.monitorRunDependencies&&u.monitorRunDependencies(ie)}function ne(e){if(ie--,u.monitorRunDependencies&&u.monitorRunDependencies(ie),0==ie&&re){var t=re;re=null,t()}}function ae(e){u.onAbort&&u.onAbort(e),R(e="Aborted("+e+")"),x=!0,O=1,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw c(t),t}function le(e){return e.startsWith("data:application/octet-stream;base64,")}function he(e){try{if(e==ee&&P)return new Uint8Array(P);if(d)return d(e);throw"both async and sync fetching of the wasm failed"}catch(e){ae(e)}}function ce(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function ue(e){var t=_e.pthreads[e];S(t),_e.returnWorkerToPool(t)}le(ee="web-ifc-mt.wasm")||(ee=T(ee));var Ae={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var s=0,i=e.length-1;i>=0;i--){var r=e[i];"."===r?e.splice(i,1):".."===r?(e.splice(i,1),s++):s&&(e.splice(i,1),s--)}if(t)for(;s;s--)e.unshift("..");return e},normalize:e=>{var t=Ae.isAbs(e),s="/"===e.substr(-1);return e=Ae.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),e||t||(e="."),e&&s&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=Ae.splitPath(e),s=t[0],i=t[1];return s||i?(i&&(i=i.substr(0,i.length-1)),s+i):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=Ae.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Ae.normalize(e.join("/"))},join2:(e,t)=>Ae.normalize(e+"/"+t)},pe={resolve:function(){for(var e="",t=!1,s=arguments.length-1;s>=-1&&!t;s--){var i=s>=0?arguments[s]:Ee.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=Ae.isAbs(i)}return e=Ae.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=pe.resolve(e).substr(1),t=pe.resolve(t).substr(1);for(var i=s(e.split("/")),r=s(t.split("/")),o=Math.min(i.length,r.length),n=o,a=0;a0?s:W(e)+1,r=new Array(i),o=Q(e,r,0,r.length);return t&&(r.length=o),r}var fe={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){fe.ttys[e]={input:[],output:[],ops:t},Ee.registerDevice(e,fe.stream_ops)},stream_ops:{open:function(e){var t=fe.ttys[e.node.rdev];if(!t)throw new Ee.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,i,r){if(!e.tty||!e.tty.ops.get_char)throw new Ee.ErrnoError(60);for(var o=0,n=0;n0&&(b(V(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(R(V(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(R(V(e.output,0)),e.output=[])}}};function me(e){ae()}var ye={ops_table:null,mount:function(e){return ye.createNode(null,"/",16895,0)},createNode:function(e,t,s,i){if(Ee.isBlkdev(s)||Ee.isFIFO(s))throw new Ee.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:Ee.chrdev_stream_ops}});var r=Ee.createNode(e,t,s,i);return Ee.isDir(r.mode)?(r.node_ops=ye.ops_table.dir.node,r.stream_ops=ye.ops_table.dir.stream,r.contents={}):Ee.isFile(r.mode)?(r.node_ops=ye.ops_table.file.node,r.stream_ops=ye.ops_table.file.stream,r.usedBytes=0,r.contents=null):Ee.isLink(r.mode)?(r.node_ops=ye.ops_table.link.node,r.stream_ops=ye.ops_table.link.stream):Ee.isChrdev(r.mode)&&(r.node_ops=ye.ops_table.chrdev.node,r.stream_ops=ye.ops_table.chrdev.stream),r.timestamp=Date.now(),e&&(e.contents[t]=r,e.timestamp=r.timestamp),r},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 i=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(i.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=Ee.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,Ee.isDir(e.mode)?t.size=4096:Ee.isFile(e.mode)?t.size=e.usedBytes:Ee.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 Ee.genericErrors[44]},mknod:function(e,t,s,i){return ye.createNode(e,t,s,i)},rename:function(e,t,s){if(Ee.isDir(e.mode)){var i;try{i=Ee.lookupNode(t,s)}catch(e){}if(i)for(var r in i.contents)throw new Ee.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=Ee.lookupNode(e,t);for(var i in s.contents)throw new Ee.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 i=ye.createNode(e,t,41471,0);return i.link=s,i},readlink:function(e){if(!Ee.isLink(e.mode))throw new Ee.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,s,i,r){var o=e.node.contents;if(r>=e.node.usedBytes)return 0;var n=Math.min(e.node.usedBytes-r,i);if(n>8&&o.subarray)t.set(o.subarray(r,r+n),s);else for(var a=0;a0||i+s>>=0,t().set(l,n>>>0)}else a=!1,n=l.byteOffset;return{ptr:n,allocated:a}},msync:function(e,t,s,i,r){return ye.stream_ops.write(e,t,0,i,s,!1),0}}},Ee={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=pe.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new Ee.ErrnoError(32);for(var s=e.split("/").filter((e=>!!e)),i=Ee.root,r="/",o=0;o40)throw new Ee.ErrnoError(32)}}return{path:r,node:i}},getPath:e=>{for(var t;;){if(Ee.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,i=0;i>>0)%Ee.nameTable.length},hashAddNode:e=>{var t=Ee.hashName(e.parent.id,e.name);e.name_next=Ee.nameTable[t],Ee.nameTable[t]=e},hashRemoveNode:e=>{var t=Ee.hashName(e.parent.id,e.name);if(Ee.nameTable[t]===e)Ee.nameTable[t]=e.name_next;else for(var s=Ee.nameTable[t];s;){if(s.name_next===e){s.name_next=e.name_next;break}s=s.name_next}},lookupNode:(e,t)=>{var s=Ee.mayLookup(e);if(s)throw new Ee.ErrnoError(s,e);for(var i=Ee.hashName(e.id,t),r=Ee.nameTable[i];r;r=r.name_next){var o=r.name;if(r.parent.id===e.id&&o===t)return r}return Ee.lookup(e,t)},createNode:(e,t,s,i)=>{var r=new Ee.FSNode(e,t,s,i);return Ee.hashAddNode(r),r},destroyNode:e=>{Ee.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=Ee.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)=>Ee.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=Ee.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return Ee.lookupNode(e,t),20}catch(e){}return Ee.nodePermissions(e,"wx")},mayDelete:(e,t,s)=>{var i;try{i=Ee.lookupNode(e,t)}catch(e){return e.errno}var r=Ee.nodePermissions(e,"wx");if(r)return r;if(s){if(!Ee.isDir(i.mode))return 54;if(Ee.isRoot(i)||Ee.getPath(i)===Ee.cwd())return 10}else if(Ee.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?Ee.isLink(e.mode)?32:Ee.isDir(e.mode)&&("r"!==Ee.flagsToPermissionString(t)||512&t)?31:Ee.nodePermissions(e,Ee.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=Ee.MAX_OPEN_FDS)=>{for(var s=e;s<=t;s++)if(!Ee.streams[s])return s;throw new Ee.ErrnoError(33)},getStream:e=>Ee.streams[e],createStream:(e,t,s)=>{Ee.FSStream||(Ee.FSStream=function(){this.shared={}},Ee.FSStream.prototype={},Object.defineProperties(Ee.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 Ee.FSStream,e);var i=Ee.nextfd(t,s);return e.fd=i,Ee.streams[i]=e,e},closeStream:e=>{Ee.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=Ee.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new Ee.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{Ee.devices[e]={stream_ops:t}},getDevice:e=>Ee.devices[e],getMounts:e=>{for(var t=[],s=[e];s.length;){var i=s.pop();t.push(i),s.push.apply(s,i.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),Ee.syncFSRequests++,Ee.syncFSRequests>1&&R("warning: "+Ee.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var s=Ee.getMounts(Ee.root.mount),i=0;function r(e){return Ee.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,r(e));++i>=s.length&&r(null)}s.forEach((t=>{if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount:(e,t,s)=>{var i,r="/"===s,o=!s;if(r&&Ee.root)throw new Ee.ErrnoError(10);if(!r&&!o){var n=Ee.lookupPath(s,{follow_mount:!1});if(s=n.path,i=n.node,Ee.isMountpoint(i))throw new Ee.ErrnoError(10);if(!Ee.isDir(i.mode))throw new Ee.ErrnoError(54)}var a={type:e,opts:t,mountpoint:s,mounts:[]},l=e.mount(a);return l.mount=a,a.root=l,r?Ee.root=l:i&&(i.mounted=a,i.mount&&i.mount.mounts.push(a)),l},unmount:e=>{var t=Ee.lookupPath(e,{follow_mount:!1});if(!Ee.isMountpoint(t.node))throw new Ee.ErrnoError(28);var s=t.node,i=s.mounted,r=Ee.getMounts(i);Object.keys(Ee.nameTable).forEach((e=>{for(var t=Ee.nameTable[e];t;){var s=t.name_next;r.includes(t.mount)&&Ee.destroyNode(t),t=s}})),s.mounted=null;var o=s.mount.mounts.indexOf(i);s.mount.mounts.splice(o,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,s)=>{var i=Ee.lookupPath(e,{parent:!0}).node,r=Ae.basename(e);if(!r||"."===r||".."===r)throw new Ee.ErrnoError(28);var o=Ee.mayCreate(i,r);if(o)throw new Ee.ErrnoError(o);if(!i.node_ops.mknod)throw new Ee.ErrnoError(63);return i.node_ops.mknod(i,r,t,s)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Ee.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Ee.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var s=e.split("/"),i="",r=0;r(void 0===s&&(s=t,t=438),t|=8192,Ee.mknod(e,t,s)),symlink:(e,t)=>{if(!pe.resolve(e))throw new Ee.ErrnoError(44);var s=Ee.lookupPath(t,{parent:!0}).node;if(!s)throw new Ee.ErrnoError(44);var i=Ae.basename(t),r=Ee.mayCreate(s,i);if(r)throw new Ee.ErrnoError(r);if(!s.node_ops.symlink)throw new Ee.ErrnoError(63);return s.node_ops.symlink(s,i,e)},rename:(e,t)=>{var s,i,r=Ae.dirname(e),o=Ae.dirname(t),n=Ae.basename(e),a=Ae.basename(t);if(s=Ee.lookupPath(e,{parent:!0}).node,i=Ee.lookupPath(t,{parent:!0}).node,!s||!i)throw new Ee.ErrnoError(44);if(s.mount!==i.mount)throw new Ee.ErrnoError(75);var l,h=Ee.lookupNode(s,n),c=pe.relative(e,o);if("."!==c.charAt(0))throw new Ee.ErrnoError(28);if("."!==(c=pe.relative(t,r)).charAt(0))throw new Ee.ErrnoError(55);try{l=Ee.lookupNode(i,a)}catch(e){}if(h!==l){var u=Ee.isDir(h.mode),A=Ee.mayDelete(s,n,u);if(A)throw new Ee.ErrnoError(A);if(A=l?Ee.mayDelete(i,a,u):Ee.mayCreate(i,a))throw new Ee.ErrnoError(A);if(!s.node_ops.rename)throw new Ee.ErrnoError(63);if(Ee.isMountpoint(h)||l&&Ee.isMountpoint(l))throw new Ee.ErrnoError(10);if(i!==s&&(A=Ee.nodePermissions(s,"w")))throw new Ee.ErrnoError(A);Ee.hashRemoveNode(h);try{s.node_ops.rename(h,i,a)}catch(e){throw e}finally{Ee.hashAddNode(h)}}},rmdir:e=>{var t=Ee.lookupPath(e,{parent:!0}).node,s=Ae.basename(e),i=Ee.lookupNode(t,s),r=Ee.mayDelete(t,s,!0);if(r)throw new Ee.ErrnoError(r);if(!t.node_ops.rmdir)throw new Ee.ErrnoError(63);if(Ee.isMountpoint(i))throw new Ee.ErrnoError(10);t.node_ops.rmdir(t,s),Ee.destroyNode(i)},readdir:e=>{var t=Ee.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Ee.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=Ee.lookupPath(e,{parent:!0}).node;if(!t)throw new Ee.ErrnoError(44);var s=Ae.basename(e),i=Ee.lookupNode(t,s),r=Ee.mayDelete(t,s,!1);if(r)throw new Ee.ErrnoError(r);if(!t.node_ops.unlink)throw new Ee.ErrnoError(63);if(Ee.isMountpoint(i))throw new Ee.ErrnoError(10);t.node_ops.unlink(t,s),Ee.destroyNode(i)},readlink:e=>{var t=Ee.lookupPath(e).node;if(!t)throw new Ee.ErrnoError(44);if(!t.node_ops.readlink)throw new Ee.ErrnoError(28);return pe.resolve(Ee.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var s=Ee.lookupPath(e,{follow:!t}).node;if(!s)throw new Ee.ErrnoError(44);if(!s.node_ops.getattr)throw new Ee.ErrnoError(63);return s.node_ops.getattr(s)},lstat:e=>Ee.stat(e,!0),chmod:(e,t,s)=>{var i;if(!(i="string"==typeof e?Ee.lookupPath(e,{follow:!s}).node:e).node_ops.setattr)throw new Ee.ErrnoError(63);i.node_ops.setattr(i,{mode:4095&t|-4096&i.mode,timestamp:Date.now()})},lchmod:(e,t)=>{Ee.chmod(e,t,!0)},fchmod:(e,t)=>{var s=Ee.getStream(e);if(!s)throw new Ee.ErrnoError(8);Ee.chmod(s.node,t)},chown:(e,t,s,i)=>{var r;if(!(r="string"==typeof e?Ee.lookupPath(e,{follow:!i}).node:e).node_ops.setattr)throw new Ee.ErrnoError(63);r.node_ops.setattr(r,{timestamp:Date.now()})},lchown:(e,t,s)=>{Ee.chown(e,t,s,!0)},fchown:(e,t,s)=>{var i=Ee.getStream(e);if(!i)throw new Ee.ErrnoError(8);Ee.chown(i.node,t,s)},truncate:(e,t)=>{if(t<0)throw new Ee.ErrnoError(28);var s;if(!(s="string"==typeof e?Ee.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ee.ErrnoError(63);if(Ee.isDir(s.mode))throw new Ee.ErrnoError(31);if(!Ee.isFile(s.mode))throw new Ee.ErrnoError(28);var i=Ee.nodePermissions(s,"w");if(i)throw new Ee.ErrnoError(i);s.node_ops.setattr(s,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var s=Ee.getStream(e);if(!s)throw new Ee.ErrnoError(8);if(0==(2097155&s.flags))throw new Ee.ErrnoError(28);Ee.truncate(s.node,t)},utime:(e,t,s)=>{var i=Ee.lookupPath(e,{follow:!0}).node;i.node_ops.setattr(i,{timestamp:Math.max(t,s)})},open:(e,t,s)=>{if(""===e)throw new Ee.ErrnoError(44);var i;if(s=void 0===s?438:s,s=64&(t="string"==typeof t?Ee.modeStringToFlags(t):t)?4095&s|32768:0,"object"==typeof e)i=e;else{e=Ae.normalize(e);try{i=Ee.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var r=!1;if(64&t)if(i){if(128&t)throw new Ee.ErrnoError(20)}else i=Ee.mknod(e,s,0),r=!0;if(!i)throw new Ee.ErrnoError(44);if(Ee.isChrdev(i.mode)&&(t&=-513),65536&t&&!Ee.isDir(i.mode))throw new Ee.ErrnoError(54);if(!r){var o=Ee.mayOpen(i,t);if(o)throw new Ee.ErrnoError(o)}512&t&&!r&&Ee.truncate(i,0),t&=-131713;var n=Ee.createStream({node:i,path:Ee.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return n.stream_ops.open&&n.stream_ops.open(n),!u.logReadFiles||1&t||(Ee.readFiles||(Ee.readFiles={}),e in Ee.readFiles||(Ee.readFiles[e]=1)),n},close:e=>{if(Ee.isClosed(e))throw new Ee.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ee.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,s)=>{if(Ee.isClosed(e))throw new Ee.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ee.ErrnoError(70);if(0!=s&&1!=s&&2!=s)throw new Ee.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,s),e.ungotten=[],e.position},read:(e,t,s,i,r)=>{if(s>>>=0,i<0||r<0)throw new Ee.ErrnoError(28);if(Ee.isClosed(e))throw new Ee.ErrnoError(8);if(1==(2097155&e.flags))throw new Ee.ErrnoError(8);if(Ee.isDir(e.node.mode))throw new Ee.ErrnoError(31);if(!e.stream_ops.read)throw new Ee.ErrnoError(28);var o=void 0!==r;if(o){if(!e.seekable)throw new Ee.ErrnoError(70)}else r=e.position;var n=e.stream_ops.read(e,t,s,i,r);return o||(e.position+=n),n},write:(e,t,s,i,r,o)=>{if(s>>>=0,i<0||r<0)throw new Ee.ErrnoError(28);if(Ee.isClosed(e))throw new Ee.ErrnoError(8);if(0==(2097155&e.flags))throw new Ee.ErrnoError(8);if(Ee.isDir(e.node.mode))throw new Ee.ErrnoError(31);if(!e.stream_ops.write)throw new Ee.ErrnoError(28);e.seekable&&1024&e.flags&&Ee.llseek(e,0,2);var n=void 0!==r;if(n){if(!e.seekable)throw new Ee.ErrnoError(70)}else r=e.position;var a=e.stream_ops.write(e,t,s,i,r,o);return n||(e.position+=a),a},allocate:(e,t,s)=>{if(Ee.isClosed(e))throw new Ee.ErrnoError(8);if(t<0||s<=0)throw new Ee.ErrnoError(28);if(0==(2097155&e.flags))throw new Ee.ErrnoError(8);if(!Ee.isFile(e.node.mode)&&!Ee.isDir(e.node.mode))throw new Ee.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ee.ErrnoError(138);e.stream_ops.allocate(e,t,s)},mmap:(e,t,s,i,r)=>{if(0!=(2&i)&&0==(2&r)&&2!=(2097155&e.flags))throw new Ee.ErrnoError(2);if(1==(2097155&e.flags))throw new Ee.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ee.ErrnoError(43);return e.stream_ops.mmap(e,t,s,i,r)},msync:(e,t,s,i,r)=>(s>>>=0,e.stream_ops.msync?e.stream_ops.msync(e,t,s,i,r):0),munmap:e=>0,ioctl:(e,t,s)=>{if(!e.stream_ops.ioctl)throw new Ee.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,i=Ee.open(e,t.flags),r=Ee.stat(e).size,o=new Uint8Array(r);return Ee.read(i,o,0,r,0),"utf8"===t.encoding?s=V(o,0):"binary"===t.encoding&&(s=o),Ee.close(i),s},writeFile:(e,t,s={})=>{s.flags=s.flags||577;var i=Ee.open(e,s.flags,s.mode);if("string"==typeof t){var r=new Uint8Array(W(t)+1),o=Q(t,r,0,r.length);Ee.write(i,r,0,o,void 0,s.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ee.write(i,t,0,t.byteLength,void 0,s.canOwn)}Ee.close(i)},cwd:()=>Ee.currentPath,chdir:e=>{var t=Ee.lookupPath(e,{follow:!0});if(null===t.node)throw new Ee.ErrnoError(44);if(!Ee.isDir(t.node.mode))throw new Ee.ErrnoError(54);var s=Ee.nodePermissions(t.node,"x");if(s)throw new Ee.ErrnoError(s);Ee.currentPath=t.path},createDefaultDirectories:()=>{Ee.mkdir("/tmp"),Ee.mkdir("/home"),Ee.mkdir("/home/web_user")},createDefaultDevices:()=>{Ee.mkdir("/dev"),Ee.registerDevice(Ee.makedev(1,3),{read:()=>0,write:(e,t,s,i,r)=>i}),Ee.mkdev("/dev/null",Ee.makedev(1,3)),fe.register(Ee.makedev(5,0),fe.default_tty_ops),fe.register(Ee.makedev(6,0),fe.default_tty1_ops),Ee.mkdev("/dev/tty",Ee.makedev(5,0)),Ee.mkdev("/dev/tty1",Ee.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()=>ae("randomDevice")}();Ee.createDevice("/dev","random",e),Ee.createDevice("/dev","urandom",e),Ee.mkdir("/dev/shm"),Ee.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{Ee.mkdir("/proc");var e=Ee.mkdir("/proc/self");Ee.mkdir("/proc/self/fd"),Ee.mount({mount:()=>{var t=Ee.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var s=+t,i=Ee.getStream(s);if(!i)throw new Ee.ErrnoError(8);var r={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>i.path}};return r.parent=r,r}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{u.stdin?Ee.createDevice("/dev","stdin",u.stdin):Ee.symlink("/dev/tty","/dev/stdin"),u.stdout?Ee.createDevice("/dev","stdout",null,u.stdout):Ee.symlink("/dev/tty","/dev/stdout"),u.stderr?Ee.createDevice("/dev","stderr",null,u.stderr):Ee.symlink("/dev/tty1","/dev/stderr"),Ee.open("/dev/stdin",0),Ee.open("/dev/stdout",1),Ee.open("/dev/stderr",1)},ensureErrnoError:()=>{Ee.ErrnoError||(Ee.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},Ee.ErrnoError.prototype=new Error,Ee.ErrnoError.prototype.constructor=Ee.ErrnoError,[44].forEach((e=>{Ee.genericErrors[e]=new Ee.ErrnoError(e),Ee.genericErrors[e].stack=""})))},staticInit:()=>{Ee.ensureErrnoError(),Ee.nameTable=new Array(4096),Ee.mount(ye,{},"/"),Ee.createDefaultDirectories(),Ee.createDefaultDevices(),Ee.createSpecialDirectories(),Ee.filesystems={MEMFS:ye}},init:(e,t,s)=>{Ee.init.initialized=!0,Ee.ensureErrnoError(),u.stdin=e||u.stdin,u.stdout=t||u.stdout,u.stderr=s||u.stderr,Ee.createStandardStreams()},quit:()=>{Ee.init.initialized=!1;for(var e=0;e{var s=0;return e&&(s|=365),t&&(s|=146),s},findObject:(e,t)=>{var s=Ee.analyzePath(e,t);return s.exists?s.object:null},analyzePath:(e,t)=>{try{e=(i=Ee.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 i=Ee.lookupPath(e,{parent:!0});s.parentExists=!0,s.parentPath=i.path,s.parentObject=i.node,s.name=Ae.basename(e),i=Ee.lookupPath(e,{follow:!t}),s.exists=!0,s.path=i.path,s.object=i.node,s.name=i.node.name,s.isRoot="/"===i.path}catch(e){s.error=e.errno}return s},createPath:(e,t,s,i)=>{e="string"==typeof e?e:Ee.getPath(e);for(var r=t.split("/").reverse();r.length;){var o=r.pop();if(o){var n=Ae.join2(e,o);try{Ee.mkdir(n)}catch(e){}e=n}}return n},createFile:(e,t,s,i,r)=>{var o=Ae.join2("string"==typeof e?e:Ee.getPath(e),t),n=Ee.getMode(i,r);return Ee.create(o,n)},createDataFile:(e,t,s,i,r,o)=>{var n=t;e&&(e="string"==typeof e?e:Ee.getPath(e),n=t?Ae.join2(e,t):e);var a=Ee.getMode(i,r),l=Ee.create(n,a);if(s){if("string"==typeof s){for(var h=new Array(s.length),c=0,u=s.length;c{var r=Ae.join2("string"==typeof e?e:Ee.getPath(e),t),o=Ee.getMode(!!s,!!i);Ee.createDevice.major||(Ee.createDevice.major=64);var n=Ee.makedev(Ee.createDevice.major++,0);return Ee.registerDevice(n,{open:e=>{e.seekable=!1},close:e=>{i&&i.buffer&&i.buffer.length&&i(10)},read:(e,t,i,r,o)=>{for(var n=0,a=0;a{for(var n=0;n{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=de(A(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ee.ErrnoError(29)}},createLazyFile:(e,s,i,r,o)=>{function n(){this.lengthKnown=!1,this.chunks=[]}if(n.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]}},n.prototype.setDataGetter=function(e){this.getter=e},n.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",i,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+i+". Status: "+e.status);var t,s=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,n=1048576;r||(n=s);var a=this;a.setDataGetter((e=>{var t=e*n,r=(e+1)*n-1;if(r=Math.min(r,s-1),void 0===a.chunks[e]&&(a.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 r=new XMLHttpRequest;if(r.open("GET",i,!1),s!==n&&r.setRequestHeader("Range","bytes="+e+"-"+t),r.responseType="arraybuffer",r.overrideMimeType&&r.overrideMimeType("text/plain; charset=x-user-defined"),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+i+". Status: "+r.status);return void 0!==r.response?new Uint8Array(r.response||[]):de(r.responseText||"",!0)})(t,r)),void 0===a.chunks[e])throw new Error("doXHR failed!");return a.chunks[e]})),!o&&s||(n=s=1,s=this.getter(0).length,n=s,b("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=s,this._chunkSize=n,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!g)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new n;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var l={isDevice:!1,contents:a}}else l={isDevice:!1,url:i};var h=Ee.createFile(e,s,l,r,o);l.contents?h.contents=l.contents:l.url&&(h.contents=null,h.url=l.url),Object.defineProperties(h,{usedBytes:{get:function(){return this.contents.length}}});var c={};function u(e,t,s,i,r){var o=e.node.contents;if(r>=o.length)return 0;var n=Math.min(o.length-r,i);if(o.slice)for(var a=0;a{var t=h.stream_ops[e];c[e]=function(){return Ee.forceLoadFile(h),t.apply(null,arguments)}})),c.read=(e,t,s,i,r)=>(Ee.forceLoadFile(h),u(e,t,s,i,r)),c.mmap=(e,s,i,r,o)=>{Ee.forceLoadFile(h);var n=me();if(!n)throw new Ee.ErrnoError(48);return u(e,t(),n,s,i),{ptr:n,allocated:!0}},h.stream_ops=c,h},createPreloadedFile:(e,t,s,i,r,o,n,a,l,h)=>{var c=t?pe.resolve(Ae.join2(e,t)):e;function u(s){function u(s){h&&h(),a||Ee.createDataFile(e,t,s,i,r,l),o&&o(),ne()}Browser.handledByPreloadPlugin(s,c,u,(()=>{n&&n(),ne()}))||u(s)}oe(),"string"==typeof s?function(e,t,s,i){var r=i?"":"al "+e;p(e,(s=>{S(s,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(s)),r&&ne()}),(t=>{if(!s)throw'Loading data file "'+e+'" failed.';s()})),r&&oe()}(s,(e=>u(e)),n):u(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 i=Ee.indexedDB();try{var r=i.open(Ee.DB_NAME(),Ee.DB_VERSION)}catch(e){return s(e)}r.onupgradeneeded=()=>{b("creating db"),r.result.createObjectStore(Ee.DB_STORE_NAME)},r.onsuccess=()=>{var i=r.result.transaction([Ee.DB_STORE_NAME],"readwrite"),o=i.objectStore(Ee.DB_STORE_NAME),n=0,a=0,l=e.length;function h(){0==a?t():s()}e.forEach((e=>{var t=o.put(Ee.analyzePath(e).object.contents,e);t.onsuccess=()=>{++n+a==l&&h()},t.onerror=()=>{a++,n+a==l&&h()}})),i.onerror=s},r.onerror=s},loadFilesFromDB:(e,t=(()=>{}),s=(()=>{}))=>{var i=Ee.indexedDB();try{var r=i.open(Ee.DB_NAME(),Ee.DB_VERSION)}catch(e){return s(e)}r.onupgradeneeded=s,r.onsuccess=()=>{var i=r.result;try{var o=i.transaction([Ee.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var n=o.objectStore(Ee.DB_STORE_NAME),a=0,l=0,h=e.length;function c(){0==l?t():s()}e.forEach((e=>{var t=n.get(e);t.onsuccess=()=>{Ee.analyzePath(e).exists&&Ee.unlink(e),Ee.createDataFile(Ae.dirname(e),Ae.basename(e),t.result,!0,!0,!0),++a+l==h&&c()},t.onerror=()=>{l++,a+l==h&&c()}})),o.onerror=s},r.onerror=s}},ge={DEFAULT_POLLMASK:5,calculateAt:function(e,t,s){if(Ae.isAbs(t))return t;var i;if(i=-100===e?Ee.cwd():ge.getStreamFromFD(e).path,0==t.length){if(!s)throw new Ee.ErrnoError(44);return i}return Ae.join2(i,t)},doStat:function(e,t,s){try{var i=e(t)}catch(e){if(e&&e.node&&Ae.normalize(t)!==Ae.normalize(Ee.getPath(e.node)))return-54;throw e}n()[s>>>2]=i.dev,n()[s+8>>>2]=i.ino,n()[s+12>>>2]=i.mode,a()[s+16>>>2]=i.nlink,n()[s+20>>>2]=i.uid,n()[s+24>>>2]=i.gid,n()[s+28>>>2]=i.rdev,se=[i.size>>>0,(te=i.size,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[s+40>>>2]=se[0],n()[s+44>>>2]=se[1],n()[s+48>>>2]=4096,n()[s+52>>>2]=i.blocks;var r=i.atime.getTime(),o=i.mtime.getTime(),l=i.ctime.getTime();return se=[Math.floor(r/1e3)>>>0,(te=Math.floor(r/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[s+56>>>2]=se[0],n()[s+60>>>2]=se[1],a()[s+64>>>2]=r%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)],n()[s+72>>>2]=se[0],n()[s+76>>>2]=se[1],a()[s+80>>>2]=o%1e3*1e3,se=[Math.floor(l/1e3)>>>0,(te=Math.floor(l/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[s+88>>>2]=se[0],n()[s+92>>>2]=se[1],a()[s+96>>>2]=l%1e3*1e3,se=[i.ino>>>0,(te=i.ino,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[s+104>>>2]=se[0],n()[s+108>>>2]=se[1],0},doMsync:function(e,t,s,r,o){if(!Ee.isFile(t.node.mode))throw new Ee.ErrnoError(43);if(2&r)return 0;e>>>=0;var n=i().slice(e,e+s);Ee.msync(t,n,o,s,r)},varargs:void 0,get:function(){return ge.varargs+=4,n()[ge.varargs-4>>>2]},getStr:function(e){return j(e)},getStreamFromFD:function(e){var t=Ee.getStream(e);if(!t)throw new Ee.ErrnoError(8);return t}};function ve(e){if(I)return ls(1,1,e);O=e,J()||(_e.terminateAllThreads(),u.onExit&&u.onExit(e),x=!0),y(e,new ce(e))}var Ie=function(e,t){if(O=e,!t&&I)throw Pe(e),"unwind";ve(e)},_e={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?_e.initWorker():_e.initMainThread()},initMainThread:function(){for(var e=navigator.hardwareConcurrency;e--;)_e.allocateUnusedWorker()},initWorker:function(){N=!1},setExitStatus:function(e){O=e},terminateAllThreads:function(){for(var e of Object.values(_e.pthreads))_e.returnWorkerToPool(e);for(var e of _e.unusedWorkers)e.terminate();_e.unusedWorkers=[]},returnWorkerToPool:function(e){var t=e.pthread_ptr;delete _e.pthreads[t],_e.unusedWorkers.push(e),_e.runningWorkers.splice(_e.runningWorkers.indexOf(e),1),e.pthread_ptr=0,Bs(t)},receiveObjectTransfer:function(e){},threadInitTLS:function(){_e.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:e=>new Promise((t=>{e.onmessage=s=>{var i,r=s.data,o=r.cmd;if(e.pthread_ptr&&(_e.currentProxiedOperationCallerThread=e.pthread_ptr),r.targetThread&&r.targetThread!=Ns()){var n=_e.pthreads[r.targetThread];return n?n.postMessage(r,r.transferList):R('Internal error! Worker sent a message "'+o+'" to target pthread '+r.targetThread+", but that thread no longer exists!"),void(_e.currentProxiedOperationCallerThread=void 0)}"processProxyingQueue"===o?ts(r.queue):"spawnThread"===o?function(e){var t=_e.getNewWorker();if(!t)return 6;_e.runningWorkers.push(t),_e.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)}(r):"cleanupThread"===o?ue(r.thread):"killThread"===o?function(e){var t=_e.pthreads[e];delete _e.pthreads[e],t.terminate(),Bs(e),_e.runningWorkers.splice(_e.runningWorkers.indexOf(t),1),t.pthread_ptr=0}(r.thread):"cancelThread"===o?(i=r.thread,_e.pthreads[i].postMessage({cmd:"cancel"})):"loaded"===o?(e.loaded=!0,t(e)):"print"===o?b("Thread "+r.threadId+": "+r.text):"printErr"===o?R("Thread "+r.threadId+": "+r.text):"alert"===o?alert("Thread "+r.threadId+": "+r.text):"setimmediate"===r.target?e.postMessage(r):"callHandler"===o?u[r.handler](...r.args):o&&R("worker sent an unknown command "+o),_e.currentProxiedOperationCallerThread=void 0},e.onerror=e=>{throw R("worker sent an error! "+e.filename+":"+e.lineno+": "+e.message),e};var i=[];for(var r of["onExit","onAbort","print","printErr"])u.hasOwnProperty(r)&&i.push(r);e.postMessage({cmd:"load",handlers:i,urlOrBlob:u.mainScriptUrlOrBlob||s,wasmMemory:D,wasmModule:C})})),loadWasmModuleToAllWorkers:function(e){if(I)return e();Promise.all(_e.unusedWorkers.map(_e.loadWasmModuleToWorker)).then(e)},allocateUnusedWorker:function(){var e,t=T("web-ifc-mt.worker.js");e=new Worker(t),_e.unusedWorkers.push(e)},getNewWorker:function(){return 0==_e.unusedWorkers.length&&(_e.allocateUnusedWorker(),_e.loadWasmModuleToWorker(_e.unusedWorkers[0])),_e.unusedWorkers.pop()}};function Te(e){for(;e.length>0;)e.shift()(u)}function Pe(e){if(I)return ls(2,0,e);try{Ie(e)}catch(e){!function(e){if(e instanceof ce||"unwind"==e)return O;y(1,e)}(e)}}u.PThread=_e,u.establishStackSpace=function(){var e=Ns(),t=n()[e+52>>>2],s=n()[e+56>>>2];Us(t,t-s),Gs(t)};var be=[];function Re(e){var t=be[e];return t||(e>=be.length&&(be.length=e+1),be[e]=t=K.get(e)),t}function De(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){a()[this.ptr+4>>>2]=e},this.get_type=function(){return a()[this.ptr+4>>>2]},this.set_destructor=function(e){a()[this.ptr+8>>>2]=e},this.get_destructor=function(){return a()[this.ptr+8>>>2]},this.set_refcount=function(e){n()[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(n(),this.ptr+0>>2,1)},this.release_ref=function(){return 1===Atomics.sub(n(),this.ptr+0>>2,1)},this.set_adjusted_ptr=function(e){a()[this.ptr+16>>>2]=e},this.get_adjusted_ptr=function(){return a()[this.ptr+16>>>2]},this.get_exception_ptr=function(){if(Vs(this.get_type()))return a()[this.excPtr>>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}u.invokeEntryPoint=function(e,t){var s=Re(e)(t);J()?_e.setExitStatus(s):Fs(s)};var Ce="To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking",Ne={};function Oe(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function xe(e){return this.fromWireType(n()[e>>>2])}var Se={},we={},Me={};function Be(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 Fe(e,t){return e=Be(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Le(e,t){var s=Fe(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 Ue=void 0;function He(e){throw new Ue(e)}function Ge(e,t,s){function i(t){var i=s(t);i.length!==e.length&&He("Mismatched type converter count");for(var r=0;r{we.hasOwnProperty(e)?r[t]=we[e]:(o.push(e),Se.hasOwnProperty(e)||(Se[e]=[]),Se[e].push((()=>{r[t]=we[e],++n===o.length&&i(r)})))})),0===o.length&&i(r)}var ke={};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 je=void 0;function Qe(e){for(var t="",s=e;i()[s>>>0];)t+=je[i()[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 i=t.name;if(e||ze('type "'+i+'" must have a positive integer typeid pointer'),we.hasOwnProperty(e)){if(s.ignoreDuplicateRegistrations)return;ze("Cannot register type '"+i+"' twice")}if(we[e]=t,delete Me[e],Se.hasOwnProperty(e)){var r=Se[e];delete Se[e],r.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,i=e.$$.ptrType.registeredClass,r=e.$$.ptr;t.baseClass;)s=t.upcast(s),t=t.baseClass;for(;i.baseClass;)r=i.upcast(r),i=i.baseClass;return t===i&&s===r}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 Ze(e){ze(e.$$.ptrType.registeredClass.name+" instance already deleted")}var qe=!1;function Je(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 i=et(e,t,s.baseClass);return null===i?null:s.downcast(i)}var tt={};function st(){return Object.keys(lt).length}function it(){var e=[];for(var t in lt)lt.hasOwnProperty(t)&&e.push(lt[t]);return e}var rt=[];function ot(){for(;rt.length;){var e=rt.pop();e.$$.deleteScheduled=!1,e.delete()}}var nt=void 0;function at(e){nt=e,rt.length&&nt&&nt(ot)}var lt={};function ht(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),lt[t]}function ct(e,t){return t.ptrType&&t.ptr||He("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&He("Both smartPtrType and smartPtr must be specified"),t.count={value:1},At(Object.create(e,{$$:{value:t}}))}function ut(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var s=ht(this.registeredClass,t);if(void 0!==s){if(0===s.$$.count.value)return s.$$.ptr=t,s.$$.smartPtr=e,s.clone();var i=s.clone();return this.destructor(e),i}function r(){return this.isSmartPointer?ct(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ct(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var o,n=this.registeredClass.getActualType(t),a=tt[n];if(!a)return r.call(this);o=this.isConst?a.constPointerType:a.pointerType;var l=et(t,this.registeredClass,o.registeredClass);return null===l?r.call(this):this.isSmartPointer?ct(o.registeredClass.instancePrototype,{ptrType:o,ptr:l,smartPtrType:this,smartPtr:e}):ct(o.registeredClass.instancePrototype,{ptrType:o,ptr:l})}function At(e){return"undefined"==typeof FinalizationRegistry?(At=e=>e,e):(qe=new FinalizationRegistry((e=>{$e(e.$$)})),Je=e=>qe.unregister(e),(At=e=>{var t=e.$$;if(t.smartPtr){var s={$$:t};qe.register(e,s,e)}return e})(e))}function pt(){if(this.$$.ptr||Ze(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=At(Object.create(Object.getPrototypeOf(this),{$$:{value:Xe(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function dt(){this.$$.ptr||Ze(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ze("Object already scheduled for deletion"),Je(this),$e(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ft(){return!this.$$.ptr}function mt(){return this.$$.ptr||Ze(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ze("Object already scheduled for deletion"),rt.push(this),1===rt.length&&nt&&nt(ot),this.$$.deleteScheduled=!0,this}function yt(){}function Et(e,t,s){if(void 0===e[t].overloadTable){var i=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[i.argCount]=i}}function gt(e,t,s){u.hasOwnProperty(e)?((void 0===s||void 0!==u[e].overloadTable&&void 0!==u[e].overloadTable[s])&&ze("Cannot register public name '"+e+"' twice"),Et(u,e,e),u.hasOwnProperty(s)&&ze("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),u[e].overloadTable[s]=t):(u[e]=t,void 0!==s&&(u[e].numArguments=s))}function vt(e,t,s,i,r,o,n,a){this.name=e,this.constructor=t,this.instancePrototype=s,this.rawDestructor=i,this.baseClass=r,this.getActualType=o,this.upcast=n,this.downcast=a,this.pureVirtualFunctions=[]}function It(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 _t(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 It(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 i=t.$$.ptrType.registeredClass;if(s=It(t.$$.ptr,i,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 r=t.clone();s=this.rawShare(s,Vt.toHandle((function(){r.delete()}))),null!==e&&e.push(this.rawDestructor,s)}break;default:ze("Unsupporting sharing policy")}return s}function Pt(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 It(t.$$.ptr,s,this.registeredClass)}function bt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Rt(e){this.rawDestructor&&this.rawDestructor(e)}function Dt(e){null!==e&&e.delete()}function Ct(e,t,s,i,r,o,n,a,l,h,c){this.name=e,this.registeredClass=t,this.isReference=s,this.isConst=i,this.isSmartPointer=r,this.pointeeType=o,this.sharingPolicy=n,this.rawGetPointee=a,this.rawConstructor=l,this.rawShare=h,this.rawDestructor=c,r||void 0!==t.baseClass?this.toWireType=Tt:i?(this.toWireType=_t,this.destructorFunction=null):(this.toWireType=Pt,this.destructorFunction=null)}function Nt(e,t,s){u.hasOwnProperty(e)||He("Replacing nonexistant public symbol"),void 0!==u[e].overloadTable&&void 0!==s?u[e].overloadTable[s]=t:(u[e]=t,u[e].argCount=s)}function Ot(e,t,s){return e.includes("j")?function(e,t,s){var i=u["dynCall_"+e];return s&&s.length?i.apply(null,[t].concat(s)):i.call(null,t)}(e,t,s):Re(t).apply(null,s)}function xt(e,t){var s,i,r,o=(e=Qe(e)).includes("j")?(s=e,i=t,r=[],function(){return r.length=0,Object.assign(r,arguments),Ot(s,i,r)}):Re(t);return"function"!=typeof o&&ze("unknown function pointer with signature "+e+": "+t),o}var St=void 0;function wt(e){var t=Os(e),s=Qe(t);return Ls(t),s}function Mt(e,t){var s=[],i={};throw t.forEach((function e(t){i[t]||we[t]||(Me[t]?Me[t].forEach(e):(s.push(t),i[t]=!0))})),new St(e+": "+s.map(wt).join([", "]))}function Bt(e,t){for(var s=[],i=0;i>>2]);return s}function Ft(e,t,s,i,r){var o=t.length;o<2&&ze("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var n=null!==t[1]&&null!==s,a=!1,l=1;l0?", ":"")+u),A+=(h?"var rv = ":"")+"invoker(fn"+(u.length>0?", ":"")+u+");\n",a)A+="runDestructors(destructors);\n";else for(l=n?1:2;l4&&0==--Ut[e].refcount&&(Ut[e]=void 0,Lt.push(e))}function Gt(){for(var e=0,t=5;t(e||ze("Cannot use deleted val. handle = "+e),Ut[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=Lt.length?Lt.pop():Ut.length;return Ut[t]={refcount:1,value:e},t}}};function jt(e,s,l){switch(s){case 0:return function(e){var s=l?t():i();return this.fromWireType(s[e>>>0])};case 1:return function(e){var t=l?r():o();return this.fromWireType(t[e>>>1])};case 2:return function(e){var t=l?n():a();return this.fromWireType(t[e>>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function Qt(e,t){var s=we[e];return void 0===s&&ze(t+" has unknown type "+wt(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((D.buffer!=w.buffer&&z(),H)[e>>>2])};case 3:return function(e){return this.fromWireType(l()[e>>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Kt(e,s,l){switch(s){case 0:return l?function(e){return t()[e>>>0]}:function(e){return i()[e>>>0]};case 1:return l?function(e){return r()[e>>>1]}:function(e){return o()[e>>>1]};case 2:return l?function(e){return n()[e>>>2]}:function(e){return a()[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,n=s>>1,a=n+t/2;!(n>=a)&&o()[n>>>0];)++n;if((s=n<<1)-e>32&&Yt)return Yt.decode(i().slice(e,s));for(var l="",h=0;!(h>=t/2);++h){var c=r()[e+2*h>>>1];if(0==c)break;l+=String.fromCharCode(c)}return l}function Zt(e,t,s){if(void 0===s&&(s=2147483647),s<2)return 0;for(var i=t,o=(s-=2)<2*e.length?s/2:e.length,n=0;n>>1]=a,t+=2}return r()[t>>>1]=0,t-i}function qt(e){return 2*e.length}function Jt(e,t){for(var s=0,i="";!(s>=t/4);){var r=n()[e+4*s>>>2];if(0==r)break;if(++s,r>=65536){var o=r-65536;i+=String.fromCharCode(55296|o>>10,56320|1023&o)}else i+=String.fromCharCode(r)}return i}function $t(e,t,s){if(void 0===s&&(s=2147483647),s<4)return 0;for(var i=t>>>=0,r=i+s-4,o=0;o=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++o)),n()[t>>>2]=a,(t+=4)+4>r)break}return n()[t>>>2]=0,t-i}function es(e){for(var t=0,s=0;s=55296&&i<=57343&&++s,t+=4}return t}function ts(e){Atomics.store(n(),e>>2,1),Ns()&&Ms(e),Atomics.compareExchange(n(),e>>2,1,0)}u.executeNotifiedProxyingQueue=ts;var ss,is={};function rs(e){var t=is[e];return void 0===t?Qe(e):t}function os(){return"object"==typeof globalThis?globalThis:Function("return this")()}function ns(e){ns.shown||(ns.shown={}),ns.shown[e]||(ns.shown[e]=1,R(e))}function as(e){var t=Hs(),s=e();return Gs(t),s}function ls(e,t){var s=arguments.length-2,i=arguments;return as((()=>{for(var r=s,o=ks(8*r),n=o>>3,a=0;a>>0]=h}return ws(e,r,o,t)}))}ss=()=>performance.timeOrigin+performance.now();var hs=[];function cs(e){var t=D.buffer;try{return D.grow(e-t.byteLength+65535>>>16),z(),1}catch(e){}}var us={};function As(){if(!As.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",_:m||"./this.program"};for(var t in us)void 0===us[t]?delete e[t]:e[t]=us[t];var s=[];for(var t in e)s.push(t+"="+e[t]);As.strings=s}return As.strings}function ps(e,s){if(I)return ls(3,1,e,s);var i=0;return As().forEach((function(r,o){var n=s+i;a()[e+4*o>>>2]=n,function(e,s,i){for(var r=0;r>>0]=e.charCodeAt(r);i||(t()[s>>>0]=0)}(r,n),i+=r.length+1})),0}function ds(e,t){if(I)return ls(4,1,e,t);var s=As();a()[e>>>2]=s.length;var i=0;return s.forEach((function(e){i+=e.length+1})),a()[t>>>2]=i,0}function fs(e){if(I)return ls(5,1,e);try{var t=ge.getStreamFromFD(e);return Ee.close(t),0}catch(e){if(void 0===Ee||!(e instanceof Ee.ErrnoError))throw e;return e.errno}}function ms(e,s,i,r){if(I)return ls(6,1,e,s,i,r);try{var o=function(e,s,i,r){for(var o=0,n=0;n>>2],h=a()[s+4>>>2];s+=8;var c=Ee.read(e,t(),l,h,r);if(c<0)return-1;if(o+=c,c>>2]=o,0}catch(e){if(void 0===Ee||!(e instanceof Ee.ErrnoError))throw e;return e.errno}}function ys(e,t,s,i,r){if(I)return ls(7,1,e,t,s,i,r);try{var o=(h=s)+2097152>>>0<4194305-!!(l=t)?(l>>>0)+4294967296*h:NaN;if(isNaN(o))return 61;var a=ge.getStreamFromFD(e);return Ee.llseek(a,o,i),se=[a.position>>>0,(te=a.position,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[r>>>2]=se[0],n()[r+4>>>2]=se[1],a.getdents&&0===o&&0===i&&(a.getdents=null),0}catch(e){if(void 0===Ee||!(e instanceof Ee.ErrnoError))throw e;return e.errno}var l,h}function Es(e,s,i,r){if(I)return ls(8,1,e,s,i,r);try{var o=function(e,s,i,r){for(var o=0,n=0;n>>2],h=a()[s+4>>>2];s+=8;var c=Ee.write(e,t(),l,h,r);if(c<0)return-1;o+=c,void 0!==r&&(r+=c)}return o}(ge.getStreamFromFD(e),s,i);return a()[r>>>2]=o,0}catch(e){if(void 0===Ee||!(e instanceof Ee.ErrnoError))throw e;return e.errno}}function gs(e){return e%4==0&&(e%100!=0||e%400==0)}var vs=[31,29,31,30,31,30,31,31,30,31,30,31],Is=[31,28,31,30,31,30,31,31,30,31,30,31];function _s(e,s,i,r){var o=n()[r+40>>>2],a={tm_sec:n()[r>>>2],tm_min:n()[r+4>>>2],tm_hour:n()[r+8>>>2],tm_mday:n()[r+12>>>2],tm_mon:n()[r+16>>>2],tm_year:n()[r+20>>>2],tm_wday:n()[r+24>>>2],tm_yday:n()[r+28>>>2],tm_isdst:n()[r+32>>>2],tm_gmtoff:n()[r+36>>>2],tm_zone:o?j(o):""},l=j(i),h={"%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 c in h)l=l.replace(new RegExp(c,"g"),h[c]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],A=["January","February","March","April","May","June","July","August","September","October","November","December"];function p(e,t,s){for(var i="number"==typeof e?e.toString():e||"";i.length0?1:0}var i;return 0===(i=s(e.getFullYear()-t.getFullYear()))&&0===(i=s(e.getMonth()-t.getMonth()))&&(i=s(e.getDate()-t.getDate())),i}function m(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 i=gs(s.getFullYear()),r=s.getMonth(),o=(i?vs:Is)[r];if(!(t>o-s.getDate()))return s.setDate(s.getDate()+t),s;t-=o-s.getDate()+1,s.setDate(1),r<11?s.setMonth(r+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),i=new Date(t.getFullYear()+1,0,4),r=m(s),o=m(i);return f(r,t)<=0?f(o,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var E={"%a":function(e){return u[e.tm_wday].substring(0,3)},"%A":function(e){return u[e.tm_wday]},"%b":function(e){return A[e.tm_mon].substring(0,3)},"%B":function(e){return A[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 p(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,i=0;i<=t;s+=e[i++]);return s}(gs(e.tm_year+1900)?vs:Is,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&&gs(e.tm_year)||(t=1)}}else{t=52;var i=(e.tm_wday+7-e.tm_yday-1)%7;(4==i||5==i&&gs(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 c in l=l.replace(/%%/g,"\0\0"),E)l.includes(c)&&(l=l.replace(new RegExp(c,"g"),E[c](a)));var g,v,I=de(l=l.replace(/\0\0/g,"%"),!1);return I.length>s?0:(g=I,v=e,t().set(g,v>>>0),I.length-1)}_e.init();var Ts=function(e,t,s,i){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ee.nextInode++,this.name=t,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=i},Ps=365,bs=146;Object.defineProperties(Ts.prototype,{read:{get:function(){return(this.mode&Ps)===Ps},set:function(e){e?this.mode|=Ps:this.mode&=-366}},write:{get:function(){return(this.mode&bs)===bs},set:function(e){e?this.mode|=bs:this.mode&=-147}},isFolder:{get:function(){return Ee.isDir(this.mode)}},isDevice:{get:function(){return Ee.isChrdev(this.mode)}}}),Ee.FSNode=Ts,Ee.staticInit(),Ue=u.InternalError=Le(Error,"InternalError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);je=e}(),We=u.BindingError=Le(Error,"BindingError"),yt.prototype.isAliasOf=Ye,yt.prototype.clone=pt,yt.prototype.delete=dt,yt.prototype.isDeleted=ft,yt.prototype.deleteLater=mt,u.getInheritedInstanceCount=st,u.getLiveInheritedInstances=it,u.flushPendingDeletes=ot,u.setDelayFunction=at,Ct.prototype.getPointee=bt,Ct.prototype.destructor=Rt,Ct.prototype.argPackAdvance=8,Ct.prototype.readValueFromPointer=xe,Ct.prototype.deleteObject=Dt,Ct.prototype.fromWireType=ut,St=u.UnboundTypeError=Le(Error,"UnboundTypeError"),u.count_emval_handles=Gt,u.get_first_emval=kt;var Rs=[null,ve,Pe,ps,ds,fs,ms,ys,Es],Ds={g:function(e,t,s){throw new De(e).init(t,s),e},T:function(e){xs(e,!g,1,!E),_e.threadInitTLS()},J:function(e){I?postMessage({cmd:"cleanupThread",thread:e}):ue(e)},X:function(e){},_:function(e){ae(Ce)},Z:function(e,t){ae(Ce)},da:function(e){var t=Ne[e];delete Ne[e];var s=t.elements,i=s.length,r=s.map((function(e){return e.getterReturnType})).concat(s.map((function(e){return e.setterArgumentType}))),o=t.rawConstructor,n=t.rawDestructor;Ge([e],r,(function(e){return s.forEach(((t,s)=>{var r=e[s],o=t.getter,n=t.getterContext,a=e[s+i],l=t.setter,h=t.setterContext;t.read=e=>r.fromWireType(o(n,e)),t.write=(e,t)=>{var s=[];l(h,e,a.toWireType(s,t)),Oe(s)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(i),r=0;r>>l])},destructorFunction:null})},p:function(e,t,s,i,r,o,n,a,l,h,c,u,A){c=Qe(c),o=xt(r,o),a&&(a=xt(n,a)),h&&(h=xt(l,h)),A=xt(u,A);var p=Be(c);gt(p,(function(){Mt("Cannot construct "+c+" due to unbound types",[i])})),Ge([e,t,s],i?[i]:[],(function(t){var s,r;t=t[0],r=i?(s=t.registeredClass).instancePrototype:yt.prototype;var n=Fe(p,(function(){if(Object.getPrototypeOf(this)!==l)throw new We("Use 'new' to construct "+c);if(void 0===u.constructor_body)throw new We(c+" has no accessible constructor");var e=u.constructor_body[arguments.length];if(void 0===e)throw new We("Tried to invoke ctor of "+c+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(u.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),l=Object.create(r,{constructor:{value:n}});n.prototype=l;var u=new vt(c,n,l,A,s,o,a,h),d=new Ct(c,u,!0,!1,!1),f=new Ct(c+"*",u,!1,!1,!1),m=new Ct(c+" const*",u,!1,!0,!1);return tt[e]={pointerType:f,constPointerType:m},Nt(p,n),[d,f,m]}))},o:function(e,t,s,i,r,o){S(t>0);var n=Bt(t,s);r=xt(i,r),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]=()=>{Mt("Cannot construct "+e.name+" due to unbound types",n)},Ge([],n,(function(i){return i.splice(1,0,null),e.registeredClass.constructor_body[t-1]=Ft(s,i,null,r,o),[]})),[]}))},c:function(e,t,s,i,r,o,n,a){var l=Bt(s,i);t=Qe(t),o=xt(r,o),Ge([],[e],(function(e){var i=(e=e[0]).name+"."+t;function r(){Mt("Cannot call "+i+" due to unbound types",l)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),a&&e.registeredClass.pureVirtualFunctions.push(t);var h=e.registeredClass.instancePrototype,c=h[t];return void 0===c||void 0===c.overloadTable&&c.className!==e.name&&c.argCount===s-2?(r.argCount=s-2,r.className=e.name,h[t]=r):(Et(h,t,i),h[t].overloadTable[s-2]=r),Ge([],l,(function(r){var a=Ft(i,r,e,o,n);return void 0===h[t].overloadTable?(a.argCount=s-2,h[t]=a):h[t].overloadTable[s-2]=a,[]})),[]}))},aa:function(e,t){Ke(e,{name:t=Qe(t),fromWireType:function(e){var t=Vt.toValue(e);return Ht(e),t},toWireType:function(e,t){return Vt.toHandle(t)},argPackAdvance:8,readValueFromPointer:xe,destructorFunction:null})},D:function(e,t,s,i){var r=Ve(s);function o(){}t=Qe(t),o.values={},Ke(e,{name:t,constructor:o,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:jt(t,r,i),destructorFunction:null}),gt(t,o)},t:function(e,t,s){var i=Qt(e,"enum");t=Qe(t);var r=i.constructor,o=Object.create(i.constructor.prototype,{value:{value:s},constructor:{value:Fe(i.name+"_"+t,(function(){}))}});r.values[s]=o,r[t]=o},B:function(e,t,s){var i=Ve(s);Ke(e,{name:t=Qe(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:zt(t,i),destructorFunction:null})},d:function(e,t,s,i,r,o){var n=Bt(t,s);e=Qe(e),r=xt(i,r),gt(e,(function(){Mt("Cannot call "+e+" due to unbound types",n)}),t-1),Ge([],n,(function(s){var i=[s[0],null].concat(s.slice(1));return Nt(e,Ft(e,i,null,r,o),t-1),[]}))},s:function(e,t,s,i,r){t=Qe(t);var o=Ve(s),n=e=>e;if(0===i){var a=32-8*s;n=e=>e<>>a}var l=t.includes("unsigned");Ke(e,{name:t,fromWireType:n,toWireType:l?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:Kt(t,o,0!==i),destructorFunction:null})},i:function(e,t,s){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function r(e){e>>=2;var t=a(),s=t[e>>>0],r=t[e+1>>>0];return new i(t.buffer,r,s)}Ke(e,{name:s=Qe(s),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{ignoreDuplicateRegistrations:!0})},C:function(e,t){var s="std::string"===(t=Qe(t));Ke(e,{name:t,fromWireType:function(e){var t,r=a()[e>>>2],o=e+4;if(s)for(var n=o,l=0;l<=r;++l){var h=o+l;if(l==r||0==i()[h>>>0]){var c=j(n,h-n);void 0===t?t=c:(t+=String.fromCharCode(0),t+=c),n=h+1}}else{var u=new Array(r);for(l=0;l>>0]);t=u.join("")}return Ls(e),t},toWireType:function(e,t){var r;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var o="string"==typeof t;o||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||ze("Cannot pass non-string to std::string"),r=s&&o?W(t):t.length;var n,l,h=Cs(4+r+1),c=h+4;if(c>>>=0,a()[h>>>2]=r,s&&o)n=c,l=r+1,Q(t,i(),n,l);else if(o)for(var u=0;u255&&(Ls(c),ze("String has UTF-16 code units that do not fit in 8 bits")),i()[c+u>>>0]=A}else for(u=0;u>>0]=t[u];return null!==e&&e.push(Ls,h),h},argPackAdvance:8,readValueFromPointer:xe,destructorFunction:function(e){Ls(e)}})},x:function(e,t,s){var i,r,n,l,h;s=Qe(s),2===t?(i=Xt,r=Zt,l=qt,n=()=>o(),h=1):4===t&&(i=Jt,r=$t,l=es,n=()=>a(),h=2),Ke(e,{name:s,fromWireType:function(e){for(var s,r=a()[e>>>2],o=n(),l=e+4,c=0;c<=r;++c){var u=e+4+c*t;if(c==r||0==o[u>>>h]){var A=i(l,u-l);void 0===s?s=A:(s+=String.fromCharCode(0),s+=A),l=u+t}}return Ls(e),s},toWireType:function(e,i){"string"!=typeof i&&ze("Cannot pass non-string to C++ string type "+s);var o=l(i),n=Cs(4+o+t);return n>>>=0,a()[n>>>2]=o>>h,r(i,n+4,o+t),null!==e&&e.push(Ls,n),n},argPackAdvance:8,readValueFromPointer:xe,destructorFunction:function(e){Ls(e)}})},ea:function(e,t,s,i,r,o){Ne[e]={name:Qe(t),rawConstructor:xt(s,i),rawDestructor:xt(r,o),elements:[]}},j:function(e,t,s,i,r,o,n,a,l){Ne[e].elements.push({getterReturnType:t,getter:xt(s,i),getterContext:r,setterArgumentType:o,setter:xt(n,a),setterContext:l})},r:function(e,t,s,i,r,o){ke[e]={name:Qe(t),rawConstructor:xt(s,i),rawDestructor:xt(r,o),fields:[]}},f:function(e,t,s,i,r,o,n,a,l,h){ke[e].fields.push({fieldName:Qe(t),getterReturnType:s,getter:xt(i,r),getterContext:o,setterArgumentType:n,setter:xt(a,l),setterContext:h})},ca:function(e,t){Ke(e,{isVoid:!0,name:t=Qe(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},Y:function(e){R(j(e))},V:function(e,t,s,i){if(e==t)setTimeout((()=>ts(i)));else if(I)postMessage({targetThread:e,cmd:"processProxyingQueue",queue:i});else{var r=_e.pthreads[e];if(!r)return;r.postMessage({cmd:"processProxyingQueue",queue:i})}return 1},S:function(e,t,s){return-1},n:function(e,t,s){e=Vt.toValue(e),t=Qt(t,"emval::as");var i=[],r=Vt.toHandle(i);return a()[s>>>2]=r,t.toWireType(i,e)},z:function(e,t,s,i){e=Vt.toValue(e);for(var r=function(e,t){for(var s=new Array(e),i=0;i>>2],"parameter "+i);return s}(t,s),o=new Array(t),n=0;n4&&(Ut[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(rs(e))},w:function(){return Vt.toHandle({})},m:function(e){Oe(Vt.toValue(e)),Ht(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(){ae("")},U:function(){g||ns("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){i().copyWithin(e>>>0,t>>>0,t+s>>>0)},R:function(e,t,s){hs.length=t;for(var i=s>>3,r=0;r>>0];return Rs[e].apply(null,hs)},P:function(e){var t=i().length;if((e>>>=0)<=t)return!1;var s,r,o=4294901760;if(e>o)return!1;for(var n=1;n<=4;n*=2){var a=t*(1+.2/n);if(a=Math.min(a,e+100663296),cs(Math.min(o,(s=Math.max(e,a))+((r=65536)-s%r)%r)))return!0}return!1},$:function(){throw"unwind"},L:ps,M:ds,I:Ie,N:fs,O:ms,G:ys,Q:Es,a:D||u.wasmMemory,K:function(e,t,s,i,r){return _s(e,t,s,i)}};!function(){var e={a:Ds};function t(e,t){var s,i,r=e.exports;u.asm=r,s=u.asm.ka,_e.tlsInitFunctions.push(s),K=u.asm.ia,i=u.asm.ha,Z.unshift(i),C=t,_e.loadWasmModuleToAllWorkers((()=>ne()))}function s(e){t(e.instance,e.module)}function i(t){return(P||!E&&!g||"function"!=typeof fetch?Promise.resolve().then((function(){return he(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 he(ee)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){R("failed to asynchronously prepare wasm: "+e),ae(e)}))}if(oe(),u.instantiateWasm)try{return u.instantiateWasm(e,t)}catch(e){R("Module.instantiateWasm callback failed with error: "+e),c(e)}(P||"function"!=typeof WebAssembly.instantiateStreaming||le(ee)||"function"!=typeof fetch?i(s):fetch(ee,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(s,(function(e){return R("wasm streaming compile failed: "+e),R("falling back to ArrayBuffer instantiation"),i(s)}))}))).catch(c)}();var Cs=function(){return(Cs=u.asm.ja).apply(null,arguments)};u.__emscripten_tls_init=function(){return(u.__emscripten_tls_init=u.asm.ka).apply(null,arguments)};var Ns=u._pthread_self=function(){return(Ns=u._pthread_self=u.asm.la).apply(null,arguments)},Os=u.___getTypeName=function(){return(Os=u.___getTypeName=u.asm.ma).apply(null,arguments)};u.__embind_initialize_bindings=function(){return(u.__embind_initialize_bindings=u.asm.na).apply(null,arguments)};var xs=u.__emscripten_thread_init=function(){return(xs=u.__emscripten_thread_init=u.asm.oa).apply(null,arguments)};u.__emscripten_thread_crashed=function(){return(u.__emscripten_thread_crashed=u.asm.pa).apply(null,arguments)};var Ss,ws=function(){return(ws=u.asm.qa).apply(null,arguments)},Ms=u.__emscripten_proxy_execute_task_queue=function(){return(Ms=u.__emscripten_proxy_execute_task_queue=u.asm.ra).apply(null,arguments)},Bs=function(){return(Bs=u.asm.sa).apply(null,arguments)},Fs=u.__emscripten_thread_exit=function(){return(Fs=u.__emscripten_thread_exit=u.asm.ta).apply(null,arguments)},Ls=function(){return(Ls=u.asm.ua).apply(null,arguments)},Us=function(){return(Us=u.asm.va).apply(null,arguments)},Hs=function(){return(Hs=u.asm.wa).apply(null,arguments)},Gs=function(){return(Gs=u.asm.xa).apply(null,arguments)},ks=function(){return(ks=u.asm.ya).apply(null,arguments)},Vs=function(){return(Vs=u.asm.za).apply(null,arguments)};function js(){if(!(ie>0)){if(I)return h(u),$(),void startWorker(u);!function(){if(u.preRun)for("function"==typeof u.preRun&&(u.preRun=[u.preRun]);u.preRun.length;)e=u.preRun.shift(),X.unshift(e);var e;Te(X)}(),ie>0||(u.setStatus?(u.setStatus("Running..."),setTimeout((function(){setTimeout((function(){u.setStatus("")}),1),e()}),1)):e())}function e(){Ss||(Ss=!0,u.calledRun=!0,x||($(),h(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),function(){if(!I){if(u.postRun)for("function"==typeof u.postRun&&(u.postRun=[u.postRun]);u.postRun.length;)e=u.postRun.shift(),q.unshift(e);var e;Te(q)}}()))}}if(u.dynCall_jiji=function(){return(u.dynCall_jiji=u.asm.Aa).apply(null,arguments)},u.dynCall_viijii=function(){return(u.dynCall_viijii=u.asm.Ba).apply(null,arguments)},u.dynCall_iiiiij=function(){return(u.dynCall_iiiiij=u.asm.Ca).apply(null,arguments)},u.dynCall_iiiiijj=function(){return(u.dynCall_iiiiijj=u.asm.Da).apply(null,arguments)},u.dynCall_iiiiiijj=function(){return(u.dynCall_iiiiiijj=u.asm.Ea).apply(null,arguments)},u.keepRuntimeAlive=J,u.wasmMemory=D,u.ExitStatus=ce,u.PThread=_e,re=function e(){Ss||js(),Ss||(re=e)},u.preInit)for("function"==typeof u.preInit&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return js(),e.ready});"object"==typeof e&&"object"==typeof t?t.exports=i:"function"==typeof define&&define.amd?define([],(function(){return i})):"object"==typeof e&&(e.WebIFCWasm=i)}}),Ev=mv({"dist/web-ifc.js"(e,t){var s,i=(s="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e={}){var t,i,r=void 0!==e?e:{};r.ready=new Promise((function(e,s){t=e,i=s}));var o,n,a=Object.assign({},r),l="./this.program",h="";"undefined"!=typeof document&&document.currentScript&&(h=document.currentScript.src),s&&(h=s),h=0!==h.indexOf("blob:")?h.substr(0,h.replace(/[?#].*/,"").lastIndexOf("/")+1):"",o=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},n=(e,t,s)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):s()},i.onerror=s,i.send(null)};var c,u,A=r.print||console.log.bind(console),p=r.printErr||console.warn.bind(console);Object.assign(r,a),a=null,r.arguments,r.thisProgram&&(l=r.thisProgram),r.quit,r.wasmBinary&&(c=r.wasmBinary),r.noExitRuntime,"object"!=typeof WebAssembly&&V("no native wasm support detected");var d=!1;function f(e,t){e||V(t)}var m,y,E,g,v,I,_,T,P,b="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function R(e,t,s){for(var i=(t>>>=0)+s,r=t;e[r]&&!(r>=i);)++r;if(r-t>16&&e.buffer&&b)return b.decode(e.subarray(t,r));for(var o="";t>10,56320|1023&h)}}else o+=String.fromCharCode((31&n)<<6|a)}else o+=String.fromCharCode(n)}return o}function D(e,t){return(e>>>=0)?R(y,e,t):""}function C(e,t,s,i){if(!(i>0))return 0;for(var r=s>>>=0,o=s+i-1,n=0;n=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++n)),a<=127){if(s>=o)break;t[s++>>>0]=a}else if(a<=2047){if(s+1>=o)break;t[s++>>>0]=192|a>>6,t[s++>>>0]=128|63&a}else if(a<=65535){if(s+2>=o)break;t[s++>>>0]=224|a>>12,t[s++>>>0]=128|a>>6&63,t[s++>>>0]=128|63&a}else{if(s+3>=o)break;t[s++>>>0]=240|a>>18,t[s++>>>0]=128|a>>12&63,t[s++>>>0]=128|a>>6&63,t[s++>>>0]=128|63&a}}return t[s>>>0]=0,s-r}function N(e){for(var t=0,s=0;s=55296&&i<=57343?(t+=4,++s):t+=3}return t}function O(){var e=u.buffer;r.HEAP8=m=new Int8Array(e),r.HEAP16=E=new Int16Array(e),r.HEAP32=v=new Int32Array(e),r.HEAPU8=y=new Uint8Array(e),r.HEAPU16=g=new Uint16Array(e),r.HEAPU32=I=new Uint32Array(e),r.HEAPF32=_=new Float32Array(e),r.HEAPF64=T=new Float64Array(e)}var x,S,w,M,B=[],F=[],L=[],U=0,H=null;function G(e){U++,r.monitorRunDependencies&&r.monitorRunDependencies(U)}function k(e){if(U--,r.monitorRunDependencies&&r.monitorRunDependencies(U),0==U&&H){var t=H;H=null,t()}}function V(e){r.onAbort&&r.onAbort(e),p(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw i(t),t}function j(e){return e.startsWith("data:application/octet-stream;base64,")}function Q(e){try{if(e==x&&c)return new Uint8Array(c);throw"both async and sync fetching of the wasm failed"}catch(e){V(e)}}function W(e){for(;e.length>0;)e.shift()(r)}function z(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){I[this.ptr+4>>>2]=e},this.get_type=function(){return I[this.ptr+4>>>2]},this.set_destructor=function(e){I[this.ptr+8>>>2]=e},this.get_destructor=function(){return I[this.ptr+8>>>2]},this.set_refcount=function(e){v[this.ptr>>>2]=e},this.set_caught=function(e){e=e?1:0,m[this.ptr+12>>>0]=e},this.get_caught=function(){return 0!=m[this.ptr+12>>>0]},this.set_rethrown=function(e){e=e?1:0,m[this.ptr+13>>>0]=e},this.get_rethrown=function(){return 0!=m[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=v[this.ptr>>>2];v[this.ptr>>>2]=e+1},this.release_ref=function(){var e=v[this.ptr>>>2];return v[this.ptr>>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){I[this.ptr+16>>>2]=e},this.get_adjusted_ptr=function(){return I[this.ptr+16>>>2]},this.get_exception_ptr=function(){if(Kt(this.get_type()))return I[this.excPtr>>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}j(x="web-ifc.wasm")||(S=x,x=r.locateFile?r.locateFile(S,h):h+S);var K={};function Y(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function X(e){return this.fromWireType(v[e>>>2])}var Z={},q={},J={};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 ie(e){throw new se(e)}function re(e,t,s){function i(t){var i=s(t);i.length!==e.length&&ie("Mismatched type converter count");for(var r=0;r{q.hasOwnProperty(e)?r[t]=q[e]:(o.push(e),Z.hasOwnProperty(e)||(Z[e]=[]),Z[e].push((()=>{r[t]=q[e],++n===o.length&&i(r)})))})),0===o.length&&i(r)}var oe={};function ne(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 ae=void 0;function le(e){for(var t="",s=e;y[s>>>0];)t+=ae[y[s++>>>0]];return t}var he=void 0;function ce(e){throw new he(e)}function ue(e,t,s={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var i=t.name;if(e||ce('type "'+i+'" must have a positive integer typeid pointer'),q.hasOwnProperty(e)){if(s.ignoreDuplicateRegistrations)return;ce("Cannot register type '"+i+"' twice")}if(q[e]=t,delete J[e],Z.hasOwnProperty(e)){var r=Z[e];delete Z[e],r.forEach((e=>e()))}}function Ae(e){if(!(this instanceof Be))return!1;if(!(e instanceof Be))return!1;for(var t=this.$$.ptrType.registeredClass,s=this.$$.ptr,i=e.$$.ptrType.registeredClass,r=e.$$.ptr;t.baseClass;)s=t.upcast(s),t=t.baseClass;for(;i.baseClass;)r=i.upcast(r),i=i.baseClass;return t===i&&s===r}function pe(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){ce(e.$$.ptrType.registeredClass.name+" instance already deleted")}var fe=!1;function me(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 Ee(e,t,s){if(t===s)return e;if(void 0===s.baseClass)return null;var i=Ee(e,t,s.baseClass);return null===i?null:s.downcast(i)}var ge={};function ve(){return Object.keys(Re).length}function Ie(){var e=[];for(var t in Re)Re.hasOwnProperty(t)&&e.push(Re[t]);return e}var _e=[];function Te(){for(;_e.length;){var e=_e.pop();e.$$.deleteScheduled=!1,e.delete()}}var Pe=void 0;function be(e){Pe=e,_e.length&&Pe&&Pe(Te)}var Re={};function De(e,t){return t=function(e,t){for(void 0===t&&ce("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),Re[t]}function Ce(e,t){return t.ptrType&&t.ptr||ie("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&ie("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Oe(Object.create(e,{$$:{value:t}}))}function Ne(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var s=De(this.registeredClass,t);if(void 0!==s){if(0===s.$$.count.value)return s.$$.ptr=t,s.$$.smartPtr=e,s.clone();var i=s.clone();return this.destructor(e),i}function r(){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 o,n=this.registeredClass.getActualType(t),a=ge[n];if(!a)return r.call(this);o=this.isConst?a.constPointerType:a.pointerType;var l=Ee(t,this.registeredClass,o.registeredClass);return null===l?r.call(this):this.isSmartPointer?Ce(o.registeredClass.instancePrototype,{ptrType:o,ptr:l,smartPtrType:this,smartPtr:e}):Ce(o.registeredClass.instancePrototype,{ptrType:o,ptr:l})}function Oe(e){return"undefined"==typeof FinalizationRegistry?(Oe=e=>e,e):(fe=new FinalizationRegistry((e=>{ye(e.$$)})),me=e=>fe.unregister(e),(Oe=e=>{var t=e.$$;if(t.smartPtr){var s={$$:t};fe.register(e,s,e)}return e})(e))}function xe(){if(this.$$.ptr||de(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=Oe(Object.create(Object.getPrototypeOf(this),{$$:{value:pe(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Se(){this.$$.ptr||de(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ce("Object already scheduled for deletion"),me(this),ye(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function we(){return!this.$$.ptr}function Me(){return this.$$.ptr||de(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ce("Object already scheduled for deletion"),_e.push(this),1===_e.length&&Pe&&Pe(Te),this.$$.deleteScheduled=!0,this}function Be(){}function Fe(e,t,s){if(void 0===e[t].overloadTable){var i=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||ce("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[i.argCount]=i}}function Le(e,t,s){r.hasOwnProperty(e)?((void 0===s||void 0!==r[e].overloadTable&&void 0!==r[e].overloadTable[s])&&ce("Cannot register public name '"+e+"' twice"),Fe(r,e,e),r.hasOwnProperty(s)&&ce("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),r[e].overloadTable[s]=t):(r[e]=t,void 0!==s&&(r[e].numArguments=s))}function Ue(e,t,s,i,r,o,n,a){this.name=e,this.constructor=t,this.instancePrototype=s,this.rawDestructor=i,this.baseClass=r,this.getActualType=o,this.upcast=n,this.downcast=a,this.pureVirtualFunctions=[]}function He(e,t,s){for(;t!==s;)t.upcast||ce("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&&ce("null is not a valid "+this.name),0;t.$$||ce('Cannot pass "'+ut(t)+'" as a '+this.name),t.$$.ptr||ce("Cannot pass deleted object as a pointer of type "+this.name);var s=t.$$.ptrType.registeredClass;return He(t.$$.ptr,s,this.registeredClass)}function ke(e,t){var s;if(null===t)return this.isReference&&ce("null is not a valid "+this.name),this.isSmartPointer?(s=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,s),s):0;t.$$||ce('Cannot pass "'+ut(t)+'" as a '+this.name),t.$$.ptr||ce("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&ce("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var i=t.$$.ptrType.registeredClass;if(s=He(t.$$.ptr,i,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&ce("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?s=t.$$.smartPtr:ce("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 r=t.clone();s=this.rawShare(s,lt.toHandle((function(){r.delete()}))),null!==e&&e.push(this.rawDestructor,s)}break;default:ce("Unsupporting sharing policy")}return s}function Ve(e,t){if(null===t)return this.isReference&&ce("null is not a valid "+this.name),0;t.$$||ce('Cannot pass "'+ut(t)+'" as a '+this.name),t.$$.ptr||ce("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&ce("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var s=t.$$.ptrType.registeredClass;return He(t.$$.ptr,s,this.registeredClass)}function je(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,i,r,o,n,a,l,h,c){this.name=e,this.registeredClass=t,this.isReference=s,this.isConst=i,this.isSmartPointer=r,this.pointeeType=o,this.sharingPolicy=n,this.rawGetPointee=a,this.rawConstructor=l,this.rawShare=h,this.rawDestructor=c,r||void 0!==t.baseClass?this.toWireType=ke:i?(this.toWireType=Ge,this.destructorFunction=null):(this.toWireType=Ve,this.destructorFunction=null)}function Ke(e,t,s){r.hasOwnProperty(e)||ie("Replacing nonexistant public symbol"),void 0!==r[e].overloadTable&&void 0!==s?r[e].overloadTable[s]=t:(r[e]=t,r[e].argCount=s)}var Ye=[];function Xe(e){var t=Ye[e];return t||(e>=Ye.length&&(Ye.length=e+1),Ye[e]=t=P.get(e)),t}function Ze(e,t,s){return e.includes("j")?function(e,t,s){var i=r["dynCall_"+e];return s&&s.length?i.apply(null,[t].concat(s)):i.call(null,t)}(e,t,s):Xe(t).apply(null,s)}function qe(e,t){var s,i,r,o=(e=le(e)).includes("j")?(s=e,i=t,r=[],function(){return r.length=0,Object.assign(r,arguments),Ze(s,i,r)}):Xe(t);return"function"!=typeof o&&ce("unknown function pointer with signature "+e+": "+t),o}var Je=void 0;function $e(e){var t=Qt(e),s=le(t);return zt(t),s}function et(e,t){var s=[],i={};throw t.forEach((function e(t){i[t]||q[t]||(J[t]?J[t].forEach(e):(s.push(t),i[t]=!0))})),new Je(e+": "+s.map($e).join([", "]))}function tt(e,t){for(var s=[],i=0;i>>2]);return s}function st(e,t,s,i,r){var o=t.length;o<2&&ce("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var n=null!==t[1]&&null!==s,a=!1,l=1;l0?", ":"")+u),A+=(h?"var rv = ":"")+"invoker(fn"+(u.length>0?", ":"")+u+");\n",a)A+="runDestructors(destructors);\n";else for(l=n?1:2;l4&&0==--rt[e].refcount&&(rt[e]=void 0,it.push(e))}function nt(){for(var e=0,t=5;t(e||ce("Cannot use deleted val. handle = "+e),rt[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=it.length?it.pop():rt.length;return rt[t]={refcount:1,value:e},t}}};function ht(e,t,s){switch(t){case 0:return function(e){var t=s?m:y;return this.fromWireType(t[e>>>0])};case 1:return function(e){var t=s?E:g;return this.fromWireType(t[e>>>1])};case 2:return function(e){var t=s?v:I;return this.fromWireType(t[e>>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function ct(e,t){var s=q[e];return void 0===s&&ce(t+" has unknown type "+$e(e)),s}function ut(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function At(e,t){switch(t){case 2:return function(e){return this.fromWireType(_[e>>>2])};case 3:return function(e){return this.fromWireType(T[e>>>3])};default:throw new TypeError("Unknown float type: "+e)}}function pt(e,t,s){switch(t){case 0:return s?function(e){return m[e>>>0]}:function(e){return y[e>>>0]};case 1:return s?function(e){return E[e>>>1]}:function(e){return g[e>>>1]};case 2:return s?function(e){return v[e>>>2]}:function(e){return I[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,i=s>>1,r=i+t/2;!(i>=r)&&g[i>>>0];)++i;if((s=i<<1)-e>32&&dt)return dt.decode(y.subarray(e>>>0,s>>>0));for(var o="",n=0;!(n>=t/2);++n){var a=E[e+2*n>>>1];if(0==a)break;o+=String.fromCharCode(a)}return o}function mt(e,t,s){if(void 0===s&&(s=2147483647),s<2)return 0;for(var i=t,r=(s-=2)<2*e.length?s/2:e.length,o=0;o>>1]=n,t+=2}return E[t>>>1]=0,t-i}function yt(e){return 2*e.length}function Et(e,t){for(var s=0,i="";!(s>=t/4);){var r=v[e+4*s>>>2];if(0==r)break;if(++s,r>=65536){var o=r-65536;i+=String.fromCharCode(55296|o>>10,56320|1023&o)}else i+=String.fromCharCode(r)}return i}function gt(e,t,s){if(void 0===s&&(s=2147483647),s<4)return 0;for(var i=t>>>=0,r=i+s-4,o=0;o=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++o)),v[t>>>2]=n,(t+=4)+4>r)break}return v[t>>>2]=0,t-i}function vt(e){for(var t=0,s=0;s=55296&&i<=57343&&++s,t+=4}return t}var It={};function _t(e){var t=It[e];return void 0===t?le(e):t}function Tt(){return"object"==typeof globalThis?globalThis:Function("return this")()}function Pt(e){var t=u.buffer;try{return u.grow(e-t.byteLength+65535>>>16),O(),1}catch(e){}}var bt={};function Rt(){if(!Rt.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",_:l||"./this.program"};for(var t in bt)void 0===bt[t]?delete e[t]:e[t]=bt[t];var s=[];for(var t in e)s.push(t+"="+e[t]);Rt.strings=s}return Rt.strings}var Dt={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var s=0,i=e.length-1;i>=0;i--){var r=e[i];"."===r?e.splice(i,1):".."===r?(e.splice(i,1),s++):s&&(e.splice(i,1),s--)}if(t)for(;s;s--)e.unshift("..");return e},normalize:e=>{var t=Dt.isAbs(e),s="/"===e.substr(-1);return e=Dt.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),e||t||(e="."),e&&s&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=Dt.splitPath(e),s=t[0],i=t[1];return s||i?(i&&(i=i.substr(0,i.length-1)),s+i):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=Dt.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Dt.normalize(e.join("/"))},join2:(e,t)=>Dt.normalize(e+"/"+t)},Ct={resolve:function(){for(var e="",t=!1,s=arguments.length-1;s>=-1&&!t;s--){var i=s>=0?arguments[s]:wt.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=Dt.isAbs(i)}return e=Dt.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 i=s(e.split("/")),r=s(t.split("/")),o=Math.min(i.length,r.length),n=o,a=0;a0?s:N(e)+1,r=new Array(i),o=C(e,r,0,r.length);return t&&(r.length=o),r}var Ot={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Ot.ttys[e]={input:[],output:[],ops:t},wt.registerDevice(e,Ot.stream_ops)},stream_ops:{open:function(e){var t=Ot.ttys[e.node.rdev];if(!t)throw new wt.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,i,r){if(!e.tty||!e.tty.ops.get_char)throw new wt.ErrnoError(60);for(var o=0,n=0;n0&&(A(R(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(p(R(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(p(R(e.output,0)),e.output=[])}}};function xt(e){V()}var St={ops_table:null,mount:function(e){return St.createNode(null,"/",16895,0)},createNode:function(e,t,s,i){if(wt.isBlkdev(s)||wt.isFIFO(s))throw new wt.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:wt.chrdev_stream_ops}});var r=wt.createNode(e,t,s,i);return wt.isDir(r.mode)?(r.node_ops=St.ops_table.dir.node,r.stream_ops=St.ops_table.dir.stream,r.contents={}):wt.isFile(r.mode)?(r.node_ops=St.ops_table.file.node,r.stream_ops=St.ops_table.file.stream,r.usedBytes=0,r.contents=null):wt.isLink(r.mode)?(r.node_ops=St.ops_table.link.node,r.stream_ops=St.ops_table.link.stream):wt.isChrdev(r.mode)&&(r.node_ops=St.ops_table.chrdev.node,r.stream_ops=St.ops_table.chrdev.stream),r.timestamp=Date.now(),e&&(e.contents[t]=r,e.timestamp=r.timestamp),r},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 i=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(i.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=wt.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,wt.isDir(e.mode)?t.size=4096:wt.isFile(e.mode)?t.size=e.usedBytes:wt.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 wt.genericErrors[44]},mknod:function(e,t,s,i){return St.createNode(e,t,s,i)},rename:function(e,t,s){if(wt.isDir(e.mode)){var i;try{i=wt.lookupNode(t,s)}catch(e){}if(i)for(var r in i.contents)throw new wt.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=wt.lookupNode(e,t);for(var i in s.contents)throw new wt.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 i=St.createNode(e,t,41471,0);return i.link=s,i},readlink:function(e){if(!wt.isLink(e.mode))throw new wt.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,s,i,r){var o=e.node.contents;if(r>=e.node.usedBytes)return 0;var n=Math.min(e.node.usedBytes-r,i);if(n>8&&o.subarray)t.set(o.subarray(r,r+n),s);else for(var a=0;a0||s+t>>=0,m.set(a,o>>>0)}else n=!1,o=a.byteOffset;return{ptr:o,allocated:n}},msync:function(e,t,s,i,r){return St.stream_ops.write(e,t,0,i,s,!1),0}}},wt={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 wt.ErrnoError(32);for(var s=e.split("/").filter((e=>!!e)),i=wt.root,r="/",o=0;o40)throw new wt.ErrnoError(32)}}return{path:r,node:i}},getPath:e=>{for(var t;;){if(wt.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,i=0;i>>0)%wt.nameTable.length},hashAddNode:e=>{var t=wt.hashName(e.parent.id,e.name);e.name_next=wt.nameTable[t],wt.nameTable[t]=e},hashRemoveNode:e=>{var t=wt.hashName(e.parent.id,e.name);if(wt.nameTable[t]===e)wt.nameTable[t]=e.name_next;else for(var s=wt.nameTable[t];s;){if(s.name_next===e){s.name_next=e.name_next;break}s=s.name_next}},lookupNode:(e,t)=>{var s=wt.mayLookup(e);if(s)throw new wt.ErrnoError(s,e);for(var i=wt.hashName(e.id,t),r=wt.nameTable[i];r;r=r.name_next){var o=r.name;if(r.parent.id===e.id&&o===t)return r}return wt.lookup(e,t)},createNode:(e,t,s,i)=>{var r=new wt.FSNode(e,t,s,i);return wt.hashAddNode(r),r},destroyNode:e=>{wt.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=wt.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)=>wt.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=wt.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return wt.lookupNode(e,t),20}catch(e){}return wt.nodePermissions(e,"wx")},mayDelete:(e,t,s)=>{var i;try{i=wt.lookupNode(e,t)}catch(e){return e.errno}var r=wt.nodePermissions(e,"wx");if(r)return r;if(s){if(!wt.isDir(i.mode))return 54;if(wt.isRoot(i)||wt.getPath(i)===wt.cwd())return 10}else if(wt.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?wt.isLink(e.mode)?32:wt.isDir(e.mode)&&("r"!==wt.flagsToPermissionString(t)||512&t)?31:wt.nodePermissions(e,wt.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=wt.MAX_OPEN_FDS)=>{for(var s=e;s<=t;s++)if(!wt.streams[s])return s;throw new wt.ErrnoError(33)},getStream:e=>wt.streams[e],createStream:(e,t,s)=>{wt.FSStream||(wt.FSStream=function(){this.shared={}},wt.FSStream.prototype={},Object.defineProperties(wt.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 wt.FSStream,e);var i=wt.nextfd(t,s);return e.fd=i,wt.streams[i]=e,e},closeStream:e=>{wt.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=wt.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new wt.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{wt.devices[e]={stream_ops:t}},getDevice:e=>wt.devices[e],getMounts:e=>{for(var t=[],s=[e];s.length;){var i=s.pop();t.push(i),s.push.apply(s,i.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),wt.syncFSRequests++,wt.syncFSRequests>1&&p("warning: "+wt.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var s=wt.getMounts(wt.root.mount),i=0;function r(e){return wt.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,r(e));++i>=s.length&&r(null)}s.forEach((t=>{if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount:(e,t,s)=>{var i,r="/"===s,o=!s;if(r&&wt.root)throw new wt.ErrnoError(10);if(!r&&!o){var n=wt.lookupPath(s,{follow_mount:!1});if(s=n.path,i=n.node,wt.isMountpoint(i))throw new wt.ErrnoError(10);if(!wt.isDir(i.mode))throw new wt.ErrnoError(54)}var a={type:e,opts:t,mountpoint:s,mounts:[]},l=e.mount(a);return l.mount=a,a.root=l,r?wt.root=l:i&&(i.mounted=a,i.mount&&i.mount.mounts.push(a)),l},unmount:e=>{var t=wt.lookupPath(e,{follow_mount:!1});if(!wt.isMountpoint(t.node))throw new wt.ErrnoError(28);var s=t.node,i=s.mounted,r=wt.getMounts(i);Object.keys(wt.nameTable).forEach((e=>{for(var t=wt.nameTable[e];t;){var s=t.name_next;r.includes(t.mount)&&wt.destroyNode(t),t=s}})),s.mounted=null;var o=s.mount.mounts.indexOf(i);s.mount.mounts.splice(o,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,s)=>{var i=wt.lookupPath(e,{parent:!0}).node,r=Dt.basename(e);if(!r||"."===r||".."===r)throw new wt.ErrnoError(28);var o=wt.mayCreate(i,r);if(o)throw new wt.ErrnoError(o);if(!i.node_ops.mknod)throw new wt.ErrnoError(63);return i.node_ops.mknod(i,r,t,s)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,wt.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,wt.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var s=e.split("/"),i="",r=0;r(void 0===s&&(s=t,t=438),t|=8192,wt.mknod(e,t,s)),symlink:(e,t)=>{if(!Ct.resolve(e))throw new wt.ErrnoError(44);var s=wt.lookupPath(t,{parent:!0}).node;if(!s)throw new wt.ErrnoError(44);var i=Dt.basename(t),r=wt.mayCreate(s,i);if(r)throw new wt.ErrnoError(r);if(!s.node_ops.symlink)throw new wt.ErrnoError(63);return s.node_ops.symlink(s,i,e)},rename:(e,t)=>{var s,i,r=Dt.dirname(e),o=Dt.dirname(t),n=Dt.basename(e),a=Dt.basename(t);if(s=wt.lookupPath(e,{parent:!0}).node,i=wt.lookupPath(t,{parent:!0}).node,!s||!i)throw new wt.ErrnoError(44);if(s.mount!==i.mount)throw new wt.ErrnoError(75);var l,h=wt.lookupNode(s,n),c=Ct.relative(e,o);if("."!==c.charAt(0))throw new wt.ErrnoError(28);if("."!==(c=Ct.relative(t,r)).charAt(0))throw new wt.ErrnoError(55);try{l=wt.lookupNode(i,a)}catch(e){}if(h!==l){var u=wt.isDir(h.mode),A=wt.mayDelete(s,n,u);if(A)throw new wt.ErrnoError(A);if(A=l?wt.mayDelete(i,a,u):wt.mayCreate(i,a))throw new wt.ErrnoError(A);if(!s.node_ops.rename)throw new wt.ErrnoError(63);if(wt.isMountpoint(h)||l&&wt.isMountpoint(l))throw new wt.ErrnoError(10);if(i!==s&&(A=wt.nodePermissions(s,"w")))throw new wt.ErrnoError(A);wt.hashRemoveNode(h);try{s.node_ops.rename(h,i,a)}catch(e){throw e}finally{wt.hashAddNode(h)}}},rmdir:e=>{var t=wt.lookupPath(e,{parent:!0}).node,s=Dt.basename(e),i=wt.lookupNode(t,s),r=wt.mayDelete(t,s,!0);if(r)throw new wt.ErrnoError(r);if(!t.node_ops.rmdir)throw new wt.ErrnoError(63);if(wt.isMountpoint(i))throw new wt.ErrnoError(10);t.node_ops.rmdir(t,s),wt.destroyNode(i)},readdir:e=>{var t=wt.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new wt.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=wt.lookupPath(e,{parent:!0}).node;if(!t)throw new wt.ErrnoError(44);var s=Dt.basename(e),i=wt.lookupNode(t,s),r=wt.mayDelete(t,s,!1);if(r)throw new wt.ErrnoError(r);if(!t.node_ops.unlink)throw new wt.ErrnoError(63);if(wt.isMountpoint(i))throw new wt.ErrnoError(10);t.node_ops.unlink(t,s),wt.destroyNode(i)},readlink:e=>{var t=wt.lookupPath(e).node;if(!t)throw new wt.ErrnoError(44);if(!t.node_ops.readlink)throw new wt.ErrnoError(28);return Ct.resolve(wt.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var s=wt.lookupPath(e,{follow:!t}).node;if(!s)throw new wt.ErrnoError(44);if(!s.node_ops.getattr)throw new wt.ErrnoError(63);return s.node_ops.getattr(s)},lstat:e=>wt.stat(e,!0),chmod:(e,t,s)=>{var i;if(!(i="string"==typeof e?wt.lookupPath(e,{follow:!s}).node:e).node_ops.setattr)throw new wt.ErrnoError(63);i.node_ops.setattr(i,{mode:4095&t|-4096&i.mode,timestamp:Date.now()})},lchmod:(e,t)=>{wt.chmod(e,t,!0)},fchmod:(e,t)=>{var s=wt.getStream(e);if(!s)throw new wt.ErrnoError(8);wt.chmod(s.node,t)},chown:(e,t,s,i)=>{var r;if(!(r="string"==typeof e?wt.lookupPath(e,{follow:!i}).node:e).node_ops.setattr)throw new wt.ErrnoError(63);r.node_ops.setattr(r,{timestamp:Date.now()})},lchown:(e,t,s)=>{wt.chown(e,t,s,!0)},fchown:(e,t,s)=>{var i=wt.getStream(e);if(!i)throw new wt.ErrnoError(8);wt.chown(i.node,t,s)},truncate:(e,t)=>{if(t<0)throw new wt.ErrnoError(28);var s;if(!(s="string"==typeof e?wt.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new wt.ErrnoError(63);if(wt.isDir(s.mode))throw new wt.ErrnoError(31);if(!wt.isFile(s.mode))throw new wt.ErrnoError(28);var i=wt.nodePermissions(s,"w");if(i)throw new wt.ErrnoError(i);s.node_ops.setattr(s,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var s=wt.getStream(e);if(!s)throw new wt.ErrnoError(8);if(0==(2097155&s.flags))throw new wt.ErrnoError(28);wt.truncate(s.node,t)},utime:(e,t,s)=>{var i=wt.lookupPath(e,{follow:!0}).node;i.node_ops.setattr(i,{timestamp:Math.max(t,s)})},open:(e,t,s)=>{if(""===e)throw new wt.ErrnoError(44);var i;if(s=void 0===s?438:s,s=64&(t="string"==typeof t?wt.modeStringToFlags(t):t)?4095&s|32768:0,"object"==typeof e)i=e;else{e=Dt.normalize(e);try{i=wt.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var o=!1;if(64&t)if(i){if(128&t)throw new wt.ErrnoError(20)}else i=wt.mknod(e,s,0),o=!0;if(!i)throw new wt.ErrnoError(44);if(wt.isChrdev(i.mode)&&(t&=-513),65536&t&&!wt.isDir(i.mode))throw new wt.ErrnoError(54);if(!o){var n=wt.mayOpen(i,t);if(n)throw new wt.ErrnoError(n)}512&t&&!o&&wt.truncate(i,0),t&=-131713;var a=wt.createStream({node:i,path:wt.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return a.stream_ops.open&&a.stream_ops.open(a),!r.logReadFiles||1&t||(wt.readFiles||(wt.readFiles={}),e in wt.readFiles||(wt.readFiles[e]=1)),a},close:e=>{if(wt.isClosed(e))throw new wt.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{wt.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,s)=>{if(wt.isClosed(e))throw new wt.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new wt.ErrnoError(70);if(0!=s&&1!=s&&2!=s)throw new wt.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,s),e.ungotten=[],e.position},read:(e,t,s,i,r)=>{if(s>>>=0,i<0||r<0)throw new wt.ErrnoError(28);if(wt.isClosed(e))throw new wt.ErrnoError(8);if(1==(2097155&e.flags))throw new wt.ErrnoError(8);if(wt.isDir(e.node.mode))throw new wt.ErrnoError(31);if(!e.stream_ops.read)throw new wt.ErrnoError(28);var o=void 0!==r;if(o){if(!e.seekable)throw new wt.ErrnoError(70)}else r=e.position;var n=e.stream_ops.read(e,t,s,i,r);return o||(e.position+=n),n},write:(e,t,s,i,r,o)=>{if(s>>>=0,i<0||r<0)throw new wt.ErrnoError(28);if(wt.isClosed(e))throw new wt.ErrnoError(8);if(0==(2097155&e.flags))throw new wt.ErrnoError(8);if(wt.isDir(e.node.mode))throw new wt.ErrnoError(31);if(!e.stream_ops.write)throw new wt.ErrnoError(28);e.seekable&&1024&e.flags&&wt.llseek(e,0,2);var n=void 0!==r;if(n){if(!e.seekable)throw new wt.ErrnoError(70)}else r=e.position;var a=e.stream_ops.write(e,t,s,i,r,o);return n||(e.position+=a),a},allocate:(e,t,s)=>{if(wt.isClosed(e))throw new wt.ErrnoError(8);if(t<0||s<=0)throw new wt.ErrnoError(28);if(0==(2097155&e.flags))throw new wt.ErrnoError(8);if(!wt.isFile(e.node.mode)&&!wt.isDir(e.node.mode))throw new wt.ErrnoError(43);if(!e.stream_ops.allocate)throw new wt.ErrnoError(138);e.stream_ops.allocate(e,t,s)},mmap:(e,t,s,i,r)=>{if(0!=(2&i)&&0==(2&r)&&2!=(2097155&e.flags))throw new wt.ErrnoError(2);if(1==(2097155&e.flags))throw new wt.ErrnoError(2);if(!e.stream_ops.mmap)throw new wt.ErrnoError(43);return e.stream_ops.mmap(e,t,s,i,r)},msync:(e,t,s,i,r)=>(s>>>=0,e.stream_ops.msync?e.stream_ops.msync(e,t,s,i,r):0),munmap:e=>0,ioctl:(e,t,s)=>{if(!e.stream_ops.ioctl)throw new wt.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,i=wt.open(e,t.flags),r=wt.stat(e).size,o=new Uint8Array(r);return wt.read(i,o,0,r,0),"utf8"===t.encoding?s=R(o,0):"binary"===t.encoding&&(s=o),wt.close(i),s},writeFile:(e,t,s={})=>{s.flags=s.flags||577;var i=wt.open(e,s.flags,s.mode);if("string"==typeof t){var r=new Uint8Array(N(t)+1),o=C(t,r,0,r.length);wt.write(i,r,0,o,void 0,s.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");wt.write(i,t,0,t.byteLength,void 0,s.canOwn)}wt.close(i)},cwd:()=>wt.currentPath,chdir:e=>{var t=wt.lookupPath(e,{follow:!0});if(null===t.node)throw new wt.ErrnoError(44);if(!wt.isDir(t.node.mode))throw new wt.ErrnoError(54);var s=wt.nodePermissions(t.node,"x");if(s)throw new wt.ErrnoError(s);wt.currentPath=t.path},createDefaultDirectories:()=>{wt.mkdir("/tmp"),wt.mkdir("/home"),wt.mkdir("/home/web_user")},createDefaultDevices:()=>{wt.mkdir("/dev"),wt.registerDevice(wt.makedev(1,3),{read:()=>0,write:(e,t,s,i,r)=>i}),wt.mkdev("/dev/null",wt.makedev(1,3)),Ot.register(wt.makedev(5,0),Ot.default_tty_ops),Ot.register(wt.makedev(6,0),Ot.default_tty1_ops),wt.mkdev("/dev/tty",wt.makedev(5,0)),wt.mkdev("/dev/tty1",wt.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")}();wt.createDevice("/dev","random",e),wt.createDevice("/dev","urandom",e),wt.mkdir("/dev/shm"),wt.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{wt.mkdir("/proc");var e=wt.mkdir("/proc/self");wt.mkdir("/proc/self/fd"),wt.mount({mount:()=>{var t=wt.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var s=+t,i=wt.getStream(s);if(!i)throw new wt.ErrnoError(8);var r={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>i.path}};return r.parent=r,r}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{r.stdin?wt.createDevice("/dev","stdin",r.stdin):wt.symlink("/dev/tty","/dev/stdin"),r.stdout?wt.createDevice("/dev","stdout",null,r.stdout):wt.symlink("/dev/tty","/dev/stdout"),r.stderr?wt.createDevice("/dev","stderr",null,r.stderr):wt.symlink("/dev/tty1","/dev/stderr"),wt.open("/dev/stdin",0),wt.open("/dev/stdout",1),wt.open("/dev/stderr",1)},ensureErrnoError:()=>{wt.ErrnoError||(wt.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},wt.ErrnoError.prototype=new Error,wt.ErrnoError.prototype.constructor=wt.ErrnoError,[44].forEach((e=>{wt.genericErrors[e]=new wt.ErrnoError(e),wt.genericErrors[e].stack=""})))},staticInit:()=>{wt.ensureErrnoError(),wt.nameTable=new Array(4096),wt.mount(St,{},"/"),wt.createDefaultDirectories(),wt.createDefaultDevices(),wt.createSpecialDirectories(),wt.filesystems={MEMFS:St}},init:(e,t,s)=>{wt.init.initialized=!0,wt.ensureErrnoError(),r.stdin=e||r.stdin,r.stdout=t||r.stdout,r.stderr=s||r.stderr,wt.createStandardStreams()},quit:()=>{wt.init.initialized=!1;for(var e=0;e{var s=0;return e&&(s|=365),t&&(s|=146),s},findObject:(e,t)=>{var s=wt.analyzePath(e,t);return s.exists?s.object:null},analyzePath:(e,t)=>{try{e=(i=wt.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 i=wt.lookupPath(e,{parent:!0});s.parentExists=!0,s.parentPath=i.path,s.parentObject=i.node,s.name=Dt.basename(e),i=wt.lookupPath(e,{follow:!t}),s.exists=!0,s.path=i.path,s.object=i.node,s.name=i.node.name,s.isRoot="/"===i.path}catch(e){s.error=e.errno}return s},createPath:(e,t,s,i)=>{e="string"==typeof e?e:wt.getPath(e);for(var r=t.split("/").reverse();r.length;){var o=r.pop();if(o){var n=Dt.join2(e,o);try{wt.mkdir(n)}catch(e){}e=n}}return n},createFile:(e,t,s,i,r)=>{var o=Dt.join2("string"==typeof e?e:wt.getPath(e),t),n=wt.getMode(i,r);return wt.create(o,n)},createDataFile:(e,t,s,i,r,o)=>{var n=t;e&&(e="string"==typeof e?e:wt.getPath(e),n=t?Dt.join2(e,t):e);var a=wt.getMode(i,r),l=wt.create(n,a);if(s){if("string"==typeof s){for(var h=new Array(s.length),c=0,u=s.length;c{var r=Dt.join2("string"==typeof e?e:wt.getPath(e),t),o=wt.getMode(!!s,!!i);wt.createDevice.major||(wt.createDevice.major=64);var n=wt.makedev(wt.createDevice.major++,0);return wt.registerDevice(n,{open:e=>{e.seekable=!1},close:e=>{i&&i.buffer&&i.buffer.length&&i(10)},read:(e,t,i,r,o)=>{for(var n=0,a=0;a{for(var n=0;n{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(!o)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=Nt(o(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new wt.ErrnoError(29)}},createLazyFile:(e,t,s,i,r)=>{function o(){this.lengthKnown=!1,this.chunks=[]}if(o.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]}},o.prototype.setDataGetter=function(e){this.getter=e},o.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,i=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,n=1048576;r||(n=i);var a=this;a.setDataGetter((e=>{var t=e*n,r=(e+1)*n-1;if(r=Math.min(r,i-1),void 0===a.chunks[e]&&(a.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>i-1)throw new Error("only "+i+" bytes available! programmer error!");var r=new XMLHttpRequest;if(r.open("GET",s,!1),i!==n&&r.setRequestHeader("Range","bytes="+e+"-"+t),r.responseType="arraybuffer",r.overrideMimeType&&r.overrideMimeType("text/plain; charset=x-user-defined"),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+s+". Status: "+r.status);return void 0!==r.response?new Uint8Array(r.response||[]):Nt(r.responseText||"",!0)})(t,r)),void 0===a.chunks[e])throw new Error("doXHR failed!");return a.chunks[e]})),!o&&i||(n=i=1,i=this.getter(0).length,n=i,A("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=i,this._chunkSize=n,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 n={isDevice:!1,url:s},a=wt.createFile(e,t,n,i,r);n.contents?a.contents=n.contents:n.url&&(a.contents=null,a.url=n.url),Object.defineProperties(a,{usedBytes:{get:function(){return this.contents.length}}});var l={};function h(e,t,s,i,r){var o=e.node.contents;if(r>=o.length)return 0;var n=Math.min(o.length-r,i);if(o.slice)for(var a=0;a{var t=a.stream_ops[e];l[e]=function(){return wt.forceLoadFile(a),t.apply(null,arguments)}})),l.read=(e,t,s,i,r)=>(wt.forceLoadFile(a),h(e,t,s,i,r)),l.mmap=(e,t,s,i,r)=>{wt.forceLoadFile(a);var o=xt();if(!o)throw new wt.ErrnoError(48);return h(e,m,o,t,s),{ptr:o,allocated:!0}},a.stream_ops=l,a},createPreloadedFile:(e,t,s,i,r,o,a,l,h,c)=>{var u=t?Ct.resolve(Dt.join2(e,t)):e;function A(s){function n(s){c&&c(),l||wt.createDataFile(e,t,s,i,r,h),o&&o(),k()}Browser.handledByPreloadPlugin(s,u,n,(()=>{a&&a(),k()}))||n(s)}G(),"string"==typeof s?function(e,t,s,i){var r=i?"":"al "+e;n(e,(s=>{f(s,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(s)),r&&k()}),(t=>{if(!s)throw'Loading data file "'+e+'" failed.';s()})),r&&G()}(s,(e=>A(e)),a):A(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 i=wt.indexedDB();try{var r=i.open(wt.DB_NAME(),wt.DB_VERSION)}catch(e){return s(e)}r.onupgradeneeded=()=>{A("creating db"),r.result.createObjectStore(wt.DB_STORE_NAME)},r.onsuccess=()=>{var i=r.result.transaction([wt.DB_STORE_NAME],"readwrite"),o=i.objectStore(wt.DB_STORE_NAME),n=0,a=0,l=e.length;function h(){0==a?t():s()}e.forEach((e=>{var t=o.put(wt.analyzePath(e).object.contents,e);t.onsuccess=()=>{++n+a==l&&h()},t.onerror=()=>{a++,n+a==l&&h()}})),i.onerror=s},r.onerror=s},loadFilesFromDB:(e,t=(()=>{}),s=(()=>{}))=>{var i=wt.indexedDB();try{var r=i.open(wt.DB_NAME(),wt.DB_VERSION)}catch(e){return s(e)}r.onupgradeneeded=s,r.onsuccess=()=>{var i=r.result;try{var o=i.transaction([wt.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var n=o.objectStore(wt.DB_STORE_NAME),a=0,l=0,h=e.length;function c(){0==l?t():s()}e.forEach((e=>{var t=n.get(e);t.onsuccess=()=>{wt.analyzePath(e).exists&&wt.unlink(e),wt.createDataFile(Dt.dirname(e),Dt.basename(e),t.result,!0,!0,!0),++a+l==h&&c()},t.onerror=()=>{l++,a+l==h&&c()}})),o.onerror=s},r.onerror=s}},Mt={DEFAULT_POLLMASK:5,calculateAt:function(e,t,s){if(Dt.isAbs(t))return t;var i;if(i=-100===e?wt.cwd():Mt.getStreamFromFD(e).path,0==t.length){if(!s)throw new wt.ErrnoError(44);return i}return Dt.join2(i,t)},doStat:function(e,t,s){try{var i=e(t)}catch(e){if(e&&e.node&&Dt.normalize(t)!==Dt.normalize(wt.getPath(e.node)))return-54;throw e}v[s>>>2]=i.dev,v[s+8>>>2]=i.ino,v[s+12>>>2]=i.mode,I[s+16>>>2]=i.nlink,v[s+20>>>2]=i.uid,v[s+24>>>2]=i.gid,v[s+28>>>2]=i.rdev,M=[i.size>>>0,(w=i.size,+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+40>>>2]=M[0],v[s+44>>>2]=M[1],v[s+48>>>2]=4096,v[s+52>>>2]=i.blocks;var r=i.atime.getTime(),o=i.mtime.getTime(),n=i.ctime.getTime();return M=[Math.floor(r/1e3)>>>0,(w=Math.floor(r/1e3),+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+56>>>2]=M[0],v[s+60>>>2]=M[1],I[s+64>>>2]=r%1e3*1e3,M=[Math.floor(o/1e3)>>>0,(w=Math.floor(o/1e3),+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+72>>>2]=M[0],v[s+76>>>2]=M[1],I[s+80>>>2]=o%1e3*1e3,M=[Math.floor(n/1e3)>>>0,(w=Math.floor(n/1e3),+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+88>>>2]=M[0],v[s+92>>>2]=M[1],I[s+96>>>2]=n%1e3*1e3,M=[i.ino>>>0,(w=i.ino,+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+104>>>2]=M[0],v[s+108>>>2]=M[1],0},doMsync:function(e,t,s,i,r){if(!wt.isFile(t.node.mode))throw new wt.ErrnoError(43);if(2&i)return 0;e>>>=0;var o=y.slice(e,e+s);wt.msync(t,o,r,s,i)},varargs:void 0,get:function(){return Mt.varargs+=4,v[Mt.varargs-4>>>2]},getStr:function(e){return D(e)},getStreamFromFD:function(e){var t=wt.getStream(e);if(!t)throw new wt.ErrnoError(8);return t}};function Bt(e){return e%4==0&&(e%100!=0||e%400==0)}var Ft=[31,29,31,30,31,30,31,31,30,31,30,31],Lt=[31,28,31,30,31,30,31,31,30,31,30,31];function Ut(e,t,s,i){var r=v[i+40>>>2],o={tm_sec:v[i>>>2],tm_min:v[i+4>>>2],tm_hour:v[i+8>>>2],tm_mday:v[i+12>>>2],tm_mon:v[i+16>>>2],tm_year:v[i+20>>>2],tm_wday:v[i+24>>>2],tm_yday:v[i+28>>>2],tm_isdst:v[i+32>>>2],tm_gmtoff:v[i+36>>>2],tm_zone:r?D(r):""},n=D(s),a={"%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 l in a)n=n.replace(new RegExp(l,"g"),a[l]);var h=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["January","February","March","April","May","June","July","August","September","October","November","December"];function u(e,t,s){for(var i="number"==typeof e?e.toString():e||"";i.length0?1:0}var i;return 0===(i=s(e.getFullYear()-t.getFullYear()))&&0===(i=s(e.getMonth()-t.getMonth()))&&(i=s(e.getDate()-t.getDate())),i}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 i=Bt(s.getFullYear()),r=s.getMonth(),o=(i?Ft:Lt)[r];if(!(t>o-s.getDate()))return s.setDate(s.getDate()+t),s;t-=o-s.getDate()+1,s.setDate(1),r<11?s.setMonth(r+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),i=new Date(t.getFullYear()+1,0,4),r=d(s),o=d(i);return p(r,t)<=0?p(o,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var y={"%a":function(e){return h[e.tm_wday].substring(0,3)},"%A":function(e){return h[e.tm_wday]},"%b":function(e){return c[e.tm_mon].substring(0,3)},"%B":function(e){return c[e.tm_mon]},"%C":function(e){return A((e.tm_year+1900)/100|0,2)},"%d":function(e){return A(e.tm_mday,2)},"%e":function(e){return u(e.tm_mday,2," ")},"%g":function(e){return f(e).toString().substring(2)},"%G":function(e){return f(e)},"%H":function(e){return A(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),A(t,2)},"%j":function(e){return A(e.tm_mday+function(e,t){for(var s=0,i=0;i<=t;s+=e[i++]);return s}(Bt(e.tm_year+1900)?Ft:Lt,e.tm_mon-1),3)},"%m":function(e){return A(e.tm_mon+1,2)},"%M":function(e){return A(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 A(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 A(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&&Bt(e.tm_year)||(t=1)}}else{t=52;var i=(e.tm_wday+7-e.tm_yday-1)%7;(4==i||5==i&&Bt(e.tm_year%400-1))&&t++}return A(t,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var t=e.tm_yday+7-(e.tm_wday+6)%7;return A(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 l in n=n.replace(/%%/g,"\0\0"),y)n.includes(l)&&(n=n.replace(new RegExp(l,"g"),y[l](o)));var E,g,I=Nt(n=n.replace(/\0\0/g,"%"),!1);return I.length>t?0:(E=I,g=e,m.set(E,g>>>0),I.length-1)}se=r.InternalError=te(Error,"InternalError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);ae=e}(),he=r.BindingError=te(Error,"BindingError"),Be.prototype.isAliasOf=Ae,Be.prototype.clone=xe,Be.prototype.delete=Se,Be.prototype.isDeleted=we,Be.prototype.deleteLater=Me,r.getInheritedInstanceCount=ve,r.getLiveInheritedInstances=Ie,r.flushPendingDeletes=Te,r.setDelayFunction=be,ze.prototype.getPointee=je,ze.prototype.destructor=Qe,ze.prototype.argPackAdvance=8,ze.prototype.readValueFromPointer=X,ze.prototype.deleteObject=We,ze.prototype.fromWireType=Ne,Je=r.UnboundTypeError=te(Error,"UnboundTypeError"),r.count_emval_handles=nt,r.get_first_emval=at;var Ht=function(e,t,s,i){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=wt.nextInode++,this.name=t,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=i},Gt=365,kt=146;Object.defineProperties(Ht.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&kt)===kt},set:function(e){e?this.mode|=kt:this.mode&=-147}},isFolder:{get:function(){return wt.isDir(this.mode)}},isDevice:{get:function(){return wt.isChrdev(this.mode)}}}),wt.FSNode=Ht,wt.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,i=s.length,r=s.map((function(e){return e.getterReturnType})).concat(s.map((function(e){return e.setterArgumentType}))),o=t.rawConstructor,n=t.rawDestructor;re([e],r,(function(e){return s.forEach(((t,s)=>{var r=e[s],o=t.getter,n=t.getterContext,a=e[s+i],l=t.setter,h=t.setterContext;t.read=e=>r.fromWireType(o(n,e)),t.write=(e,t)=>{var s=[];l(h,e,a.toWireType(s,t)),Y(s)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(i),r=0;r>>o])},destructorFunction:null})},o:function(e,t,s,i,r,o,n,a,l,h,c,u,A){c=le(c),o=qe(r,o),a&&(a=qe(n,a)),h&&(h=qe(l,h)),A=qe(u,A);var p=$(c);Le(p,(function(){et("Cannot construct "+c+" due to unbound types",[i])})),re([e,t,s],i?[i]:[],(function(t){var s,r;t=t[0],r=i?(s=t.registeredClass).instancePrototype:Be.prototype;var n=ee(p,(function(){if(Object.getPrototypeOf(this)!==l)throw new he("Use 'new' to construct "+c);if(void 0===u.constructor_body)throw new he(c+" has no accessible constructor");var e=u.constructor_body[arguments.length];if(void 0===e)throw new he("Tried to invoke ctor of "+c+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(u.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),l=Object.create(r,{constructor:{value:n}});n.prototype=l;var u=new Ue(c,n,l,A,s,o,a,h),d=new ze(c,u,!0,!1,!1),f=new ze(c+"*",u,!1,!1,!1),m=new ze(c+" const*",u,!1,!0,!1);return ge[e]={pointerType:f,constPointerType:m},Ke(p,n),[d,f,m]}))},n:function(e,t,s,i,r,o){f(t>0);var n=tt(t,s);r=qe(i,r),re([],[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 he("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",n)},re([],n,(function(i){return i.splice(1,0,null),e.registeredClass.constructor_body[t-1]=st(s,i,null,r,o),[]})),[]}))},b:function(e,t,s,i,r,o,n,a){var l=tt(s,i);t=le(t),o=qe(r,o),re([],[e],(function(e){var i=(e=e[0]).name+"."+t;function r(){et("Cannot call "+i+" due to unbound types",l)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),a&&e.registeredClass.pureVirtualFunctions.push(t);var h=e.registeredClass.instancePrototype,c=h[t];return void 0===c||void 0===c.overloadTable&&c.className!==e.name&&c.argCount===s-2?(r.argCount=s-2,r.className=e.name,h[t]=r):(Fe(h,t,i),h[t].overloadTable[s-2]=r),re([],l,(function(r){var a=st(i,r,e,o,n);return void 0===h[t].overloadTable?(a.argCount=s-2,h[t]=a):h[t].overloadTable[s-2]=a,[]})),[]}))},O:function(e,t){ue(e,{name:t=le(t),fromWireType:function(e){var t=lt.toValue(e);return ot(e),t},toWireType:function(e,t){return lt.toHandle(t)},argPackAdvance:8,readValueFromPointer:X,destructorFunction:null})},B:function(e,t,s,i){var r=ne(s);function o(){}t=le(t),o.values={},ue(e,{name:t,constructor:o,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:ht(t,r,i),destructorFunction:null}),Le(t,o)},s:function(e,t,s){var i=ct(e,"enum");t=le(t);var r=i.constructor,o=Object.create(i.constructor.prototype,{value:{value:s},constructor:{value:ee(i.name+"_"+t,(function(){}))}});r.values[s]=o,r[t]=o},z:function(e,t,s){var i=ne(s);ue(e,{name:t=le(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:At(t,i),destructorFunction:null})},c:function(e,t,s,i,r,o){var n=tt(t,s);e=le(e),r=qe(i,r),Le(e,(function(){et("Cannot call "+e+" due to unbound types",n)}),t-1),re([],n,(function(s){var i=[s[0],null].concat(s.slice(1));return Ke(e,st(e,i,null,r,o),t-1),[]}))},r:function(e,t,s,i,r){t=le(t);var o=ne(s),n=e=>e;if(0===i){var a=32-8*s;n=e=>e<>>a}var l=t.includes("unsigned");ue(e,{name:t,fromWireType:n,toWireType:l?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:pt(t,o,0!==i),destructorFunction:null})},h:function(e,t,s){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function r(e){var t=I,s=t[(e>>=2)>>>0],r=t[e+1>>>0];return new i(t.buffer,r,s)}ue(e,{name:s=le(s),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{ignoreDuplicateRegistrations:!0})},A:function(e,t){var s="std::string"===(t=le(t));ue(e,{name:t,fromWireType:function(e){var t,i=I[e>>>2],r=e+4;if(s)for(var o=r,n=0;n<=i;++n){var a=r+n;if(n==i||0==y[a>>>0]){var l=D(o,a-o);void 0===t?t=l:(t+=String.fromCharCode(0),t+=l),o=a+1}}else{var h=new Array(i);for(n=0;n>>0]);t=h.join("")}return zt(e),t},toWireType:function(e,t){var i;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r="string"==typeof t;r||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||ce("Cannot pass non-string to std::string"),i=s&&r?N(t):t.length;var o=jt(4+i+1),n=o+4;if(n>>>=0,I[o>>>2]=i,s&&r)C(t,y,n,i+1);else if(r)for(var a=0;a255&&(zt(n),ce("String has UTF-16 code units that do not fit in 8 bits")),y[n+a>>>0]=l}else for(a=0;a>>0]=t[a];return null!==e&&e.push(zt,o),o},argPackAdvance:8,readValueFromPointer:X,destructorFunction:function(e){zt(e)}})},v:function(e,t,s){var i,r,o,n,a;s=le(s),2===t?(i=ft,r=mt,n=yt,o=()=>g,a=1):4===t&&(i=Et,r=gt,n=vt,o=()=>I,a=2),ue(e,{name:s,fromWireType:function(e){for(var s,r=I[e>>>2],n=o(),l=e+4,h=0;h<=r;++h){var c=e+4+h*t;if(h==r||0==n[c>>>a]){var u=i(l,c-l);void 0===s?s=u:(s+=String.fromCharCode(0),s+=u),l=c+t}}return zt(e),s},toWireType:function(e,i){"string"!=typeof i&&ce("Cannot pass non-string to C++ string type "+s);var o=n(i),l=jt(4+o+t);return I[(l>>>=0)>>>2]=o>>a,r(i,l+4,o+t),null!==e&&e.push(zt,l),l},argPackAdvance:8,readValueFromPointer:X,destructorFunction:function(e){zt(e)}})},S:function(e,t,s,i,r,o){K[e]={name:le(t),rawConstructor:qe(s,i),rawDestructor:qe(r,o),elements:[]}},i:function(e,t,s,i,r,o,n,a,l){K[e].elements.push({getterReturnType:t,getter:qe(s,i),getterContext:r,setterArgumentType:o,setter:qe(n,a),setterContext:l})},q:function(e,t,s,i,r,o){oe[e]={name:le(t),rawConstructor:qe(s,i),rawDestructor:qe(r,o),fields:[]}},e:function(e,t,s,i,r,o,n,a,l,h){oe[e].fields.push({fieldName:le(t),getterReturnType:s,getter:qe(i,r),getterContext:o,setterArgumentType:n,setter:qe(a,l),setterContext:h})},Q:function(e,t){ue(e,{isVoid:!0,name:t=le(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},m:function(e,t,s){e=lt.toValue(e),t=ct(t,"emval::as");var i=[],r=lt.toHandle(i);return I[s>>>2]=r,t.toWireType(i,e)},x:function(e,t,s,i){e=lt.toValue(e);for(var r=function(e,t){for(var s=new Array(e),i=0;i>>2],"parameter "+i);return s}(t,s),o=new Array(t),n=0;n4&&(rt[e].refcount+=1)},U:function(e,t){return(e=lt.toValue(e))instanceof(t=lt.toValue(t))},w:function(e){return"number"==typeof(e=lt.toValue(e))},C:function(e){return"string"==typeof(e=lt.toValue(e))},T:function(){return lt.toHandle([])},g:function(e){return lt.toHandle(_t(e))},u:function(){return lt.toHandle({})},l:function(e){Y(lt.toValue(e)),ot(e)},j:function(e,t,s){e=lt.toValue(e),t=lt.toValue(t),s=lt.toValue(s),e[t]=s},d:function(e,t){var s=(e=ct(e,"_emval_take_value")).readValueFromPointer(t);return lt.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,i=y.length,r=4294901760;if((e>>>=0)>r)return!1;for(var o=1;o<=4;o*=2){var n=i*(1+.2/o);if(n=Math.min(n,e+100663296),Pt(Math.min(r,(t=Math.max(e,n))+((s=65536)-t%s)%s)))return!0}return!1},H:function(e,t){var s=0;return Rt().forEach((function(i,r){var o=t+s;I[e+4*r>>>2]=o,function(e,t,s){for(var i=0;i>>0]=e.charCodeAt(i);s||(m[t>>>0]=0)}(i,o),s+=i.length+1})),0},I:function(e,t){var s=Rt();I[e>>>2]=s.length;var i=0;return s.forEach((function(e){i+=e.length+1})),I[t>>>2]=i,0},J:function(e){try{var t=Mt.getStreamFromFD(e);return wt.close(t),0}catch(e){if(void 0===wt||!(e instanceof wt.ErrnoError))throw e;return e.errno}},K:function(e,t,s,i){try{var r=function(e,t,s,i){for(var r=0,o=0;o>>2],a=I[t+4>>>2];t+=8;var l=wt.read(e,m,n,a,i);if(l<0)return-1;if(r+=l,l>>2]=r,0}catch(e){if(void 0===wt||!(e instanceof wt.ErrnoError))throw e;return e.errno}},E:function(e,t,s,i,r){try{var o=(l=s)+2097152>>>0<4194305-!!(a=t)?(a>>>0)+4294967296*l:NaN;if(isNaN(o))return 61;var n=Mt.getStreamFromFD(e);return wt.llseek(n,o,i),M=[n.position>>>0,(w=n.position,+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[r>>>2]=M[0],v[r+4>>>2]=M[1],n.getdents&&0===o&&0===i&&(n.getdents=null),0}catch(e){if(void 0===wt||!(e instanceof wt.ErrnoError))throw e;return e.errno}var a,l},M:function(e,t,s,i){try{var r=function(e,t,s,i){for(var r=0,o=0;o>>2],a=I[t+4>>>2];t+=8;var l=wt.write(e,m,n,a,i);if(l<0)return-1;r+=l,void 0!==i&&(i+=l)}return r}(Mt.getStreamFromFD(e),t,s);return I[i>>>2]=r,0}catch(e){if(void 0===wt||!(e instanceof wt.ErrnoError))throw e;return e.errno}},G:function(e,t,s,i,r){return Ut(e,t,s,i)}};!function(){var e={a:Vt};function t(e,t){var s,i=e.exports;r.asm=i,u=r.asm.V,O(),P=r.asm.X,s=r.asm.W,F.unshift(s),k()}function s(e){t(e.instance)}function o(t){return(c||"function"!=typeof fetch?Promise.resolve().then((function(){return Q(x)})):fetch(x,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+x+"'";return e.arrayBuffer()})).catch((function(){return Q(x)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){p("failed to asynchronously prepare wasm: "+e),V(e)}))}if(G(),r.instantiateWasm)try{return r.instantiateWasm(e,t)}catch(e){p("Module.instantiateWasm callback failed with error: "+e),i(e)}(c||"function"!=typeof WebAssembly.instantiateStreaming||j(x)||"function"!=typeof fetch?o(s):fetch(x,{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"),o(s)}))}))).catch(i)}();var jt=function(){return(jt=r.asm.Y).apply(null,arguments)},Qt=r.___getTypeName=function(){return(Qt=r.___getTypeName=r.asm.Z).apply(null,arguments)};r.__embind_initialize_bindings=function(){return(r.__embind_initialize_bindings=r.asm._).apply(null,arguments)};var Wt,zt=function(){return(zt=r.asm.$).apply(null,arguments)},Kt=function(){return(Kt=r.asm.aa).apply(null,arguments)};function Yt(){function e(){Wt||(Wt=!0,r.calledRun=!0,d||(r.noFSInit||wt.init.initialized||wt.init(),wt.ignorePermissions=!1,W(F),t(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)e=r.postRun.shift(),L.unshift(e);var e;W(L)}()))}U>0||(function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)e=r.preRun.shift(),B.unshift(e);var e;W(B)}(),U>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),e()}),1)):e()))}if(r.dynCall_jiji=function(){return(r.dynCall_jiji=r.asm.ba).apply(null,arguments)},r.dynCall_viijii=function(){return(r.dynCall_viijii=r.asm.ca).apply(null,arguments)},r.dynCall_iiiiij=function(){return(r.dynCall_iiiiij=r.asm.da).apply(null,arguments)},r.dynCall_iiiiijj=function(){return(r.dynCall_iiiiijj=r.asm.ea).apply(null,arguments)},r.dynCall_iiiiiijj=function(){return(r.dynCall_iiiiiijj=r.asm.fa).apply(null,arguments)},H=function e(){Wt||Yt(),Wt||(H=e)},r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Yt(),e.ready});"object"==typeof e&&"object"==typeof t?t.exports=i:"function"==typeof define&&define.amd?define([],(function(){return i})):"object"==typeof e&&(e.WebIFCWasm=i)}}),gv=class{constructor(e){this.value=e,this.type=5}},vv=class{constructor(e){this.expressID=e,this.type=0}};if((cv=hv||(hv={})).IFC2X3="IFC2X3",cv.IFC4="IFC4",cv.IFC4X3="IFC4X3",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 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 r{}r.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},r.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},r.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},r.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},r.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},r.USERDEFINED={type:3,value:"USERDEFINED"},r.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=r;class o{}o.OFFICE={type:3,value:"OFFICE"},o.SITE={type:3,value:"SITE"},o.HOME={type:3,value:"HOME"},o.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},o.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=o;class n{}n.AHEAD={type:3,value:"AHEAD"},n.BEHIND={type:3,value:"BEHIND"},e.IfcAheadOrBehind=n;class a{}a.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},a.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},a.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=a;class l{}l.GRILLE={type:3,value:"GRILLE"},l.REGISTER={type:3,value:"REGISTER"},l.DIFFUSER={type:3,value:"DIFFUSER"},l.EYEBALL={type:3,value:"EYEBALL"},l.IRIS={type:3,value:"IRIS"},l.LINEARGRILLE={type:3,value:"LINEARGRILLE"},l.LINEARDIFFUSER={type:3,value:"LINEARDIFFUSER"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=l;class h{}h.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},h.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},h.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},h.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},h.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},h.HEATPIPE={type:3,value:"HEATPIPE"},h.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},h.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},h.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=h;class c{}c.BELL={type:3,value:"BELL"},c.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},c.LIGHT={type:3,value:"LIGHT"},c.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},c.SIREN={type:3,value:"SIREN"},c.WHISTLE={type:3,value:"WHISTLE"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=c;class u{}u.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},u.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},u.LOADING_3D={type:3,value:"LOADING_3D"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=u;class A{}A.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},A.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},A.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},A.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},A.USERDEFINED={type:3,value:"USERDEFINED"},A.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=A;class p{}p.ADD={type:3,value:"ADD"},p.DIVIDE={type:3,value:"DIVIDE"},p.MULTIPLY={type:3,value:"MULTIPLY"},p.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=p;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 m{}m.BEAM={type:3,value:"BEAM"},m.JOIST={type:3,value:"JOIST"},m.LINTEL={type:3,value:"LINTEL"},m.T_BEAM={type:3,value:"T_BEAM"},m.USERDEFINED={type:3,value:"USERDEFINED"},m.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=m;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 E{}E.WATER={type:3,value:"WATER"},E.STEAM={type:3,value:"STEAM"},E.USERDEFINED={type:3,value:"USERDEFINED"},E.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=E;class g{}g.UNION={type:3,value:"UNION"},g.INTERSECTION={type:3,value:"INTERSECTION"},g.DIFFERENCE={type:3,value:"DIFFERENCE"},e.IfcBooleanOperator=g;class v{}v.USERDEFINED={type:3,value:"USERDEFINED"},v.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementProxyTypeEnum=v;class I{}I.BEND={type:3,value:"BEND"},I.CROSS={type:3,value:"CROSS"},I.REDUCER={type:3,value:"REDUCER"},I.TEE={type:3,value:"TEE"},I.USERDEFINED={type:3,value:"USERDEFINED"},I.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=I;class _{}_.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},_.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},_.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},_.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=_;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 P{}P.NOCHANGE={type:3,value:"NOCHANGE"},P.MODIFIED={type:3,value:"MODIFIED"},P.ADDED={type:3,value:"ADDED"},P.DELETED={type:3,value:"DELETED"},P.MODIFIEDADDED={type:3,value:"MODIFIEDADDED"},P.MODIFIEDDELETED={type:3,value:"MODIFIEDDELETED"},e.IfcChangeActionEnum=P;class b{}b.AIRCOOLED={type:3,value:"AIRCOOLED"},b.WATERCOOLED={type:3,value:"WATERCOOLED"},b.HEATRECOVERY={type:3,value:"HEATRECOVERY"},b.USERDEFINED={type:3,value:"USERDEFINED"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=b;class R{}R.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},R.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},R.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},R.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},R.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},R.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=R;class D{}D.COLUMN={type:3,value:"COLUMN"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=D;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 N{}N.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},N.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},N.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},N.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},N.AIRCOOLED={type:3,value:"AIRCOOLED"},N.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=N;class O{}O.ATPATH={type:3,value:"ATPATH"},O.ATSTART={type:3,value:"ATSTART"},O.ATEND={type:3,value:"ATEND"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=O;class x{}x.HARD={type:3,value:"HARD"},x.SOFT={type:3,value:"SOFT"},x.ADVISORY={type:3,value:"ADVISORY"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=x;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 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 M{}M.NATURALDRAFT={type:3,value:"NATURALDRAFT"},M.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},M.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=M;class B{}B.BUDGET={type:3,value:"BUDGET"},B.COSTPLAN={type:3,value:"COSTPLAN"},B.ESTIMATE={type:3,value:"ESTIMATE"},B.TENDER={type:3,value:"TENDER"},B.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},B.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},B.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},B.USERDEFINED={type:3,value:"USERDEFINED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=B;class F{}F.CEILING={type:3,value:"CEILING"},F.FLOORING={type:3,value:"FLOORING"},F.CLADDING={type:3,value:"CLADDING"},F.ROOFING={type:3,value:"ROOFING"},F.INSULATION={type:3,value:"INSULATION"},F.MEMBRANE={type:3,value:"MEMBRANE"},F.SLEEVING={type:3,value:"SLEEVING"},F.WRAPPING={type:3,value:"WRAPPING"},F.USERDEFINED={type:3,value:"USERDEFINED"},F.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=F;class L{}L.AED={type:3,value:"AED"},L.AES={type:3,value:"AES"},L.ATS={type:3,value:"ATS"},L.AUD={type:3,value:"AUD"},L.BBD={type:3,value:"BBD"},L.BEG={type:3,value:"BEG"},L.BGL={type:3,value:"BGL"},L.BHD={type:3,value:"BHD"},L.BMD={type:3,value:"BMD"},L.BND={type:3,value:"BND"},L.BRL={type:3,value:"BRL"},L.BSD={type:3,value:"BSD"},L.BWP={type:3,value:"BWP"},L.BZD={type:3,value:"BZD"},L.CAD={type:3,value:"CAD"},L.CBD={type:3,value:"CBD"},L.CHF={type:3,value:"CHF"},L.CLP={type:3,value:"CLP"},L.CNY={type:3,value:"CNY"},L.CYS={type:3,value:"CYS"},L.CZK={type:3,value:"CZK"},L.DDP={type:3,value:"DDP"},L.DEM={type:3,value:"DEM"},L.DKK={type:3,value:"DKK"},L.EGL={type:3,value:"EGL"},L.EST={type:3,value:"EST"},L.EUR={type:3,value:"EUR"},L.FAK={type:3,value:"FAK"},L.FIM={type:3,value:"FIM"},L.FJD={type:3,value:"FJD"},L.FKP={type:3,value:"FKP"},L.FRF={type:3,value:"FRF"},L.GBP={type:3,value:"GBP"},L.GIP={type:3,value:"GIP"},L.GMD={type:3,value:"GMD"},L.GRX={type:3,value:"GRX"},L.HKD={type:3,value:"HKD"},L.HUF={type:3,value:"HUF"},L.ICK={type:3,value:"ICK"},L.IDR={type:3,value:"IDR"},L.ILS={type:3,value:"ILS"},L.INR={type:3,value:"INR"},L.IRP={type:3,value:"IRP"},L.ITL={type:3,value:"ITL"},L.JMD={type:3,value:"JMD"},L.JOD={type:3,value:"JOD"},L.JPY={type:3,value:"JPY"},L.KES={type:3,value:"KES"},L.KRW={type:3,value:"KRW"},L.KWD={type:3,value:"KWD"},L.KYD={type:3,value:"KYD"},L.LKR={type:3,value:"LKR"},L.LUF={type:3,value:"LUF"},L.MTL={type:3,value:"MTL"},L.MUR={type:3,value:"MUR"},L.MXN={type:3,value:"MXN"},L.MYR={type:3,value:"MYR"},L.NLG={type:3,value:"NLG"},L.NZD={type:3,value:"NZD"},L.OMR={type:3,value:"OMR"},L.PGK={type:3,value:"PGK"},L.PHP={type:3,value:"PHP"},L.PKR={type:3,value:"PKR"},L.PLN={type:3,value:"PLN"},L.PTN={type:3,value:"PTN"},L.QAR={type:3,value:"QAR"},L.RUR={type:3,value:"RUR"},L.SAR={type:3,value:"SAR"},L.SCR={type:3,value:"SCR"},L.SEK={type:3,value:"SEK"},L.SGD={type:3,value:"SGD"},L.SKP={type:3,value:"SKP"},L.THB={type:3,value:"THB"},L.TRL={type:3,value:"TRL"},L.TTD={type:3,value:"TTD"},L.TWD={type:3,value:"TWD"},L.USD={type:3,value:"USD"},L.VEB={type:3,value:"VEB"},L.VND={type:3,value:"VND"},L.XEU={type:3,value:"XEU"},L.ZAR={type:3,value:"ZAR"},L.ZWD={type:3,value:"ZWD"},L.NOK={type:3,value:"NOK"},e.IfcCurrencyEnum=L;class U{}U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=U;class H{}H.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},H.FIREDAMPER={type:3,value:"FIREDAMPER"},H.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},H.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},H.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},H.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},H.BLASTDAMPER={type:3,value:"BLASTDAMPER"},H.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},H.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},H.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},H.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=H;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 k{}k.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},k.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},k.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},k.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},k.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},k.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},k.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},k.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},k.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},k.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},k.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},k.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},k.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},k.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},k.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},k.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},k.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},k.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},k.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},k.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},k.TORQUEUNIT={type:3,value:"TORQUEUNIT"},k.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},k.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},k.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},k.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},k.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},k.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},k.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},k.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},k.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},k.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},k.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},k.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},k.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},k.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},k.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},k.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},k.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},k.PHUNIT={type:3,value:"PHUNIT"},k.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},k.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},k.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},k.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},k.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},k.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},k.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},k.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},k.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},k.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcDerivedUnitEnum=k;class V{}V.ORIGIN={type:3,value:"ORIGIN"},V.TARGET={type:3,value:"TARGET"},e.IfcDimensionExtentUsage=V;class j{}j.POSITIVE={type:3,value:"POSITIVE"},j.NEGATIVE={type:3,value:"NEGATIVE"},e.IfcDirectionSenseEnum=j;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 Z{}Z.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Z.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Z.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Z.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Z.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Z.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Z.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Z.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Z.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Z.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Z.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Z.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Z.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Z.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Z.REVOLVING={type:3,value:"REVOLVING"},Z.ROLLINGUP={type:3,value:"ROLLINGUP"},Z.USERDEFINED={type:3,value:"USERDEFINED"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=Z;class q{}q.BEND={type:3,value:"BEND"},q.CONNECTOR={type:3,value:"CONNECTOR"},q.ENTRY={type:3,value:"ENTRY"},q.EXIT={type:3,value:"EXIT"},q.JUNCTION={type:3,value:"JUNCTION"},q.OBSTRUCTION={type:3,value:"OBSTRUCTION"},q.TRANSITION={type:3,value:"TRANSITION"},q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=q;class J{}J.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},J.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},J.USERDEFINED={type:3,value:"USERDEFINED"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=J;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 ie{}ie.BATTERY={type:3,value:"BATTERY"},ie.CAPACITORBANK={type:3,value:"CAPACITORBANK"},ie.HARMONICFILTER={type:3,value:"HARMONICFILTER"},ie.INDUCTORBANK={type:3,value:"INDUCTORBANK"},ie.UPS={type:3,value:"UPS"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=ie;class re{}re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=re;class oe{}oe.ELECTRICPOINTHEATER={type:3,value:"ELECTRICPOINTHEATER"},oe.ELECTRICCABLEHEATER={type:3,value:"ELECTRICCABLEHEATER"},oe.ELECTRICMATHEATER={type:3,value:"ELECTRICMATHEATER"},oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricHeaterTypeEnum=oe;class ne{}ne.DC={type:3,value:"DC"},ne.INDUCTION={type:3,value:"INDUCTION"},ne.POLYPHASE={type:3,value:"POLYPHASE"},ne.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},ne.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=ne;class ae{}ae.TIMECLOCK={type:3,value:"TIMECLOCK"},ae.TIMEDELAY={type:3,value:"TIMEDELAY"},ae.RELAY={type:3,value:"RELAY"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricTimeControlTypeEnum=ae;class le{}le.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},le.ARCH={type:3,value:"ARCH"},le.BEAM_GRID={type:3,value:"BEAM_GRID"},le.BRACED_FRAME={type:3,value:"BRACED_FRAME"},le.GIRDER={type:3,value:"GIRDER"},le.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},le.RIGID_FRAME={type:3,value:"RIGID_FRAME"},le.SLAB_FIELD={type:3,value:"SLAB_FIELD"},le.TRUSS={type:3,value:"TRUSS"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=le;class he{}he.COMPLEX={type:3,value:"COMPLEX"},he.ELEMENT={type:3,value:"ELEMENT"},he.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=he;class ce{}ce.PRIMARY={type:3,value:"PRIMARY"},ce.SECONDARY={type:3,value:"SECONDARY"},ce.TERTIARY={type:3,value:"TERTIARY"},ce.AUXILIARY={type:3,value:"AUXILIARY"},ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEnergySequenceEnum=ce;class ue{}ue.COMBINEDVALUE={type:3,value:"COMBINEDVALUE"},ue.DISPOSAL={type:3,value:"DISPOSAL"},ue.EXTRACTION={type:3,value:"EXTRACTION"},ue.INSTALLATION={type:3,value:"INSTALLATION"},ue.MANUFACTURE={type:3,value:"MANUFACTURE"},ue.TRANSPORTATION={type:3,value:"TRANSPORTATION"},ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEnvironmentalImpactCategoryEnum=ue;class Ae{}Ae.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},Ae.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},Ae.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},Ae.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},Ae.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},Ae.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},Ae.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},Ae.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},Ae.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=Ae;class pe{}pe.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},pe.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},pe.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},pe.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},pe.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporatorTypeEnum=pe;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 me{}me.BREECHINGINLET={type:3,value:"BREECHINGINLET"},me.FIREHYDRANT={type:3,value:"FIREHYDRANT"},me.HOSEREEL={type:3,value:"HOSEREEL"},me.SPRINKLER={type:3,value:"SPRINKLER"},me.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=me;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 Ee{}Ee.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},Ee.THERMOMETER={type:3,value:"THERMOMETER"},Ee.AMMETER={type:3,value:"AMMETER"},Ee.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},Ee.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},Ee.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},Ee.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},Ee.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=Ee;class ge{}ge.ELECTRICMETER={type:3,value:"ELECTRICMETER"},ge.ENERGYMETER={type:3,value:"ENERGYMETER"},ge.FLOWMETER={type:3,value:"FLOWMETER"},ge.GASMETER={type:3,value:"GASMETER"},ge.OILMETER={type:3,value:"OILMETER"},ge.WATERMETER={type:3,value:"WATERMETER"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=ge;class ve{}ve.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},ve.PAD_FOOTING={type:3,value:"PAD_FOOTING"},ve.PILE_CAP={type:3,value:"PILE_CAP"},ve.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=ve;class Ie{}Ie.GASAPPLIANCE={type:3,value:"GASAPPLIANCE"},Ie.GASBOOSTER={type:3,value:"GASBOOSTER"},Ie.GASBURNER={type:3,value:"GASBURNER"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGasTerminalTypeEnum=Ie;class _e{}_e.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},_e.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},_e.MODEL_VIEW={type:3,value:"MODEL_VIEW"},_e.PLAN_VIEW={type:3,value:"PLAN_VIEW"},_e.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},_e.SECTION_VIEW={type:3,value:"SECTION_VIEW"},_e.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=_e;class Te{}Te.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},Te.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=Te;class Pe{}Pe.PLATE={type:3,value:"PLATE"},Pe.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},Pe.USERDEFINED={type:3,value:"USERDEFINED"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=Pe;class be{}be.STEAMINJECTION={type:3,value:"STEAMINJECTION"},be.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},be.ADIABATICPAN={type:3,value:"ADIABATICPAN"},be.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},be.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},be.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},be.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},be.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},be.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},be.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},be.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},be.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},be.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},be.USERDEFINED={type:3,value:"USERDEFINED"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=be;class Re{}Re.INTERNAL={type:3,value:"INTERNAL"},Re.EXTERNAL={type:3,value:"EXTERNAL"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInternalOrExternalEnum=Re;class De{}De.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},De.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},De.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=De;class Ce{}Ce.USERDEFINED={type:3,value:"USERDEFINED"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=Ce;class Ne{}Ne.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},Ne.FLUORESCENT={type:3,value:"FLUORESCENT"},Ne.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},Ne.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},Ne.METALHALIDE={type:3,value:"METALHALIDE"},Ne.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=Ne;class Oe{}Oe.AXIS1={type:3,value:"AXIS1"},Oe.AXIS2={type:3,value:"AXIS2"},Oe.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=Oe;class xe{}xe.TYPE_A={type:3,value:"TYPE_A"},xe.TYPE_B={type:3,value:"TYPE_B"},xe.TYPE_C={type:3,value:"TYPE_C"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=xe;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 we{}we.POINTSOURCE={type:3,value:"POINTSOURCE"},we.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=we;class Me{}Me.LOAD_GROUP={type:3,value:"LOAD_GROUP"},Me.LOAD_CASE={type:3,value:"LOAD_CASE"},Me.LOAD_COMBINATION_GROUP={type:3,value:"LOAD_COMBINATION_GROUP"},Me.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},Me.USERDEFINED={type:3,value:"USERDEFINED"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=Me;class Be{}Be.LOGICALAND={type:3,value:"LOGICALAND"},Be.LOGICALOR={type:3,value:"LOGICALOR"},e.IfcLogicalOperatorEnum=Be;class Fe{}Fe.BRACE={type:3,value:"BRACE"},Fe.CHORD={type:3,value:"CHORD"},Fe.COLLAR={type:3,value:"COLLAR"},Fe.MEMBER={type:3,value:"MEMBER"},Fe.MULLION={type:3,value:"MULLION"},Fe.PLATE={type:3,value:"PLATE"},Fe.POST={type:3,value:"POST"},Fe.PURLIN={type:3,value:"PURLIN"},Fe.RAFTER={type:3,value:"RAFTER"},Fe.STRINGER={type:3,value:"STRINGER"},Fe.STRUT={type:3,value:"STRUT"},Fe.STUD={type:3,value:"STUD"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=Fe;class Le{}Le.BELTDRIVE={type:3,value:"BELTDRIVE"},Le.COUPLING={type:3,value:"COUPLING"},Le.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=Le;class Ue{}Ue.NULL={type:3,value:"NULL"},e.IfcNullStyle=Ue;class He{}He.PRODUCT={type:3,value:"PRODUCT"},He.PROCESS={type:3,value:"PROCESS"},He.CONTROL={type:3,value:"CONTROL"},He.RESOURCE={type:3,value:"RESOURCE"},He.ACTOR={type:3,value:"ACTOR"},He.GROUP={type:3,value:"GROUP"},He.PROJECT={type:3,value:"PROJECT"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=He;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 ke{}ke.ASSIGNEE={type:3,value:"ASSIGNEE"},ke.ASSIGNOR={type:3,value:"ASSIGNOR"},ke.LESSEE={type:3,value:"LESSEE"},ke.LESSOR={type:3,value:"LESSOR"},ke.LETTINGAGENT={type:3,value:"LETTINGAGENT"},ke.OWNER={type:3,value:"OWNER"},ke.TENANT={type:3,value:"TENANT"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=ke;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 je{}je.GRILL={type:3,value:"GRILL"},je.LOUVER={type:3,value:"LOUVER"},je.SCREEN={type:3,value:"SCREEN"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermeableCoveringOperationEnum=je;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 Ze{}Ze.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},Ze.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},Ze.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},Ze.CALIBRATION={type:3,value:"CALIBRATION"},Ze.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},Ze.SHUTDOWN={type:3,value:"SHUTDOWN"},Ze.STARTUP={type:3,value:"STARTUP"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=Ze;class qe{}qe.CURVE={type:3,value:"CURVE"},qe.AREA={type:3,value:"AREA"},e.IfcProfileTypeEnum=qe;class Je{}Je.CHANGE={type:3,value:"CHANGE"},Je.MAINTENANCE={type:3,value:"MAINTENANCE"},Je.MOVE={type:3,value:"MOVE"},Je.PURCHASE={type:3,value:"PURCHASE"},Je.WORK={type:3,value:"WORK"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderRecordTypeEnum=Je;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 it{}it.CIRCULATOR={type:3,value:"CIRCULATOR"},it.ENDSUCTION={type:3,value:"ENDSUCTION"},it.SPLITCASE={type:3,value:"SPLITCASE"},it.VERTICALINLINE={type:3,value:"VERTICALINLINE"},it.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=it;class rt{}rt.HANDRAIL={type:3,value:"HANDRAIL"},rt.GUARDRAIL={type:3,value:"GUARDRAIL"},rt.BALUSTRADE={type:3,value:"BALUSTRADE"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=rt;class ot{}ot.STRAIGHT={type:3,value:"STRAIGHT"},ot.SPIRAL={type:3,value:"SPIRAL"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=ot;class nt{}nt.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},nt.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},nt.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},nt.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},nt.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},nt.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=nt;class at{}at.BLINN={type:3,value:"BLINN"},at.FLAT={type:3,value:"FLAT"},at.GLASS={type:3,value:"GLASS"},at.MATT={type:3,value:"MATT"},at.METAL={type:3,value:"METAL"},at.MIRROR={type:3,value:"MIRROR"},at.PHONG={type:3,value:"PHONG"},at.PLASTIC={type:3,value:"PLASTIC"},at.STRAUSS={type:3,value:"STRAUSS"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=at;class lt{}lt.MAIN={type:3,value:"MAIN"},lt.SHEAR={type:3,value:"SHEAR"},lt.LIGATURE={type:3,value:"LIGATURE"},lt.STUD={type:3,value:"STUD"},lt.PUNCHING={type:3,value:"PUNCHING"},lt.EDGE={type:3,value:"EDGE"},lt.RING={type:3,value:"RING"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=lt;class ht{}ht.PLAIN={type:3,value:"PLAIN"},ht.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=ht;class ct{}ct.CONSUMED={type:3,value:"CONSUMED"},ct.PARTIALLYCONSUMED={type:3,value:"PARTIALLYCONSUMED"},ct.NOTCONSUMED={type:3,value:"NOTCONSUMED"},ct.OCCUPIED={type:3,value:"OCCUPIED"},ct.PARTIALLYOCCUPIED={type:3,value:"PARTIALLYOCCUPIED"},ct.NOTOCCUPIED={type:3,value:"NOTOCCUPIED"},ct.USERDEFINED={type:3,value:"USERDEFINED"},ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcResourceConsumptionEnum=ct;class ut{}ut.DIRECTION_X={type:3,value:"DIRECTION_X"},ut.DIRECTION_Y={type:3,value:"DIRECTION_Y"},e.IfcRibPlateDirectionEnum=ut;class At{}At.SUPPLIER={type:3,value:"SUPPLIER"},At.MANUFACTURER={type:3,value:"MANUFACTURER"},At.CONTRACTOR={type:3,value:"CONTRACTOR"},At.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},At.ARCHITECT={type:3,value:"ARCHITECT"},At.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},At.COSTENGINEER={type:3,value:"COSTENGINEER"},At.CLIENT={type:3,value:"CLIENT"},At.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},At.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},At.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},At.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},At.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},At.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},At.CIVILENGINEER={type:3,value:"CIVILENGINEER"},At.COMISSIONINGENGINEER={type:3,value:"COMISSIONINGENGINEER"},At.ENGINEER={type:3,value:"ENGINEER"},At.OWNER={type:3,value:"OWNER"},At.CONSULTANT={type:3,value:"CONSULTANT"},At.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},At.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},At.RESELLER={type:3,value:"RESELLER"},At.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=At;class pt{}pt.FLAT_ROOF={type:3,value:"FLAT_ROOF"},pt.SHED_ROOF={type:3,value:"SHED_ROOF"},pt.GABLE_ROOF={type:3,value:"GABLE_ROOF"},pt.HIP_ROOF={type:3,value:"HIP_ROOF"},pt.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},pt.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},pt.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},pt.BARREL_ROOF={type:3,value:"BARREL_ROOF"},pt.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},pt.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},pt.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},pt.DOME_ROOF={type:3,value:"DOME_ROOF"},pt.FREEFORM={type:3,value:"FREEFORM"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=pt;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 mt{}mt.BATH={type:3,value:"BATH"},mt.BIDET={type:3,value:"BIDET"},mt.CISTERN={type:3,value:"CISTERN"},mt.SHOWER={type:3,value:"SHOWER"},mt.SINK={type:3,value:"SINK"},mt.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},mt.TOILETPAN={type:3,value:"TOILETPAN"},mt.URINAL={type:3,value:"URINAL"},mt.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},mt.WCSEAT={type:3,value:"WCSEAT"},mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSanitaryTerminalTypeEnum=mt;class yt{}yt.UNIFORM={type:3,value:"UNIFORM"},yt.TAPERED={type:3,value:"TAPERED"},e.IfcSectionTypeEnum=yt;class Et{}Et.CO2SENSOR={type:3,value:"CO2SENSOR"},Et.FIRESENSOR={type:3,value:"FIRESENSOR"},Et.FLOWSENSOR={type:3,value:"FLOWSENSOR"},Et.GASSENSOR={type:3,value:"GASSENSOR"},Et.HEATSENSOR={type:3,value:"HEATSENSOR"},Et.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},Et.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},Et.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},Et.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},Et.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},Et.SMOKESENSOR={type:3,value:"SMOKESENSOR"},Et.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},Et.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},Et.USERDEFINED={type:3,value:"USERDEFINED"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=Et;class gt{}gt.START_START={type:3,value:"START_START"},gt.START_FINISH={type:3,value:"START_FINISH"},gt.FINISH_START={type:3,value:"FINISH_START"},gt.FINISH_FINISH={type:3,value:"FINISH_FINISH"},gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=gt;class vt{}vt.A_QUALITYOFCOMPONENTS={type:3,value:"A_QUALITYOFCOMPONENTS"},vt.B_DESIGNLEVEL={type:3,value:"B_DESIGNLEVEL"},vt.C_WORKEXECUTIONLEVEL={type:3,value:"C_WORKEXECUTIONLEVEL"},vt.D_INDOORENVIRONMENT={type:3,value:"D_INDOORENVIRONMENT"},vt.E_OUTDOORENVIRONMENT={type:3,value:"E_OUTDOORENVIRONMENT"},vt.F_INUSECONDITIONS={type:3,value:"F_INUSECONDITIONS"},vt.G_MAINTENANCELEVEL={type:3,value:"G_MAINTENANCELEVEL"},vt.USERDEFINED={type:3,value:"USERDEFINED"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcServiceLifeFactorTypeEnum=vt;class It{}It.ACTUALSERVICELIFE={type:3,value:"ACTUALSERVICELIFE"},It.EXPECTEDSERVICELIFE={type:3,value:"EXPECTEDSERVICELIFE"},It.OPTIMISTICREFERENCESERVICELIFE={type:3,value:"OPTIMISTICREFERENCESERVICELIFE"},It.PESSIMISTICREFERENCESERVICELIFE={type:3,value:"PESSIMISTICREFERENCESERVICELIFE"},It.REFERENCESERVICELIFE={type:3,value:"REFERENCESERVICELIFE"},e.IfcServiceLifeTypeEnum=It;class _t{}_t.FLOOR={type:3,value:"FLOOR"},_t.ROOF={type:3,value:"ROOF"},_t.LANDING={type:3,value:"LANDING"},_t.BASESLAB={type:3,value:"BASESLAB"},_t.USERDEFINED={type:3,value:"USERDEFINED"},_t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=_t;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 Pt{}Pt.SECTIONALRADIATOR={type:3,value:"SECTIONALRADIATOR"},Pt.PANELRADIATOR={type:3,value:"PANELRADIATOR"},Pt.TUBULARRADIATOR={type:3,value:"TUBULARRADIATOR"},Pt.CONVECTOR={type:3,value:"CONVECTOR"},Pt.BASEBOARDHEATER={type:3,value:"BASEBOARDHEATER"},Pt.FINNEDTUBEUNIT={type:3,value:"FINNEDTUBEUNIT"},Pt.UNITHEATER={type:3,value:"UNITHEATER"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=Pt;class bt{}bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=bt;class Rt{}Rt.BIRDCAGE={type:3,value:"BIRDCAGE"},Rt.COWL={type:3,value:"COWL"},Rt.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},Rt.USERDEFINED={type:3,value:"USERDEFINED"},Rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=Rt;class Dt{}Dt.STRAIGHT={type:3,value:"STRAIGHT"},Dt.WINDER={type:3,value:"WINDER"},Dt.SPIRAL={type:3,value:"SPIRAL"},Dt.CURVED={type:3,value:"CURVED"},Dt.FREEFORM={type:3,value:"FREEFORM"},Dt.USERDEFINED={type:3,value:"USERDEFINED"},Dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=Dt;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 Nt{}Nt.READWRITE={type:3,value:"READWRITE"},Nt.READONLY={type:3,value:"READONLY"},Nt.LOCKED={type:3,value:"LOCKED"},Nt.READWRITELOCKED={type:3,value:"READWRITELOCKED"},Nt.READONLYLOCKED={type:3,value:"READONLYLOCKED"},e.IfcStateEnum=Nt;class Ot{}Ot.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},Ot.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},Ot.CABLE={type:3,value:"CABLE"},Ot.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},Ot.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveTypeEnum=Ot;class xt{}xt.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},xt.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},xt.SHELL={type:3,value:"SHELL"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceTypeEnum=xt;class St{}St.POSITIVE={type:3,value:"POSITIVE"},St.NEGATIVE={type:3,value:"NEGATIVE"},St.BOTH={type:3,value:"BOTH"},e.IfcSurfaceSide=St;class wt{}wt.BUMP={type:3,value:"BUMP"},wt.OPACITY={type:3,value:"OPACITY"},wt.REFLECTION={type:3,value:"REFLECTION"},wt.SELFILLUMINATION={type:3,value:"SELFILLUMINATION"},wt.SHININESS={type:3,value:"SHININESS"},wt.SPECULAR={type:3,value:"SPECULAR"},wt.TEXTURE={type:3,value:"TEXTURE"},wt.TRANSPARENCYMAP={type:3,value:"TRANSPARENCYMAP"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceTextureEnum=wt;class Mt{}Mt.CONTACTOR={type:3,value:"CONTACTOR"},Mt.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Mt.STARTER={type:3,value:"STARTER"},Mt.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Mt.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=Mt;class Bt{}Bt.PREFORMED={type:3,value:"PREFORMED"},Bt.SECTIONAL={type:3,value:"SECTIONAL"},Bt.EXPANSION={type:3,value:"EXPANSION"},Bt.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=Bt;class Ft{}Ft.STRAND={type:3,value:"STRAND"},Ft.WIRE={type:3,value:"WIRE"},Ft.BAR={type:3,value:"BAR"},Ft.COATED={type:3,value:"COATED"},Ft.USERDEFINED={type:3,value:"USERDEFINED"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=Ft;class Lt{}Lt.LEFT={type:3,value:"LEFT"},Lt.RIGHT={type:3,value:"RIGHT"},Lt.UP={type:3,value:"UP"},Lt.DOWN={type:3,value:"DOWN"},e.IfcTextPath=Lt;class Ut{}Ut.PEOPLE={type:3,value:"PEOPLE"},Ut.LIGHTING={type:3,value:"LIGHTING"},Ut.EQUIPMENT={type:3,value:"EQUIPMENT"},Ut.VENTILATIONINDOORAIR={type:3,value:"VENTILATIONINDOORAIR"},Ut.VENTILATIONOUTSIDEAIR={type:3,value:"VENTILATIONOUTSIDEAIR"},Ut.RECIRCULATEDAIR={type:3,value:"RECIRCULATEDAIR"},Ut.EXHAUSTAIR={type:3,value:"EXHAUSTAIR"},Ut.AIREXCHANGERATE={type:3,value:"AIREXCHANGERATE"},Ut.DRYBULBTEMPERATURE={type:3,value:"DRYBULBTEMPERATURE"},Ut.RELATIVEHUMIDITY={type:3,value:"RELATIVEHUMIDITY"},Ut.INFILTRATION={type:3,value:"INFILTRATION"},Ut.USERDEFINED={type:3,value:"USERDEFINED"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcThermalLoadSourceEnum=Ut;class Ht{}Ht.SENSIBLE={type:3,value:"SENSIBLE"},Ht.LATENT={type:3,value:"LATENT"},Ht.RADIANT={type:3,value:"RADIANT"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcThermalLoadTypeEnum=Ht;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 kt{}kt.ANNUAL={type:3,value:"ANNUAL"},kt.MONTHLY={type:3,value:"MONTHLY"},kt.WEEKLY={type:3,value:"WEEKLY"},kt.DAILY={type:3,value:"DAILY"},kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesScheduleTypeEnum=kt;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 jt{}jt.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},jt.CONTINUOUS={type:3,value:"CONTINUOUS"},jt.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},jt.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},e.IfcTransitionCode=jt;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 Zt{}Zt.COMPRESSION={type:3,value:"COMPRESSION"},Zt.SPRING={type:3,value:"SPRING"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=Zt;class qt{}qt.STANDARD={type:3,value:"STANDARD"},qt.POLYGONAL={type:3,value:"POLYGONAL"},qt.SHEAR={type:3,value:"SHEAR"},qt.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},qt.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=qt;class Jt{}Jt.FLOORTRAP={type:3,value:"FLOORTRAP"},Jt.FLOORWASTE={type:3,value:"FLOORWASTE"},Jt.GULLYSUMP={type:3,value:"GULLYSUMP"},Jt.GULLYTRAP={type:3,value:"GULLYTRAP"},Jt.GREASEINTERCEPTOR={type:3,value:"GREASEINTERCEPTOR"},Jt.OILINTERCEPTOR={type:3,value:"OILINTERCEPTOR"},Jt.PETROLINTERCEPTOR={type:3,value:"PETROLINTERCEPTOR"},Jt.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Jt.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Jt.WASTETRAP={type:3,value:"WASTETRAP"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Jt;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 is{}is.ACTUAL={type:3,value:"ACTUAL"},is.BASELINE={type:3,value:"BASELINE"},is.PLANNED={type:3,value:"PLANNED"},is.USERDEFINED={type:3,value:"USERDEFINED"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkControlTypeEnum=is;e.IfcActorRole=class extends vv{constructor(e,t,s,i){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=i,this.type=3630933823}};class rs extends vv{constructor(e,t,s,i){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.type=618182010}}e.IfcAddress=rs;e.IfcApplication=class extends vv{constructor(e,t,s,i,r){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=i,this.ApplicationIdentifier=r,this.type=639542469}};class os extends vv{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.type=411424972}}e.IfcAppliedValue=os;e.IfcAppliedValueRelationship=class extends vv{constructor(e,t,s,i,r,o){super(e),this.ComponentOfTotal=t,this.Components=s,this.ArithmeticOperator=i,this.Name=r,this.Description=o,this.type=1110488051}};e.IfcApproval=class extends vv{constructor(e,t,s,i,r,o,n,a){super(e),this.Description=t,this.ApprovalDateTime=s,this.ApprovalStatus=i,this.ApprovalLevel=r,this.ApprovalQualifier=o,this.Name=n,this.Identifier=a,this.type=130549933}};e.IfcApprovalActorRelationship=class extends vv{constructor(e,t,s,i){super(e),this.Actor=t,this.Approval=s,this.Role=i,this.type=2080292479}};e.IfcApprovalPropertyRelationship=class extends vv{constructor(e,t,s){super(e),this.ApprovedProperties=t,this.Approval=s,this.type=390851274}};e.IfcApprovalRelationship=class extends vv{constructor(e,t,s,i,r){super(e),this.RelatedApproval=t,this.RelatingApproval=s,this.Description=i,this.Name=r,this.type=3869604511}};class ns extends vv{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=ns;e.IfcBoundaryEdgeCondition=class extends ns{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearStiffnessByLengthX=s,this.LinearStiffnessByLengthY=i,this.LinearStiffnessByLengthZ=r,this.RotationalStiffnessByLengthX=o,this.RotationalStiffnessByLengthY=n,this.RotationalStiffnessByLengthZ=a,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends ns{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.LinearStiffnessByAreaX=s,this.LinearStiffnessByAreaY=i,this.LinearStiffnessByAreaZ=r,this.type=3367102660}};class as extends ns{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearStiffnessX=s,this.LinearStiffnessY=i,this.LinearStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.type=1387855156}}e.IfcBoundaryNodeCondition=as;e.IfcBoundaryNodeConditionWarping=class extends as{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.LinearStiffnessX=s,this.LinearStiffnessY=i,this.LinearStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.WarpingStiffness=l,this.type=2069777674}};e.IfcCalendarDate=class extends vv{constructor(e,t,s,i){super(e),this.DayComponent=t,this.MonthComponent=s,this.YearComponent=i,this.type=622194075}};e.IfcClassification=class extends vv{constructor(e,t,s,i,r){super(e),this.Source=t,this.Edition=s,this.EditionDate=i,this.Name=r,this.type=747523909}};e.IfcClassificationItem=class extends vv{constructor(e,t,s,i){super(e),this.Notation=t,this.ItemOf=s,this.Title=i,this.type=1767535486}};e.IfcClassificationItemRelationship=class extends vv{constructor(e,t,s){super(e),this.RelatingItem=t,this.RelatedItems=s,this.type=1098599126}};e.IfcClassificationNotation=class extends vv{constructor(e,t){super(e),this.NotationFacets=t,this.type=938368621}};e.IfcClassificationNotationFacet=class extends vv{constructor(e,t){super(e),this.NotationValue=t,this.type=3639012971}};class ls extends vv{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=ls;class hs extends vv{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=hs;class cs extends hs{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=cs;e.IfcConnectionPortGeometry=class extends hs{constructor(e,t,s,i){super(e),this.LocationAtRelatingElement=t,this.LocationAtRelatedElement=s,this.ProfileOfPort=i,this.type=4257277454}};e.IfcConnectionSurfaceGeometry=class extends hs{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};class us extends vv{constructor(e,t,s,i,r,o,n,a){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.type=1959218052}}e.IfcConstraint=us;e.IfcConstraintAggregationRelationship=class extends vv{constructor(e,t,s,i,r,o){super(e),this.Name=t,this.Description=s,this.RelatingConstraint=i,this.RelatedConstraints=r,this.LogicalAggregator=o,this.type=1658513725}};e.IfcConstraintClassificationRelationship=class extends vv{constructor(e,t,s){super(e),this.ClassifiedConstraint=t,this.RelatedClassifications=s,this.type=613356794}};e.IfcConstraintRelationship=class extends vv{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.RelatingConstraint=i,this.RelatedConstraints=r,this.type=347226245}};e.IfcCoordinatedUniversalTimeOffset=class extends vv{constructor(e,t,s,i){super(e),this.HourOffset=t,this.MinuteOffset=s,this.Sense=i,this.type=1065062679}};e.IfcCostValue=class extends os{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.CostType=a,this.Condition=l,this.type=602808272}};e.IfcCurrencyRelationship=class extends vv{constructor(e,t,s,i,r,o){super(e),this.RelatingMonetaryUnit=t,this.RelatedMonetaryUnit=s,this.ExchangeRate=i,this.RateDateTime=r,this.RateSource=o,this.type=539742890}};e.IfcCurveStyleFont=class extends vv{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends vv{constructor(e,t,s,i){super(e),this.Name=t,this.CurveFont=s,this.CurveFontScaling=i,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends vv{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};e.IfcDateAndTime=class extends vv{constructor(e,t,s){super(e),this.DateComponent=t,this.TimeComponent=s,this.type=1072939445}};e.IfcDerivedUnit=class extends vv{constructor(e,t,s,i){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=i,this.type=1765591967}};e.IfcDerivedUnitElement=class extends vv{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends vv{constructor(e,t,s,i,r,o,n,a){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=i,this.ElectricCurrentExponent=r,this.ThermodynamicTemperatureExponent=o,this.AmountOfSubstanceExponent=n,this.LuminousIntensityExponent=a,this.type=2949456006}};e.IfcDocumentElectronicFormat=class extends vv{constructor(e,t,s,i){super(e),this.FileExtension=t,this.MimeContentType=s,this.MimeSubtype=i,this.type=1376555844}};e.IfcDocumentInformation=class extends vv{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e),this.DocumentId=t,this.Name=s,this.Description=i,this.DocumentReferences=r,this.Purpose=o,this.IntendedUse=n,this.Scope=a,this.Revision=l,this.DocumentOwner=h,this.Editors=c,this.CreationTime=u,this.LastRevisionTime=A,this.ElectronicFormat=p,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=m,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends vv{constructor(e,t,s,i){super(e),this.RelatingDocument=t,this.RelatedDocuments=s,this.RelationshipType=i,this.type=770865208}};class As extends vv{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=i,this.RelatedDraughtingCallout=r,this.type=3796139169}}e.IfcDraughtingCalloutRelationship=As;e.IfcEnvironmentalImpactValue=class extends os{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.ImpactType=a,this.Category=l,this.UserDefinedCategory=h,this.type=1648886627}};class ps extends vv{constructor(e,t,s,i){super(e),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3200245327}}e.IfcExternalReference=ps;e.IfcExternallyDefinedHatchStyle=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=1040185647}};e.IfcExternallyDefinedSymbol=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3207319532}};e.IfcExternallyDefinedTextFont=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3548104201}};e.IfcGridAxis=class extends vv{constructor(e,t,s,i){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=i,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends vv{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends vv{constructor(e,t,s,i,r,o){super(e),this.Name=t,this.Version=s,this.Publisher=i,this.VersionDate=r,this.LibraryReference=o,this.type=2655187982}};e.IfcLibraryReference=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3452421091}};e.IfcLightDistributionData=class extends vv{constructor(e,t,s,i){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=i,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends vv{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcLocalTime=class extends vv{constructor(e,t,s,i,r,o){super(e),this.HourComponent=t,this.MinuteComponent=s,this.SecondComponent=i,this.Zone=r,this.DaylightSavingOffset=o,this.type=30780891}};e.IfcMaterial=class extends vv{constructor(e,t){super(e),this.Name=t,this.type=1838606355}};e.IfcMaterialClassificationRelationship=class extends vv{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};e.IfcMaterialLayer=class extends vv{constructor(e,t,s,i){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.type=248100487}};e.IfcMaterialLayerSet=class extends vv{constructor(e,t,s){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.type=3303938423}};e.IfcMaterialLayerSetUsage=class extends vv{constructor(e,t,s,i,r){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=i,this.OffsetFromReferenceLine=r,this.type=1303795690}};e.IfcMaterialList=class extends vv{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class ds extends vv{constructor(e,t){super(e),this.Material=t,this.type=3265635763}}e.IfcMaterialProperties=ds;e.IfcMeasureWithUnit=class extends vv{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};class fs extends ds{constructor(e,t,s,i,r,o,n){super(e,t),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=i,this.ShearModulus=r,this.PoissonRatio=o,this.ThermalExpansionCoefficient=n,this.type=4256014907}}e.IfcMechanicalMaterialProperties=fs;e.IfcMechanicalSteelMaterialProperties=class extends fs{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=i,this.ShearModulus=r,this.PoissonRatio=o,this.ThermalExpansionCoefficient=n,this.YieldStress=a,this.UltimateStress=l,this.UltimateStrain=h,this.HardeningModule=c,this.ProportionalStress=u,this.PlasticStrain=A,this.Relaxations=p,this.type=677618848}};e.IfcMetric=class extends us{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.Benchmark=l,this.ValueSource=h,this.DataValue=c,this.type=3368373690}};e.IfcMonetaryUnit=class extends vv{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class ms extends vv{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=ms;class ys extends vv{constructor(e){super(e),this.type=3701648758}}e.IfcObjectPlacement=ys;e.IfcObjective=class extends us{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.BenchmarkValues=l,this.ResultValues=h,this.ObjectiveQualifier=c,this.UserDefinedQualifier=u,this.type=2251480897}};e.IfcOpticalMaterialProperties=class extends ds{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t),this.Material=t,this.VisibleTransmittance=s,this.SolarTransmittance=i,this.ThermalIrTransmittance=r,this.ThermalIrEmissivityBack=o,this.ThermalIrEmissivityFront=n,this.VisibleReflectanceBack=a,this.VisibleReflectanceFront=l,this.SolarReflectanceFront=h,this.SolarReflectanceBack=c,this.type=1227763645}};e.IfcOrganization=class extends vv{constructor(e,t,s,i,r,o){super(e),this.Id=t,this.Name=s,this.Description=i,this.Roles=r,this.Addresses=o,this.type=4251960020}};e.IfcOrganizationRelationship=class extends vv{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.RelatingOrganization=i,this.RelatedOrganizations=r,this.type=1411181986}};e.IfcOwnerHistory=class extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=i,this.ChangeAction=r,this.LastModifiedDate=o,this.LastModifyingUser=n,this.LastModifyingApplication=a,this.CreationDate=l,this.type=1207048766}};e.IfcPerson=class extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Id=t,this.FamilyName=s,this.GivenName=i,this.MiddleNames=r,this.PrefixTitles=o,this.SuffixTitles=n,this.Roles=a,this.Addresses=l,this.type=2077209135}};e.IfcPersonAndOrganization=class extends vv{constructor(e,t,s,i){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=i,this.type=101040310}};class Es extends vv{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=Es;class gs extends Es{constructor(e,t,s,i){super(e,t,s),this.Name=t,this.Description=s,this.Unit=i,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=gs;e.IfcPostalAddress=class extends rs{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.InternalLocation=r,this.AddressLines=o,this.PostalBox=n,this.Town=a,this.Region=l,this.PostalCode=h,this.Country=c,this.type=3355820592}};class vs extends vv{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=vs;class Is extends vs{constructor(e,t){super(e,t),this.Name=t,this.type=990879717}}e.IfcPreDefinedSymbol=Is;e.IfcPreDefinedTerminatorSymbol=class extends Is{constructor(e,t){super(e,t),this.Name=t,this.type=3213052703}};class _s extends vs{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=_s;class Ts extends vv{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.type=2022622350}}e.IfcPresentationLayerAssignment=Ts;e.IfcPresentationLayerWithStyle=class extends Ts{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.LayerOn=o,this.LayerFrozen=n,this.LayerBlocked=a,this.LayerStyles=l,this.type=1304840413}};class Ps extends vv{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=Ps;e.IfcPresentationStyleAssignment=class extends vv{constructor(e,t){super(e),this.Styles=t,this.type=2417041796}};class bs extends vv{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Representations=i,this.type=2095639259}}e.IfcProductRepresentation=bs;e.IfcProductsOfCombustionProperties=class extends ds{constructor(e,t,s,i,r,o){super(e,t),this.Material=t,this.SpecificHeatCapacity=s,this.N20Content=i,this.COContent=r,this.CO2Content=o,this.type=2267347899}};class Rs extends vv{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=Rs;class Ds extends vv{constructor(e,t,s){super(e),this.ProfileName=t,this.ProfileDefinition=s,this.type=2802850158}}e.IfcProfileProperties=Ds;class Cs extends vv{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2598011224}}e.IfcProperty=Cs;e.IfcPropertyConstraintRelationship=class extends vv{constructor(e,t,s,i,r){super(e),this.RelatingConstraint=t,this.RelatedProperties=s,this.Name=i,this.Description=r,this.type=3896028662}};e.IfcPropertyDependencyRelationship=class extends vv{constructor(e,t,s,i,r,o){super(e),this.DependingProperty=t,this.DependantProperty=s,this.Name=i,this.Description=r,this.Expression=o,this.type=148025276}};e.IfcPropertyEnumeration=class extends vv{constructor(e,t,s,i){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=i,this.type=3710013099}};e.IfcQuantityArea=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.AreaValue=r,this.type=2044713172}};e.IfcQuantityCount=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.CountValue=r,this.type=2093928680}};e.IfcQuantityLength=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.LengthValue=r,this.type=931644368}};e.IfcQuantityTime=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.TimeValue=r,this.type=3252649465}};e.IfcQuantityVolume=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.VolumeValue=r,this.type=2405470396}};e.IfcQuantityWeight=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.WeightValue=r,this.type=825690147}};e.IfcReferencesValueDocument=class extends vv{constructor(e,t,s,i,r){super(e),this.ReferencedDocument=t,this.ReferencingValues=s,this.Name=i,this.Description=r,this.type=2692823254}};e.IfcReinforcementBarProperties=class extends vv{constructor(e,t,s,i,r,o,n){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=i,this.EffectiveDepth=r,this.NominalBarDiameter=o,this.BarCount=n,this.type=1580146022}};e.IfcRelaxation=class extends vv{constructor(e,t,s){super(e),this.RelaxationValue=t,this.InitialStress=s,this.type=1222501353}};class Ns extends vv{constructor(e,t,s,i,r){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1076942058}}e.IfcRepresentation=Ns;class Os extends vv{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=Os;class xs extends vv{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=xs;e.IfcRepresentationMap=class extends vv{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};e.IfcRibPlateProfileProperties=class extends Ds{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.ProfileName=t,this.ProfileDefinition=s,this.Thickness=i,this.RibHeight=r,this.RibWidth=o,this.RibSpacing=n,this.Direction=a,this.type=3679540991}};class Ss extends vv{constructor(e,t,s,i,r){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2341007311}}e.IfcRoot=Ss;e.IfcSIUnit=class extends ms{constructor(e,t,s,i){super(e,new gv(0),t),this.UnitType=t,this.Prefix=s,this.Name=i,this.type=448429030}};e.IfcSectionProperties=class extends vv{constructor(e,t,s,i){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=i,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends vv{constructor(e,t,s,i,r,o,n){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=i,this.ReinforcementRole=r,this.SectionDefinition=o,this.CrossSectionReinforcementDefinitions=n,this.type=4165799628}};e.IfcShapeAspect=class extends vv{constructor(e,t,s,i,r,o){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=i,this.ProductDefinitional=r,this.PartOfProductDefinitionShape=o,this.type=867548509}};class ws extends Ns{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3982875396}}e.IfcShapeModel=ws;e.IfcShapeRepresentation=class extends ws{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=4240577450}};class Ms extends Cs{constructor(e,t,s){super(e,t,s),this.Name=t,this.Description=s,this.type=3692461612}}e.IfcSimpleProperty=Ms;class Bs extends vv{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=Bs;class Fs extends vv{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=Fs;class Ls extends Fs{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=Ls;e.IfcStructuralLoadTemperature=class extends Ls{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.DeltaT_Constant=s,this.DeltaT_Y=i,this.DeltaT_Z=r,this.type=3408363356}};class Us extends Ns{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=2830218821}}e.IfcStyleModel=Us;class Hs extends xs{constructor(e,t,s,i){super(e),this.Item=t,this.Styles=s,this.Name=i,this.type=3958052878}}e.IfcStyledItem=Hs;e.IfcStyledRepresentation=class extends Us{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3049322572}};e.IfcSurfaceStyle=class extends Ps{constructor(e,t,s,i){super(e,t),this.Name=t,this.Side=s,this.Styles=i,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends vv{constructor(e,t,s,i,r){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=i,this.ReflectanceColour=r,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends vv{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class Gs extends vv{constructor(e,t){super(e),this.SurfaceColour=t,this.type=846575682}}e.IfcSurfaceStyleShading=Gs;e.IfcSurfaceStyleWithTextures=class extends vv{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class ks extends vv{constructor(e,t,s,i,r){super(e),this.RepeatS=t,this.RepeatT=s,this.TextureType=i,this.TextureTransform=r,this.type=626085974}}e.IfcSurfaceTexture=ks;e.IfcSymbolStyle=class extends Ps{constructor(e,t,s){super(e,t),this.Name=t,this.StyleOfSymbol=s,this.type=1290481447}};e.IfcTable=class extends vv{constructor(e,t,s){super(e),this.Name=t,this.Rows=s,this.type=985171141}};e.IfcTableRow=class extends vv{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};e.IfcTelecomAddress=class extends rs{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.TelephoneNumbers=r,this.FacsimileNumbers=o,this.PagerNumber=n,this.ElectronicMailAddresses=a,this.WWWHomePageURL=l,this.type=912023232}};e.IfcTextStyle=class extends Ps{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=i,this.TextFontStyle=r,this.type=1447204868}};e.IfcTextStyleFontModel=class extends _s{constructor(e,t,s,i,r,o,n){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=i,this.FontVariant=r,this.FontWeight=o,this.FontSize=n,this.type=1983826977}};e.IfcTextStyleForDefinedFont=class extends vv{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends vv{constructor(e,t,s,i,r,o,n,a){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=i,this.LetterSpacing=r,this.WordSpacing=o,this.TextTransform=n,this.LineHeight=a,this.type=1640371178}};e.IfcTextStyleWithBoxCharacteristics=class extends vv{constructor(e,t,s,i,r,o){super(e),this.BoxHeight=t,this.BoxWidth=s,this.BoxSlantAngle=i,this.BoxRotateAngle=r,this.CharacterSpacing=o,this.type=1484833681}};class Vs extends vv{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 vv{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcThermalMaterialProperties=class extends ds{constructor(e,t,s,i,r,o){super(e,t),this.Material=t,this.SpecificHeatCapacity=s,this.BoilingPoint=i,this.FreezingPoint=r,this.ThermalConductivity=o,this.type=3317419933}};class js extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.type=3101149627}}e.IfcTimeSeries=js;e.IfcTimeSeriesReferenceRelationship=class extends vv{constructor(e,t,s){super(e),this.ReferencedTimeSeries=t,this.TimeSeriesReferences=s,this.type=1718945513}};e.IfcTimeSeriesValue=class extends vv{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Qs extends xs{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Qs;e.IfcTopologyRepresentation=class extends ws{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1735638870}};e.IfcUnitAssignment=class extends vv{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 vv{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 vv{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWaterProperties=class extends ds{constructor(e,t,s,i,r,o,n,a,l){super(e,t),this.Material=t,this.IsPotable=s,this.Hardness=i,this.AlkalinityConcentration=r,this.AcidityConcentration=o,this.ImpuritiesContent=n,this.PHLevel=a,this.DissolvedSolidsContent=l,this.type=1065908215}};class zs extends Hs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=2442683028}}e.IfcAnnotationOccurrence=zs;e.IfcAnnotationSurfaceOccurrence=class extends zs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=962685235}};class Ks extends zs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=3612888222}}e.IfcAnnotationSymbolOccurrence=Ks;e.IfcAnnotationTextOccurrence=class extends zs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=2297822566}};class Ys extends Rs{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Ys;class Xs extends Rs{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Xs;e.IfcArbitraryProfileDefWithVoids=class extends Ys{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.InnerCurves=r,this.type=2705031697}};e.IfcBlobTexture=class extends ks{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.RepeatS=t,this.RepeatT=s,this.TextureType=i,this.TextureTransform=r,this.RasterFormat=o,this.RasterCode=n,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Xs{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.Thickness=r,this.type=3150382593}};e.IfcClassificationReference=class extends ps{constructor(e,t,s,i,r){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.ReferencedSource=r,this.type=647927063}};e.IfcColourRgb=class extends ls{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.Red=s,this.Green=i,this.Blue=r,this.type=776857604}};e.IfcComplexProperty=class extends Cs{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=i,this.HasProperties=r,this.type=2542286263}};e.IfcCompositeProfileDef=class extends Rs{constructor(e,t,s,i,r){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=i,this.Label=r,this.type=1485152156}};class Zs extends Qs{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=Zs;e.IfcConnectionCurveGeometry=class extends hs{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends cs{constructor(e,t,s,i,r,o){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=i,this.EccentricityInY=r,this.EccentricityInZ=o,this.type=45288368}};e.IfcContextDependentUnit=class extends ms{constructor(e,t,s,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.type=3050246964}};e.IfcConversionBasedUnit=class extends ms{constructor(e,t,s,i,r){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.type=2889183280}};e.IfcCurveStyle=class extends Ps{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=i,this.CurveColour=r,this.type=3800577675}};e.IfcDerivedProfileDef=class extends Rs{constructor(e,t,s,i,r,o){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Operator=r,this.Label=o,this.type=3632507154}};e.IfcDimensionCalloutRelationship=class extends As{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=i,this.RelatedDraughtingCallout=r,this.type=2273265877}};e.IfcDimensionPair=class extends As{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=i,this.RelatedDraughtingCallout=r,this.type=1694125774}};e.IfcDocumentReference=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3732053477}};e.IfcDraughtingPreDefinedTextFont=class extends _s{constructor(e,t){super(e,t),this.Name=t,this.type=4170525392}};class qs extends Qs{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=qs;e.IfcEdgeCurve=class extends qs{constructor(e,t,s,i,r){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=i,this.SameSense=r,this.type=476780140}};e.IfcExtendedMaterialProperties=class extends ds{constructor(e,t,s,i,r){super(e,t),this.Material=t,this.ExtendedProperties=s,this.Description=i,this.Name=r,this.type=1860660968}};class Js extends Qs{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Js;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 Js{constructor(e,t,s,i){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3008276851}};e.IfcFailureConnectionCondition=class extends Bs{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=i,this.TensionFailureZ=r,this.CompressionFailureX=o,this.CompressionFailureY=n,this.CompressionFailureZ=a,this.type=4219587988}};e.IfcFillAreaStyle=class extends Ps{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,i,r,o){super(e,t),this.Material=t,this.CombustionTemperature=s,this.CarbonContent=i,this.LowerHeatingValue=r,this.HigherHeatingValue=o,this.type=3857492461}};e.IfcGeneralMaterialProperties=class extends ds{constructor(e,t,s,i,r){super(e,t),this.Material=t,this.MolecularWeight=s,this.Porosity=i,this.MassDensity=r,this.type=803998398}};class ei extends Ds{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=i,this.Perimeter=r,this.MinimumPlateThickness=o,this.MaximumPlateThickness=n,this.CrossSectionArea=a,this.type=1446786286}}e.IfcGeneralProfileProperties=ei;class ti extends Os{constructor(e,t,s,i,r,o,n){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=i,this.Precision=r,this.WorldCoordinateSystem=o,this.TrueNorth=n,this.type=3448662350}}e.IfcGeometricRepresentationContext=ti;class si extends xs{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=si;e.IfcGeometricRepresentationSubContext=class extends ti{constructor(e,s,i,r,o,n,a){super(e,s,i,new t(0),null,new gv(0),null),this.ContextIdentifier=s,this.ContextType=i,this.ParentContext=r,this.TargetScale=o,this.TargetView=n,this.UserDefinedTargetView=a,this.type=4142052618}};class ii extends si{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=ii;e.IfcGridPlacement=class extends ys{constructor(e,t,s){super(e),this.PlacementLocation=t,this.PlacementRefDirection=s,this.type=178086475}};class ri extends si{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=ri;e.IfcHygroscopicMaterialProperties=class extends ds{constructor(e,t,s,i,r,o,n){super(e,t),this.Material=t,this.UpperVaporResistanceFactor=s,this.LowerVaporResistanceFactor=i,this.IsothermalMoistureCapacity=r,this.VaporPermeability=o,this.MoistureDiffusivity=n,this.type=2445078500}};e.IfcImageTexture=class extends ks{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.RepeatS=t,this.RepeatT=s,this.TextureType=i,this.TextureTransform=r,this.UrlReference=o,this.type=3905492369}};e.IfcIrregularTimeSeries=class extends js{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.Values=h,this.type=3741457305}};class oi extends si{constructor(e,t,s,i,r){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=1402838566}}e.IfcLightSource=oi;e.IfcLightSourceAmbient=class extends oi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=125510826}};e.IfcLightSourceDirectional=class extends oi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Orientation=o,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends oi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.ColourAppearance=n,this.ColourTemperature=a,this.LuminousFlux=l,this.LightEmissionSource=h,this.LightDistributionDataSource=c,this.type=4266656042}};class ni extends oi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.type=1520743889}}e.IfcLightSourcePositional=ni;e.IfcLightSourceSpot=class extends ni{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.Orientation=c,this.ConcentrationExponent=u,this.SpreadAngle=A,this.BeamWidthAngle=p,this.type=3422422726}};e.IfcLocalPlacement=class extends ys{constructor(e,t,s){super(e),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class ai extends Qs{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=ai;e.IfcMappedItem=class extends xs{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterialDefinitionRepresentation=class extends bs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.RepresentedMaterial=r,this.type=2022407955}};e.IfcMechanicalConcreteMaterialProperties=class extends fs{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=i,this.ShearModulus=r,this.PoissonRatio=o,this.ThermalExpansionCoefficient=n,this.CompressiveStrength=a,this.MaxAggregateSize=l,this.AdmixturesDescription=h,this.Workability=c,this.ProtectivePoreRatio=u,this.WaterImpermeability=A,this.type=1430189142}};class li extends Ss{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=219451334}}e.IfcObjectDefinition=li;class hi extends si{constructor(e,t){super(e),this.RepeatFactor=t,this.type=2833995503}}e.IfcOneDirectionRepeatFactor=hi;e.IfcOpenShell=class extends Zs{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrientedEdge=class extends qs{constructor(e,t,s){super(e,new gv(0),new gv(0)),this.EdgeElement=t,this.Orientation=s,this.type=1029017970}};class ci extends Rs{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.type=2529465313}}e.IfcParameterizedProfileDef=ci;e.IfcPath=class extends Qs{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends Es{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=i,this.Discrimination=r,this.Quality=o,this.Usage=n,this.type=3021840470}};e.IfcPixelTexture=class extends ks{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.RepeatS=t,this.RepeatT=s,this.TextureType=i,this.TextureTransform=r,this.Width=o,this.Height=n,this.ColourComponents=a,this.Pixel=l,this.type=597895409}};class ui extends si{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=ui;class Ai extends si{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=Ai;class pi extends si{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=pi;e.IfcPointOnCurve=class extends pi{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends pi{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=i,this.type=1423911732}};e.IfcPolyLoop=class extends ai{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends ri{constructor(e,t,s,i,r){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=i,this.PolygonalBoundary=r,this.type=2775532180}};class di extends vs{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=di;class fi extends vs{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=fi;e.IfcPreDefinedDimensionSymbol=class extends Is{constructor(e,t){super(e,t),this.Name=t,this.type=433424934}};e.IfcPreDefinedPointMarkerSymbol=class extends Is{constructor(e,t){super(e,t),this.Name=t,this.type=179317114}};e.IfcProductDefinitionShape=class extends bs{constructor(e,t,s,i){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.type=673634403}};e.IfcPropertyBoundedValue=class extends Ms{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.UpperBoundValue=i,this.LowerBoundValue=r,this.Unit=o,this.type=871118103}};class mi extends Ss{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1680319473}}e.IfcPropertyDefinition=mi;e.IfcPropertyEnumeratedValue=class extends Ms{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.EnumerationValues=i,this.EnumerationReference=r,this.type=4166981789}};e.IfcPropertyListValue=class extends Ms{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.ListValues=i,this.Unit=r,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends Ms{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=i,this.PropertyReference=r,this.type=941946838}};class yi extends mi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3357820518}}e.IfcPropertySetDefinition=yi;e.IfcPropertySingleValue=class extends Ms{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.NominalValue=i,this.Unit=r,this.type=3650150729}};e.IfcPropertyTableValue=class extends Ms{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.Name=t,this.Description=s,this.DefiningValues=i,this.DefinedValues=r,this.Expression=o,this.DefiningUnit=n,this.DefinedUnit=a,this.type=110355661}};class Ei extends ci{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.type=3615266464}}e.IfcRectangleProfileDef=Ei;e.IfcRegularTimeSeries=class extends js{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.TimeStep=h,this.Values=c,this.type=3413951693}};e.IfcReinforcementDefinitionProperties=class extends yi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.DefinitionType=o,this.ReinforcementSectionDefinitions=n,this.type=3765753017}};class gi extends Ss{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=478536968}}e.IfcRelationship=gi;e.IfcRoundedRectangleProfileDef=class extends Ei{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.RoundingRadius=n,this.type=2778083089}};e.IfcSectionedSpine=class extends si{constructor(e,t,s,i){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=i,this.type=1509187699}};e.IfcServiceLifeFactor=class extends yi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PredefinedType=o,this.UpperValue=n,this.MostUsedValue=a,this.LowerValue=l,this.type=2411513650}};e.IfcShellBasedSurfaceModel=class extends si{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};e.IfcSlippageConnectionCondition=class extends Bs{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=i,this.SlippageZ=r,this.type=2609359061}};class vi extends si{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=vi;e.IfcSoundProperties=class extends yi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.IsAttenuating=o,this.SoundScale=n,this.SoundValues=a,this.type=2485662743}};e.IfcSoundValue=class extends yi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.SoundLevelTimeSeries=o,this.Frequency=n,this.SoundLevelSingleValue=a,this.type=1202362311}};e.IfcSpaceThermalLoadProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableValueRatio=o,this.ThermalLoadSource=n,this.PropertySource=a,this.SourceDescription=l,this.MaximumValue=h,this.MinimumValue=c,this.ThermalLoadTimeSeriesValues=u,this.UserDefinedThermalLoadSource=A,this.UserDefinedPropertySource=p,this.ThermalLoadType=d,this.type=390701378}};e.IfcStructuralLoadLinearForce=class extends Ls{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=i,this.LinearForceZ=r,this.LinearMomentX=o,this.LinearMomentY=n,this.LinearMomentZ=a,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends Ls{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=i,this.PlanarForceZ=r,this.type=2668620305}};class Ii extends Ls{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=Ii;e.IfcStructuralLoadSingleDisplacementDistortion=class extends Ii{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.Distortion=l,this.type=1973038258}};class _i extends Ls{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.type=1597423693}}e.IfcStructuralLoadSingleForce=_i;e.IfcStructuralLoadSingleForceWarping=class extends _i{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.WarpingMoment=l,this.type=1190533807}};class Ti extends ei{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T){super(e,t,s,i,r,o,n,a),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=i,this.Perimeter=r,this.MinimumPlateThickness=o,this.MaximumPlateThickness=n,this.CrossSectionArea=a,this.TorsionalConstantX=l,this.MomentOfInertiaYZ=h,this.MomentOfInertiaY=c,this.MomentOfInertiaZ=u,this.WarpingConstant=A,this.ShearCentreZ=p,this.ShearCentreY=d,this.ShearDeformationAreaZ=f,this.ShearDeformationAreaY=m,this.MaximumSectionModulusY=y,this.MinimumSectionModulusY=E,this.MaximumSectionModulusZ=g,this.MinimumSectionModulusZ=v,this.TorsionalSectionModulus=I,this.CentreOfGravityInX=_,this.CentreOfGravityInY=T,this.type=3843319758}}e.IfcStructuralProfileProperties=Ti;e.IfcStructuralSteelProfileProperties=class extends Ti{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T,P,b,R,D){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=i,this.Perimeter=r,this.MinimumPlateThickness=o,this.MaximumPlateThickness=n,this.CrossSectionArea=a,this.TorsionalConstantX=l,this.MomentOfInertiaYZ=h,this.MomentOfInertiaY=c,this.MomentOfInertiaZ=u,this.WarpingConstant=A,this.ShearCentreZ=p,this.ShearCentreY=d,this.ShearDeformationAreaZ=f,this.ShearDeformationAreaY=m,this.MaximumSectionModulusY=y,this.MinimumSectionModulusY=E,this.MaximumSectionModulusZ=g,this.MinimumSectionModulusZ=v,this.TorsionalSectionModulus=I,this.CentreOfGravityInX=_,this.CentreOfGravityInY=T,this.ShearAreaZ=P,this.ShearAreaY=b,this.PlasticShapeFactorY=R,this.PlasticShapeFactorZ=D,this.type=3653947884}};e.IfcSubedge=class extends qs{constructor(e,t,s,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=i,this.type=2233826070}};class Pi extends si{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Pi;e.IfcSurfaceStyleRendering=class extends Gs{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=i,this.TransmissionColour=r,this.DiffuseTransmissionColour=o,this.ReflectionColour=n,this.SpecularColour=a,this.SpecularHighlight=l,this.ReflectanceMethod=h,this.type=1878645084}};class bi extends vi{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=bi;e.IfcSweptDiskSolid=class extends vi{constructor(e,t,s,i,r,o){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.type=1260650574}};class Ri extends Pi{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=Ri;e.IfcTShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.WebEdgeRadius=c,this.WebSlope=u,this.FlangeSlope=A,this.CentreOfGravityInY=p,this.type=3071757647}};class Di extends Ks{constructor(e,t,s,i,r){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.AnnotatedCurve=r,this.type=3028897424}}e.IfcTerminatorSymbol=Di;class Ci extends si{constructor(e,t,s,i){super(e),this.Literal=t,this.Placement=s,this.Path=i,this.type=4282788508}}e.IfcTextLiteral=Ci;e.IfcTextLiteralWithExtent=class extends Ci{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Literal=t,this.Placement=s,this.Path=i,this.Extent=r,this.BoxAlignment=o,this.type=3124975700}};e.IfcTrapeziumProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomXDim=r,this.TopXDim=o,this.YDim=n,this.TopXOffset=a,this.type=2715220739}};e.IfcTwoDirectionRepeatFactor=class extends hi{constructor(e,t,s){super(e,t),this.RepeatFactor=t,this.SecondRepeatFactor=s,this.type=1345879162}};class Ni extends li{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.type=1628702193}}e.IfcTypeObject=Ni;class Oi extends Ni{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.type=2347495698}}e.IfcTypeProduct=Oi;e.IfcUShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.FlangeSlope=c,this.CentreOfGravityInX=u,this.type=427810014}};e.IfcVector=class extends si{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends ai{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcWindowLiningProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.TransomThickness=a,this.MullionThickness=l,this.FirstTransomOffset=h,this.SecondTransomOffset=c,this.FirstMullionOffset=u,this.SecondMullionOffset=A,this.ShapeAspectStyle=p,this.type=336235671}};e.IfcWindowPanelProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=512836454}};e.IfcWindowStyle=class extends Oi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ConstructionType=h,this.OperationType=c,this.ParameterTakesPrecedence=u,this.Sizeable=A,this.type=1299126871}};e.IfcZShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.type=2543172580}};class xi extends zs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=3288037868}}e.IfcAnnotationCurveOccurrence=xi;e.IfcAnnotationFillArea=class extends si{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAnnotationFillAreaOccurrence=class extends zs{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.FillStyleTarget=r,this.GlobalOrLocal=o,this.type=2265737646}};e.IfcAnnotationSurface=class extends si{constructor(e,t,s){super(e),this.Item=t,this.TextureCoordinates=s,this.type=1302238472}};e.IfcAxis1Placement=class extends ui{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends ui{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends ui{constructor(e,t,s,i){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=i,this.type=2740243338}};class Si extends si{constructor(e,t,s,i){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=2736907675}}e.IfcBooleanResult=Si;class wi extends Pi{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=wi;e.IfcBoundingBox=class extends si{constructor(e,t,s,i,r){super(e),this.Corner=t,this.XDim=s,this.YDim=i,this.ZDim=r,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends ri{constructor(e,t,s,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=i,this.type=2713105998}};e.IfcCShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.WallThickness=n,this.Girth=a,this.InternalFilletRadius=l,this.CentreOfGravityInX=h,this.type=2898889636}};e.IfcCartesianPoint=class extends pi{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Mi extends si{constructor(e,t,s,i,r){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=59481748}}e.IfcCartesianTransformationOperator=Mi;class Bi extends Mi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Bi;e.IfcCartesianTransformationOperator2DnonUniform=class extends Bi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Scale2=o,this.type=3486308946}};class Fi extends Mi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Fi;e.IfcCartesianTransformationOperator3DnonUniform=class extends Fi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.Scale2=n,this.Scale3=a,this.type=1416205885}};class Li extends ci{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.type=1383045692}}e.IfcCircleProfileDef=Li;e.IfcClosedShell=class extends Zs{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcCompositeCurveSegment=class extends si{constructor(e,t,s,i){super(e),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.type=2485617015}};e.IfcCraneRailAShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallHeight=r,this.BaseWidth2=o,this.Radius=n,this.HeadWidth=a,this.HeadDepth2=l,this.HeadDepth3=h,this.WebThickness=c,this.BaseWidth4=u,this.BaseDepth1=A,this.BaseDepth2=p,this.BaseDepth3=d,this.CentreOfGravityInY=f,this.type=4133800736}};e.IfcCraneRailFShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallHeight=r,this.HeadWidth=o,this.Radius=n,this.HeadDepth2=a,this.HeadDepth3=l,this.WebThickness=h,this.BaseDepth1=c,this.BaseDepth2=u,this.CentreOfGravityInY=A,this.type=194851669}};class Ui extends si{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=Ui;e.IfcCsgSolid=class extends vi{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class Hi extends si{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=Hi;e.IfcCurveBoundedPlane=class extends wi{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=i,this.type=2827736869}};e.IfcDefinedSymbol=class extends si{constructor(e,t,s){super(e),this.Definition=t,this.Target=s,this.type=693772133}};e.IfcDimensionCurve=class extends xi{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=606661476}};e.IfcDimensionCurveTerminator=class extends Di{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Item=t,this.Styles=s,this.Name=i,this.AnnotatedCurve=r,this.Role=o,this.type=4054601972}};e.IfcDirection=class extends si{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};e.IfcDoorLiningProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.ThresholdDepth=a,this.ThresholdThickness=l,this.TransomThickness=h,this.TransomOffset=c,this.LiningOffset=u,this.ThresholdOffset=A,this.CasingThickness=p,this.CasingDepth=d,this.ShapeAspectStyle=f,this.type=2963535650}};e.IfcDoorPanelProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PanelDepth=o,this.PanelOperation=n,this.PanelWidth=a,this.PanelPosition=l,this.ShapeAspectStyle=h,this.type=1714330368}};e.IfcDoorStyle=class extends Oi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.OperationType=h,this.ConstructionType=c,this.ParameterTakesPrecedence=u,this.Sizeable=A,this.type=526551008}};class Gi extends si{constructor(e,t){super(e),this.Contents=t,this.type=3073041342}}e.IfcDraughtingCallout=Gi;e.IfcDraughtingPreDefinedColour=class extends di{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends fi{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};e.IfcEdgeLoop=class extends ai{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends yi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.MethodOfMeasurement=o,this.Quantities=n,this.type=1883228015}};class ki extends Oi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=339256511}}e.IfcElementType=ki;class Vi extends Pi{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=Vi;e.IfcEllipseProfileDef=class extends ci{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.SemiAxis1=r,this.SemiAxis2=o,this.type=2835456948}};class ji extends yi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.EnergySequence=o,this.UserDefinedEnergySequence=n,this.type=80994333}}e.IfcEnergyProperties=ji;e.IfcExtrudedAreaSolid=class extends bi{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=477187591}};e.IfcFaceBasedSurfaceModel=class extends si{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends si{constructor(e,t,s,i,r,o){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=i,this.PatternStart=r,this.HatchLineAngle=o,this.type=374418227}};e.IfcFillAreaStyleTileSymbolWithStyle=class extends si{constructor(e,t){super(e),this.Symbol=t,this.type=4203026998}};e.IfcFillAreaStyleTiles=class extends si{constructor(e,t,s,i){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=i,this.type=315944413}};e.IfcFluidFlowProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PropertySource=o,this.FlowConditionTimeSeries=n,this.VelocityTimeSeries=a,this.FlowrateTimeSeries=l,this.Fluid=h,this.PressureTimeSeries=c,this.UserDefinedPropertySource=u,this.TemperatureSingleValue=A,this.WetBulbTemperatureSingleValue=p,this.WetBulbTemperatureTimeSeries=d,this.TemperatureTimeSeries=f,this.FlowrateSingleValue=m,this.FlowConditionSingleValue=y,this.VelocitySingleValue=E,this.PressureSingleValue=g,this.type=3455213021}};class Qi extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=4238390223}}e.IfcFurnishingElementType=Qi;e.IfcFurnitureType=class extends Qi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.AssemblyPlace=c,this.type=1268542332}};e.IfcGeometricCurveSet=class extends ii{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};class Wi extends ci{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallWidth=r,this.OverallDepth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.type=1484403080}}e.IfcIShapeProfileDef=Wi;e.IfcLShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.Thickness=n,this.FilletRadius=a,this.EdgeRadius=l,this.LegSlope=h,this.CentreOfGravityInX=c,this.CentreOfGravityInY=u,this.type=572779678}};e.IfcLine=class extends Hi{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class zi extends vi{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=zi;class Ki extends li{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3888040117}}e.IfcObject=Ki;e.IfcOffsetCurve2D=class extends Hi{constructor(e,t,s,i){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Hi{constructor(e,t,s,i,r){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.RefDirection=r,this.type=3505215534}};e.IfcPermeableCoveringProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=3566463478}};e.IfcPlanarBox=class extends Ai{constructor(e,t,s,i){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=i,this.type=603570806}};e.IfcPlane=class extends Vi{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};class Yi extends Ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2945172077}}e.IfcProcess=Yi;class Xi extends Ki{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=4208778838}}e.IfcProduct=Xi;e.IfcProject=class extends Ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=103090709}};e.IfcProjectionCurve=class extends xi{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=4194566429}};e.IfcPropertySet=class extends yi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.HasProperties=o,this.type=1451395588}};e.IfcProxy=class extends Xi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.ProxyType=l,this.Tag=h,this.type=3219374653}};e.IfcRectangleHollowProfileDef=class extends Ei{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.WallThickness=n,this.InnerFilletRadius=a,this.OuterFilletRadius=l,this.type=2770003689}};e.IfcRectangularPyramid=class extends Ui{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.Height=r,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends wi{constructor(e,t,s,i,r,o,n,a){super(e),this.BasisSurface=t,this.U1=s,this.V1=i,this.U2=r,this.V2=o,this.Usense=n,this.Vsense=a,this.type=3454111270}};class Zi extends gi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.type=3939117080}}e.IfcRelAssigns=Zi;class qi extends Zi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingActor=a,this.ActingRole=l,this.type=1683148259}}e.IfcRelAssignsToActor=qi;class Ji extends Zi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=2495723537}}e.IfcRelAssignsToControl=Ji;e.IfcRelAssignsToGroup=class extends Zi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.type=1307041759}};e.IfcRelAssignsToProcess=class extends Zi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProcess=a,this.QuantityInProcess=l,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends Zi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProduct=a,this.type=2857406711}};e.IfcRelAssignsToProjectOrder=class extends Ji{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=3372526763}};e.IfcRelAssignsToResource=class extends Zi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingResource=a,this.type=205026976}};class $i extends gi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.type=1865459582}}e.IfcRelAssociates=$i;e.IfcRelAssociatesAppliedValue=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingAppliedValue=n,this.type=1327628568}};e.IfcRelAssociatesApproval=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingApproval=n,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingClassification=n,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends $i{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.Intent=n,this.RelatingConstraint=a,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingDocument=n,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingLibrary=n,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingMaterial=n,this.type=2655215786}};e.IfcRelAssociatesProfileProperties=class extends $i{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingProfileProperties=n,this.ProfileSectionLocation=a,this.ProfileOrientation=l,this.type=2851387026}};class er extends gi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=826625072}}e.IfcRelConnects=er;class tr extends er{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.type=1204542856}}e.IfcRelConnectsElements=tr;e.IfcRelConnectsPathElements=class extends tr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RelatingPriorities=l,this.RelatedPriorities=h,this.RelatedConnectionType=c,this.RelatingConnectionType=u,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedElement=n,this.type=4201705270}};e.IfcRelConnectsPorts=class extends er{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedPort=n,this.RealizingElement=a,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedStructuralActivity=n,this.type=2127690289}};e.IfcRelConnectsStructuralElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedStructuralMember=n,this.type=3912681535}};class sr extends er{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.type=1638771189}}e.IfcRelConnectsStructuralMember=sr;e.IfcRelConnectsWithEccentricity=class extends sr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.ConnectionConstraint=u,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends tr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RealizingElements=l,this.ConnectionType=h,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedCoverings=n,this.type=886880790}};e.IfcRelCoversSpaces=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedSpace=o,this.RelatedCoverings=n,this.type=2802773753}};class ir extends gi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=2551354335}}e.IfcRelDecomposes=ir;class rr extends gi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.type=693640335}}e.IfcRelDefines=rr;class or extends rr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingPropertyDefinition=n,this.type=4186316022}}e.IfcRelDefinesByProperties=or;e.IfcRelDefinesByType=class extends rr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingType=n,this.type=781010003}};e.IfcRelFillsElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingOpeningElement=o,this.RelatedBuildingElement=n,this.type=3940055652}};e.IfcRelFlowControlElements=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedControlElements=o,this.RelatingFlowElement=n,this.type=279856033}};e.IfcRelInteractionRequirements=class extends er{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.DailyInteraction=o,this.ImportanceRating=n,this.LocationOfInteraction=a,this.RelatedSpaceProgram=l,this.RelatingSpaceProgram=h,this.type=4189434867}};e.IfcRelNests=class extends ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=3268803585}};e.IfcRelOccupiesSpaces=class extends qi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingActor=a,this.ActingRole=l,this.type=2051452291}};e.IfcRelOverridesProperties=class extends or{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingPropertyDefinition=n,this.OverridingProperties=a,this.type=202636808}};e.IfcRelProjectsElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedFeatureElement=n,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=1245217292}};e.IfcRelSchedulesCostItems=class extends Ji{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=1058617721}};e.IfcRelSequence=class extends er{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingProcess=o,this.RelatedProcess=n,this.TimeLag=a,this.SequenceType=l,this.type=4122056220}};e.IfcRelServicesBuildings=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSystem=o,this.RelatedBuildings=n,this.type=366585022}};e.IfcRelSpaceBoundary=class extends er{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.type=3451746338}};e.IfcRelVoidsElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedOpeningElement=n,this.type=1401173127}};class nr extends Ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2914609552}}e.IfcResource=nr;e.IfcRevolvedAreaSolid=class extends bi{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.type=1856042241}};e.IfcRightCircularCone=class extends Ui{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=i,this.type=4158566097}};e.IfcRightCircularCylinder=class extends Ui{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.Radius=i,this.type=3626867408}};class ar extends Xi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.type=2706606064}}e.IfcSpatialStructureElement=ar;class lr extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893378262}}e.IfcSpatialStructureElementType=lr;e.IfcSphere=class extends Ui{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};class hr extends Xi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3544373492}}e.IfcStructuralActivity=hr;class cr extends Xi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3136571912}}e.IfcStructuralItem=cr;class ur extends cr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=530289379}}e.IfcStructuralMember=ur;class Ar extends hr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3689010777}}e.IfcStructuralReaction=Ar;class pr extends ur{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=3979015343}}e.IfcStructuralSurfaceMember=pr;e.IfcStructuralSurfaceMemberVarying=class extends pr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.SubsequentThickness=c,this.VaryingThicknessLocation=u,this.type=2218152070}};e.IfcStructuredDimensionCallout=class extends Gi{constructor(e,t){super(e,t),this.Contents=t,this.type=4070609034}};e.IfcSurfaceCurveSweptAreaSolid=class extends bi{constructor(e,t,s,i,r,o,n){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.ReferenceSurface=n,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends Ri{constructor(e,t,s,i,r){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends Ri{constructor(e,t,s,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=i,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Qi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1580310250}};class dr extends Yi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TaskId=n,this.Status=a,this.WorkMethod=l,this.IsMilestone=h,this.Priority=c,this.type=3473067441}}e.IfcTask=dr;e.IfcTransportElementType=class extends ki{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2097647324}};class fr extends Ki{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.type=2296667514}}e.IfcActor=fr;e.IfcAnnotation=class extends Xi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1674181508}};e.IfcAsymmetricIShapeProfileDef=class extends Wi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallWidth=r,this.OverallDepth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.TopFlangeWidth=h,this.TopFlangeThickness=c,this.TopFlangeFilletRadius=u,this.CentreOfGravityInY=A,this.type=3207858831}};e.IfcBlock=class extends Ui{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.ZLength=r,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Si{constructor(e,t,s,i){super(e,t,s,i),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=3649129432}};class mr extends Hi{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=mr;e.IfcBuilding=class extends ar{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.ElevationOfRefHeight=c,this.ElevationOfTerrain=u,this.BuildingAddress=A,this.type=4031249490}};class yr extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1950629157}}e.IfcBuildingElementType=yr;e.IfcBuildingStorey=class extends ar{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.Elevation=c,this.type=3124254112}};e.IfcCircleHollowProfileDef=class extends Li{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.WallThickness=o,this.type=2937912522}};e.IfcColumnType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=300633059}};class Er extends mr{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=Er;class gr extends Hi{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=gr;class vr extends nr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.type=2559216714}}e.IfcConstructionResource=vr;class Ir extends Ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3293443760}}e.IfcControl=Ir;e.IfcCostItem=class extends Ir{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3895139033}};e.IfcCostSchedule=class extends Ir{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.SubmittedBy=n,this.PreparedBy=a,this.SubmittedOn=l,this.Status=h,this.TargetUsers=c,this.UpdateDate=u,this.ID=A,this.PredefinedType=p,this.type=1419761937}};e.IfcCoveringType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1916426348}};e.IfcCrewResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.type=3295246426}};e.IfcCurtainWallType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1457835157}};class _r extends Gi{constructor(e,t){super(e,t),this.Contents=t,this.type=681481545}}e.IfcDimensionCurveDirectedCallout=_r;class Tr extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3256556792}}e.IfcDistributionElementType=Tr;class Pr extends Tr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3849074793}}e.IfcDistributionFlowElementType=Pr;e.IfcElectricalBaseProperties=class extends ji{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.EnergySequence=o,this.UserDefinedEnergySequence=n,this.ElectricCurrentType=a,this.InputVoltage=l,this.InputFrequency=h,this.FullLoadCurrent=c,this.MinimumCircuitCurrent=u,this.MaximumPowerInput=A,this.RatedPowerInput=p,this.InputPhase=d,this.type=360485395}};class br extends Xi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1758889154}}e.IfcElement=br;e.IfcElementAssembly=class extends br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.AssemblyPlace=h,this.PredefinedType=c,this.type=4123344466}};class Rr extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1623761950}}e.IfcElementComponent=Rr;class Dr extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2590856083}}e.IfcElementComponentType=Dr;e.IfcEllipse=class extends gr{constructor(e,t,s,i){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=i,this.type=1704287377}};class Cr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2107101300}}e.IfcEnergyConversionDeviceType=Cr;e.IfcEquipmentElement=class extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1962604670}};e.IfcEquipmentStandard=class extends Ir{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3272907226}};e.IfcEvaporativeCoolerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3174744832}};e.IfcEvaporatorType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3390157468}};e.IfcFacetedBrep=class extends zi{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}};e.IfcFacetedBrepWithVoids=class extends zi{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};class Nr extends Rr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=647756555}}e.IfcFastener=Nr;class Or extends Dr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2489546625}}e.IfcFastenerType=Or;class xr extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2827207264}}e.IfcFeatureElement=xr;class Sr extends xr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2143335405}}e.IfcFeatureElementAddition=Sr;class wr extends xr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1287392070}}e.IfcFeatureElementSubtraction=wr;class Mr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3907093117}}e.IfcFlowControllerType=Mr;class Br extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3198132628}}e.IfcFlowFittingType=Br;e.IfcFlowMeterType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3815607619}};class Fr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1482959167}}e.IfcFlowMovingDeviceType=Fr;class Lr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1834744321}}e.IfcFlowSegmentType=Lr;class Ur extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1339347760}}e.IfcFlowStorageDeviceType=Ur;class Hr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2297155007}}e.IfcFlowTerminalType=Hr;class Gr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=Gr;e.IfcFurnishingElement=class extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=263784265}};e.IfcFurnitureStandard=class extends Ir{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=814719939}};e.IfcGasTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=200128114}};e.IfcGrid=class extends Xi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.UAxes=l,this.VAxes=h,this.WAxes=c,this.type=3009204131}};class kr extends Ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2706460486}}e.IfcGroup=kr;e.IfcHeatExchangerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1251058090}};e.IfcHumidifierType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1806887404}};e.IfcInventory=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.InventoryType=n,this.Jurisdiction=a,this.ResponsiblePersons=l,this.LastUpdateDate=h,this.CurrentValue=c,this.OriginalValue=u,this.type=2391368822}};e.IfcJunctionBoxType=class extends Br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4288270099}};e.IfcLaborResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.SkillSet=c,this.type=3827777499}};e.IfcLampType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1051575348}};e.IfcLightFixtureType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1161773419}};e.IfcLinearDimension=class extends _r{constructor(e,t){super(e,t),this.Contents=t,this.type=2506943328}};e.IfcMechanicalFastener=class extends Nr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NominalDiameter=h,this.NominalLength=c,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Or{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2108223431}};e.IfcMemberType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3181161470}};e.IfcMotorConnectionType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=977012517}};e.IfcMove=class extends dr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TaskId=n,this.Status=a,this.WorkMethod=l,this.IsMilestone=h,this.Priority=c,this.MoveFrom=u,this.MoveTo=A,this.PunchList=p,this.type=1916936684}};e.IfcOccupant=class extends fr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.PredefinedType=a,this.type=4143007308}};e.IfcOpeningElement=class extends wr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3588315303}};e.IfcOrderAction=class extends dr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TaskId=n,this.Status=a,this.WorkMethod=l,this.IsMilestone=h,this.Priority=c,this.ActionID=u,this.type=3425660407}};e.IfcOutletType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2837617999}};e.IfcPerformanceHistory=class extends Ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LifeCyclePhase=n,this.type=2382730787}};e.IfcPermit=class extends Ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PermitID=n,this.type=3327091369}};e.IfcPipeFittingType=class extends Br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=804291784}};e.IfcPipeSegmentType=class extends Lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4231323485}};e.IfcPlateType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4017108033}};e.IfcPolyline=class extends mr{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class Vr extends Xi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3740093272}}e.IfcPort=Vr;e.IfcProcedure=class extends Yi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ProcedureID=n,this.ProcedureType=a,this.UserDefinedProcedureType=l,this.type=2744685151}};e.IfcProjectOrder=class extends Ir{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ID=n,this.PredefinedType=a,this.Status=l,this.type=2904328755}};e.IfcProjectOrderRecord=class extends Ir{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Records=n,this.PredefinedType=a,this.type=3642467123}};e.IfcProjectionElement=class extends Sr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1842657554}};e.IfcPumpType=class extends Fr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2250791053}};e.IfcRadiusDimension=class extends _r{constructor(e,t){super(e,t),this.Contents=t,this.type=3248260540}};e.IfcRailingType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2893384427}};e.IfcRampFlightType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2324767716}};e.IfcRelAggregates=class extends ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=160246688}};e.IfcRelAssignsTasks=class extends Ji{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.TimeForTask=l,this.type=2863920197}};e.IfcSanitaryTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1768891740}};e.IfcScheduleTimeControl=class extends Ir{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ActualStart=n,this.EarlyStart=a,this.LateStart=l,this.ScheduleStart=h,this.ActualFinish=c,this.EarlyFinish=u,this.LateFinish=A,this.ScheduleFinish=p,this.ScheduleDuration=d,this.ActualDuration=f,this.RemainingTime=m,this.FreeFloat=y,this.TotalFloat=E,this.IsCritical=g,this.StatusTime=v,this.StartFloat=I,this.FinishFloat=_,this.Completion=T,this.type=3517283431}};e.IfcServiceLife=class extends Ir{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ServiceLifeType=n,this.ServiceLifeDuration=a,this.type=4105383287}};e.IfcSite=class extends ar{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.RefLatitude=c,this.RefLongitude=u,this.RefElevation=A,this.LandTitleNumber=p,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2533589738}};e.IfcSpace=class extends ar{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.InteriorOrExteriorSpace=c,this.ElevationWithFlooring=u,this.type=3856911033}};e.IfcSpaceHeaterType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1305183839}};e.IfcSpaceProgram=class extends Ir{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.SpaceProgramIdentifier=n,this.MaxRequiredArea=a,this.MinRequiredArea=l,this.RequestedLocation=h,this.StandardRequiredArea=c,this.type=652456506}};e.IfcSpaceType=class extends lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3812236995}};e.IfcStackTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3112655638}};e.IfcStairFlightType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1039846685}};class jr extends hr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.type=682877961}}e.IfcStructuralAction=jr;class Qr extends cr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1179482911}}e.IfcStructuralConnection=Qr;e.IfcStructuralCurveConnection=class extends Qr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=4243806635}};class Wr extends ur{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=214636428}}e.IfcStructuralCurveMember=Wr;e.IfcStructuralCurveMemberVarying=class extends Wr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=2445595289}};class zr extends jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.ProjectedOrTrue=A,this.type=1807405624}}e.IfcStructuralLinearAction=zr;e.IfcStructuralLinearActionVarying=class extends zr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.ProjectedOrTrue=A,this.VaryingAppliedLoadLocation=p,this.SubsequentAppliedLoads=d,this.type=1721250024}};e.IfcStructuralLoadGroup=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.type=1252848954}};class Kr extends jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.ProjectedOrTrue=A,this.type=1621171031}}e.IfcStructuralPlanarAction=Kr;e.IfcStructuralPlanarActionVarying=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.ProjectedOrTrue=A,this.VaryingAppliedLoadLocation=p,this.SubsequentAppliedLoads=d,this.type=3987759626}};e.IfcStructuralPointAction=class extends jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.type=2082059205}};e.IfcStructuralPointConnection=class extends Qr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=734778138}};e.IfcStructuralPointReaction=class extends Ar{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=1235345126}};e.IfcStructuralResultGroup=class extends kr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheoryType=n,this.ResultForLoadGroup=a,this.IsLinear=l,this.type=2986769608}};e.IfcStructuralSurfaceConnection=class extends Qr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1975003073}};e.IfcSubContractResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.SubContractor=c,this.JobDescription=u,this.type=148013059}};e.IfcSwitchingDeviceType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2315554128}};class Yr extends kr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2254336722}}e.IfcSystem=Yr;e.IfcTankType=class extends Ur{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=5716631}};e.IfcTimeSeriesSchedule=class extends Ir{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ApplicableDates=n,this.TimeSeriesScheduleType=a,this.TimeSeries=l,this.type=1637806684}};e.IfcTransformerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1692211062}};e.IfcTransportElement=class extends br{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OperationType=h,this.CapacityByWeight=c,this.CapacityByNumber=u,this.type=1620046519}};e.IfcTrimmedCurve=class extends mr{constructor(e,t,s,i,r,o){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=i,this.SenseAgreement=r,this.MasterRepresentation=o,this.type=3593883385}};e.IfcTubeBundleType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1911125066}};e.IfcValveType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=728799441}};e.IfcVirtualElement=class extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2769231204}};e.IfcWallType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1898987631}};e.IfcWasteTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1133259667}};class Xr extends Ir{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identifier=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=1028945134}}e.IfcWorkControl=Xr;e.IfcWorkPlan=class extends Xr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identifier=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=4218914973}};e.IfcWorkSchedule=class extends Xr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identifier=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=3342526732}};e.IfcZone=class extends kr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=1033361043}};e.Ifc2DCompositeCurve=class extends Er{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1213861670}};e.IfcActionRequest=class extends Ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.RequestID=n,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1411407467}};e.IfcAirTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1871374353}};e.IfcAngularDimension=class extends _r{constructor(e,t){super(e,t),this.Contents=t,this.type=2470393545}};e.IfcAsset=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.AssetID=n,this.OriginalValue=a,this.CurrentValue=l,this.TotalReplacementCost=h,this.Owner=c,this.User=u,this.ResponsiblePerson=A,this.IncorporationDate=p,this.DepreciatedValue=d,this.type=3460190687}};class Zr extends mr{constructor(e,t,s,i,r,o){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.type=1967976161}}e.IfcBSplineCurve=Zr;e.IfcBeamType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=819618141}};class qr extends Zr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.type=1916977116}}e.IfcBezierCurve=qr;e.IfcBoilerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=231477066}};class Jr extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3299480353}}e.IfcBuildingElement=Jr;class $r extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=52481810}}e.IfcBuildingElementComponent=$r;e.IfcBuildingElementPart=class extends $r{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2979338954}};e.IfcBuildingElementProxy=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.CompositionType=h,this.type=1095909175}};e.IfcBuildingElementProxyType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1909888760}};e.IfcCableCarrierFittingType=class extends Br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3293546465}};e.IfcCableSegmentType=class extends Lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1285652485}};e.IfcChillerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2951183804}};e.IfcCircle=class extends gr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCoilType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2301859152}};e.IfcColumn=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=843113511}};e.IfcCompressorType=class extends Fr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3850581409}};e.IfcCondenserType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2816379211}};e.IfcCondition=class extends kr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2188551683}};e.IfcConditionCriterion=class extends Ir{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Criterion=n,this.CriterionDateTime=a,this.type=1163958913}};e.IfcConstructionEquipmentResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.Suppliers=c,this.UsageRatio=u,this.type=1060000209}};e.IfcConstructionProductResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.type=488727124}};e.IfcCooledBeamType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=335055490}};e.IfcCoolingTowerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2954562838}};e.IfcCovering=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1973544240}};e.IfcCurtainWall=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3495092785}};e.IfcDamperType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3961806047}};e.IfcDiameterDimension=class extends _r{constructor(e,t){super(e,t),this.Contents=t,this.type=4147604152}};e.IfcDiscreteAccessory=class extends Rr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1335981549}};class eo extends Dr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2635815018}}e.IfcDiscreteAccessoryType=eo;e.IfcDistributionChamberElementType=class extends Pr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1599208980}};class to extends Tr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2063403501}}e.IfcDistributionControlElementType=to;class so extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1945004755}}e.IfcDistributionElement=so;class io extends so{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3040386961}}e.IfcDistributionFlowElement=io;e.IfcDistributionPort=class extends Vr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.FlowDirection=l,this.type=3041715199}};e.IfcDoor=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.type=395920057}};e.IfcDuctFittingType=class extends Br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=869906466}};e.IfcDuctSegmentType=class extends Lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3760055223}};e.IfcDuctSilencerType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2030761528}};class ro extends wr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.FeatureLength=h,this.type=855621170}}e.IfcEdgeFeature=ro;e.IfcElectricApplianceType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=663422040}};e.IfcElectricFlowStorageDeviceType=class extends Ur{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3277789161}};e.IfcElectricGeneratorType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1534661035}};e.IfcElectricHeaterType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1365060375}};e.IfcElectricMotorType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=712377611}};e.IfcElectricalCircuit=class extends Yr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=1634875225}};e.IfcElectricalElement=class extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=857184966}};e.IfcEnergyConversionDevice=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1658829314}};e.IfcFanType=class extends Fr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=346874300}};e.IfcFilterType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4222183408}};class oo extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2058353004}}e.IfcFlowController=oo;e.IfcFlowFitting=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=4278956645}};e.IfcFlowInstrumentType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4037862832}};e.IfcFlowMovingDevice=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3132237377}};e.IfcFlowSegment=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=987401354}};e.IfcFlowStorageDevice=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=707683696}};e.IfcFlowTerminal=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2223149337}};e.IfcFlowTreatmentDevice=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3508470533}};e.IfcFooting=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=900683007}};e.IfcMember=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1073191201}};e.IfcPile=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.ConstructionType=c,this.type=1687234759}};e.IfcPlate=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3171933400}};e.IfcRailing=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2262370178}};e.IfcRamp=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.ShapeType=h,this.type=3024970846}};e.IfcRampFlight=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3283111854}};e.IfcRationalBezierCurve=class extends qr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.WeightsData=n,this.type=3055160366}};class no extends $r{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.type=3027567501}}e.IfcReinforcingElement=no;e.IfcReinforcingMesh=class extends no{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.MeshLength=c,this.MeshWidth=u,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=p,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=m,this.TransverseBarSpacing=y,this.type=2320036040}};e.IfcRoof=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.ShapeType=h,this.type=2016517767}};e.IfcRoundedEdgeFeature=class extends ro{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.FeatureLength=h,this.Radius=c,this.type=1376911519}};e.IfcSensorType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1783015770}};e.IfcSlab=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1529196076}};e.IfcStair=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.ShapeType=h,this.type=331165859}};e.IfcStairFlight=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NumberOfRiser=h,this.NumberOfTreads=c,this.RiserHeight=u,this.TreadLength=A,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends Yr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.OrientationOf2DPlane=a,this.LoadedBy=l,this.HasResults=h,this.type=2515109513}};e.IfcTendon=class extends no{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.TensionForce=p,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=m,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends no{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.type=2347447852}};e.IfcVibrationIsolatorType=class extends eo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3313531582}};class ao extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2391406946}}e.IfcWall=ao;e.IfcWallStandardCase=class extends ao{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3512223829}};e.IfcWindow=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.type=3304561284}};e.IfcActuatorType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2874132201}};e.IfcAlarmType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3001207471}};e.IfcBeam=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=753842376}};e.IfcChamferEdgeFeature=class extends ro{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.FeatureLength=h,this.Width=c,this.Height=u,this.type=2454782716}};e.IfcControllerType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=578613899}};e.IfcDistributionChamberElement=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1052013943}};e.IfcDistributionControlElement=class extends so{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.ControlElementId=h,this.type=1062813311}};e.IfcElectricDistributionPoint=class extends oo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.DistributionPointFunction=h,this.UserDefinedFunction=c,this.type=3700593921}};e.IfcReinforcingBar=class extends no{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.NominalDiameter=c,this.CrossSectionArea=u,this.BarLength=A,this.BarRole=p,this.BarSurface=d,this.type=979691226}}}(uv||(uv={})),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 i{}i.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},i.COMPLETION_G1={type:3,value:"COMPLETION_G1"},i.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},i.SNOW_S={type:3,value:"SNOW_S"},i.WIND_W={type:3,value:"WIND_W"},i.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},i.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},i.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},i.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},i.FIRE={type:3,value:"FIRE"},i.IMPULSE={type:3,value:"IMPULSE"},i.IMPACT={type:3,value:"IMPACT"},i.TRANSPORT={type:3,value:"TRANSPORT"},i.ERECTION={type:3,value:"ERECTION"},i.PROPPING={type:3,value:"PROPPING"},i.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},i.SHRINKAGE={type:3,value:"SHRINKAGE"},i.CREEP={type:3,value:"CREEP"},i.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},i.BUOYANCY={type:3,value:"BUOYANCY"},i.ICE={type:3,value:"ICE"},i.CURRENT={type:3,value:"CURRENT"},i.WAVE={type:3,value:"WAVE"},i.RAIN={type:3,value:"RAIN"},i.BRAKES={type:3,value:"BRAKES"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=i;class r{}r.PERMANENT_G={type:3,value:"PERMANENT_G"},r.VARIABLE_Q={type:3,value:"VARIABLE_Q"},r.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},r.USERDEFINED={type:3,value:"USERDEFINED"},r.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=r;class o{}o.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},o.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},o.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},o.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},o.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=o;class n{}n.OFFICE={type:3,value:"OFFICE"},n.SITE={type:3,value:"SITE"},n.HOME={type:3,value:"HOME"},n.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},n.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=n;class a{}a.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},a.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},a.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=a;class l{}l.DIFFUSER={type:3,value:"DIFFUSER"},l.GRILLE={type:3,value:"GRILLE"},l.LOUVRE={type:3,value:"LOUVRE"},l.REGISTER={type:3,value:"REGISTER"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=l;class h{}h.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},h.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},h.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},h.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},h.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},h.HEATPIPE={type:3,value:"HEATPIPE"},h.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},h.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},h.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=h;class c{}c.BELL={type:3,value:"BELL"},c.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},c.LIGHT={type:3,value:"LIGHT"},c.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},c.SIREN={type:3,value:"SIREN"},c.WHISTLE={type:3,value:"WHISTLE"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=c;class u{}u.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},u.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},u.LOADING_3D={type:3,value:"LOADING_3D"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=u;class A{}A.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},A.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},A.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},A.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},A.USERDEFINED={type:3,value:"USERDEFINED"},A.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=A;class p{}p.ADD={type:3,value:"ADD"},p.DIVIDE={type:3,value:"DIVIDE"},p.MULTIPLY={type:3,value:"MULTIPLY"},p.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=p;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 m{}m.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},m.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},m.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},m.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},m.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},m.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=m;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 E{}E.BEAM={type:3,value:"BEAM"},E.JOIST={type:3,value:"JOIST"},E.HOLLOWCORE={type:3,value:"HOLLOWCORE"},E.LINTEL={type:3,value:"LINTEL"},E.SPANDREL={type:3,value:"SPANDREL"},E.T_BEAM={type:3,value:"T_BEAM"},E.USERDEFINED={type:3,value:"USERDEFINED"},E.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=E;class g{}g.GREATERTHAN={type:3,value:"GREATERTHAN"},g.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},g.LESSTHAN={type:3,value:"LESSTHAN"},g.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},g.EQUALTO={type:3,value:"EQUALTO"},g.NOTEQUALTO={type:3,value:"NOTEQUALTO"},g.INCLUDES={type:3,value:"INCLUDES"},g.NOTINCLUDES={type:3,value:"NOTINCLUDES"},g.INCLUDEDIN={type:3,value:"INCLUDEDIN"},g.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"},e.IfcBenchmarkEnum=g;class v{}v.WATER={type:3,value:"WATER"},v.STEAM={type:3,value:"STEAM"},v.USERDEFINED={type:3,value:"USERDEFINED"},v.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=v;class I{}I.UNION={type:3,value:"UNION"},I.INTERSECTION={type:3,value:"INTERSECTION"},I.DIFFERENCE={type:3,value:"DIFFERENCE"},e.IfcBooleanOperator=I;class _{}_.INSULATION={type:3,value:"INSULATION"},_.PRECASTPANEL={type:3,value:"PRECASTPANEL"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementPartTypeEnum=_;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 P{}P.FENESTRATION={type:3,value:"FENESTRATION"},P.FOUNDATION={type:3,value:"FOUNDATION"},P.LOADBEARING={type:3,value:"LOADBEARING"},P.OUTERSHELL={type:3,value:"OUTERSHELL"},P.SHADING={type:3,value:"SHADING"},P.TRANSPORT={type:3,value:"TRANSPORT"},P.USERDEFINED={type:3,value:"USERDEFINED"},P.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingSystemTypeEnum=P;class b{}b.USERDEFINED={type:3,value:"USERDEFINED"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBurnerTypeEnum=b;class R{}R.BEND={type:3,value:"BEND"},R.CROSS={type:3,value:"CROSS"},R.REDUCER={type:3,value:"REDUCER"},R.TEE={type:3,value:"TEE"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=R;class D{}D.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},D.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},D.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},D.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=D;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 N{}N.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},N.CABLESEGMENT={type:3,value:"CABLESEGMENT"},N.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},N.CORESEGMENT={type:3,value:"CORESEGMENT"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=N;class O{}O.NOCHANGE={type:3,value:"NOCHANGE"},O.MODIFIED={type:3,value:"MODIFIED"},O.ADDED={type:3,value:"ADDED"},O.DELETED={type:3,value:"DELETED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChangeActionEnum=O;class x{}x.AIRCOOLED={type:3,value:"AIRCOOLED"},x.WATERCOOLED={type:3,value:"WATERCOOLED"},x.HEATRECOVERY={type:3,value:"HEATRECOVERY"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=x;class S{}S.USERDEFINED={type:3,value:"USERDEFINED"},S.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChimneyTypeEnum=S;class w{}w.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},w.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},w.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},w.HYDRONICCOIL={type:3,value:"HYDRONICCOIL"},w.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},w.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},w.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=w;class M{}M.COLUMN={type:3,value:"COLUMN"},M.PILASTER={type:3,value:"PILASTER"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=M;class B{}B.ANTENNA={type:3,value:"ANTENNA"},B.COMPUTER={type:3,value:"COMPUTER"},B.FAX={type:3,value:"FAX"},B.GATEWAY={type:3,value:"GATEWAY"},B.MODEM={type:3,value:"MODEM"},B.NETWORKAPPLIANCE={type:3,value:"NETWORKAPPLIANCE"},B.NETWORKBRIDGE={type:3,value:"NETWORKBRIDGE"},B.NETWORKHUB={type:3,value:"NETWORKHUB"},B.PRINTER={type:3,value:"PRINTER"},B.REPEATER={type:3,value:"REPEATER"},B.ROUTER={type:3,value:"ROUTER"},B.SCANNER={type:3,value:"SCANNER"},B.USERDEFINED={type:3,value:"USERDEFINED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCommunicationsApplianceTypeEnum=B;class F{}F.P_COMPLEX={type:3,value:"P_COMPLEX"},F.Q_COMPLEX={type:3,value:"Q_COMPLEX"},e.IfcComplexPropertyTemplateTypeEnum=F;class L{}L.DYNAMIC={type:3,value:"DYNAMIC"},L.RECIPROCATING={type:3,value:"RECIPROCATING"},L.ROTARY={type:3,value:"ROTARY"},L.SCROLL={type:3,value:"SCROLL"},L.TROCHOIDAL={type:3,value:"TROCHOIDAL"},L.SINGLESTAGE={type:3,value:"SINGLESTAGE"},L.BOOSTER={type:3,value:"BOOSTER"},L.OPENTYPE={type:3,value:"OPENTYPE"},L.HERMETIC={type:3,value:"HERMETIC"},L.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},L.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},L.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},L.ROTARYVANE={type:3,value:"ROTARYVANE"},L.SINGLESCREW={type:3,value:"SINGLESCREW"},L.TWINSCREW={type:3,value:"TWINSCREW"},L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCompressorTypeEnum=L;class U{}U.AIRCOOLED={type:3,value:"AIRCOOLED"},U.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},U.WATERCOOLED={type:3,value:"WATERCOOLED"},U.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},U.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},U.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},U.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=U;class H{}H.ATPATH={type:3,value:"ATPATH"},H.ATSTART={type:3,value:"ATSTART"},H.ATEND={type:3,value:"ATEND"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=H;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 k{}k.DEMOLISHING={type:3,value:"DEMOLISHING"},k.EARTHMOVING={type:3,value:"EARTHMOVING"},k.ERECTING={type:3,value:"ERECTING"},k.HEATING={type:3,value:"HEATING"},k.LIGHTING={type:3,value:"LIGHTING"},k.PAVING={type:3,value:"PAVING"},k.PUMPING={type:3,value:"PUMPING"},k.TRANSPORTING={type:3,value:"TRANSPORTING"},k.USERDEFINED={type:3,value:"USERDEFINED"},k.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionEquipmentResourceTypeEnum=k;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 j{}j.ASSEMBLY={type:3,value:"ASSEMBLY"},j.FORMWORK={type:3,value:"FORMWORK"},j.USERDEFINED={type:3,value:"USERDEFINED"},j.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionProductResourceTypeEnum=j;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 Z{}Z.OFFICE={type:3,value:"OFFICE"},Z.SITE={type:3,value:"SITE"},Z.USERDEFINED={type:3,value:"USERDEFINED"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCrewResourceTypeEnum=Z;class q{}q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=q;class J{}J.LINEAR={type:3,value:"LINEAR"},J.LOG_LINEAR={type:3,value:"LOG_LINEAR"},J.LOG_LOG={type:3,value:"LOG_LOG"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurveInterpolationEnum=J;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 ie{}ie.ANCHORPLATE={type:3,value:"ANCHORPLATE"},ie.BRACKET={type:3,value:"BRACKET"},ie.SHOE={type:3,value:"SHOE"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDiscreteAccessoryTypeEnum=ie;class re{}re.FORMEDDUCT={type:3,value:"FORMEDDUCT"},re.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},re.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},re.MANHOLE={type:3,value:"MANHOLE"},re.METERCHAMBER={type:3,value:"METERCHAMBER"},re.SUMP={type:3,value:"SUMP"},re.TRENCH={type:3,value:"TRENCH"},re.VALVECHAMBER={type:3,value:"VALVECHAMBER"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=re;class oe{}oe.CABLE={type:3,value:"CABLE"},oe.CABLECARRIER={type:3,value:"CABLECARRIER"},oe.DUCT={type:3,value:"DUCT"},oe.PIPE={type:3,value:"PIPE"},oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionPortTypeEnum=oe;class ne{}ne.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},ne.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},ne.CHEMICAL={type:3,value:"CHEMICAL"},ne.CHILLEDWATER={type:3,value:"CHILLEDWATER"},ne.COMMUNICATION={type:3,value:"COMMUNICATION"},ne.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},ne.CONDENSERWATER={type:3,value:"CONDENSERWATER"},ne.CONTROL={type:3,value:"CONTROL"},ne.CONVEYING={type:3,value:"CONVEYING"},ne.DATA={type:3,value:"DATA"},ne.DISPOSAL={type:3,value:"DISPOSAL"},ne.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},ne.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},ne.DRAINAGE={type:3,value:"DRAINAGE"},ne.EARTHING={type:3,value:"EARTHING"},ne.ELECTRICAL={type:3,value:"ELECTRICAL"},ne.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},ne.EXHAUST={type:3,value:"EXHAUST"},ne.FIREPROTECTION={type:3,value:"FIREPROTECTION"},ne.FUEL={type:3,value:"FUEL"},ne.GAS={type:3,value:"GAS"},ne.HAZARDOUS={type:3,value:"HAZARDOUS"},ne.HEATING={type:3,value:"HEATING"},ne.LIGHTING={type:3,value:"LIGHTING"},ne.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},ne.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},ne.OIL={type:3,value:"OIL"},ne.OPERATIONAL={type:3,value:"OPERATIONAL"},ne.POWERGENERATION={type:3,value:"POWERGENERATION"},ne.RAINWATER={type:3,value:"RAINWATER"},ne.REFRIGERATION={type:3,value:"REFRIGERATION"},ne.SECURITY={type:3,value:"SECURITY"},ne.SEWAGE={type:3,value:"SEWAGE"},ne.SIGNAL={type:3,value:"SIGNAL"},ne.STORMWATER={type:3,value:"STORMWATER"},ne.TELEPHONE={type:3,value:"TELEPHONE"},ne.TV={type:3,value:"TV"},ne.VACUUM={type:3,value:"VACUUM"},ne.VENT={type:3,value:"VENT"},ne.VENTILATION={type:3,value:"VENTILATION"},ne.WASTEWATER={type:3,value:"WASTEWATER"},ne.WATERSUPPLY={type:3,value:"WATERSUPPLY"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionSystemEnum=ne;class ae{}ae.PUBLIC={type:3,value:"PUBLIC"},ae.RESTRICTED={type:3,value:"RESTRICTED"},ae.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},ae.PERSONAL={type:3,value:"PERSONAL"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=ae;class le{}le.DRAFT={type:3,value:"DRAFT"},le.FINALDRAFT={type:3,value:"FINALDRAFT"},le.FINAL={type:3,value:"FINAL"},le.REVISION={type:3,value:"REVISION"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=le;class he{}he.SWINGING={type:3,value:"SWINGING"},he.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},he.SLIDING={type:3,value:"SLIDING"},he.FOLDING={type:3,value:"FOLDING"},he.REVOLVING={type:3,value:"REVOLVING"},he.ROLLINGUP={type:3,value:"ROLLINGUP"},he.FIXEDPANEL={type:3,value:"FIXEDPANEL"},he.USERDEFINED={type:3,value:"USERDEFINED"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelOperationEnum=he;class ce{}ce.LEFT={type:3,value:"LEFT"},ce.MIDDLE={type:3,value:"MIDDLE"},ce.RIGHT={type:3,value:"RIGHT"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=ce;class ue{}ue.ALUMINIUM={type:3,value:"ALUMINIUM"},ue.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},ue.STEEL={type:3,value:"STEEL"},ue.WOOD={type:3,value:"WOOD"},ue.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},ue.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},ue.PLASTIC={type:3,value:"PLASTIC"},ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=ue;class Ae{}Ae.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Ae.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Ae.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Ae.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Ae.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Ae.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Ae.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Ae.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Ae.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Ae.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Ae.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Ae.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Ae.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Ae.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Ae.REVOLVING={type:3,value:"REVOLVING"},Ae.ROLLINGUP={type:3,value:"ROLLINGUP"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=Ae;class pe{}pe.DOOR={type:3,value:"DOOR"},pe.GATE={type:3,value:"GATE"},pe.TRAPDOOR={type:3,value:"TRAPDOOR"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeEnum=pe;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 me{}me.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},me.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=me;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 Ee{}Ee.DISHWASHER={type:3,value:"DISHWASHER"},Ee.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},Ee.FREESTANDINGELECTRICHEATER={type:3,value:"FREESTANDINGELECTRICHEATER"},Ee.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},Ee.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},Ee.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},Ee.FREEZER={type:3,value:"FREEZER"},Ee.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},Ee.HANDDRYER={type:3,value:"HANDDRYER"},Ee.KITCHENMACHINE={type:3,value:"KITCHENMACHINE"},Ee.MICROWAVE={type:3,value:"MICROWAVE"},Ee.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},Ee.REFRIGERATOR={type:3,value:"REFRIGERATOR"},Ee.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},Ee.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},Ee.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricApplianceTypeEnum=Ee;class ge{}ge.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},ge.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},ge.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},ge.SWITCHBOARD={type:3,value:"SWITCHBOARD"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionBoardTypeEnum=ge;class ve{}ve.BATTERY={type:3,value:"BATTERY"},ve.CAPACITORBANK={type:3,value:"CAPACITORBANK"},ve.HARMONICFILTER={type:3,value:"HARMONICFILTER"},ve.INDUCTORBANK={type:3,value:"INDUCTORBANK"},ve.UPS={type:3,value:"UPS"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=ve;class Ie{}Ie.CHP={type:3,value:"CHP"},Ie.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},Ie.STANDALONE={type:3,value:"STANDALONE"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=Ie;class _e{}_e.DC={type:3,value:"DC"},_e.INDUCTION={type:3,value:"INDUCTION"},_e.POLYPHASE={type:3,value:"POLYPHASE"},_e.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},_e.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=_e;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 Pe{}Pe.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},Pe.ARCH={type:3,value:"ARCH"},Pe.BEAM_GRID={type:3,value:"BEAM_GRID"},Pe.BRACED_FRAME={type:3,value:"BRACED_FRAME"},Pe.GIRDER={type:3,value:"GIRDER"},Pe.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},Pe.RIGID_FRAME={type:3,value:"RIGID_FRAME"},Pe.SLAB_FIELD={type:3,value:"SLAB_FIELD"},Pe.TRUSS={type:3,value:"TRUSS"},Pe.USERDEFINED={type:3,value:"USERDEFINED"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=Pe;class be{}be.COMPLEX={type:3,value:"COMPLEX"},be.ELEMENT={type:3,value:"ELEMENT"},be.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=be;class Re{}Re.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},Re.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEngineTypeEnum=Re;class De{}De.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},De.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},De.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},De.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},De.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},De.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},De.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},De.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},De.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=De;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 Ne{}Ne.EVENTRULE={type:3,value:"EVENTRULE"},Ne.EVENTMESSAGE={type:3,value:"EVENTMESSAGE"},Ne.EVENTTIME={type:3,value:"EVENTTIME"},Ne.EVENTCOMPLEX={type:3,value:"EVENTCOMPLEX"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTriggerTypeEnum=Ne;class Oe{}Oe.STARTEVENT={type:3,value:"STARTEVENT"},Oe.ENDEVENT={type:3,value:"ENDEVENT"},Oe.INTERMEDIATEEVENT={type:3,value:"INTERMEDIATEEVENT"},Oe.USERDEFINED={type:3,value:"USERDEFINED"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTypeEnum=Oe;class xe{}xe.EXTERNAL={type:3,value:"EXTERNAL"},xe.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},xe.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},xe.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcExternalSpatialElementTypeEnum=xe;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 we{}we.GLUE={type:3,value:"GLUE"},we.MORTAR={type:3,value:"MORTAR"},we.WELD={type:3,value:"WELD"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFastenerTypeEnum=we;class Me{}Me.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},Me.COMPRESSEDAIRFILTER={type:3,value:"COMPRESSEDAIRFILTER"},Me.ODORFILTER={type:3,value:"ODORFILTER"},Me.OILFILTER={type:3,value:"OILFILTER"},Me.STRAINER={type:3,value:"STRAINER"},Me.WATERFILTER={type:3,value:"WATERFILTER"},Me.USERDEFINED={type:3,value:"USERDEFINED"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFilterTypeEnum=Me;class Be{}Be.BREECHINGINLET={type:3,value:"BREECHINGINLET"},Be.FIREHYDRANT={type:3,value:"FIREHYDRANT"},Be.HOSEREEL={type:3,value:"HOSEREEL"},Be.SPRINKLER={type:3,value:"SPRINKLER"},Be.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},Be.USERDEFINED={type:3,value:"USERDEFINED"},Be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=Be;class Fe{}Fe.SOURCE={type:3,value:"SOURCE"},Fe.SINK={type:3,value:"SINK"},Fe.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowDirectionEnum=Fe;class Le{}Le.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},Le.THERMOMETER={type:3,value:"THERMOMETER"},Le.AMMETER={type:3,value:"AMMETER"},Le.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},Le.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},Le.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},Le.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},Le.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=Le;class Ue{}Ue.ENERGYMETER={type:3,value:"ENERGYMETER"},Ue.GASMETER={type:3,value:"GASMETER"},Ue.OILMETER={type:3,value:"OILMETER"},Ue.WATERMETER={type:3,value:"WATERMETER"},Ue.USERDEFINED={type:3,value:"USERDEFINED"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=Ue;class He{}He.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},He.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},He.PAD_FOOTING={type:3,value:"PAD_FOOTING"},He.PILE_CAP={type:3,value:"PILE_CAP"},He.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},He.USERDEFINED={type:3,value:"USERDEFINED"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=He;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 ke{}ke.TERRAIN={type:3,value:"TERRAIN"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeographicElementTypeEnum=ke;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 je{}je.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},je.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=je;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 Ze{}Ze.DATA={type:3,value:"DATA"},Ze.POWER={type:3,value:"POWER"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=Ze;class qe{}qe.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},qe.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},qe.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},qe.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcKnotType=qe;class Je{}Je.ADMINISTRATION={type:3,value:"ADMINISTRATION"},Je.CARPENTRY={type:3,value:"CARPENTRY"},Je.CLEANING={type:3,value:"CLEANING"},Je.CONCRETE={type:3,value:"CONCRETE"},Je.DRYWALL={type:3,value:"DRYWALL"},Je.ELECTRIC={type:3,value:"ELECTRIC"},Je.FINISHING={type:3,value:"FINISHING"},Je.FLOORING={type:3,value:"FLOORING"},Je.GENERAL={type:3,value:"GENERAL"},Je.HVAC={type:3,value:"HVAC"},Je.LANDSCAPING={type:3,value:"LANDSCAPING"},Je.MASONRY={type:3,value:"MASONRY"},Je.PAINTING={type:3,value:"PAINTING"},Je.PAVING={type:3,value:"PAVING"},Je.PLUMBING={type:3,value:"PLUMBING"},Je.ROOFING={type:3,value:"ROOFING"},Je.SITEGRADING={type:3,value:"SITEGRADING"},Je.STEELWORK={type:3,value:"STEELWORK"},Je.SURVEYING={type:3,value:"SURVEYING"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLaborResourceTypeEnum=Je;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 it{}it.POINTSOURCE={type:3,value:"POINTSOURCE"},it.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},it.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=it;class rt{}rt.LOAD_GROUP={type:3,value:"LOAD_GROUP"},rt.LOAD_CASE={type:3,value:"LOAD_CASE"},rt.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=rt;class ot{}ot.LOGICALAND={type:3,value:"LOGICALAND"},ot.LOGICALOR={type:3,value:"LOGICALOR"},ot.LOGICALXOR={type:3,value:"LOGICALXOR"},ot.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},ot.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"},e.IfcLogicalOperatorEnum=ot;class nt{}nt.ANCHORBOLT={type:3,value:"ANCHORBOLT"},nt.BOLT={type:3,value:"BOLT"},nt.DOWEL={type:3,value:"DOWEL"},nt.NAIL={type:3,value:"NAIL"},nt.NAILPLATE={type:3,value:"NAILPLATE"},nt.RIVET={type:3,value:"RIVET"},nt.SCREW={type:3,value:"SCREW"},nt.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},nt.STAPLE={type:3,value:"STAPLE"},nt.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMechanicalFastenerTypeEnum=nt;class at{}at.AIRSTATION={type:3,value:"AIRSTATION"},at.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},at.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},at.OXYGENPLANT={type:3,value:"OXYGENPLANT"},at.VACUUMSTATION={type:3,value:"VACUUMSTATION"},at.USERDEFINED={type:3,value:"USERDEFINED"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMedicalDeviceTypeEnum=at;class lt{}lt.BRACE={type:3,value:"BRACE"},lt.CHORD={type:3,value:"CHORD"},lt.COLLAR={type:3,value:"COLLAR"},lt.MEMBER={type:3,value:"MEMBER"},lt.MULLION={type:3,value:"MULLION"},lt.PLATE={type:3,value:"PLATE"},lt.POST={type:3,value:"POST"},lt.PURLIN={type:3,value:"PURLIN"},lt.RAFTER={type:3,value:"RAFTER"},lt.STRINGER={type:3,value:"STRINGER"},lt.STRUT={type:3,value:"STRUT"},lt.STUD={type:3,value:"STUD"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=lt;class ht{}ht.BELTDRIVE={type:3,value:"BELTDRIVE"},ht.COUPLING={type:3,value:"COUPLING"},ht.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},ht.USERDEFINED={type:3,value:"USERDEFINED"},ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=ht;class ct{}ct.NULL={type:3,value:"NULL"},e.IfcNullStyle=ct;class ut{}ut.PRODUCT={type:3,value:"PRODUCT"},ut.PROCESS={type:3,value:"PROCESS"},ut.CONTROL={type:3,value:"CONTROL"},ut.RESOURCE={type:3,value:"RESOURCE"},ut.ACTOR={type:3,value:"ACTOR"},ut.GROUP={type:3,value:"GROUP"},ut.PROJECT={type:3,value:"PROJECT"},ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=ut;class At{}At.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},At.CODEWAIVER={type:3,value:"CODEWAIVER"},At.DESIGNINTENT={type:3,value:"DESIGNINTENT"},At.EXTERNAL={type:3,value:"EXTERNAL"},At.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},At.MERGECONFLICT={type:3,value:"MERGECONFLICT"},At.MODELVIEW={type:3,value:"MODELVIEW"},At.PARAMETER={type:3,value:"PARAMETER"},At.REQUIREMENT={type:3,value:"REQUIREMENT"},At.SPECIFICATION={type:3,value:"SPECIFICATION"},At.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},At.USERDEFINED={type:3,value:"USERDEFINED"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=At;class pt{}pt.ASSIGNEE={type:3,value:"ASSIGNEE"},pt.ASSIGNOR={type:3,value:"ASSIGNOR"},pt.LESSEE={type:3,value:"LESSEE"},pt.LESSOR={type:3,value:"LESSOR"},pt.LETTINGAGENT={type:3,value:"LETTINGAGENT"},pt.OWNER={type:3,value:"OWNER"},pt.TENANT={type:3,value:"TENANT"},pt.USERDEFINED={type:3,value:"USERDEFINED"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=pt;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 mt{}mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPerformanceHistoryTypeEnum=mt;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 Et{}Et.ACCESS={type:3,value:"ACCESS"},Et.BUILDING={type:3,value:"BUILDING"},Et.WORK={type:3,value:"WORK"},Et.USERDEFINED={type:3,value:"USERDEFINED"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermitTypeEnum=Et;class gt{}gt.PHYSICAL={type:3,value:"PHYSICAL"},gt.VIRTUAL={type:3,value:"VIRTUAL"},gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPhysicalOrVirtualEnum=gt;class vt{}vt.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},vt.COMPOSITE={type:3,value:"COMPOSITE"},vt.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},vt.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},vt.USERDEFINED={type:3,value:"USERDEFINED"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileConstructionEnum=vt;class It{}It.BORED={type:3,value:"BORED"},It.DRIVEN={type:3,value:"DRIVEN"},It.JETGROUTING={type:3,value:"JETGROUTING"},It.COHESION={type:3,value:"COHESION"},It.FRICTION={type:3,value:"FRICTION"},It.SUPPORT={type:3,value:"SUPPORT"},It.USERDEFINED={type:3,value:"USERDEFINED"},It.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileTypeEnum=It;class _t{}_t.BEND={type:3,value:"BEND"},_t.CONNECTOR={type:3,value:"CONNECTOR"},_t.ENTRY={type:3,value:"ENTRY"},_t.EXIT={type:3,value:"EXIT"},_t.JUNCTION={type:3,value:"JUNCTION"},_t.OBSTRUCTION={type:3,value:"OBSTRUCTION"},_t.TRANSITION={type:3,value:"TRANSITION"},_t.USERDEFINED={type:3,value:"USERDEFINED"},_t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeFittingTypeEnum=_t;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 Pt{}Pt.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},Pt.SHEET={type:3,value:"SHEET"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=Pt;class bt{}bt.CURVE3D={type:3,value:"CURVE3D"},bt.PCURVE_S1={type:3,value:"PCURVE_S1"},bt.PCURVE_S2={type:3,value:"PCURVE_S2"},e.IfcPreferredSurfaceCurveRepresentation=bt;class Rt{}Rt.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},Rt.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},Rt.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},Rt.CALIBRATION={type:3,value:"CALIBRATION"},Rt.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},Rt.SHUTDOWN={type:3,value:"SHUTDOWN"},Rt.STARTUP={type:3,value:"STARTUP"},Rt.USERDEFINED={type:3,value:"USERDEFINED"},Rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=Rt;class Dt{}Dt.CURVE={type:3,value:"CURVE"},Dt.AREA={type:3,value:"AREA"},e.IfcProfileTypeEnum=Dt;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 Nt{}Nt.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},Nt.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"},e.IfcProjectedOrTrueLengthEnum=Nt;class Ot{}Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectionElementTypeEnum=Ot;class xt{}xt.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},xt.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},xt.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},xt.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},xt.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},xt.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},xt.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPropertySetTemplateTypeEnum=xt;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 wt{}wt.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},wt.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},wt.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},wt.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},wt.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},wt.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},wt.VARISTOR={type:3,value:"VARISTOR"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=wt;class Mt{}Mt.CIRCULATOR={type:3,value:"CIRCULATOR"},Mt.ENDSUCTION={type:3,value:"ENDSUCTION"},Mt.SPLITCASE={type:3,value:"SPLITCASE"},Mt.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},Mt.SUMPPUMP={type:3,value:"SUMPPUMP"},Mt.VERTICALINLINE={type:3,value:"VERTICALINLINE"},Mt.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=Mt;class Bt{}Bt.HANDRAIL={type:3,value:"HANDRAIL"},Bt.GUARDRAIL={type:3,value:"GUARDRAIL"},Bt.BALUSTRADE={type:3,value:"BALUSTRADE"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=Bt;class Ft{}Ft.STRAIGHT={type:3,value:"STRAIGHT"},Ft.SPIRAL={type:3,value:"SPIRAL"},Ft.USERDEFINED={type:3,value:"USERDEFINED"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=Ft;class Lt{}Lt.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},Lt.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},Lt.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},Lt.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},Lt.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},Lt.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},Lt.USERDEFINED={type:3,value:"USERDEFINED"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=Lt;class Ut{}Ut.DAILY={type:3,value:"DAILY"},Ut.WEEKLY={type:3,value:"WEEKLY"},Ut.MONTHLY_BY_DAY_OF_MONTH={type:3,value:"MONTHLY_BY_DAY_OF_MONTH"},Ut.MONTHLY_BY_POSITION={type:3,value:"MONTHLY_BY_POSITION"},Ut.BY_DAY_COUNT={type:3,value:"BY_DAY_COUNT"},Ut.BY_WEEKDAY_COUNT={type:3,value:"BY_WEEKDAY_COUNT"},Ut.YEARLY_BY_DAY_OF_MONTH={type:3,value:"YEARLY_BY_DAY_OF_MONTH"},Ut.YEARLY_BY_POSITION={type:3,value:"YEARLY_BY_POSITION"},e.IfcRecurrenceTypeEnum=Ut;class Ht{}Ht.BLINN={type:3,value:"BLINN"},Ht.FLAT={type:3,value:"FLAT"},Ht.GLASS={type:3,value:"GLASS"},Ht.MATT={type:3,value:"MATT"},Ht.METAL={type:3,value:"METAL"},Ht.MIRROR={type:3,value:"MIRROR"},Ht.PHONG={type:3,value:"PHONG"},Ht.PLASTIC={type:3,value:"PLASTIC"},Ht.STRAUSS={type:3,value:"STRAUSS"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=Ht;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 kt{}kt.PLAIN={type:3,value:"PLAIN"},kt.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=kt;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 jt{}jt.USERDEFINED={type:3,value:"USERDEFINED"},jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingMeshTypeEnum=jt;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 Zt{}Zt.COSENSOR={type:3,value:"COSENSOR"},Zt.CO2SENSOR={type:3,value:"CO2SENSOR"},Zt.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},Zt.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},Zt.FIRESENSOR={type:3,value:"FIRESENSOR"},Zt.FLOWSENSOR={type:3,value:"FLOWSENSOR"},Zt.FROSTSENSOR={type:3,value:"FROSTSENSOR"},Zt.GASSENSOR={type:3,value:"GASSENSOR"},Zt.HEATSENSOR={type:3,value:"HEATSENSOR"},Zt.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},Zt.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},Zt.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},Zt.LEVELSENSOR={type:3,value:"LEVELSENSOR"},Zt.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},Zt.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},Zt.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},Zt.PHSENSOR={type:3,value:"PHSENSOR"},Zt.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},Zt.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},Zt.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},Zt.SMOKESENSOR={type:3,value:"SMOKESENSOR"},Zt.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},Zt.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},Zt.WINDSENSOR={type:3,value:"WINDSENSOR"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=Zt;class qt{}qt.START_START={type:3,value:"START_START"},qt.START_FINISH={type:3,value:"START_FINISH"},qt.FINISH_START={type:3,value:"FINISH_START"},qt.FINISH_FINISH={type:3,value:"FINISH_FINISH"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=qt;class Jt{}Jt.JALOUSIE={type:3,value:"JALOUSIE"},Jt.SHUTTER={type:3,value:"SHUTTER"},Jt.AWNING={type:3,value:"AWNING"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcShadingDeviceTypeEnum=Jt;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 is{}is.SPACE={type:3,value:"SPACE"},is.PARKING={type:3,value:"PARKING"},is.GFA={type:3,value:"GFA"},is.INTERNAL={type:3,value:"INTERNAL"},is.EXTERNAL={type:3,value:"EXTERNAL"},is.USERDEFINED={type:3,value:"USERDEFINED"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=is;class rs{}rs.CONSTRUCTION={type:3,value:"CONSTRUCTION"},rs.FIRESAFETY={type:3,value:"FIRESAFETY"},rs.LIGHTING={type:3,value:"LIGHTING"},rs.OCCUPANCY={type:3,value:"OCCUPANCY"},rs.SECURITY={type:3,value:"SECURITY"},rs.THERMAL={type:3,value:"THERMAL"},rs.TRANSPORT={type:3,value:"TRANSPORT"},rs.VENTILATION={type:3,value:"VENTILATION"},rs.USERDEFINED={type:3,value:"USERDEFINED"},rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpatialZoneTypeEnum=rs;class os{}os.BIRDCAGE={type:3,value:"BIRDCAGE"},os.COWL={type:3,value:"COWL"},os.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},os.USERDEFINED={type:3,value:"USERDEFINED"},os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=os;class ns{}ns.STRAIGHT={type:3,value:"STRAIGHT"},ns.WINDER={type:3,value:"WINDER"},ns.SPIRAL={type:3,value:"SPIRAL"},ns.CURVED={type:3,value:"CURVED"},ns.FREEFORM={type:3,value:"FREEFORM"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=ns;class as{}as.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},as.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},as.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},as.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},as.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},as.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},as.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},as.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},as.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},as.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},as.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},as.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},as.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},as.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},as.USERDEFINED={type:3,value:"USERDEFINED"},as.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=as;class ls{}ls.READWRITE={type:3,value:"READWRITE"},ls.READONLY={type:3,value:"READONLY"},ls.LOCKED={type:3,value:"LOCKED"},ls.READWRITELOCKED={type:3,value:"READWRITELOCKED"},ls.READONLYLOCKED={type:3,value:"READONLYLOCKED"},e.IfcStateEnum=ls;class hs{}hs.CONST={type:3,value:"CONST"},hs.LINEAR={type:3,value:"LINEAR"},hs.POLYGONAL={type:3,value:"POLYGONAL"},hs.EQUIDISTANT={type:3,value:"EQUIDISTANT"},hs.SINUS={type:3,value:"SINUS"},hs.PARABOLA={type:3,value:"PARABOLA"},hs.DISCRETE={type:3,value:"DISCRETE"},hs.USERDEFINED={type:3,value:"USERDEFINED"},hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveActivityTypeEnum=hs;class cs{}cs.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},cs.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},cs.CABLE={type:3,value:"CABLE"},cs.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},cs.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveMemberTypeEnum=cs;class us{}us.CONST={type:3,value:"CONST"},us.BILINEAR={type:3,value:"BILINEAR"},us.DISCRETE={type:3,value:"DISCRETE"},us.ISOCONTOUR={type:3,value:"ISOCONTOUR"},us.USERDEFINED={type:3,value:"USERDEFINED"},us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceActivityTypeEnum=us;class As{}As.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},As.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},As.SHELL={type:3,value:"SHELL"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceMemberTypeEnum=As;class ps{}ps.PURCHASE={type:3,value:"PURCHASE"},ps.WORK={type:3,value:"WORK"},ps.USERDEFINED={type:3,value:"USERDEFINED"},ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSubContractResourceTypeEnum=ps;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 ms{}ms.CONTACTOR={type:3,value:"CONTACTOR"},ms.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},ms.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},ms.KEYPAD={type:3,value:"KEYPAD"},ms.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},ms.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},ms.STARTER={type:3,value:"STARTER"},ms.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},ms.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},ms.USERDEFINED={type:3,value:"USERDEFINED"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=ms;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 Es{}Es.BASIN={type:3,value:"BASIN"},Es.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},Es.EXPANSION={type:3,value:"EXPANSION"},Es.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},Es.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},Es.STORAGE={type:3,value:"STORAGE"},Es.VESSEL={type:3,value:"VESSEL"},Es.USERDEFINED={type:3,value:"USERDEFINED"},Es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=Es;class gs{}gs.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},gs.WORKTIME={type:3,value:"WORKTIME"},gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskDurationEnum=gs;class vs{}vs.ATTENDANCE={type:3,value:"ATTENDANCE"},vs.CONSTRUCTION={type:3,value:"CONSTRUCTION"},vs.DEMOLITION={type:3,value:"DEMOLITION"},vs.DISMANTLE={type:3,value:"DISMANTLE"},vs.DISPOSAL={type:3,value:"DISPOSAL"},vs.INSTALLATION={type:3,value:"INSTALLATION"},vs.LOGISTIC={type:3,value:"LOGISTIC"},vs.MAINTENANCE={type:3,value:"MAINTENANCE"},vs.MOVE={type:3,value:"MOVE"},vs.OPERATION={type:3,value:"OPERATION"},vs.REMOVAL={type:3,value:"REMOVAL"},vs.RENOVATION={type:3,value:"RENOVATION"},vs.USERDEFINED={type:3,value:"USERDEFINED"},vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskTypeEnum=vs;class Is{}Is.COUPLER={type:3,value:"COUPLER"},Is.FIXED_END={type:3,value:"FIXED_END"},Is.TENSIONING_END={type:3,value:"TENSIONING_END"},Is.USERDEFINED={type:3,value:"USERDEFINED"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonAnchorTypeEnum=Is;class _s{}_s.BAR={type:3,value:"BAR"},_s.COATED={type:3,value:"COATED"},_s.STRAND={type:3,value:"STRAND"},_s.WIRE={type:3,value:"WIRE"},_s.USERDEFINED={type:3,value:"USERDEFINED"},_s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=_s;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 Ps{}Ps.CONTINUOUS={type:3,value:"CONTINUOUS"},Ps.DISCRETE={type:3,value:"DISCRETE"},Ps.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},Ps.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},Ps.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},Ps.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},Ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=Ps;class bs{}bs.CURRENT={type:3,value:"CURRENT"},bs.FREQUENCY={type:3,value:"FREQUENCY"},bs.INVERTER={type:3,value:"INVERTER"},bs.RECTIFIER={type:3,value:"RECTIFIER"},bs.VOLTAGE={type:3,value:"VOLTAGE"},bs.USERDEFINED={type:3,value:"USERDEFINED"},bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=bs;class Rs{}Rs.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},Rs.CONTINUOUS={type:3,value:"CONTINUOUS"},Rs.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},Rs.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},e.IfcTransitionCode=Rs;class Ds{}Ds.ELEVATOR={type:3,value:"ELEVATOR"},Ds.ESCALATOR={type:3,value:"ESCALATOR"},Ds.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},Ds.CRANEWAY={type:3,value:"CRANEWAY"},Ds.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},Ds.USERDEFINED={type:3,value:"USERDEFINED"},Ds.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=Ds;class Cs{}Cs.CARTESIAN={type:3,value:"CARTESIAN"},Cs.PARAMETER={type:3,value:"PARAMETER"},Cs.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=Cs;class Ns{}Ns.FINNED={type:3,value:"FINNED"},Ns.USERDEFINED={type:3,value:"USERDEFINED"},Ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=Ns;class Os{}Os.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},Os.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},Os.AREAUNIT={type:3,value:"AREAUNIT"},Os.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},Os.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},Os.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},Os.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},Os.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},Os.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},Os.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},Os.ENERGYUNIT={type:3,value:"ENERGYUNIT"},Os.FORCEUNIT={type:3,value:"FORCEUNIT"},Os.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},Os.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},Os.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},Os.LENGTHUNIT={type:3,value:"LENGTHUNIT"},Os.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},Os.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},Os.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},Os.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},Os.MASSUNIT={type:3,value:"MASSUNIT"},Os.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},Os.POWERUNIT={type:3,value:"POWERUNIT"},Os.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},Os.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},Os.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},Os.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},Os.TIMEUNIT={type:3,value:"TIMEUNIT"},Os.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},Os.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=Os;class xs{}xs.ALARMPANEL={type:3,value:"ALARMPANEL"},xs.CONTROLPANEL={type:3,value:"CONTROLPANEL"},xs.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},xs.INDICATORPANEL={type:3,value:"INDICATORPANEL"},xs.MIMICPANEL={type:3,value:"MIMICPANEL"},xs.HUMIDISTAT={type:3,value:"HUMIDISTAT"},xs.THERMOSTAT={type:3,value:"THERMOSTAT"},xs.WEATHERSTATION={type:3,value:"WEATHERSTATION"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryControlElementTypeEnum=xs;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 ws{}ws.AIRRELEASE={type:3,value:"AIRRELEASE"},ws.ANTIVACUUM={type:3,value:"ANTIVACUUM"},ws.CHANGEOVER={type:3,value:"CHANGEOVER"},ws.CHECK={type:3,value:"CHECK"},ws.COMMISSIONING={type:3,value:"COMMISSIONING"},ws.DIVERTING={type:3,value:"DIVERTING"},ws.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},ws.DOUBLECHECK={type:3,value:"DOUBLECHECK"},ws.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},ws.FAUCET={type:3,value:"FAUCET"},ws.FLUSHING={type:3,value:"FLUSHING"},ws.GASCOCK={type:3,value:"GASCOCK"},ws.GASTAP={type:3,value:"GASTAP"},ws.ISOLATING={type:3,value:"ISOLATING"},ws.MIXING={type:3,value:"MIXING"},ws.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},ws.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},ws.REGULATING={type:3,value:"REGULATING"},ws.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},ws.STEAMTRAP={type:3,value:"STEAMTRAP"},ws.STOPCOCK={type:3,value:"STOPCOCK"},ws.USERDEFINED={type:3,value:"USERDEFINED"},ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=ws;class Ms{}Ms.COMPRESSION={type:3,value:"COMPRESSION"},Ms.SPRING={type:3,value:"SPRING"},Ms.USERDEFINED={type:3,value:"USERDEFINED"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=Ms;class Bs{}Bs.CUTOUT={type:3,value:"CUTOUT"},Bs.NOTCH={type:3,value:"NOTCH"},Bs.HOLE={type:3,value:"HOLE"},Bs.MITER={type:3,value:"MITER"},Bs.CHAMFER={type:3,value:"CHAMFER"},Bs.EDGE={type:3,value:"EDGE"},Bs.USERDEFINED={type:3,value:"USERDEFINED"},Bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVoidingFeatureTypeEnum=Bs;class Fs{}Fs.MOVABLE={type:3,value:"MOVABLE"},Fs.PARAPET={type:3,value:"PARAPET"},Fs.PARTITIONING={type:3,value:"PARTITIONING"},Fs.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},Fs.SHEAR={type:3,value:"SHEAR"},Fs.SOLIDWALL={type:3,value:"SOLIDWALL"},Fs.STANDARD={type:3,value:"STANDARD"},Fs.POLYGONAL={type:3,value:"POLYGONAL"},Fs.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},Fs.USERDEFINED={type:3,value:"USERDEFINED"},Fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=Fs;class Ls{}Ls.FLOORTRAP={type:3,value:"FLOORTRAP"},Ls.FLOORWASTE={type:3,value:"FLOORWASTE"},Ls.GULLYSUMP={type:3,value:"GULLYSUMP"},Ls.GULLYTRAP={type:3,value:"GULLYTRAP"},Ls.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Ls.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Ls.WASTETRAP={type:3,value:"WASTETRAP"},Ls.USERDEFINED={type:3,value:"USERDEFINED"},Ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Ls;class Us{}Us.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},Us.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},Us.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},Us.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},Us.TOPHUNG={type:3,value:"TOPHUNG"},Us.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},Us.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},Us.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},Us.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},Us.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},Us.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},Us.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},Us.OTHEROPERATION={type:3,value:"OTHEROPERATION"},Us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=Us;class Hs{}Hs.LEFT={type:3,value:"LEFT"},Hs.MIDDLE={type:3,value:"MIDDLE"},Hs.RIGHT={type:3,value:"RIGHT"},Hs.BOTTOM={type:3,value:"BOTTOM"},Hs.TOP={type:3,value:"TOP"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=Hs;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 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.IfcWindowStyleOperationEnum=ks;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 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.IfcWindowTypePartitioningEnum=js;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 vv{constructor(e,t,s,i){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=i,this.type=3630933823}};class Ks extends vv{constructor(e,t,s,i){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.type=618182010}}e.IfcAddress=Ks;e.IfcApplication=class extends vv{constructor(e,t,s,i,r){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=i,this.ApplicationIdentifier=r,this.type=639542469}};class Ys extends vv{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.Category=a,this.Condition=l,this.ArithmeticOperator=h,this.Components=c,this.type=411424972}}e.IfcAppliedValue=Ys;e.IfcApproval=class extends vv{constructor(e,t,s,i,r,o,n,a,l,h){super(e),this.Identifier=t,this.Name=s,this.Description=i,this.TimeOfApproval=r,this.Status=o,this.Level=n,this.Qualifier=a,this.RequestingApproval=l,this.GivingApproval=h,this.type=130549933}};class Xs extends vv{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=Xs;e.IfcBoundaryEdgeCondition=class extends Xs{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TranslationalStiffnessByLengthX=s,this.TranslationalStiffnessByLengthY=i,this.TranslationalStiffnessByLengthZ=r,this.RotationalStiffnessByLengthX=o,this.RotationalStiffnessByLengthY=n,this.RotationalStiffnessByLengthZ=a,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends Xs{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.TranslationalStiffnessByAreaX=s,this.TranslationalStiffnessByAreaY=i,this.TranslationalStiffnessByAreaZ=r,this.type=3367102660}};class Zs extends Xs{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=i,this.TranslationalStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.type=1387855156}}e.IfcBoundaryNodeCondition=Zs;e.IfcBoundaryNodeConditionWarping=class extends Zs{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=i,this.TranslationalStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.WarpingStiffness=l,this.type=2069777674}};class qs extends vv{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=qs;class Js extends qs{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=Js;e.IfcConnectionSurfaceGeometry=class extends qs{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};e.IfcConnectionVolumeGeometry=class extends qs{constructor(e,t,s){super(e),this.VolumeOnRelatingElement=t,this.VolumeOnRelatedElement=s,this.type=775493141}};class $s extends vv{constructor(e,t,s,i,r,o,n,a){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.type=1959218052}}e.IfcConstraint=$s;class ei extends vv{constructor(e,t,s){super(e),this.SourceCRS=t,this.TargetCRS=s,this.type=1785450214}}e.IfcCoordinateOperation=ei;class ti extends vv{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.GeodeticDatum=i,this.VerticalDatum=r,this.type=1466758467}}e.IfcCoordinateReferenceSystem=ti;e.IfcCostValue=class extends Ys{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h,c),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.Category=a,this.Condition=l,this.ArithmeticOperator=h,this.Components=c,this.type=602808272}};e.IfcDerivedUnit=class extends vv{constructor(e,t,s,i){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=i,this.type=1765591967}};e.IfcDerivedUnitElement=class extends vv{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends vv{constructor(e,t,s,i,r,o,n,a){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=i,this.ElectricCurrentExponent=r,this.ThermodynamicTemperatureExponent=o,this.AmountOfSubstanceExponent=n,this.LuminousIntensityExponent=a,this.type=2949456006}};class si extends vv{constructor(e){super(e),this.type=4294318154}}e.IfcExternalInformation=si;class ii extends vv{constructor(e,t,s,i){super(e),this.Location=t,this.Identification=s,this.Name=i,this.type=3200245327}}e.IfcExternalReference=ii;e.IfcExternallyDefinedHatchStyle=class extends ii{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends ii{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=1040185647}};e.IfcExternallyDefinedTextFont=class extends ii{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=3548104201}};e.IfcGridAxis=class extends vv{constructor(e,t,s,i){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=i,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends vv{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends si{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Version=s,this.Publisher=i,this.VersionDate=r,this.Location=o,this.Description=n,this.type=2655187982}};e.IfcLibraryReference=class extends ii{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.Description=r,this.Language=o,this.ReferencedLibrary=n,this.type=3452421091}};e.IfcLightDistributionData=class extends vv{constructor(e,t,s,i){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=i,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends vv{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcMapConversion=class extends ei{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s),this.SourceCRS=t,this.TargetCRS=s,this.Eastings=i,this.Northings=r,this.OrthogonalHeight=o,this.XAxisAbscissa=n,this.XAxisOrdinate=a,this.Scale=l,this.type=3057273783}};e.IfcMaterialClassificationRelationship=class extends vv{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};class ri extends vv{constructor(e){super(e),this.type=760658860}}e.IfcMaterialDefinition=ri;class oi extends ri{constructor(e,t,s,i,r,o,n,a){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.Name=r,this.Description=o,this.Category=n,this.Priority=a,this.type=248100487}}e.IfcMaterialLayer=oi;e.IfcMaterialLayerSet=class extends ri{constructor(e,t,s,i){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.Description=i,this.type=3303938423}};e.IfcMaterialLayerWithOffsets=class extends oi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.Name=r,this.Description=o,this.Category=n,this.Priority=a,this.OffsetDirection=l,this.OffsetValues=h,this.type=1847252529}};e.IfcMaterialList=class extends vv{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class ni extends ri{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Description=s,this.Material=i,this.Profile=r,this.Priority=o,this.Category=n,this.type=2235152071}}e.IfcMaterialProfile=ni;e.IfcMaterialProfileSet=class extends ri{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.MaterialProfiles=i,this.CompositeProfile=r,this.type=164193824}};e.IfcMaterialProfileWithOffsets=class extends ni{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.Name=t,this.Description=s,this.Material=i,this.Profile=r,this.Priority=o,this.Category=n,this.OffsetValues=a,this.type=552965576}};class ai extends vv{constructor(e){super(e),this.type=1507914824}}e.IfcMaterialUsageDefinition=ai;e.IfcMeasureWithUnit=class extends vv{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};e.IfcMetric=class extends $s{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.Benchmark=l,this.ValueSource=h,this.DataValue=c,this.ReferencePath=u,this.type=3368373690}};e.IfcMonetaryUnit=class extends vv{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class li extends vv{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=li;class hi extends vv{constructor(e){super(e),this.type=3701648758}}e.IfcObjectPlacement=hi;e.IfcObjective=class extends $s{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.BenchmarkValues=l,this.LogicalAggregator=h,this.ObjectiveQualifier=c,this.UserDefinedQualifier=u,this.type=2251480897}};e.IfcOrganization=class extends vv{constructor(e,t,s,i,r,o){super(e),this.Identification=t,this.Name=s,this.Description=i,this.Roles=r,this.Addresses=o,this.type=4251960020}};e.IfcOwnerHistory=class extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=i,this.ChangeAction=r,this.LastModifiedDate=o,this.LastModifyingUser=n,this.LastModifyingApplication=a,this.CreationDate=l,this.type=1207048766}};e.IfcPerson=class extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Identification=t,this.FamilyName=s,this.GivenName=i,this.MiddleNames=r,this.PrefixTitles=o,this.SuffixTitles=n,this.Roles=a,this.Addresses=l,this.type=2077209135}};e.IfcPersonAndOrganization=class extends vv{constructor(e,t,s,i){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=i,this.type=101040310}};class ci extends vv{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=ci;class ui extends ci{constructor(e,t,s,i){super(e,t,s),this.Name=t,this.Description=s,this.Unit=i,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=ui;e.IfcPostalAddress=class extends Ks{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.InternalLocation=r,this.AddressLines=o,this.PostalBox=n,this.Town=a,this.Region=l,this.PostalCode=h,this.Country=c,this.type=3355820592}};class Ai extends vv{constructor(e){super(e),this.type=677532197}}e.IfcPresentationItem=Ai;class pi extends vv{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.type=2022622350}}e.IfcPresentationLayerAssignment=pi;e.IfcPresentationLayerWithStyle=class extends pi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.LayerOn=o,this.LayerFrozen=n,this.LayerBlocked=a,this.LayerStyles=l,this.type=1304840413}};class di extends vv{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=di;e.IfcPresentationStyleAssignment=class extends vv{constructor(e,t){super(e),this.Styles=t,this.type=2417041796}};class fi extends vv{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Representations=i,this.type=2095639259}}e.IfcProductRepresentation=fi;class mi extends vv{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=mi;e.IfcProjectedCRS=class extends ti{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.Name=t,this.Description=s,this.GeodeticDatum=i,this.VerticalDatum=r,this.MapProjection=o,this.MapZone=n,this.MapUnit=a,this.type=3843373140}};class yi extends vv{constructor(e){super(e),this.type=986844984}}e.IfcPropertyAbstraction=yi;e.IfcPropertyEnumeration=class extends yi{constructor(e,t,s,i){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=i,this.type=3710013099}};e.IfcQuantityArea=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.AreaValue=r,this.Formula=o,this.type=2044713172}};e.IfcQuantityCount=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.CountValue=r,this.Formula=o,this.type=2093928680}};e.IfcQuantityLength=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.LengthValue=r,this.Formula=o,this.type=931644368}};e.IfcQuantityTime=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.TimeValue=r,this.Formula=o,this.type=3252649465}};e.IfcQuantityVolume=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.VolumeValue=r,this.Formula=o,this.type=2405470396}};e.IfcQuantityWeight=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.WeightValue=r,this.Formula=o,this.type=825690147}};e.IfcRecurrencePattern=class extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.RecurrenceType=t,this.DayComponent=s,this.WeekdayComponent=i,this.MonthComponent=r,this.Position=o,this.Interval=n,this.Occurrences=a,this.TimePeriods=l,this.type=3915482550}};e.IfcReference=class extends vv{constructor(e,t,s,i,r,o){super(e),this.TypeIdentifier=t,this.AttributeIdentifier=s,this.InstanceName=i,this.ListPositions=r,this.InnerReference=o,this.type=2433181523}};class Ei extends vv{constructor(e,t,s,i,r){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1076942058}}e.IfcRepresentation=Ei;class gi extends vv{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=gi;class vi extends vv{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=vi;e.IfcRepresentationMap=class extends vv{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};class Ii extends vv{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2439245199}}e.IfcResourceLevelRelationship=Ii;class _i extends vv{constructor(e,t,s,i,r){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2341007311}}e.IfcRoot=_i;e.IfcSIUnit=class extends li{constructor(e,t,s,i){super(e,new gv(0),t),this.UnitType=t,this.Prefix=s,this.Name=i,this.type=448429030}};class Ti extends vv{constructor(e,t,s,i){super(e),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.type=1054537805}}e.IfcSchedulingTime=Ti;e.IfcShapeAspect=class extends vv{constructor(e,t,s,i,r,o){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=i,this.ProductDefinitional=r,this.PartOfProductDefinitionShape=o,this.type=867548509}};class Pi extends Ei{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3982875396}}e.IfcShapeModel=Pi;e.IfcShapeRepresentation=class extends Pi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=4240577450}};class bi extends vv{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=bi;class Ri extends vv{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=Ri;e.IfcStructuralLoadConfiguration=class extends Ri{constructor(e,t,s,i){super(e,t),this.Name=t,this.Values=s,this.Locations=i,this.type=3478079324}};class Di extends Ri{constructor(e,t){super(e,t),this.Name=t,this.type=609421318}}e.IfcStructuralLoadOrResult=Di;class Ci extends Di{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=Ci;e.IfcStructuralLoadTemperature=class extends Ci{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.DeltaTConstant=s,this.DeltaTY=i,this.DeltaTZ=r,this.type=3408363356}};class Ni extends Ei{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=2830218821}}e.IfcStyleModel=Ni;e.IfcStyledItem=class extends vi{constructor(e,t,s,i){super(e),this.Item=t,this.Styles=s,this.Name=i,this.type=3958052878}};e.IfcStyledRepresentation=class extends Ni{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3049322572}};e.IfcSurfaceReinforcementArea=class extends Di{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SurfaceReinforcement1=s,this.SurfaceReinforcement2=i,this.ShearReinforcement=r,this.type=2934153892}};e.IfcSurfaceStyle=class extends di{constructor(e,t,s,i){super(e,t),this.Name=t,this.Side=s,this.Styles=i,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends Ai{constructor(e,t,s,i,r){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=i,this.ReflectanceColour=r,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends Ai{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class Oi extends Ai{constructor(e,t,s){super(e),this.SurfaceColour=t,this.Transparency=s,this.type=846575682}}e.IfcSurfaceStyleShading=Oi;e.IfcSurfaceStyleWithTextures=class extends Ai{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class xi extends Ai{constructor(e,t,s,i,r,o){super(e),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.type=626085974}}e.IfcSurfaceTexture=xi;e.IfcTable=class extends vv{constructor(e,t,s,i){super(e),this.Name=t,this.Rows=s,this.Columns=i,this.type=985171141}};e.IfcTableColumn=class extends vv{constructor(e,t,s,i,r,o){super(e),this.Identifier=t,this.Name=s,this.Description=i,this.Unit=r,this.ReferencePath=o,this.type=2043862942}};e.IfcTableRow=class extends vv{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};class Si extends Ti{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.DurationType=r,this.ScheduleDuration=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.EarlyStart=l,this.EarlyFinish=h,this.LateStart=c,this.LateFinish=u,this.FreeFloat=A,this.TotalFloat=p,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=m,this.ActualStart=y,this.ActualFinish=E,this.RemainingTime=g,this.Completion=v,this.type=1549132990}}e.IfcTaskTime=Si;e.IfcTaskTimeRecurring=class extends Si{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.DurationType=r,this.ScheduleDuration=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.EarlyStart=l,this.EarlyFinish=h,this.LateStart=c,this.LateFinish=u,this.FreeFloat=A,this.TotalFloat=p,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=m,this.ActualStart=y,this.ActualFinish=E,this.RemainingTime=g,this.Completion=v,this.Recurrence=I,this.type=2771591690}};e.IfcTelecomAddress=class extends Ks{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.TelephoneNumbers=r,this.FacsimileNumbers=o,this.PagerNumber=n,this.ElectronicMailAddresses=a,this.WWWHomePageURL=l,this.MessagingIDs=h,this.type=912023232}};e.IfcTextStyle=class extends di{constructor(e,t,s,i,r,o){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=i,this.TextFontStyle=r,this.ModelOrDraughting=o,this.type=1447204868}};e.IfcTextStyleForDefinedFont=class extends Ai{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends Ai{constructor(e,t,s,i,r,o,n,a){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=i,this.LetterSpacing=r,this.WordSpacing=o,this.TextTransform=n,this.LineHeight=a,this.type=1640371178}};class wi extends Ai{constructor(e,t){super(e),this.Maps=t,this.type=280115917}}e.IfcTextureCoordinate=wi;e.IfcTextureCoordinateGenerator=class extends wi{constructor(e,t,s,i){super(e,t),this.Maps=t,this.Mode=s,this.Parameter=i,this.type=1742049831}};e.IfcTextureMap=class extends wi{constructor(e,t,s,i){super(e,t),this.Maps=t,this.Vertices=s,this.MappedTo=i,this.type=2552916305}};e.IfcTextureVertex=class extends Ai{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcTextureVertexList=class extends Ai{constructor(e,t){super(e),this.TexCoordsList=t,this.type=3611470254}};e.IfcTimePeriod=class extends vv{constructor(e,t,s){super(e),this.StartTime=t,this.EndTime=s,this.type=1199560280}};class Mi extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.type=3101149627}}e.IfcTimeSeries=Mi;e.IfcTimeSeriesValue=class extends vv{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Bi extends vi{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Bi;e.IfcTopologyRepresentation=class extends Pi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1735638870}};e.IfcUnitAssignment=class extends vv{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class Fi extends Bi{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=Fi;e.IfcVertexPoint=class extends Fi{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends vv{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWorkTime=class extends Ti{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.RecurrencePattern=r,this.Start=o,this.Finish=n,this.type=1236880293}};e.IfcApprovalRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingApproval=i,this.RelatedApprovals=r,this.type=3869604511}};class Li extends mi{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Li;class Ui extends mi{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Ui;e.IfcArbitraryProfileDefWithVoids=class extends Li{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.InnerCurves=r,this.type=2705031697}};e.IfcBlobTexture=class extends xi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.RasterFormat=n,this.RasterCode=a,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Ui{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.Thickness=r,this.type=3150382593}};e.IfcClassification=class extends si{constructor(e,t,s,i,r,o,n,a){super(e),this.Source=t,this.Edition=s,this.EditionDate=i,this.Name=r,this.Description=o,this.Location=n,this.ReferenceTokens=a,this.type=747523909}};e.IfcClassificationReference=class extends ii{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.ReferencedSource=r,this.Description=o,this.Sort=n,this.type=647927063}};e.IfcColourRgbList=class extends Ai{constructor(e,t){super(e),this.ColourList=t,this.type=3285139300}};class Hi extends Ai{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=Hi;e.IfcCompositeProfileDef=class extends mi{constructor(e,t,s,i,r){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=i,this.Label=r,this.type=1485152156}};class Gi extends Bi{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=Gi;e.IfcConnectionCurveGeometry=class extends qs{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends Js{constructor(e,t,s,i,r,o){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=i,this.EccentricityInY=r,this.EccentricityInZ=o,this.type=45288368}};e.IfcContextDependentUnit=class extends li{constructor(e,t,s,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.type=3050246964}};class ki extends li{constructor(e,t,s,i,r){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.type=2889183280}}e.IfcConversionBasedUnit=ki;e.IfcConversionBasedUnitWithOffset=class extends ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.ConversionOffset=o,this.type=2713554722}};e.IfcCurrencyRelationship=class extends Ii{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMonetaryUnit=i,this.RelatedMonetaryUnit=r,this.ExchangeRate=o,this.RateDateTime=n,this.RateSource=a,this.type=539742890}};e.IfcCurveStyle=class extends di{constructor(e,t,s,i,r,o){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=i,this.CurveColour=r,this.ModelOrDraughting=o,this.type=3800577675}};e.IfcCurveStyleFont=class extends Ai{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends Ai{constructor(e,t,s,i){super(e),this.Name=t,this.CurveFont=s,this.CurveFontScaling=i,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends Ai{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};class Vi extends mi{constructor(e,t,s,i,r,o){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Operator=r,this.Label=o,this.type=3632507154}}e.IfcDerivedProfileDef=Vi;e.IfcDocumentInformation=class extends si{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e),this.Identification=t,this.Name=s,this.Description=i,this.Location=r,this.Purpose=o,this.IntendedUse=n,this.Scope=a,this.Revision=l,this.DocumentOwner=h,this.Editors=c,this.CreationTime=u,this.LastRevisionTime=A,this.ElectronicFormat=p,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=m,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends Ii{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.RelatingDocument=i,this.RelatedDocuments=r,this.RelationshipType=o,this.type=770865208}};e.IfcDocumentReference=class extends ii{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.Description=r,this.ReferencedDocument=o,this.type=3732053477}};class ji extends Bi{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=ji;e.IfcEdgeCurve=class extends ji{constructor(e,t,s,i,r){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=i,this.SameSense=r,this.type=476780140}};e.IfcEventTime=class extends Ti{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.ActualDate=r,this.EarlyDate=o,this.LateDate=n,this.ScheduleDate=a,this.type=211053100}};class Qi extends yi{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Properties=i,this.type=297599258}}e.IfcExtendedProperties=Qi;e.IfcExternalReferenceRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingReference=i,this.RelatedResourceObjects=r,this.type=1437805879}};class Wi extends Bi{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Wi;class zi extends Bi{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=zi;e.IfcFaceOuterBound=class extends zi{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};class Ki extends Wi{constructor(e,t,s,i){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3008276851}}e.IfcFaceSurface=Ki;e.IfcFailureConnectionCondition=class extends bi{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=i,this.TensionFailureZ=r,this.CompressionFailureX=o,this.CompressionFailureY=n,this.CompressionFailureZ=a,this.type=4219587988}};e.IfcFillAreaStyle=class extends di{constructor(e,t,s,i){super(e,t),this.Name=t,this.FillStyles=s,this.ModelorDraughting=i,this.type=738692330}};class Yi extends gi{constructor(e,t,s,i,r,o,n){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=i,this.Precision=r,this.WorldCoordinateSystem=o,this.TrueNorth=n,this.type=3448662350}}e.IfcGeometricRepresentationContext=Yi;class Xi extends vi{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=Xi;e.IfcGeometricRepresentationSubContext=class extends Yi{constructor(e,s,i,r,o,n,a){super(e,s,i,new t(0),null,new gv(0),null),this.ContextIdentifier=s,this.ContextType=i,this.ParentContext=r,this.TargetScale=o,this.TargetView=n,this.UserDefinedTargetView=a,this.type=4142052618}};class Zi extends Xi{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=Zi;e.IfcGridPlacement=class extends hi{constructor(e,t,s){super(e),this.PlacementLocation=t,this.PlacementRefDirection=s,this.type=178086475}};class qi extends Xi{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=qi;e.IfcImageTexture=class extends xi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.URLReference=n,this.type=3905492369}};e.IfcIndexedColourMap=class extends Ai{constructor(e,t,s,i,r){super(e),this.MappedTo=t,this.Opacity=s,this.Colours=i,this.ColourIndex=r,this.type=3570813810}};class Ji extends wi{constructor(e,t,s,i){super(e,t),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.type=1437953363}}e.IfcIndexedTextureMap=Ji;e.IfcIndexedTriangleTextureMap=class extends Ji{constructor(e,t,s,i,r){super(e,t,s,i),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.TexCoordIndex=r,this.type=2133299955}};e.IfcIrregularTimeSeries=class extends Mi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.Values=h,this.type=3741457305}};e.IfcLagTime=class extends Ti{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.LagValue=r,this.DurationType=o,this.type=1585845231}};class $i extends Xi{constructor(e,t,s,i,r){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=1402838566}}e.IfcLightSource=$i;e.IfcLightSourceAmbient=class extends $i{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=125510826}};e.IfcLightSourceDirectional=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Orientation=o,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends $i{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.ColourAppearance=n,this.ColourTemperature=a,this.LuminousFlux=l,this.LightEmissionSource=h,this.LightDistributionDataSource=c,this.type=4266656042}};class er extends $i{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.type=1520743889}}e.IfcLightSourcePositional=er;e.IfcLightSourceSpot=class extends er{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.Orientation=c,this.ConcentrationExponent=u,this.SpreadAngle=A,this.BeamWidthAngle=p,this.type=3422422726}};e.IfcLocalPlacement=class extends hi{constructor(e,t,s){super(e),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class tr extends Bi{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=tr;e.IfcMappedItem=class extends vi{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterial=class extends ri{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Category=i,this.type=1838606355}};e.IfcMaterialConstituent=class extends ri{constructor(e,t,s,i,r,o){super(e),this.Name=t,this.Description=s,this.Material=i,this.Fraction=r,this.Category=o,this.type=3708119e3}};e.IfcMaterialConstituentSet=class extends ri{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.MaterialConstituents=i,this.type=2852063980}};e.IfcMaterialDefinitionRepresentation=class extends fi{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.RepresentedMaterial=r,this.type=2022407955}};e.IfcMaterialLayerSetUsage=class extends ai{constructor(e,t,s,i,r,o){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=i,this.OffsetFromReferenceLine=r,this.ReferenceExtent=o,this.type=1303795690}};class sr extends ai{constructor(e,t,s,i){super(e),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=i,this.type=3079605661}}e.IfcMaterialProfileSetUsage=sr;e.IfcMaterialProfileSetUsageTapering=class extends sr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=i,this.ForProfileEndSet=r,this.CardinalEndPoint=o,this.type=3404854881}};e.IfcMaterialProperties=class extends Qi{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Properties=i,this.Material=r,this.type=3265635763}};e.IfcMaterialRelationship=class extends Ii{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMaterial=i,this.RelatedMaterials=r,this.Expression=o,this.type=853536259}};e.IfcMirroredProfileDef=class extends Vi{constructor(e,t,s,i,r){super(e,t,s,i,new gv(0),r),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Label=r,this.type=2998442950}};class ir extends _i{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=219451334}}e.IfcObjectDefinition=ir;e.IfcOpenShell=class extends Gi{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrganizationRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingOrganization=i,this.RelatedOrganizations=r,this.type=1411181986}};e.IfcOrientedEdge=class extends ji{constructor(e,t,s){super(e,new gv(0),new gv(0)),this.EdgeElement=t,this.Orientation=s,this.type=1029017970}};class rr extends mi{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.type=2529465313}}e.IfcParameterizedProfileDef=rr;e.IfcPath=class extends Bi{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends ci{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=i,this.Discrimination=r,this.Quality=o,this.Usage=n,this.type=3021840470}};e.IfcPixelTexture=class extends xi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.Width=n,this.Height=a,this.ColourComponents=l,this.Pixel=h,this.type=597895409}};class or extends Xi{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=or;class nr extends Xi{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=nr;class ar extends Xi{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=ar;e.IfcPointOnCurve=class extends ar{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends ar{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=i,this.type=1423911732}};e.IfcPolyLoop=class extends tr{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends qi{constructor(e,t,s,i,r){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=i,this.PolygonalBoundary=r,this.type=2775532180}};class lr extends Ai{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=lr;class hr extends yi{constructor(e){super(e),this.type=3778827333}}e.IfcPreDefinedProperties=hr;class cr extends lr{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=cr;e.IfcProductDefinitionShape=class extends fi{constructor(e,t,s,i){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.type=673634403}};e.IfcProfileProperties=class extends Qi{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Properties=i,this.ProfileDefinition=r,this.type=2802850158}};class ur extends yi{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2598011224}}e.IfcProperty=ur;class Ar extends _i{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1680319473}}e.IfcPropertyDefinition=Ar;e.IfcPropertyDependencyRelationship=class extends Ii{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.DependingProperty=i,this.DependantProperty=r,this.Expression=o,this.type=148025276}};class pr extends Ar{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3357820518}}e.IfcPropertySetDefinition=pr;class dr extends Ar{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1482703590}}e.IfcPropertyTemplateDefinition=dr;class fr extends pr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2090586900}}e.IfcQuantitySet=fr;class mr extends rr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.type=3615266464}}e.IfcRectangleProfileDef=mr;e.IfcRegularTimeSeries=class extends Mi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.TimeStep=h,this.Values=c,this.type=3413951693}};e.IfcReinforcementBarProperties=class extends hr{constructor(e,t,s,i,r,o,n){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=i,this.EffectiveDepth=r,this.NominalBarDiameter=o,this.BarCount=n,this.type=1580146022}};class yr extends _i{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=478536968}}e.IfcRelationship=yr;e.IfcResourceApprovalRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatedResourceObjects=i,this.RelatingApproval=r,this.type=2943643501}};e.IfcResourceConstraintRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingConstraint=i,this.RelatedResourceObjects=r,this.type=1608871552}};e.IfcResourceTime=class extends Ti{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.ScheduleWork=r,this.ScheduleUsage=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.ScheduleContour=l,this.LevelingDelay=h,this.IsOverAllocated=c,this.StatusTime=u,this.ActualWork=A,this.ActualUsage=p,this.ActualStart=d,this.ActualFinish=f,this.RemainingWork=m,this.RemainingUsage=y,this.Completion=E,this.type=1042787934}};e.IfcRoundedRectangleProfileDef=class extends mr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.RoundingRadius=n,this.type=2778083089}};e.IfcSectionProperties=class extends hr{constructor(e,t,s,i){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=i,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends hr{constructor(e,t,s,i,r,o,n){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=i,this.ReinforcementRole=r,this.SectionDefinition=o,this.CrossSectionReinforcementDefinitions=n,this.type=4165799628}};e.IfcSectionedSpine=class extends Xi{constructor(e,t,s,i){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=i,this.type=1509187699}};e.IfcShellBasedSurfaceModel=class extends Xi{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};class Er extends ur{constructor(e,t,s){super(e,t,s),this.Name=t,this.Description=s,this.type=3692461612}}e.IfcSimpleProperty=Er;e.IfcSlippageConnectionCondition=class extends bi{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=i,this.SlippageZ=r,this.type=2609359061}};class gr extends Xi{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=gr;e.IfcStructuralLoadLinearForce=class extends Ci{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=i,this.LinearForceZ=r,this.LinearMomentX=o,this.LinearMomentY=n,this.LinearMomentZ=a,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends Ci{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=i,this.PlanarForceZ=r,this.type=2668620305}};class vr extends Ci{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=vr;e.IfcStructuralLoadSingleDisplacementDistortion=class extends vr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.Distortion=l,this.type=1973038258}};class Ir extends Ci{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.type=1597423693}}e.IfcStructuralLoadSingleForce=Ir;e.IfcStructuralLoadSingleForceWarping=class extends Ir{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.WarpingMoment=l,this.type=1190533807}};e.IfcSubedge=class extends ji{constructor(e,t,s,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=i,this.type=2233826070}};class _r extends Xi{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=_r;e.IfcSurfaceStyleRendering=class extends Oi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=i,this.TransmissionColour=r,this.DiffuseTransmissionColour=o,this.ReflectionColour=n,this.SpecularColour=a,this.SpecularHighlight=l,this.ReflectanceMethod=h,this.type=1878645084}};class Tr extends gr{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=Tr;class Pr extends gr{constructor(e,t,s,i,r,o){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.type=1260650574}}e.IfcSweptDiskSolid=Pr;e.IfcSweptDiskSolidPolygonal=class extends Pr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.FilletRadius=n,this.type=1096409881}};class br extends _r{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=br;e.IfcTShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.WebEdgeRadius=c,this.WebSlope=u,this.FlangeSlope=A,this.type=3071757647}};class Rr extends Xi{constructor(e){super(e),this.type=901063453}}e.IfcTessellatedItem=Rr;class Dr extends Xi{constructor(e,t,s,i){super(e),this.Literal=t,this.Placement=s,this.Path=i,this.type=4282788508}}e.IfcTextLiteral=Dr;e.IfcTextLiteralWithExtent=class extends Dr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Literal=t,this.Placement=s,this.Path=i,this.Extent=r,this.BoxAlignment=o,this.type=3124975700}};e.IfcTextStyleFontModel=class extends cr{constructor(e,t,s,i,r,o,n){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=i,this.FontVariant=r,this.FontWeight=o,this.FontSize=n,this.type=1983826977}};e.IfcTrapeziumProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomXDim=r,this.TopXDim=o,this.YDim=n,this.TopXOffset=a,this.type=2715220739}};class Cr extends ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.type=1628702193}}e.IfcTypeObject=Cr;class Nr extends Cr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.type=3736923433}}e.IfcTypeProcess=Nr;class Or extends Cr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.type=2347495698}}e.IfcTypeProduct=Or;class xr extends Cr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.type=3698973494}}e.IfcTypeResource=xr;e.IfcUShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.FlangeSlope=c,this.type=427810014}};e.IfcVector=class extends Xi{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends tr{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcWindowStyle=class extends Or{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ConstructionType=h,this.OperationType=c,this.ParameterTakesPrecedence=u,this.Sizeable=A,this.type=1299126871}};e.IfcZShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.type=2543172580}};e.IfcAdvancedFace=class extends Ki{constructor(e,t,s,i){super(e,t,s,i),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3406155212}};e.IfcAnnotationFillArea=class extends Xi{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAsymmetricIShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomFlangeWidth=r,this.OverallDepth=o,this.WebThickness=n,this.BottomFlangeThickness=a,this.BottomFlangeFilletRadius=l,this.TopFlangeWidth=h,this.TopFlangeThickness=c,this.TopFlangeFilletRadius=u,this.BottomFlangeEdgeRadius=A,this.BottomFlangeSlope=p,this.TopFlangeEdgeRadius=d,this.TopFlangeSlope=f,this.type=3207858831}};e.IfcAxis1Placement=class extends or{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends or{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends or{constructor(e,t,s,i){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=i,this.type=2740243338}};class Sr extends Xi{constructor(e,t,s,i){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=2736907675}}e.IfcBooleanResult=Sr;class wr extends _r{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=wr;e.IfcBoundingBox=class extends Xi{constructor(e,t,s,i,r){super(e),this.Corner=t,this.XDim=s,this.YDim=i,this.ZDim=r,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends qi{constructor(e,t,s,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=i,this.type=2713105998}};e.IfcCShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.WallThickness=n,this.Girth=a,this.InternalFilletRadius=l,this.type=2898889636}};e.IfcCartesianPoint=class extends ar{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Mr extends Xi{constructor(e){super(e),this.type=574549367}}e.IfcCartesianPointList=Mr;e.IfcCartesianPointList2D=class extends Mr{constructor(e,t){super(e),this.CoordList=t,this.type=1675464909}};e.IfcCartesianPointList3D=class extends Mr{constructor(e,t){super(e),this.CoordList=t,this.type=2059837836}};class Br extends Xi{constructor(e,t,s,i,r){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=59481748}}e.IfcCartesianTransformationOperator=Br;class Fr extends Br{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Fr;e.IfcCartesianTransformationOperator2DnonUniform=class extends Fr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Scale2=o,this.type=3486308946}};class Lr extends Br{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Lr;e.IfcCartesianTransformationOperator3DnonUniform=class extends Lr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.Scale2=n,this.Scale3=a,this.type=1416205885}};class Ur extends rr{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.type=1383045692}}e.IfcCircleProfileDef=Ur;e.IfcClosedShell=class extends Gi{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcColourRgb=class extends Hi{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.Red=s,this.Green=i,this.Blue=r,this.type=776857604}};e.IfcComplexProperty=class extends ur{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=i,this.HasProperties=r,this.type=2542286263}};class Hr extends Xi{constructor(e,t,s,i){super(e),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.type=2485617015}}e.IfcCompositeCurveSegment=Hr;class Gr extends xr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.type=2574617495}}e.IfcConstructionResourceType=Gr;class kr extends ir{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=3419103109}}e.IfcContext=kr;e.IfcCrewResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=1815067380}};class Vr extends Xi{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=Vr;e.IfcCsgSolid=class extends gr{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class jr extends Xi{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=jr;e.IfcCurveBoundedPlane=class extends wr{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=i,this.type=2827736869}};e.IfcCurveBoundedSurface=class extends wr{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.Boundaries=s,this.ImplicitOuter=i,this.type=2629017746}};e.IfcDirection=class extends Xi{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};e.IfcDoorStyle=class extends Or{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.OperationType=h,this.ConstructionType=c,this.ParameterTakesPrecedence=u,this.Sizeable=A,this.type=526551008}};e.IfcEdgeLoop=class extends tr{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends fr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.MethodOfMeasurement=o,this.Quantities=n,this.type=1883228015}};class Qr extends Or{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=339256511}}e.IfcElementType=Qr;class Wr extends _r{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=Wr;e.IfcEllipseProfileDef=class extends rr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.SemiAxis1=r,this.SemiAxis2=o,this.type=2835456948}};e.IfcEventType=class extends Nr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.EventTriggerType=u,this.UserDefinedEventTriggerType=A,this.type=4024345920}};class zr extends Tr{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=477187591}}e.IfcExtrudedAreaSolid=zr;e.IfcExtrudedAreaSolidTapered=class extends zr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.EndSweptArea=o,this.type=2804161546}};e.IfcFaceBasedSurfaceModel=class extends Xi{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends Xi{constructor(e,t,s,i,r,o){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=i,this.PatternStart=r,this.HatchLineAngle=o,this.type=374418227}};e.IfcFillAreaStyleTiles=class extends Xi{constructor(e,t,s,i){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=i,this.type=315944413}};e.IfcFixedReferenceSweptAreaSolid=class extends Tr{constructor(e,t,s,i,r,o,n){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.FixedReference=n,this.type=2652556860}};class Kr extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=4238390223}}e.IfcFurnishingElementType=Kr;e.IfcFurnitureType=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.AssemblyPlace=c,this.PredefinedType=u,this.type=1268542332}};e.IfcGeographicElementType=class extends Qr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4095422895}};e.IfcGeometricCurveSet=class extends Zi{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};e.IfcIShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallWidth=r,this.OverallDepth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.FlangeSlope=c,this.type=1484403080}};class Yr extends Rr{constructor(e,t){super(e),this.CoordIndex=t,this.type=178912537}}e.IfcIndexedPolygonalFace=Yr;e.IfcIndexedPolygonalFaceWithVoids=class extends Yr{constructor(e,t,s){super(e,t),this.CoordIndex=t,this.InnerCoordIndices=s,this.type=2294589976}};e.IfcLShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.Thickness=n,this.FilletRadius=a,this.EdgeRadius=l,this.LegSlope=h,this.type=572779678}};e.IfcLaborResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=428585644}};e.IfcLine=class extends jr{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class Xr extends gr{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=Xr;class Zr extends ir{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3888040117}}e.IfcObject=Zr;e.IfcOffsetCurve2D=class extends jr{constructor(e,t,s,i){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.type=3388369263}};e.IfcOffsetCurve3D=class extends jr{constructor(e,t,s,i,r){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.RefDirection=r,this.type=3505215534}};e.IfcPcurve=class extends jr{constructor(e,t,s){super(e),this.BasisSurface=t,this.ReferenceCurve=s,this.type=1682466193}};e.IfcPlanarBox=class extends nr{constructor(e,t,s,i){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=i,this.type=603570806}};e.IfcPlane=class extends Wr{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};class qr extends lr{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=qr;class Jr extends lr{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=Jr;class $r extends pr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3967405729}}e.IfcPreDefinedPropertySet=$r;e.IfcProcedureType=class extends Nr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.type=569719735}};class eo extends Zr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.type=2945172077}}e.IfcProcess=eo;class to extends Zr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=4208778838}}e.IfcProduct=to;e.IfcProject=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=103090709}};e.IfcProjectLibrary=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=653396225}};e.IfcPropertyBoundedValue=class extends Er{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Description=s,this.UpperBoundValue=i,this.LowerBoundValue=r,this.Unit=o,this.SetPointValue=n,this.type=871118103}};e.IfcPropertyEnumeratedValue=class extends Er{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.EnumerationValues=i,this.EnumerationReference=r,this.type=4166981789}};e.IfcPropertyListValue=class extends Er{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.ListValues=i,this.Unit=r,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends Er{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=i,this.PropertyReference=r,this.type=941946838}};e.IfcPropertySet=class extends pr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.HasProperties=o,this.type=1451395588}};e.IfcPropertySetTemplate=class extends dr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.TemplateType=o,this.ApplicableEntity=n,this.HasPropertyTemplates=a,this.type=492091185}};e.IfcPropertySingleValue=class extends Er{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.NominalValue=i,this.Unit=r,this.type=3650150729}};e.IfcPropertyTableValue=class extends Er{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s),this.Name=t,this.Description=s,this.DefiningValues=i,this.DefinedValues=r,this.Expression=o,this.DefiningUnit=n,this.DefinedUnit=a,this.CurveInterpolation=l,this.type=110355661}};class so extends dr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3521284610}}e.IfcPropertyTemplate=so;e.IfcProxy=class extends to{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.ProxyType=l,this.Tag=h,this.type=3219374653}};e.IfcRectangleHollowProfileDef=class extends mr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.WallThickness=n,this.InnerFilletRadius=a,this.OuterFilletRadius=l,this.type=2770003689}};e.IfcRectangularPyramid=class extends Vr{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.Height=r,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends wr{constructor(e,t,s,i,r,o,n,a){super(e),this.BasisSurface=t,this.U1=s,this.V1=i,this.U2=r,this.V2=o,this.Usense=n,this.Vsense=a,this.type=3454111270}};e.IfcReinforcementDefinitionProperties=class extends $r{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.DefinitionType=o,this.ReinforcementSectionDefinitions=n,this.type=3765753017}};class io extends yr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.type=3939117080}}e.IfcRelAssigns=io;e.IfcRelAssignsToActor=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingActor=a,this.ActingRole=l,this.type=1683148259}};e.IfcRelAssignsToControl=class extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=2495723537}};class ro extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.type=1307041759}}e.IfcRelAssignsToGroup=ro;e.IfcRelAssignsToGroupByFactor=class extends ro{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.Factor=l,this.type=1027710054}};e.IfcRelAssignsToProcess=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProcess=a,this.QuantityInProcess=l,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProduct=a,this.type=2857406711}};e.IfcRelAssignsToResource=class extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingResource=a,this.type=205026976}};class oo extends yr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.type=1865459582}}e.IfcRelAssociates=oo;e.IfcRelAssociatesApproval=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingApproval=n,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingClassification=n,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends oo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.Intent=n,this.RelatingConstraint=a,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingDocument=n,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingLibrary=n,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingMaterial=n,this.type=2655215786}};class no extends yr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=826625072}}e.IfcRelConnects=no;class ao extends no{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.type=1204542856}}e.IfcRelConnectsElements=ao;e.IfcRelConnectsPathElements=class extends ao{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RelatingPriorities=l,this.RelatedPriorities=h,this.RelatedConnectionType=c,this.RelatingConnectionType=u,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedElement=n,this.type=4201705270}};e.IfcRelConnectsPorts=class extends no{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedPort=n,this.RealizingElement=a,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedStructuralActivity=n,this.type=2127690289}};class lo extends no{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.type=1638771189}}e.IfcRelConnectsStructuralMember=lo;e.IfcRelConnectsWithEccentricity=class extends lo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.ConnectionConstraint=u,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends ao{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RealizingElements=l,this.ConnectionType=h,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedCoverings=n,this.type=886880790}};e.IfcRelCoversSpaces=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedCoverings=n,this.type=2802773753}};e.IfcRelDeclares=class extends yr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingContext=o,this.RelatedDefinitions=n,this.type=2565941209}};class ho extends yr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2551354335}}e.IfcRelDecomposes=ho;class co extends yr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=693640335}}e.IfcRelDefines=co;e.IfcRelDefinesByObject=class extends co{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingObject=n,this.type=1462361463}};e.IfcRelDefinesByProperties=class extends co{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingPropertyDefinition=n,this.type=4186316022}};e.IfcRelDefinesByTemplate=class extends co{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedPropertySets=o,this.RelatingTemplate=n,this.type=307848117}};e.IfcRelDefinesByType=class extends co{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingType=n,this.type=781010003}};e.IfcRelFillsElement=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingOpeningElement=o,this.RelatedBuildingElement=n,this.type=3940055652}};e.IfcRelFlowControlElements=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedControlElements=o,this.RelatingFlowElement=n,this.type=279856033}};e.IfcRelInterferesElements=class extends no{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedElement=n,this.InterferenceGeometry=a,this.InterferenceType=l,this.ImpliedOrder=h,this.type=427948657}};e.IfcRelNests=class extends ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=3268803585}};e.IfcRelProjectsElement=class extends ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedFeatureElement=n,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=1245217292}};e.IfcRelSequence=class extends no{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingProcess=o,this.RelatedProcess=n,this.TimeLag=a,this.SequenceType=l,this.UserDefinedSequenceType=h,this.type=4122056220}};e.IfcRelServicesBuildings=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSystem=o,this.RelatedBuildings=n,this.type=366585022}};class uo extends no{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.type=3451746338}}e.IfcRelSpaceBoundary=uo;class Ao extends uo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.ParentBoundary=c,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=Ao;e.IfcRelSpaceBoundary2ndLevel=class extends Ao{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.ParentBoundary=c,this.CorrespondingBoundary=u,this.type=1521410863}};e.IfcRelVoidsElement=class extends ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedOpeningElement=n,this.type=1401173127}};e.IfcReparametrisedCompositeCurveSegment=class extends Hr{constructor(e,t,s,i,r){super(e,t,s,i),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.ParamLength=r,this.type=816062949}};class po extends Zr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.type=2914609552}}e.IfcResource=po;class fo extends Tr{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.type=1856042241}}e.IfcRevolvedAreaSolid=fo;e.IfcRevolvedAreaSolidTapered=class extends fo{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.EndSweptArea=o,this.type=3243963512}};e.IfcRightCircularCone=class extends Vr{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=i,this.type=4158566097}};e.IfcRightCircularCylinder=class extends Vr{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.Radius=i,this.type=3626867408}};e.IfcSimplePropertyTemplate=class extends so{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.TemplateType=o,this.PrimaryMeasureType=n,this.SecondaryMeasureType=a,this.Enumerators=l,this.PrimaryUnit=h,this.SecondaryUnit=c,this.Expression=u,this.AccessState=A,this.type=3663146110}};class mo extends to{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.type=1412071761}}e.IfcSpatialElement=mo;class yo extends Or{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=710998568}}e.IfcSpatialElementType=yo;class Eo extends mo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.type=2706606064}}e.IfcSpatialStructureElement=Eo;class go extends yo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893378262}}e.IfcSpatialStructureElementType=go;e.IfcSpatialZone=class extends mo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.PredefinedType=h,this.type=463610769}};e.IfcSpatialZoneType=class extends yo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.LongName=u,this.type=2481509218}};e.IfcSphere=class extends Vr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};e.IfcSphericalSurface=class extends Wr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=4015995234}};class vo extends to{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3544373492}}e.IfcStructuralActivity=vo;class Io extends to{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3136571912}}e.IfcStructuralItem=Io;class _o extends Io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=530289379}}e.IfcStructuralMember=_o;class To extends vo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3689010777}}e.IfcStructuralReaction=To;class Po extends _o{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=3979015343}}e.IfcStructuralSurfaceMember=Po;e.IfcStructuralSurfaceMemberVarying=class extends Po{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=2218152070}};e.IfcStructuralSurfaceReaction=class extends To{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.PredefinedType=c,this.type=603775116}};e.IfcSubContractResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=4095615324}};class bo extends jr{constructor(e,t,s,i){super(e),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=699246055}}e.IfcSurfaceCurve=bo;e.IfcSurfaceCurveSweptAreaSolid=class extends Tr{constructor(e,t,s,i,r,o,n){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.ReferenceSurface=n,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends br{constructor(e,t,s,i,r){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends br{constructor(e,t,s,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=i,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1580310250}};e.IfcTask=class extends eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Status=l,this.WorkMethod=h,this.IsMilestone=c,this.Priority=u,this.TaskTime=A,this.PredefinedType=p,this.type=3473067441}};e.IfcTaskType=class extends Nr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.WorkMethod=u,this.type=3206491090}};class Ro extends Rr{constructor(e,t){super(e),this.Coordinates=t,this.type=2387106220}}e.IfcTessellatedFaceSet=Ro;e.IfcToroidalSurface=class extends Wr{constructor(e,t,s,i){super(e,t),this.Position=t,this.MajorRadius=s,this.MinorRadius=i,this.type=1935646853}};e.IfcTransportElementType=class extends Qr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2097647324}};e.IfcTriangulatedFaceSet=class extends Ro{constructor(e,t,s,i,r,o){super(e,t),this.Coordinates=t,this.Normals=s,this.Closed=i,this.CoordIndex=r,this.PnIndex=o,this.type=2916149573}};e.IfcWindowLiningProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.TransomThickness=a,this.MullionThickness=l,this.FirstTransomOffset=h,this.SecondTransomOffset=c,this.FirstMullionOffset=u,this.SecondMullionOffset=A,this.ShapeAspectStyle=p,this.LiningOffset=d,this.LiningToPanelOffsetX=f,this.LiningToPanelOffsetY=m,this.type=336235671}};e.IfcWindowPanelProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=512836454}};class Do extends Zr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.type=2296667514}}e.IfcActor=Do;class Co extends Xr{constructor(e,t){super(e,t),this.Outer=t,this.type=1635779807}}e.IfcAdvancedBrep=Co;e.IfcAdvancedBrepWithVoids=class extends Co{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=2603310189}};e.IfcAnnotation=class extends to{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1674181508}};class No extends wr{constructor(e,t,s,i,r,o,n,a){super(e),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.type=2887950389}}e.IfcBSplineSurface=No;class Oo extends No{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.UMultiplicities=l,this.VMultiplicities=h,this.UKnots=c,this.VKnots=u,this.KnotSpec=A,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=Oo;e.IfcBlock=class extends Vr{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.ZLength=r,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Sr{constructor(e,t,s,i){super(e,t,s,i),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=3649129432}};class xo extends jr{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=xo;e.IfcBuilding=class extends Eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.ElevationOfRefHeight=c,this.ElevationOfTerrain=u,this.BuildingAddress=A,this.type=4031249490}};class So extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1950629157}}e.IfcBuildingElementType=So;e.IfcBuildingStorey=class extends Eo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.Elevation=c,this.type=3124254112}};e.IfcChimneyType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2197970202}};e.IfcCircleHollowProfileDef=class extends Ur{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.WallThickness=o,this.type=2937912522}};e.IfcCivilElementType=class extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893394355}};e.IfcColumnType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=300633059}};e.IfcComplexPropertyTemplate=class extends so{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.UsageName=o,this.TemplateType=n,this.HasPropertyTemplates=a,this.type=3875453745}};class wo extends xo{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=wo;class Mo extends wo{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=15328376}}e.IfcCompositeCurveOnSurface=Mo;class Bo extends jr{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=Bo;e.IfcConstructionEquipmentResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=2185764099}};e.IfcConstructionMaterialResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=4105962743}};e.IfcConstructionProductResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=1525564444}};class Fo extends po{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.type=2559216714}}e.IfcConstructionResource=Fo;class Lo extends Zr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.type=3293443760}}e.IfcControl=Lo;e.IfcCostItem=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.CostValues=l,this.CostQuantities=h,this.type=3895139033}};e.IfcCostSchedule=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.SubmittedOn=h,this.UpdateDate=c,this.type=1419761937}};e.IfcCoveringType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1916426348}};e.IfcCrewResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3295246426}};e.IfcCurtainWallType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1457835157}};e.IfcCylindricalSurface=class extends Wr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=1213902940}};class Uo extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3256556792}}e.IfcDistributionElementType=Uo;class Ho extends Uo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3849074793}}e.IfcDistributionFlowElementType=Ho;e.IfcDoorLiningProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.ThresholdDepth=a,this.ThresholdThickness=l,this.TransomThickness=h,this.TransomOffset=c,this.LiningOffset=u,this.ThresholdOffset=A,this.CasingThickness=p,this.CasingDepth=d,this.ShapeAspectStyle=f,this.LiningToPanelOffsetX=m,this.LiningToPanelOffsetY=y,this.type=2963535650}};e.IfcDoorPanelProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PanelDepth=o,this.PanelOperation=n,this.PanelWidth=a,this.PanelPosition=l,this.ShapeAspectStyle=h,this.type=1714330368}};e.IfcDoorType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.OperationType=u,this.ParameterTakesPrecedence=A,this.UserDefinedOperationType=p,this.type=2323601079}};e.IfcDraughtingPreDefinedColour=class extends qr{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends Jr{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};class Go extends to{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1758889154}}e.IfcElement=Go;e.IfcElementAssembly=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.AssemblyPlace=h,this.PredefinedType=c,this.type=4123344466}};e.IfcElementAssemblyType=class extends Qr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2397081782}};class ko extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1623761950}}e.IfcElementComponent=ko;class Vo extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2590856083}}e.IfcElementComponentType=Vo;e.IfcEllipse=class extends Bo{constructor(e,t,s,i){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=i,this.type=1704287377}};class jo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2107101300}}e.IfcEnergyConversionDeviceType=jo;e.IfcEngineType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=132023988}};e.IfcEvaporativeCoolerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3174744832}};e.IfcEvaporatorType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3390157468}};e.IfcEvent=class extends eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.PredefinedType=l,this.EventTriggerType=h,this.UserDefinedEventTriggerType=c,this.EventOccurenceTime=u,this.type=4148101412}};class Qo extends mo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.type=2853485674}}e.IfcExternalSpatialStructureElement=Qo;class Wo extends Xr{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}}e.IfcFacetedBrep=Wo;e.IfcFacetedBrepWithVoids=class extends Wo{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};e.IfcFastener=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=647756555}};e.IfcFastenerType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2489546625}};class zo extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2827207264}}e.IfcFeatureElement=zo;class Ko extends zo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2143335405}}e.IfcFeatureElementAddition=Ko;class Yo extends zo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1287392070}}e.IfcFeatureElementSubtraction=Yo;class Xo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3907093117}}e.IfcFlowControllerType=Xo;class Zo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3198132628}}e.IfcFlowFittingType=Zo;e.IfcFlowMeterType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3815607619}};class qo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1482959167}}e.IfcFlowMovingDeviceType=qo;class Jo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1834744321}}e.IfcFlowSegmentType=Jo;class $o extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1339347760}}e.IfcFlowStorageDeviceType=$o;class en extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2297155007}}e.IfcFlowTerminalType=en;class tn extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=tn;e.IfcFootingType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1893162501}};class sn extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=263784265}}e.IfcFurnishingElement=sn;e.IfcFurniture=class extends sn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1509553395}};e.IfcGeographicElement=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3493046030}};e.IfcGrid=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.UAxes=l,this.VAxes=h,this.WAxes=c,this.PredefinedType=u,this.type=3009204131}};class rn extends Zr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2706460486}}e.IfcGroup=rn;e.IfcHeatExchangerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1251058090}};e.IfcHumidifierType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1806887404}};e.IfcIndexedPolyCurve=class extends xo{constructor(e,t,s,i){super(e),this.Points=t,this.Segments=s,this.SelfIntersect=i,this.type=2571569899}};e.IfcInterceptorType=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3946677679}};e.IfcIntersectionCurve=class extends bo{constructor(e,t,s,i){super(e,t,s,i),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=3113134337}};e.IfcInventory=class extends rn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.Jurisdiction=a,this.ResponsiblePersons=l,this.LastUpdateDate=h,this.CurrentValue=c,this.OriginalValue=u,this.type=2391368822}};e.IfcJunctionBoxType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4288270099}};e.IfcLaborResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3827777499}};e.IfcLampType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1051575348}};e.IfcLightFixtureType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1161773419}};e.IfcMechanicalFastener=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NominalDiameter=h,this.NominalLength=c,this.PredefinedType=u,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.NominalLength=A,this.type=2108223431}};e.IfcMedicalDeviceType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1114901282}};e.IfcMemberType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3181161470}};e.IfcMotorConnectionType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=977012517}};e.IfcOccupant=class extends Do{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.PredefinedType=a,this.type=4143007308}};class on extends Yo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3588315303}}e.IfcOpeningElement=on;e.IfcOpeningStandardCase=class extends on{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3079942009}};e.IfcOutletType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2837617999}};e.IfcPerformanceHistory=class extends Lo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LifeCyclePhase=a,this.PredefinedType=l,this.type=2382730787}};e.IfcPermeableCoveringProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=3566463478}};e.IfcPermit=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=3327091369}};e.IfcPileType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1158309216}};e.IfcPipeFittingType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=804291784}};e.IfcPipeSegmentType=class extends Jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4231323485}};e.IfcPlateType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4017108033}};e.IfcPolygonalFaceSet=class extends Ro{constructor(e,t,s,i,r){super(e,t),this.Coordinates=t,this.Closed=s,this.Faces=i,this.PnIndex=r,this.type=2839578677}};e.IfcPolyline=class extends xo{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class nn extends to{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3740093272}}e.IfcPort=nn;e.IfcProcedure=class extends eo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.PredefinedType=l,this.type=2744685151}};e.IfcProjectOrder=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=2904328755}};e.IfcProjectionElement=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1842657554}};e.IfcPumpType=class extends qo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2250791053}};e.IfcRailingType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2893384427}};e.IfcRampFlightType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2324767716}};e.IfcRampType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1469900589}};e.IfcRationalBSplineSurfaceWithKnots=class extends Oo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.UMultiplicities=l,this.VMultiplicities=h,this.UKnots=c,this.VKnots=u,this.KnotSpec=A,this.WeightsData=p,this.type=683857671}};class an extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.type=3027567501}}e.IfcReinforcingElement=an;class ln extends Vo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=964333572}}e.IfcReinforcingElementType=ln;e.IfcReinforcingMesh=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.MeshLength=c,this.MeshWidth=u,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=p,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=m,this.TransverseBarSpacing=y,this.PredefinedType=E,this.type=2320036040}};e.IfcReinforcingMeshType=class extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.MeshLength=u,this.MeshWidth=A,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=d,this.LongitudinalBarCrossSectionArea=f,this.TransverseBarCrossSectionArea=m,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=E,this.BendingShapeCode=g,this.BendingParameters=v,this.type=2310774935}};e.IfcRelAggregates=class extends ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=160246688}};e.IfcRoofType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2781568857}};e.IfcSanitaryTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1768891740}};e.IfcSeamCurve=class extends bo{constructor(e,t,s,i){super(e,t,s,i),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=2157484638}};e.IfcShadingDeviceType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4074543187}};e.IfcSite=class extends Eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.RefLatitude=c,this.RefLongitude=u,this.RefElevation=A,this.LandTitleNumber=p,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2533589738}};e.IfcSolarDeviceType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1072016465}};e.IfcSpace=class extends Eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.ElevationWithFlooring=u,this.type=3856911033}};e.IfcSpaceHeaterType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1305183839}};e.IfcSpaceType=class extends go{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.LongName=u,this.type=3812236995}};e.IfcStackTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3112655638}};e.IfcStairFlightType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1039846685}};e.IfcStairType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=338393293}};class hn extends vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.type=682877961}}e.IfcStructuralAction=hn;class cn extends Io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1179482911}}e.IfcStructuralConnection=cn;class un extends hn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1004757350}}e.IfcStructuralCurveAction=un;e.IfcStructuralCurveConnection=class extends cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.Axis=h,this.type=4243806635}};class An extends _o{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Axis=h,this.type=214636428}}e.IfcStructuralCurveMember=An;e.IfcStructuralCurveMemberVarying=class extends An{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Axis=h,this.type=2445595289}};e.IfcStructuralCurveReaction=class extends To{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.PredefinedType=c,this.type=2757150158}};e.IfcStructuralLinearAction=class extends un{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1807405624}};class pn extends rn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.type=1252848954}}e.IfcStructuralLoadGroup=pn;e.IfcStructuralPointAction=class extends hn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.type=2082059205}};e.IfcStructuralPointConnection=class extends cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.ConditionCoordinateSystem=h,this.type=734778138}};e.IfcStructuralPointReaction=class extends To{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=1235345126}};e.IfcStructuralResultGroup=class extends rn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheoryType=n,this.ResultForLoadGroup=a,this.IsLinear=l,this.type=2986769608}};class dn extends hn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=3657597509}}e.IfcStructuralSurfaceAction=dn;e.IfcStructuralSurfaceConnection=class extends cn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1975003073}};e.IfcSubContractResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=148013059}};e.IfcSurfaceFeature=class extends zo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3101698114}};e.IfcSwitchingDeviceType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2315554128}};class fn extends rn{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2254336722}}e.IfcSystem=fn;e.IfcSystemFurnitureElement=class extends sn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=413509423}};e.IfcTankType=class extends $o{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=5716631}};e.IfcTendon=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.TensionForce=p,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=m,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.type=2347447852}};e.IfcTendonAnchorType=class extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3081323446}};e.IfcTendonType=class extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.SheathDiameter=p,this.type=2415094496}};e.IfcTransformerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1692211062}};e.IfcTransportElement=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1620046519}};e.IfcTrimmedCurve=class extends xo{constructor(e,t,s,i,r,o){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=i,this.SenseAgreement=r,this.MasterRepresentation=o,this.type=3593883385}};e.IfcTubeBundleType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1911125066}};e.IfcValveType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=728799441}};e.IfcVibrationIsolator=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2391383451}};e.IfcVibrationIsolatorType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3313531582}};e.IfcVirtualElement=class extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2769231204}};e.IfcVoidingFeature=class extends Yo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=926996030}};e.IfcWallType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1898987631}};e.IfcWasteTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1133259667}};e.IfcWindowType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.PartitioningType=u,this.ParameterTakesPrecedence=A,this.UserDefinedPartitioningType=p,this.type=4009809668}};e.IfcWorkCalendar=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.WorkingTimes=a,this.ExceptionTimes=l,this.PredefinedType=h,this.type=4088093105}};class mn extends Lo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.type=1028945134}}e.IfcWorkControl=mn;e.IfcWorkPlan=class extends mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.PredefinedType=d,this.type=4218914973}};e.IfcWorkSchedule=class extends mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.PredefinedType=d,this.type=3342526732}};e.IfcZone=class extends fn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.type=1033361043}};e.IfcActionRequest=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1411407467}};e.IfcAirTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1871374353}};e.IfcAsset=class extends rn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.OriginalValue=a,this.CurrentValue=l,this.TotalReplacementCost=h,this.Owner=c,this.User=u,this.ResponsiblePerson=A,this.IncorporationDate=p,this.DepreciatedValue=d,this.type=3460190687}};e.IfcAudioVisualApplianceType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1532957894}};class yn extends xo{constructor(e,t,s,i,r,o){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.type=1967976161}}e.IfcBSplineCurve=yn;class En extends yn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.KnotMultiplicities=n,this.Knots=a,this.KnotSpec=l,this.type=2461110595}}e.IfcBSplineCurveWithKnots=En;e.IfcBeamType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=819618141}};e.IfcBoilerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=231477066}};class gn extends Mo{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1136057603}}e.IfcBoundaryCurve=gn;class vn extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3299480353}}e.IfcBuildingElement=vn;e.IfcBuildingElementPart=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2979338954}};e.IfcBuildingElementPartType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=39481116}};e.IfcBuildingElementProxy=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1095909175}};e.IfcBuildingElementProxyType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1909888760}};e.IfcBuildingSystem=class extends fn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.LongName=a,this.type=1177604601}};e.IfcBurnerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2188180465}};e.IfcCableCarrierFittingType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3293546465}};e.IfcCableFittingType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2674252688}};e.IfcCableSegmentType=class extends Jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1285652485}};e.IfcChillerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2951183804}};e.IfcChimney=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3296154744}};e.IfcCircle=class extends Bo{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCivilElement=class extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1677625105}};e.IfcCoilType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2301859152}};class In extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=843113511}}e.IfcColumn=In;e.IfcColumnStandardCase=class extends In{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=905975707}};e.IfcCommunicationsApplianceType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=400855858}};e.IfcCompressorType=class extends qo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3850581409}};e.IfcCondenserType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2816379211}};e.IfcConstructionEquipmentResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=1060000209}};e.IfcConstructionProductResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=488727124}};e.IfcCooledBeamType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=335055490}};e.IfcCoolingTowerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2954562838}};e.IfcCovering=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1973544240}};e.IfcCurtainWall=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3495092785}};e.IfcDamperType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3961806047}};e.IfcDiscreteAccessory=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1335981549}};e.IfcDiscreteAccessoryType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2635815018}};e.IfcDistributionChamberElementType=class extends Ho{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1599208980}};class _n extends Uo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2063403501}}e.IfcDistributionControlElementType=_n;class Tn extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1945004755}}e.IfcDistributionElement=Tn;class Pn extends Tn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3040386961}}e.IfcDistributionFlowElement=Pn;e.IfcDistributionPort=class extends nn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.FlowDirection=l,this.PredefinedType=h,this.SystemType=c,this.type=3041715199}};class bn extends fn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.PredefinedType=a,this.type=3205830791}}e.IfcDistributionSystem=bn;class Rn extends vn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.OperationType=A,this.UserDefinedOperationType=p,this.type=395920057}}e.IfcDoor=Rn;e.IfcDoorStandardCase=class extends Rn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.OperationType=A,this.UserDefinedOperationType=p,this.type=3242481149}};e.IfcDuctFittingType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=869906466}};e.IfcDuctSegmentType=class extends Jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3760055223}};e.IfcDuctSilencerType=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2030761528}};e.IfcElectricApplianceType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=663422040}};e.IfcElectricDistributionBoardType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2417008758}};e.IfcElectricFlowStorageDeviceType=class extends $o{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3277789161}};e.IfcElectricGeneratorType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1534661035}};e.IfcElectricMotorType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=712377611}};class Dn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1658829314}}e.IfcEnergyConversionDevice=Dn;e.IfcEngine=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2814081492}};e.IfcEvaporativeCooler=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3747195512}};e.IfcEvaporator=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=484807127}};e.IfcExternalSpatialElement=class extends Qo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.PredefinedType=h,this.type=1209101575}};e.IfcFanType=class extends qo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=346874300}};e.IfcFilterType=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4222183408}};class Cn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2058353004}}e.IfcFlowController=Cn;class Nn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=4278956645}}e.IfcFlowFitting=Nn;e.IfcFlowInstrumentType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4037862832}};e.IfcFlowMeter=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2188021234}};class On extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3132237377}}e.IfcFlowMovingDevice=On;class xn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=987401354}}e.IfcFlowSegment=xn;class Sn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=707683696}}e.IfcFlowStorageDevice=Sn;class wn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2223149337}}e.IfcFlowTerminal=wn;class Mn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3508470533}}e.IfcFlowTreatmentDevice=Mn;e.IfcFooting=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=900683007}};e.IfcHeatExchanger=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3319311131}};e.IfcHumidifier=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2068733104}};e.IfcInterceptor=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4175244083}};e.IfcJunctionBox=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2176052936}};e.IfcLamp=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=76236018}};e.IfcLightFixture=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=629592764}};e.IfcMedicalDevice=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1437502449}};class Bn extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1073191201}}e.IfcMember=Bn;e.IfcMemberStandardCase=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1911478936}};e.IfcMotorConnection=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2474470126}};e.IfcOuterBoundaryCurve=class extends gn{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=144952367}};e.IfcOutlet=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3694346114}};e.IfcPile=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.ConstructionType=c,this.type=1687234759}};e.IfcPipeFitting=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=310824031}};e.IfcPipeSegment=class extends xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3612865200}};class Fn extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3171933400}}e.IfcPlate=Fn;e.IfcPlateStandardCase=class extends Fn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1156407060}};e.IfcProtectiveDevice=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=738039164}};e.IfcProtectiveDeviceTrippingUnitType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=655969474}};e.IfcPump=class extends On{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=90941305}};e.IfcRailing=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2262370178}};e.IfcRamp=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3024970846}};e.IfcRampFlight=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3283111854}};e.IfcRationalBSplineCurveWithKnots=class extends En{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.KnotMultiplicities=n,this.Knots=a,this.KnotSpec=l,this.WeightsData=h,this.type=1232101972}};e.IfcReinforcingBar=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.NominalDiameter=c,this.CrossSectionArea=u,this.BarLength=A,this.PredefinedType=p,this.BarSurface=d,this.type=979691226}};e.IfcReinforcingBarType=class extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.BarLength=p,this.BarSurface=d,this.BendingShapeCode=f,this.BendingParameters=m,this.type=2572171363}};e.IfcRoof=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2016517767}};e.IfcSanitaryTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3053780830}};e.IfcSensorType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1783015770}};e.IfcShadingDevice=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1329646415}};class Ln extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1529196076}}e.IfcSlab=Ln;e.IfcSlabElementedCase=class extends Ln{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3127900445}};e.IfcSlabStandardCase=class extends Ln{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3027962421}};e.IfcSolarDevice=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3420628829}};e.IfcSpaceHeater=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1999602285}};e.IfcStackTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1404847402}};e.IfcStair=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=331165859}};e.IfcStairFlight=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NumberOfRisers=h,this.NumberOfTreads=c,this.RiserHeight=u,this.TreadLength=A,this.PredefinedType=p,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends fn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.OrientationOf2DPlane=a,this.LoadedBy=l,this.HasResults=h,this.SharedPlacement=c,this.type=2515109513}};e.IfcStructuralLoadCase=class extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.SelfWeightCoefficients=u,this.type=385403989}};e.IfcStructuralPlanarAction=class extends dn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1621171031}};e.IfcSwitchingDevice=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1162798199}};e.IfcTank=class extends Sn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=812556717}};e.IfcTransformer=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3825984169}};e.IfcTubeBundle=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3026737570}};e.IfcUnitaryControlElementType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3179687236}};e.IfcUnitaryEquipment=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4292641817}};e.IfcValve=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4207607924}};class Un extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2391406946}}e.IfcWall=Un;e.IfcWallElementedCase=class extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4156078855}};e.IfcWallStandardCase=class extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3512223829}};e.IfcWasteTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4237592921}};class Hn extends vn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.PartitioningType=A,this.UserDefinedPartitioningType=p,this.type=3304561284}}e.IfcWindow=Hn;e.IfcWindowStandardCase=class extends Hn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.PartitioningType=A,this.UserDefinedPartitioningType=p,this.type=486154966}};e.IfcActuatorType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2874132201}};e.IfcAirTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1634111441}};e.IfcAirTerminalBox=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=177149247}};e.IfcAirToAirHeatRecovery=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2056796094}};e.IfcAlarmType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3001207471}};e.IfcAudioVisualAppliance=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=277319702}};class Gn extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=753842376}}e.IfcBeam=Gn;e.IfcBeamStandardCase=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2906023776}};e.IfcBoiler=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=32344328}};e.IfcBurner=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2938176219}};e.IfcCableCarrierFitting=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=635142910}};e.IfcCableCarrierSegment=class extends xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3758799889}};e.IfcCableFitting=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1051757585}};e.IfcCableSegment=class extends xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4217484030}};e.IfcChiller=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3902619387}};e.IfcCoil=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=639361253}};e.IfcCommunicationsAppliance=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3221913625}};e.IfcCompressor=class extends On{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3571504051}};e.IfcCondenser=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2272882330}};e.IfcControllerType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=578613899}};e.IfcCooledBeam=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4136498852}};e.IfcCoolingTower=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3640358203}};e.IfcDamper=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4074379575}};e.IfcDistributionChamberElement=class extends Pn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1052013943}};e.IfcDistributionCircuit=class extends bn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.PredefinedType=a,this.type=562808652}};class kn extends Tn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1062813311}}e.IfcDistributionControlElement=kn;e.IfcDuctFitting=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=342316401}};e.IfcDuctSegment=class extends xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3518393246}};e.IfcDuctSilencer=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1360408905}};e.IfcElectricAppliance=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1904799276}};e.IfcElectricDistributionBoard=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=862014818}};e.IfcElectricFlowStorageDevice=class extends Sn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3310460725}};e.IfcElectricGenerator=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=264262732}};e.IfcElectricMotor=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=402227799}};e.IfcElectricTimeControl=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1003880860}};e.IfcFan=class extends On{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3415622556}};e.IfcFilter=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=819412036}};e.IfcFireSuppressionTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1426591983}};e.IfcFlowInstrument=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=182646315}};e.IfcProtectiveDeviceTrippingUnit=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2295281155}};e.IfcSensor=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4086658281}};e.IfcUnitaryControlElement=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=630975310}};e.IfcActuator=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4288193352}};e.IfcAlarm=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3087945054}};e.IfcController=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=25142252}}}(Av||(Av={})),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 i{}i.BRAKES={type:3,value:"BRAKES"},i.BUOYANCY={type:3,value:"BUOYANCY"},i.COMPLETION_G1={type:3,value:"COMPLETION_G1"},i.CREEP={type:3,value:"CREEP"},i.CURRENT={type:3,value:"CURRENT"},i.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},i.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},i.ERECTION={type:3,value:"ERECTION"},i.FIRE={type:3,value:"FIRE"},i.ICE={type:3,value:"ICE"},i.IMPACT={type:3,value:"IMPACT"},i.IMPULSE={type:3,value:"IMPULSE"},i.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},i.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},i.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},i.PROPPING={type:3,value:"PROPPING"},i.RAIN={type:3,value:"RAIN"},i.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},i.SHRINKAGE={type:3,value:"SHRINKAGE"},i.SNOW_S={type:3,value:"SNOW_S"},i.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},i.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},i.TRANSPORT={type:3,value:"TRANSPORT"},i.WAVE={type:3,value:"WAVE"},i.WIND_W={type:3,value:"WIND_W"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=i;class r{}r.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},r.PERMANENT_G={type:3,value:"PERMANENT_G"},r.VARIABLE_Q={type:3,value:"VARIABLE_Q"},r.USERDEFINED={type:3,value:"USERDEFINED"},r.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=r;class o{}o.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},o.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},o.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},o.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},o.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=o;class n{}n.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},n.HOME={type:3,value:"HOME"},n.OFFICE={type:3,value:"OFFICE"},n.SITE={type:3,value:"SITE"},n.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=n;class a{}a.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},a.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},a.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=a;class l{}l.DIFFUSER={type:3,value:"DIFFUSER"},l.GRILLE={type:3,value:"GRILLE"},l.LOUVRE={type:3,value:"LOUVRE"},l.REGISTER={type:3,value:"REGISTER"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=l;class h{}h.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},h.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},h.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},h.HEATPIPE={type:3,value:"HEATPIPE"},h.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},h.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},h.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},h.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},h.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=h;class c{}c.BELL={type:3,value:"BELL"},c.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},c.LIGHT={type:3,value:"LIGHT"},c.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},c.RAILWAYCROCODILE={type:3,value:"RAILWAYCROCODILE"},c.RAILWAYDETONATOR={type:3,value:"RAILWAYDETONATOR"},c.SIREN={type:3,value:"SIREN"},c.WHISTLE={type:3,value:"WHISTLE"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=c;class u{}u.BLOSSCURVE={type:3,value:"BLOSSCURVE"},u.CONSTANTCANT={type:3,value:"CONSTANTCANT"},u.COSINECURVE={type:3,value:"COSINECURVE"},u.HELMERTCURVE={type:3,value:"HELMERTCURVE"},u.LINEARTRANSITION={type:3,value:"LINEARTRANSITION"},u.SINECURVE={type:3,value:"SINECURVE"},u.VIENNESEBEND={type:3,value:"VIENNESEBEND"},e.IfcAlignmentCantSegmentTypeEnum=u;class A{}A.BLOSSCURVE={type:3,value:"BLOSSCURVE"},A.CIRCULARARC={type:3,value:"CIRCULARARC"},A.CLOTHOID={type:3,value:"CLOTHOID"},A.COSINECURVE={type:3,value:"COSINECURVE"},A.CUBIC={type:3,value:"CUBIC"},A.HELMERTCURVE={type:3,value:"HELMERTCURVE"},A.LINE={type:3,value:"LINE"},A.SINECURVE={type:3,value:"SINECURVE"},A.VIENNESEBEND={type:3,value:"VIENNESEBEND"},e.IfcAlignmentHorizontalSegmentTypeEnum=A;class p{}p.USERDEFINED={type:3,value:"USERDEFINED"},p.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlignmentTypeEnum=p;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 m{}m.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},m.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},m.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},m.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},m.USERDEFINED={type:3,value:"USERDEFINED"},m.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=m;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 E{}E.ADD={type:3,value:"ADD"},E.DIVIDE={type:3,value:"DIVIDE"},E.MULTIPLY={type:3,value:"MULTIPLY"},E.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=E;class g{}g.FACTORY={type:3,value:"FACTORY"},g.SITE={type:3,value:"SITE"},g.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAssemblyPlaceEnum=g;class v{}v.AMPLIFIER={type:3,value:"AMPLIFIER"},v.CAMERA={type:3,value:"CAMERA"},v.COMMUNICATIONTERMINAL={type:3,value:"COMMUNICATIONTERMINAL"},v.DISPLAY={type:3,value:"DISPLAY"},v.MICROPHONE={type:3,value:"MICROPHONE"},v.PLAYER={type:3,value:"PLAYER"},v.PROJECTOR={type:3,value:"PROJECTOR"},v.RECEIVER={type:3,value:"RECEIVER"},v.RECORDINGEQUIPMENT={type:3,value:"RECORDINGEQUIPMENT"},v.SPEAKER={type:3,value:"SPEAKER"},v.SWITCHER={type:3,value:"SWITCHER"},v.TELEPHONE={type:3,value:"TELEPHONE"},v.TUNER={type:3,value:"TUNER"},v.USERDEFINED={type:3,value:"USERDEFINED"},v.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAudioVisualApplianceTypeEnum=v;class I{}I.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},I.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},I.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},I.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},I.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},I.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=I;class _{}_.CONICAL_SURF={type:3,value:"CONICAL_SURF"},_.CYLINDRICAL_SURF={type:3,value:"CYLINDRICAL_SURF"},_.GENERALISED_CONE={type:3,value:"GENERALISED_CONE"},_.PLANE_SURF={type:3,value:"PLANE_SURF"},_.QUADRIC_SURF={type:3,value:"QUADRIC_SURF"},_.RULED_SURF={type:3,value:"RULED_SURF"},_.SPHERICAL_SURF={type:3,value:"SPHERICAL_SURF"},_.SURF_OF_LINEAR_EXTRUSION={type:3,value:"SURF_OF_LINEAR_EXTRUSION"},_.SURF_OF_REVOLUTION={type:3,value:"SURF_OF_REVOLUTION"},_.TOROIDAL_SURF={type:3,value:"TOROIDAL_SURF"},_.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineSurfaceForm=_;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 P{}P.FIXED_MOVEMENT={type:3,value:"FIXED_MOVEMENT"},P.FREE_MOVEMENT={type:3,value:"FREE_MOVEMENT"},P.GUIDED_LONGITUDINAL={type:3,value:"GUIDED_LONGITUDINAL"},P.GUIDED_TRANSVERSAL={type:3,value:"GUIDED_TRANSVERSAL"},P.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBearingTypeDisplacementEnum=P;class b{}b.CYLINDRICAL={type:3,value:"CYLINDRICAL"},b.DISK={type:3,value:"DISK"},b.ELASTOMERIC={type:3,value:"ELASTOMERIC"},b.GUIDE={type:3,value:"GUIDE"},b.POT={type:3,value:"POT"},b.ROCKER={type:3,value:"ROCKER"},b.ROLLER={type:3,value:"ROLLER"},b.SPHERICAL={type:3,value:"SPHERICAL"},b.USERDEFINED={type:3,value:"USERDEFINED"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBearingTypeEnum=b;class R{}R.EQUALTO={type:3,value:"EQUALTO"},R.GREATERTHAN={type:3,value:"GREATERTHAN"},R.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},R.INCLUDEDIN={type:3,value:"INCLUDEDIN"},R.INCLUDES={type:3,value:"INCLUDES"},R.LESSTHAN={type:3,value:"LESSTHAN"},R.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},R.NOTEQUALTO={type:3,value:"NOTEQUALTO"},R.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"},R.NOTINCLUDES={type:3,value:"NOTINCLUDES"},e.IfcBenchmarkEnum=R;class D{}D.STEAM={type:3,value:"STEAM"},D.WATER={type:3,value:"WATER"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=D;class C{}C.DIFFERENCE={type:3,value:"DIFFERENCE"},C.INTERSECTION={type:3,value:"INTERSECTION"},C.UNION={type:3,value:"UNION"},e.IfcBooleanOperator=C;class N{}N.ABUTMENT={type:3,value:"ABUTMENT"},N.DECK={type:3,value:"DECK"},N.DECK_SEGMENT={type:3,value:"DECK_SEGMENT"},N.FOUNDATION={type:3,value:"FOUNDATION"},N.PIER={type:3,value:"PIER"},N.PIER_SEGMENT={type:3,value:"PIER_SEGMENT"},N.PYLON={type:3,value:"PYLON"},N.SUBSTRUCTURE={type:3,value:"SUBSTRUCTURE"},N.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},N.SURFACESTRUCTURE={type:3,value:"SURFACESTRUCTURE"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBridgePartTypeEnum=N;class O{}O.ARCHED={type:3,value:"ARCHED"},O.CABLE_STAYED={type:3,value:"CABLE_STAYED"},O.CANTILEVER={type:3,value:"CANTILEVER"},O.CULVERT={type:3,value:"CULVERT"},O.FRAMEWORK={type:3,value:"FRAMEWORK"},O.GIRDER={type:3,value:"GIRDER"},O.SUSPENSION={type:3,value:"SUSPENSION"},O.TRUSS={type:3,value:"TRUSS"},O.USERDEFINED={type:3,value:"USERDEFINED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBridgeTypeEnum=O;class x{}x.APRON={type:3,value:"APRON"},x.ARMOURUNIT={type:3,value:"ARMOURUNIT"},x.INSULATION={type:3,value:"INSULATION"},x.PRECASTPANEL={type:3,value:"PRECASTPANEL"},x.SAFETYCAGE={type:3,value:"SAFETYCAGE"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementPartTypeEnum=x;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 w{}w.EROSIONPREVENTION={type:3,value:"EROSIONPREVENTION"},w.FENESTRATION={type:3,value:"FENESTRATION"},w.FOUNDATION={type:3,value:"FOUNDATION"},w.LOADBEARING={type:3,value:"LOADBEARING"},w.OUTERSHELL={type:3,value:"OUTERSHELL"},w.PRESTRESSING={type:3,value:"PRESTRESSING"},w.REINFORCING={type:3,value:"REINFORCING"},w.SHADING={type:3,value:"SHADING"},w.TRANSPORT={type:3,value:"TRANSPORT"},w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingSystemTypeEnum=w;class M{}M.EROSIONPREVENTION={type:3,value:"EROSIONPREVENTION"},M.FENESTRATION={type:3,value:"FENESTRATION"},M.FOUNDATION={type:3,value:"FOUNDATION"},M.LOADBEARING={type:3,value:"LOADBEARING"},M.MOORING={type:3,value:"MOORING"},M.OUTERSHELL={type:3,value:"OUTERSHELL"},M.PRESTRESSING={type:3,value:"PRESTRESSING"},M.RAILWAYLINE={type:3,value:"RAILWAYLINE"},M.RAILWAYTRACK={type:3,value:"RAILWAYTRACK"},M.REINFORCING={type:3,value:"REINFORCING"},M.SHADING={type:3,value:"SHADING"},M.TRACKCIRCUIT={type:3,value:"TRACKCIRCUIT"},M.TRANSPORT={type:3,value:"TRANSPORT"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuiltSystemTypeEnum=M;class B{}B.USERDEFINED={type:3,value:"USERDEFINED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBurnerTypeEnum=B;class F{}F.BEND={type:3,value:"BEND"},F.CONNECTOR={type:3,value:"CONNECTOR"},F.CROSS={type:3,value:"CROSS"},F.JUNCTION={type:3,value:"JUNCTION"},F.TEE={type:3,value:"TEE"},F.TRANSITION={type:3,value:"TRANSITION"},F.USERDEFINED={type:3,value:"USERDEFINED"},F.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=F;class L{}L.CABLEBRACKET={type:3,value:"CABLEBRACKET"},L.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},L.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},L.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},L.CATENARYWIRE={type:3,value:"CATENARYWIRE"},L.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},L.DROPPER={type:3,value:"DROPPER"},L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=L;class U{}U.CONNECTOR={type:3,value:"CONNECTOR"},U.ENTRY={type:3,value:"ENTRY"},U.EXIT={type:3,value:"EXIT"},U.FANOUT={type:3,value:"FANOUT"},U.JUNCTION={type:3,value:"JUNCTION"},U.TRANSITION={type:3,value:"TRANSITION"},U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableFittingTypeEnum=U;class H{}H.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},H.CABLESEGMENT={type:3,value:"CABLESEGMENT"},H.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},H.CONTACTWIRESEGMENT={type:3,value:"CONTACTWIRESEGMENT"},H.CORESEGMENT={type:3,value:"CORESEGMENT"},H.FIBERSEGMENT={type:3,value:"FIBERSEGMENT"},H.FIBERTUBE={type:3,value:"FIBERTUBE"},H.OPTICALCABLESEGMENT={type:3,value:"OPTICALCABLESEGMENT"},H.STITCHWIRE={type:3,value:"STITCHWIRE"},H.WIREPAIRSEGMENT={type:3,value:"WIREPAIRSEGMENT"},H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=H;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 k{}k.ADDED={type:3,value:"ADDED"},k.DELETED={type:3,value:"DELETED"},k.MODIFIED={type:3,value:"MODIFIED"},k.NOCHANGE={type:3,value:"NOCHANGE"},k.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChangeActionEnum=k;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 j{}j.USERDEFINED={type:3,value:"USERDEFINED"},j.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChimneyTypeEnum=j;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 Z{}Z.ATEND={type:3,value:"ATEND"},Z.ATPATH={type:3,value:"ATPATH"},Z.ATSTART={type:3,value:"ATSTART"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=Z;class q{}q.ADVISORY={type:3,value:"ADVISORY"},q.HARD={type:3,value:"HARD"},q.SOFT={type:3,value:"SOFT"},q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=q;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 ${}$.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 ie{}ie.ACTIVE={type:3,value:"ACTIVE"},ie.PASSIVE={type:3,value:"PASSIVE"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCooledBeamTypeEnum=ie;class re{}re.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},re.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},re.NATURALDRAFT={type:3,value:"NATURALDRAFT"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=re;class oe{}oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostItemTypeEnum=oe;class ne{}ne.BUDGET={type:3,value:"BUDGET"},ne.COSTPLAN={type:3,value:"COSTPLAN"},ne.ESTIMATE={type:3,value:"ESTIMATE"},ne.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},ne.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},ne.TENDER={type:3,value:"TENDER"},ne.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=ne;class ae{}ae.ARMOUR={type:3,value:"ARMOUR"},ae.BALLASTBED={type:3,value:"BALLASTBED"},ae.CORE={type:3,value:"CORE"},ae.FILTER={type:3,value:"FILTER"},ae.PAVEMENT={type:3,value:"PAVEMENT"},ae.PROTECTION={type:3,value:"PROTECTION"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCourseTypeEnum=ae;class le{}le.CEILING={type:3,value:"CEILING"},le.CLADDING={type:3,value:"CLADDING"},le.COPING={type:3,value:"COPING"},le.FLOORING={type:3,value:"FLOORING"},le.INSULATION={type:3,value:"INSULATION"},le.MEMBRANE={type:3,value:"MEMBRANE"},le.MOLDING={type:3,value:"MOLDING"},le.ROOFING={type:3,value:"ROOFING"},le.SKIRTINGBOARD={type:3,value:"SKIRTINGBOARD"},le.SLEEVING={type:3,value:"SLEEVING"},le.TOPPING={type:3,value:"TOPPING"},le.WRAPPING={type:3,value:"WRAPPING"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=le;class he{}he.OFFICE={type:3,value:"OFFICE"},he.SITE={type:3,value:"SITE"},he.USERDEFINED={type:3,value:"USERDEFINED"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCrewResourceTypeEnum=he;class ce{}ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=ce;class ue{}ue.LINEAR={type:3,value:"LINEAR"},ue.LOG_LINEAR={type:3,value:"LOG_LINEAR"},ue.LOG_LOG={type:3,value:"LOG_LOG"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurveInterpolationEnum=ue;class Ae{}Ae.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},Ae.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},Ae.BLASTDAMPER={type:3,value:"BLASTDAMPER"},Ae.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},Ae.FIREDAMPER={type:3,value:"FIREDAMPER"},Ae.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},Ae.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},Ae.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},Ae.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},Ae.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},Ae.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=Ae;class pe{}pe.MEASURED={type:3,value:"MEASURED"},pe.PREDICTED={type:3,value:"PREDICTED"},pe.SIMULATED={type:3,value:"SIMULATED"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDataOriginEnum=pe;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 me{}me.ANCHORPLATE={type:3,value:"ANCHORPLATE"},me.BIRDPROTECTION={type:3,value:"BIRDPROTECTION"},me.BRACKET={type:3,value:"BRACKET"},me.CABLEARRANGER={type:3,value:"CABLEARRANGER"},me.ELASTIC_CUSHION={type:3,value:"ELASTIC_CUSHION"},me.EXPANSION_JOINT_DEVICE={type:3,value:"EXPANSION_JOINT_DEVICE"},me.FILLER={type:3,value:"FILLER"},me.FLASHING={type:3,value:"FLASHING"},me.INSULATOR={type:3,value:"INSULATOR"},me.LOCK={type:3,value:"LOCK"},me.PANEL_STRENGTHENING={type:3,value:"PANEL_STRENGTHENING"},me.POINTMACHINEMOUNTINGDEVICE={type:3,value:"POINTMACHINEMOUNTINGDEVICE"},me.POINT_MACHINE_LOCKING_DEVICE={type:3,value:"POINT_MACHINE_LOCKING_DEVICE"},me.RAILBRACE={type:3,value:"RAILBRACE"},me.RAILPAD={type:3,value:"RAILPAD"},me.RAIL_LUBRICATION={type:3,value:"RAIL_LUBRICATION"},me.RAIL_MECHANICAL_EQUIPMENT={type:3,value:"RAIL_MECHANICAL_EQUIPMENT"},me.SHOE={type:3,value:"SHOE"},me.SLIDINGCHAIR={type:3,value:"SLIDINGCHAIR"},me.SOUNDABSORPTION={type:3,value:"SOUNDABSORPTION"},me.TENSIONINGEQUIPMENT={type:3,value:"TENSIONINGEQUIPMENT"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDiscreteAccessoryTypeEnum=me;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 Ee{}Ee.FORMEDDUCT={type:3,value:"FORMEDDUCT"},Ee.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},Ee.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},Ee.MANHOLE={type:3,value:"MANHOLE"},Ee.METERCHAMBER={type:3,value:"METERCHAMBER"},Ee.SUMP={type:3,value:"SUMP"},Ee.TRENCH={type:3,value:"TRENCH"},Ee.VALVECHAMBER={type:3,value:"VALVECHAMBER"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=Ee;class ge{}ge.CABLE={type:3,value:"CABLE"},ge.CABLECARRIER={type:3,value:"CABLECARRIER"},ge.DUCT={type:3,value:"DUCT"},ge.PIPE={type:3,value:"PIPE"},ge.WIRELESS={type:3,value:"WIRELESS"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionPortTypeEnum=ge;class ve{}ve.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},ve.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},ve.CATENARY_SYSTEM={type:3,value:"CATENARY_SYSTEM"},ve.CHEMICAL={type:3,value:"CHEMICAL"},ve.CHILLEDWATER={type:3,value:"CHILLEDWATER"},ve.COMMUNICATION={type:3,value:"COMMUNICATION"},ve.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},ve.CONDENSERWATER={type:3,value:"CONDENSERWATER"},ve.CONTROL={type:3,value:"CONTROL"},ve.CONVEYING={type:3,value:"CONVEYING"},ve.DATA={type:3,value:"DATA"},ve.DISPOSAL={type:3,value:"DISPOSAL"},ve.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},ve.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},ve.DRAINAGE={type:3,value:"DRAINAGE"},ve.EARTHING={type:3,value:"EARTHING"},ve.ELECTRICAL={type:3,value:"ELECTRICAL"},ve.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},ve.EXHAUST={type:3,value:"EXHAUST"},ve.FIREPROTECTION={type:3,value:"FIREPROTECTION"},ve.FIXEDTRANSMISSIONNETWORK={type:3,value:"FIXEDTRANSMISSIONNETWORK"},ve.FUEL={type:3,value:"FUEL"},ve.GAS={type:3,value:"GAS"},ve.HAZARDOUS={type:3,value:"HAZARDOUS"},ve.HEATING={type:3,value:"HEATING"},ve.LIGHTING={type:3,value:"LIGHTING"},ve.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},ve.MOBILENETWORK={type:3,value:"MOBILENETWORK"},ve.MONITORINGSYSTEM={type:3,value:"MONITORINGSYSTEM"},ve.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},ve.OIL={type:3,value:"OIL"},ve.OPERATIONAL={type:3,value:"OPERATIONAL"},ve.OPERATIONALTELEPHONYSYSTEM={type:3,value:"OPERATIONALTELEPHONYSYSTEM"},ve.OVERHEAD_CONTACTLINE_SYSTEM={type:3,value:"OVERHEAD_CONTACTLINE_SYSTEM"},ve.POWERGENERATION={type:3,value:"POWERGENERATION"},ve.RAINWATER={type:3,value:"RAINWATER"},ve.REFRIGERATION={type:3,value:"REFRIGERATION"},ve.RETURN_CIRCUIT={type:3,value:"RETURN_CIRCUIT"},ve.SECURITY={type:3,value:"SECURITY"},ve.SEWAGE={type:3,value:"SEWAGE"},ve.SIGNAL={type:3,value:"SIGNAL"},ve.STORMWATER={type:3,value:"STORMWATER"},ve.TELEPHONE={type:3,value:"TELEPHONE"},ve.TV={type:3,value:"TV"},ve.VACUUM={type:3,value:"VACUUM"},ve.VENT={type:3,value:"VENT"},ve.VENTILATION={type:3,value:"VENTILATION"},ve.WASTEWATER={type:3,value:"WASTEWATER"},ve.WATERSUPPLY={type:3,value:"WATERSUPPLY"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionSystemEnum=ve;class Ie{}Ie.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},Ie.PERSONAL={type:3,value:"PERSONAL"},Ie.PUBLIC={type:3,value:"PUBLIC"},Ie.RESTRICTED={type:3,value:"RESTRICTED"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=Ie;class _e{}_e.DRAFT={type:3,value:"DRAFT"},_e.FINAL={type:3,value:"FINAL"},_e.FINALDRAFT={type:3,value:"FINALDRAFT"},_e.REVISION={type:3,value:"REVISION"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=_e;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 Pe{}Pe.LEFT={type:3,value:"LEFT"},Pe.MIDDLE={type:3,value:"MIDDLE"},Pe.RIGHT={type:3,value:"RIGHT"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=Pe;class be{}be.ALUMINIUM={type:3,value:"ALUMINIUM"},be.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},be.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},be.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},be.PLASTIC={type:3,value:"PLASTIC"},be.STEEL={type:3,value:"STEEL"},be.WOOD={type:3,value:"WOOD"},be.USERDEFINED={type:3,value:"USERDEFINED"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=be;class Re{}Re.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Re.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Re.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Re.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Re.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Re.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Re.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Re.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Re.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Re.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Re.REVOLVING={type:3,value:"REVOLVING"},Re.ROLLINGUP={type:3,value:"ROLLINGUP"},Re.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Re.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Re.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Re.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=Re;class De{}De.BOOM_BARRIER={type:3,value:"BOOM_BARRIER"},De.DOOR={type:3,value:"DOOR"},De.GATE={type:3,value:"GATE"},De.TRAPDOOR={type:3,value:"TRAPDOOR"},De.TURNSTILE={type:3,value:"TURNSTILE"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeEnum=De;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 Ne{}Ne.BEND={type:3,value:"BEND"},Ne.CONNECTOR={type:3,value:"CONNECTOR"},Ne.ENTRY={type:3,value:"ENTRY"},Ne.EXIT={type:3,value:"EXIT"},Ne.JUNCTION={type:3,value:"JUNCTION"},Ne.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Ne.TRANSITION={type:3,value:"TRANSITION"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=Ne;class Oe{}Oe.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Oe.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Oe.USERDEFINED={type:3,value:"USERDEFINED"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=Oe;class xe{}xe.FLATOVAL={type:3,value:"FLATOVAL"},xe.RECTANGULAR={type:3,value:"RECTANGULAR"},xe.ROUND={type:3,value:"ROUND"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSilencerTypeEnum=xe;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 we{}we.BACKFILL={type:3,value:"BACKFILL"},we.COUNTERWEIGHT={type:3,value:"COUNTERWEIGHT"},we.EMBANKMENT={type:3,value:"EMBANKMENT"},we.SLOPEFILL={type:3,value:"SLOPEFILL"},we.SUBGRADE={type:3,value:"SUBGRADE"},we.SUBGRADEBED={type:3,value:"SUBGRADEBED"},we.TRANSITIONSECTION={type:3,value:"TRANSITIONSECTION"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEarthworksFillTypeEnum=we;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.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},Me.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},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 Be{}Be.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},Be.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},Be.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},Be.SWITCHBOARD={type:3,value:"SWITCHBOARD"},Be.USERDEFINED={type:3,value:"USERDEFINED"},Be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionBoardTypeEnum=Be;class Fe{}Fe.BATTERY={type:3,value:"BATTERY"},Fe.CAPACITOR={type:3,value:"CAPACITOR"},Fe.CAPACITORBANK={type:3,value:"CAPACITORBANK"},Fe.COMPENSATOR={type:3,value:"COMPENSATOR"},Fe.HARMONICFILTER={type:3,value:"HARMONICFILTER"},Fe.INDUCTOR={type:3,value:"INDUCTOR"},Fe.INDUCTORBANK={type:3,value:"INDUCTORBANK"},Fe.RECHARGER={type:3,value:"RECHARGER"},Fe.UPS={type:3,value:"UPS"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=Fe;class Le{}Le.ELECTRONICFILTER={type:3,value:"ELECTRONICFILTER"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowTreatmentDeviceTypeEnum=Le;class Ue{}Ue.CHP={type:3,value:"CHP"},Ue.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},Ue.STANDALONE={type:3,value:"STANDALONE"},Ue.USERDEFINED={type:3,value:"USERDEFINED"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=Ue;class He{}He.DC={type:3,value:"DC"},He.INDUCTION={type:3,value:"INDUCTION"},He.POLYPHASE={type:3,value:"POLYPHASE"},He.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},He.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},He.USERDEFINED={type:3,value:"USERDEFINED"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=He;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 ke{}ke.ABUTMENT={type:3,value:"ABUTMENT"},ke.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},ke.ARCH={type:3,value:"ARCH"},ke.BEAM_GRID={type:3,value:"BEAM_GRID"},ke.BRACED_FRAME={type:3,value:"BRACED_FRAME"},ke.CROSS_BRACING={type:3,value:"CROSS_BRACING"},ke.DECK={type:3,value:"DECK"},ke.DILATATIONPANEL={type:3,value:"DILATATIONPANEL"},ke.ENTRANCEWORKS={type:3,value:"ENTRANCEWORKS"},ke.GIRDER={type:3,value:"GIRDER"},ke.GRID={type:3,value:"GRID"},ke.MAST={type:3,value:"MAST"},ke.PIER={type:3,value:"PIER"},ke.PYLON={type:3,value:"PYLON"},ke.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY={type:3,value:"RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY"},ke.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},ke.RIGID_FRAME={type:3,value:"RIGID_FRAME"},ke.SHELTER={type:3,value:"SHELTER"},ke.SIGNALASSEMBLY={type:3,value:"SIGNALASSEMBLY"},ke.SLAB_FIELD={type:3,value:"SLAB_FIELD"},ke.SUMPBUSTER={type:3,value:"SUMPBUSTER"},ke.SUPPORTINGASSEMBLY={type:3,value:"SUPPORTINGASSEMBLY"},ke.SUSPENSIONASSEMBLY={type:3,value:"SUSPENSIONASSEMBLY"},ke.TRACKPANEL={type:3,value:"TRACKPANEL"},ke.TRACTION_SWITCHING_ASSEMBLY={type:3,value:"TRACTION_SWITCHING_ASSEMBLY"},ke.TRAFFIC_CALMING_DEVICE={type:3,value:"TRAFFIC_CALMING_DEVICE"},ke.TRUSS={type:3,value:"TRUSS"},ke.TURNOUTPANEL={type:3,value:"TURNOUTPANEL"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=ke;class Ve{}Ve.COMPLEX={type:3,value:"COMPLEX"},Ve.ELEMENT={type:3,value:"ELEMENT"},Ve.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=Ve;class je{}je.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},je.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEngineTypeEnum=je;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 Ze{}Ze.LATERAL={type:3,value:"LATERAL"},Ze.LONGITUDINAL={type:3,value:"LONGITUDINAL"},Ze.REGION={type:3,value:"REGION"},Ze.VERTICAL={type:3,value:"VERTICAL"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFacilityUsageEnum=Ze;class qe{}qe.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},qe.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},qe.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},qe.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},qe.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},qe.TUBEAXIAL={type:3,value:"TUBEAXIAL"},qe.VANEAXIAL={type:3,value:"VANEAXIAL"},qe.USERDEFINED={type:3,value:"USERDEFINED"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFanTypeEnum=qe;class Je{}Je.GLUE={type:3,value:"GLUE"},Je.MORTAR={type:3,value:"MORTAR"},Je.WELD={type:3,value:"WELD"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFastenerTypeEnum=Je;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 it{}it.ENERGYMETER={type:3,value:"ENERGYMETER"},it.GASMETER={type:3,value:"GASMETER"},it.OILMETER={type:3,value:"OILMETER"},it.WATERMETER={type:3,value:"WATERMETER"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=it;class rt{}rt.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},rt.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},rt.PAD_FOOTING={type:3,value:"PAD_FOOTING"},rt.PILE_CAP={type:3,value:"PILE_CAP"},rt.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=rt;class ot{}ot.BED={type:3,value:"BED"},ot.CHAIR={type:3,value:"CHAIR"},ot.DESK={type:3,value:"DESK"},ot.FILECABINET={type:3,value:"FILECABINET"},ot.SHELF={type:3,value:"SHELF"},ot.SOFA={type:3,value:"SOFA"},ot.TABLE={type:3,value:"TABLE"},ot.TECHNICALCABINET={type:3,value:"TECHNICALCABINET"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFurnitureTypeEnum=ot;class nt{}nt.SOIL_BORING_POINT={type:3,value:"SOIL_BORING_POINT"},nt.TERRAIN={type:3,value:"TERRAIN"},nt.VEGETATION={type:3,value:"VEGETATION"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeographicElementTypeEnum=nt;class at{}at.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},at.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},at.MODEL_VIEW={type:3,value:"MODEL_VIEW"},at.PLAN_VIEW={type:3,value:"PLAN_VIEW"},at.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},at.SECTION_VIEW={type:3,value:"SECTION_VIEW"},at.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},at.USERDEFINED={type:3,value:"USERDEFINED"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=at;class lt{}lt.SOLID={type:3,value:"SOLID"},lt.VOID={type:3,value:"VOID"},lt.WATER={type:3,value:"WATER"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeotechnicalStratumTypeEnum=lt;class ht{}ht.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},ht.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=ht;class ct{}ct.IRREGULAR={type:3,value:"IRREGULAR"},ct.RADIAL={type:3,value:"RADIAL"},ct.RECTANGULAR={type:3,value:"RECTANGULAR"},ct.TRIANGULAR={type:3,value:"TRIANGULAR"},ct.USERDEFINED={type:3,value:"USERDEFINED"},ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGridTypeEnum=ct;class ut{}ut.PLATE={type:3,value:"PLATE"},ut.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},ut.TURNOUTHEATING={type:3,value:"TURNOUTHEATING"},ut.USERDEFINED={type:3,value:"USERDEFINED"},ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=ut;class At{}At.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},At.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},At.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},At.ADIABATICPAN={type:3,value:"ADIABATICPAN"},At.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},At.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},At.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},At.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},At.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},At.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},At.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},At.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},At.STEAMINJECTION={type:3,value:"STEAMINJECTION"},At.USERDEFINED={type:3,value:"USERDEFINED"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=At;class pt{}pt.BUMPER={type:3,value:"BUMPER"},pt.CRASHCUSHION={type:3,value:"CRASHCUSHION"},pt.DAMPINGSYSTEM={type:3,value:"DAMPINGSYSTEM"},pt.FENDER={type:3,value:"FENDER"},pt.USERDEFINED={type:3,value:"USERDEFINED"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcImpactProtectionDeviceTypeEnum=pt;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 mt{}mt.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},mt.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},mt.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=mt;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 Et{}Et.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},Et.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},Et.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},Et.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcKnotType=Et;class gt{}gt.ADMINISTRATION={type:3,value:"ADMINISTRATION"},gt.CARPENTRY={type:3,value:"CARPENTRY"},gt.CLEANING={type:3,value:"CLEANING"},gt.CONCRETE={type:3,value:"CONCRETE"},gt.DRYWALL={type:3,value:"DRYWALL"},gt.ELECTRIC={type:3,value:"ELECTRIC"},gt.FINISHING={type:3,value:"FINISHING"},gt.FLOORING={type:3,value:"FLOORING"},gt.GENERAL={type:3,value:"GENERAL"},gt.HVAC={type:3,value:"HVAC"},gt.LANDSCAPING={type:3,value:"LANDSCAPING"},gt.MASONRY={type:3,value:"MASONRY"},gt.PAINTING={type:3,value:"PAINTING"},gt.PAVING={type:3,value:"PAVING"},gt.PLUMBING={type:3,value:"PLUMBING"},gt.ROOFING={type:3,value:"ROOFING"},gt.SITEGRADING={type:3,value:"SITEGRADING"},gt.STEELWORK={type:3,value:"STEELWORK"},gt.SURVEYING={type:3,value:"SURVEYING"},gt.USERDEFINED={type:3,value:"USERDEFINED"},gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLaborResourceTypeEnum=gt;class vt{}vt.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},vt.FLUORESCENT={type:3,value:"FLUORESCENT"},vt.HALOGEN={type:3,value:"HALOGEN"},vt.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},vt.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},vt.LED={type:3,value:"LED"},vt.METALHALIDE={type:3,value:"METALHALIDE"},vt.OLED={type:3,value:"OLED"},vt.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},vt.USERDEFINED={type:3,value:"USERDEFINED"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=vt;class It{}It.AXIS1={type:3,value:"AXIS1"},It.AXIS2={type:3,value:"AXIS2"},It.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=It;class _t{}_t.TYPE_A={type:3,value:"TYPE_A"},_t.TYPE_B={type:3,value:"TYPE_B"},_t.TYPE_C={type:3,value:"TYPE_C"},_t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=_t;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 Pt{}Pt.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},Pt.POINTSOURCE={type:3,value:"POINTSOURCE"},Pt.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=Pt;class bt{}bt.HOSEREEL={type:3,value:"HOSEREEL"},bt.LOADINGARM={type:3,value:"LOADINGARM"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLiquidTerminalTypeEnum=bt;class Rt{}Rt.LOAD_CASE={type:3,value:"LOAD_CASE"},Rt.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},Rt.LOAD_GROUP={type:3,value:"LOAD_GROUP"},Rt.USERDEFINED={type:3,value:"USERDEFINED"},Rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=Rt;class Dt{}Dt.LOGICALAND={type:3,value:"LOGICALAND"},Dt.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},Dt.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"},Dt.LOGICALOR={type:3,value:"LOGICALOR"},Dt.LOGICALXOR={type:3,value:"LOGICALXOR"},e.IfcLogicalOperatorEnum=Dt;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 Nt{}Nt.ABOVEWATERLINE={type:3,value:"ABOVEWATERLINE"},Nt.ANCHORAGE={type:3,value:"ANCHORAGE"},Nt.APPROACHCHANNEL={type:3,value:"APPROACHCHANNEL"},Nt.BELOWWATERLINE={type:3,value:"BELOWWATERLINE"},Nt.BERTHINGSTRUCTURE={type:3,value:"BERTHINGSTRUCTURE"},Nt.CHAMBER={type:3,value:"CHAMBER"},Nt.CILL_LEVEL={type:3,value:"CILL_LEVEL"},Nt.COPELEVEL={type:3,value:"COPELEVEL"},Nt.CORE={type:3,value:"CORE"},Nt.CREST={type:3,value:"CREST"},Nt.GATEHEAD={type:3,value:"GATEHEAD"},Nt.GUDINGSTRUCTURE={type:3,value:"GUDINGSTRUCTURE"},Nt.HIGHWATERLINE={type:3,value:"HIGHWATERLINE"},Nt.LANDFIELD={type:3,value:"LANDFIELD"},Nt.LEEWARDSIDE={type:3,value:"LEEWARDSIDE"},Nt.LOWWATERLINE={type:3,value:"LOWWATERLINE"},Nt.MANUFACTURING={type:3,value:"MANUFACTURING"},Nt.NAVIGATIONALAREA={type:3,value:"NAVIGATIONALAREA"},Nt.PROTECTION={type:3,value:"PROTECTION"},Nt.SHIPTRANSFER={type:3,value:"SHIPTRANSFER"},Nt.STORAGEAREA={type:3,value:"STORAGEAREA"},Nt.VEHICLESERVICING={type:3,value:"VEHICLESERVICING"},Nt.WATERFIELD={type:3,value:"WATERFIELD"},Nt.WEATHERSIDE={type:3,value:"WEATHERSIDE"},Nt.USERDEFINED={type:3,value:"USERDEFINED"},Nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMarinePartTypeEnum=Nt;class Ot{}Ot.ANCHORBOLT={type:3,value:"ANCHORBOLT"},Ot.BOLT={type:3,value:"BOLT"},Ot.CHAIN={type:3,value:"CHAIN"},Ot.COUPLER={type:3,value:"COUPLER"},Ot.DOWEL={type:3,value:"DOWEL"},Ot.NAIL={type:3,value:"NAIL"},Ot.NAILPLATE={type:3,value:"NAILPLATE"},Ot.RAILFASTENING={type:3,value:"RAILFASTENING"},Ot.RAILJOINT={type:3,value:"RAILJOINT"},Ot.RIVET={type:3,value:"RIVET"},Ot.ROPE={type:3,value:"ROPE"},Ot.SCREW={type:3,value:"SCREW"},Ot.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},Ot.STAPLE={type:3,value:"STAPLE"},Ot.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMechanicalFastenerTypeEnum=Ot;class xt{}xt.AIRSTATION={type:3,value:"AIRSTATION"},xt.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},xt.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},xt.OXYGENPLANT={type:3,value:"OXYGENPLANT"},xt.VACUUMSTATION={type:3,value:"VACUUMSTATION"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMedicalDeviceTypeEnum=xt;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 wt{}wt.ACCESSPOINT={type:3,value:"ACCESSPOINT"},wt.BASEBANDUNIT={type:3,value:"BASEBANDUNIT"},wt.BASETRANSCEIVERSTATION={type:3,value:"BASETRANSCEIVERSTATION"},wt.E_UTRAN_NODE_B={type:3,value:"E_UTRAN_NODE_B"},wt.GATEWAY_GPRS_SUPPORT_NODE={type:3,value:"GATEWAY_GPRS_SUPPORT_NODE"},wt.MASTERUNIT={type:3,value:"MASTERUNIT"},wt.MOBILESWITCHINGCENTER={type:3,value:"MOBILESWITCHINGCENTER"},wt.MSCSERVER={type:3,value:"MSCSERVER"},wt.PACKETCONTROLUNIT={type:3,value:"PACKETCONTROLUNIT"},wt.REMOTERADIOUNIT={type:3,value:"REMOTERADIOUNIT"},wt.REMOTEUNIT={type:3,value:"REMOTEUNIT"},wt.SERVICE_GPRS_SUPPORT_NODE={type:3,value:"SERVICE_GPRS_SUPPORT_NODE"},wt.SUBSCRIBERSERVER={type:3,value:"SUBSCRIBERSERVER"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMobileTelecommunicationsApplianceTypeEnum=wt;class Mt{}Mt.BOLLARD={type:3,value:"BOLLARD"},Mt.LINETENSIONER={type:3,value:"LINETENSIONER"},Mt.MAGNETICDEVICE={type:3,value:"MAGNETICDEVICE"},Mt.MOORINGHOOKS={type:3,value:"MOORINGHOOKS"},Mt.VACUUMDEVICE={type:3,value:"VACUUMDEVICE"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMooringDeviceTypeEnum=Mt;class Bt{}Bt.BELTDRIVE={type:3,value:"BELTDRIVE"},Bt.COUPLING={type:3,value:"COUPLING"},Bt.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=Bt;class Ft{}Ft.BEACON={type:3,value:"BEACON"},Ft.BUOY={type:3,value:"BUOY"},Ft.USERDEFINED={type:3,value:"USERDEFINED"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcNavigationElementTypeEnum=Ft;class Lt{}Lt.ACTOR={type:3,value:"ACTOR"},Lt.CONTROL={type:3,value:"CONTROL"},Lt.GROUP={type:3,value:"GROUP"},Lt.PROCESS={type:3,value:"PROCESS"},Lt.PRODUCT={type:3,value:"PRODUCT"},Lt.PROJECT={type:3,value:"PROJECT"},Lt.RESOURCE={type:3,value:"RESOURCE"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=Lt;class Ut{}Ut.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},Ut.CODEWAIVER={type:3,value:"CODEWAIVER"},Ut.DESIGNINTENT={type:3,value:"DESIGNINTENT"},Ut.EXTERNAL={type:3,value:"EXTERNAL"},Ut.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},Ut.MERGECONFLICT={type:3,value:"MERGECONFLICT"},Ut.MODELVIEW={type:3,value:"MODELVIEW"},Ut.PARAMETER={type:3,value:"PARAMETER"},Ut.REQUIREMENT={type:3,value:"REQUIREMENT"},Ut.SPECIFICATION={type:3,value:"SPECIFICATION"},Ut.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},Ut.USERDEFINED={type:3,value:"USERDEFINED"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=Ut;class Ht{}Ht.ASSIGNEE={type:3,value:"ASSIGNEE"},Ht.ASSIGNOR={type:3,value:"ASSIGNOR"},Ht.LESSEE={type:3,value:"LESSEE"},Ht.LESSOR={type:3,value:"LESSOR"},Ht.LETTINGAGENT={type:3,value:"LETTINGAGENT"},Ht.OWNER={type:3,value:"OWNER"},Ht.TENANT={type:3,value:"TENANT"},Ht.USERDEFINED={type:3,value:"USERDEFINED"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=Ht;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 kt{}kt.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},kt.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},kt.DATAOUTLET={type:3,value:"DATAOUTLET"},kt.POWEROUTLET={type:3,value:"POWEROUTLET"},kt.TELEPHONEOUTLET={type:3,value:"TELEPHONEOUTLET"},kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOutletTypeEnum=kt;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 jt{}jt.USERDEFINED={type:3,value:"USERDEFINED"},jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPerformanceHistoryTypeEnum=jt;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 Zt{}Zt.CULVERT={type:3,value:"CULVERT"},Zt.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Zt.GUTTER={type:3,value:"GUTTER"},Zt.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Zt.SPOOL={type:3,value:"SPOOL"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeSegmentTypeEnum=Zt;class qt{}qt.BASE_PLATE={type:3,value:"BASE_PLATE"},qt.COVER_PLATE={type:3,value:"COVER_PLATE"},qt.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},qt.FLANGE_PLATE={type:3,value:"FLANGE_PLATE"},qt.GUSSET_PLATE={type:3,value:"GUSSET_PLATE"},qt.SHEET={type:3,value:"SHEET"},qt.SPLICE_PLATE={type:3,value:"SPLICE_PLATE"},qt.STIFFENER_PLATE={type:3,value:"STIFFENER_PLATE"},qt.WEB_PLATE={type:3,value:"WEB_PLATE"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=qt;class Jt{}Jt.CURVE3D={type:3,value:"CURVE3D"},Jt.PCURVE_S1={type:3,value:"PCURVE_S1"},Jt.PCURVE_S2={type:3,value:"PCURVE_S2"},e.IfcPreferredSurfaceCurveRepresentation=Jt;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 is{}is.BLISTER={type:3,value:"BLISTER"},is.DEVIATOR={type:3,value:"DEVIATOR"},is.USERDEFINED={type:3,value:"USERDEFINED"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectionElementTypeEnum=is;class rs{}rs.PSET_MATERIALDRIVEN={type:3,value:"PSET_MATERIALDRIVEN"},rs.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},rs.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},rs.PSET_PROFILEDRIVEN={type:3,value:"PSET_PROFILEDRIVEN"},rs.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},rs.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},rs.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},rs.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},rs.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPropertySetTemplateTypeEnum=rs;class os{}os.ELECTROMAGNETIC={type:3,value:"ELECTROMAGNETIC"},os.ELECTRONIC={type:3,value:"ELECTRONIC"},os.RESIDUALCURRENT={type:3,value:"RESIDUALCURRENT"},os.THERMAL={type:3,value:"THERMAL"},os.USERDEFINED={type:3,value:"USERDEFINED"},os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTrippingUnitTypeEnum=os;class ns{}ns.ANTI_ARCING_DEVICE={type:3,value:"ANTI_ARCING_DEVICE"},ns.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},ns.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},ns.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},ns.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},ns.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},ns.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},ns.SPARKGAP={type:3,value:"SPARKGAP"},ns.VARISTOR={type:3,value:"VARISTOR"},ns.VOLTAGELIMITER={type:3,value:"VOLTAGELIMITER"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=ns;class as{}as.CIRCULATOR={type:3,value:"CIRCULATOR"},as.ENDSUCTION={type:3,value:"ENDSUCTION"},as.SPLITCASE={type:3,value:"SPLITCASE"},as.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},as.SUMPPUMP={type:3,value:"SUMPPUMP"},as.VERTICALINLINE={type:3,value:"VERTICALINLINE"},as.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},as.USERDEFINED={type:3,value:"USERDEFINED"},as.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=as;class ls{}ls.BLADE={type:3,value:"BLADE"},ls.CHECKRAIL={type:3,value:"CHECKRAIL"},ls.GUARDRAIL={type:3,value:"GUARDRAIL"},ls.RACKRAIL={type:3,value:"RACKRAIL"},ls.RAIL={type:3,value:"RAIL"},ls.STOCKRAIL={type:3,value:"STOCKRAIL"},ls.USERDEFINED={type:3,value:"USERDEFINED"},ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailTypeEnum=ls;class hs{}hs.BALUSTRADE={type:3,value:"BALUSTRADE"},hs.FENCE={type:3,value:"FENCE"},hs.GUARDRAIL={type:3,value:"GUARDRAIL"},hs.HANDRAIL={type:3,value:"HANDRAIL"},hs.USERDEFINED={type:3,value:"USERDEFINED"},hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=hs;class cs{}cs.DILATATIONSUPERSTRUCTURE={type:3,value:"DILATATIONSUPERSTRUCTURE"},cs.LINESIDESTRUCTURE={type:3,value:"LINESIDESTRUCTURE"},cs.LINESIDESTRUCTUREPART={type:3,value:"LINESIDESTRUCTUREPART"},cs.PLAINTRACKSUPERSTRUCTURE={type:3,value:"PLAINTRACKSUPERSTRUCTURE"},cs.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},cs.TRACKSTRUCTURE={type:3,value:"TRACKSTRUCTURE"},cs.TRACKSTRUCTUREPART={type:3,value:"TRACKSTRUCTUREPART"},cs.TURNOUTSUPERSTRUCTURE={type:3,value:"TURNOUTSUPERSTRUCTURE"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailwayPartTypeEnum=cs;class us{}us.USERDEFINED={type:3,value:"USERDEFINED"},us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailwayTypeEnum=us;class As{}As.SPIRAL={type:3,value:"SPIRAL"},As.STRAIGHT={type:3,value:"STRAIGHT"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=As;class ps{}ps.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},ps.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},ps.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},ps.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},ps.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},ps.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},ps.USERDEFINED={type:3,value:"USERDEFINED"},ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=ps;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 ms{}ms.BLINN={type:3,value:"BLINN"},ms.FLAT={type:3,value:"FLAT"},ms.GLASS={type:3,value:"GLASS"},ms.MATT={type:3,value:"MATT"},ms.METAL={type:3,value:"METAL"},ms.MIRROR={type:3,value:"MIRROR"},ms.PHONG={type:3,value:"PHONG"},ms.PHYSICAL={type:3,value:"PHYSICAL"},ms.PLASTIC={type:3,value:"PLASTIC"},ms.STRAUSS={type:3,value:"STRAUSS"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=ms;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 Es{}Es.ANCHORING={type:3,value:"ANCHORING"},Es.EDGE={type:3,value:"EDGE"},Es.LIGATURE={type:3,value:"LIGATURE"},Es.MAIN={type:3,value:"MAIN"},Es.PUNCHING={type:3,value:"PUNCHING"},Es.RING={type:3,value:"RING"},Es.SHEAR={type:3,value:"SHEAR"},Es.STUD={type:3,value:"STUD"},Es.USERDEFINED={type:3,value:"USERDEFINED"},Es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=Es;class gs{}gs.PLAIN={type:3,value:"PLAIN"},gs.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=gs;class vs{}vs.ANCHORING={type:3,value:"ANCHORING"},vs.EDGE={type:3,value:"EDGE"},vs.LIGATURE={type:3,value:"LIGATURE"},vs.MAIN={type:3,value:"MAIN"},vs.PUNCHING={type:3,value:"PUNCHING"},vs.RING={type:3,value:"RING"},vs.SHEAR={type:3,value:"SHEAR"},vs.SPACEBAR={type:3,value:"SPACEBAR"},vs.STUD={type:3,value:"STUD"},vs.USERDEFINED={type:3,value:"USERDEFINED"},vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarTypeEnum=vs;class Is{}Is.USERDEFINED={type:3,value:"USERDEFINED"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingMeshTypeEnum=Is;class _s{}_s.BICYCLECROSSING={type:3,value:"BICYCLECROSSING"},_s.BUS_STOP={type:3,value:"BUS_STOP"},_s.CARRIAGEWAY={type:3,value:"CARRIAGEWAY"},_s.CENTRALISLAND={type:3,value:"CENTRALISLAND"},_s.CENTRALRESERVE={type:3,value:"CENTRALRESERVE"},_s.HARDSHOULDER={type:3,value:"HARDSHOULDER"},_s.INTERSECTION={type:3,value:"INTERSECTION"},_s.LAYBY={type:3,value:"LAYBY"},_s.PARKINGBAY={type:3,value:"PARKINGBAY"},_s.PASSINGBAY={type:3,value:"PASSINGBAY"},_s.PEDESTRIAN_CROSSING={type:3,value:"PEDESTRIAN_CROSSING"},_s.RAILWAYCROSSING={type:3,value:"RAILWAYCROSSING"},_s.REFUGEISLAND={type:3,value:"REFUGEISLAND"},_s.ROADSEGMENT={type:3,value:"ROADSEGMENT"},_s.ROADSIDE={type:3,value:"ROADSIDE"},_s.ROADSIDEPART={type:3,value:"ROADSIDEPART"},_s.ROADWAYPLATEAU={type:3,value:"ROADWAYPLATEAU"},_s.ROUNDABOUT={type:3,value:"ROUNDABOUT"},_s.SHOULDER={type:3,value:"SHOULDER"},_s.SIDEWALK={type:3,value:"SIDEWALK"},_s.SOFTSHOULDER={type:3,value:"SOFTSHOULDER"},_s.TOLLPLAZA={type:3,value:"TOLLPLAZA"},_s.TRAFFICISLAND={type:3,value:"TRAFFICISLAND"},_s.TRAFFICLANE={type:3,value:"TRAFFICLANE"},_s.USERDEFINED={type:3,value:"USERDEFINED"},_s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoadPartTypeEnum=_s;class Ts{}Ts.USERDEFINED={type:3,value:"USERDEFINED"},Ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoadTypeEnum=Ts;class Ps{}Ps.ARCHITECT={type:3,value:"ARCHITECT"},Ps.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},Ps.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},Ps.CIVILENGINEER={type:3,value:"CIVILENGINEER"},Ps.CLIENT={type:3,value:"CLIENT"},Ps.COMMISSIONINGENGINEER={type:3,value:"COMMISSIONINGENGINEER"},Ps.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},Ps.CONSULTANT={type:3,value:"CONSULTANT"},Ps.CONTRACTOR={type:3,value:"CONTRACTOR"},Ps.COSTENGINEER={type:3,value:"COSTENGINEER"},Ps.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},Ps.ENGINEER={type:3,value:"ENGINEER"},Ps.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},Ps.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},Ps.MANUFACTURER={type:3,value:"MANUFACTURER"},Ps.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},Ps.OWNER={type:3,value:"OWNER"},Ps.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},Ps.RESELLER={type:3,value:"RESELLER"},Ps.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},Ps.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},Ps.SUPPLIER={type:3,value:"SUPPLIER"},Ps.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=Ps;class bs{}bs.BARREL_ROOF={type:3,value:"BARREL_ROOF"},bs.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},bs.DOME_ROOF={type:3,value:"DOME_ROOF"},bs.FLAT_ROOF={type:3,value:"FLAT_ROOF"},bs.FREEFORM={type:3,value:"FREEFORM"},bs.GABLE_ROOF={type:3,value:"GABLE_ROOF"},bs.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},bs.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},bs.HIP_ROOF={type:3,value:"HIP_ROOF"},bs.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},bs.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},bs.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},bs.SHED_ROOF={type:3,value:"SHED_ROOF"},bs.USERDEFINED={type:3,value:"USERDEFINED"},bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=bs;class Rs{}Rs.ATTO={type:3,value:"ATTO"},Rs.CENTI={type:3,value:"CENTI"},Rs.DECA={type:3,value:"DECA"},Rs.DECI={type:3,value:"DECI"},Rs.EXA={type:3,value:"EXA"},Rs.FEMTO={type:3,value:"FEMTO"},Rs.GIGA={type:3,value:"GIGA"},Rs.HECTO={type:3,value:"HECTO"},Rs.KILO={type:3,value:"KILO"},Rs.MEGA={type:3,value:"MEGA"},Rs.MICRO={type:3,value:"MICRO"},Rs.MILLI={type:3,value:"MILLI"},Rs.NANO={type:3,value:"NANO"},Rs.PETA={type:3,value:"PETA"},Rs.PICO={type:3,value:"PICO"},Rs.TERA={type:3,value:"TERA"},e.IfcSIPrefix=Rs;class Ds{}Ds.AMPERE={type:3,value:"AMPERE"},Ds.BECQUEREL={type:3,value:"BECQUEREL"},Ds.CANDELA={type:3,value:"CANDELA"},Ds.COULOMB={type:3,value:"COULOMB"},Ds.CUBIC_METRE={type:3,value:"CUBIC_METRE"},Ds.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},Ds.FARAD={type:3,value:"FARAD"},Ds.GRAM={type:3,value:"GRAM"},Ds.GRAY={type:3,value:"GRAY"},Ds.HENRY={type:3,value:"HENRY"},Ds.HERTZ={type:3,value:"HERTZ"},Ds.JOULE={type:3,value:"JOULE"},Ds.KELVIN={type:3,value:"KELVIN"},Ds.LUMEN={type:3,value:"LUMEN"},Ds.LUX={type:3,value:"LUX"},Ds.METRE={type:3,value:"METRE"},Ds.MOLE={type:3,value:"MOLE"},Ds.NEWTON={type:3,value:"NEWTON"},Ds.OHM={type:3,value:"OHM"},Ds.PASCAL={type:3,value:"PASCAL"},Ds.RADIAN={type:3,value:"RADIAN"},Ds.SECOND={type:3,value:"SECOND"},Ds.SIEMENS={type:3,value:"SIEMENS"},Ds.SIEVERT={type:3,value:"SIEVERT"},Ds.SQUARE_METRE={type:3,value:"SQUARE_METRE"},Ds.STERADIAN={type:3,value:"STERADIAN"},Ds.TESLA={type:3,value:"TESLA"},Ds.VOLT={type:3,value:"VOLT"},Ds.WATT={type:3,value:"WATT"},Ds.WEBER={type:3,value:"WEBER"},e.IfcSIUnitName=Ds;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 Ns{}Ns.TAPERED={type:3,value:"TAPERED"},Ns.UNIFORM={type:3,value:"UNIFORM"},e.IfcSectionTypeEnum=Ns;class Os{}Os.CO2SENSOR={type:3,value:"CO2SENSOR"},Os.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},Os.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},Os.COSENSOR={type:3,value:"COSENSOR"},Os.EARTHQUAKESENSOR={type:3,value:"EARTHQUAKESENSOR"},Os.FIRESENSOR={type:3,value:"FIRESENSOR"},Os.FLOWSENSOR={type:3,value:"FLOWSENSOR"},Os.FOREIGNOBJECTDETECTIONSENSOR={type:3,value:"FOREIGNOBJECTDETECTIONSENSOR"},Os.FROSTSENSOR={type:3,value:"FROSTSENSOR"},Os.GASSENSOR={type:3,value:"GASSENSOR"},Os.HEATSENSOR={type:3,value:"HEATSENSOR"},Os.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},Os.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},Os.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},Os.LEVELSENSOR={type:3,value:"LEVELSENSOR"},Os.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},Os.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},Os.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},Os.OBSTACLESENSOR={type:3,value:"OBSTACLESENSOR"},Os.PHSENSOR={type:3,value:"PHSENSOR"},Os.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},Os.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},Os.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},Os.RAINSENSOR={type:3,value:"RAINSENSOR"},Os.SMOKESENSOR={type:3,value:"SMOKESENSOR"},Os.SNOWDEPTHSENSOR={type:3,value:"SNOWDEPTHSENSOR"},Os.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},Os.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},Os.TRAINSENSOR={type:3,value:"TRAINSENSOR"},Os.TURNOUTCLOSURESENSOR={type:3,value:"TURNOUTCLOSURESENSOR"},Os.WHEELSENSOR={type:3,value:"WHEELSENSOR"},Os.WINDSENSOR={type:3,value:"WINDSENSOR"},Os.USERDEFINED={type:3,value:"USERDEFINED"},Os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=Os;class xs{}xs.FINISH_FINISH={type:3,value:"FINISH_FINISH"},xs.FINISH_START={type:3,value:"FINISH_START"},xs.START_FINISH={type:3,value:"START_FINISH"},xs.START_START={type:3,value:"START_START"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=xs;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 ws{}ws.MARKER={type:3,value:"MARKER"},ws.MIRROR={type:3,value:"MIRROR"},ws.PICTORAL={type:3,value:"PICTORAL"},ws.USERDEFINED={type:3,value:"USERDEFINED"},ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSignTypeEnum=ws;class Ms{}Ms.AUDIO={type:3,value:"AUDIO"},Ms.MIXED={type:3,value:"MIXED"},Ms.VISUAL={type:3,value:"VISUAL"},Ms.USERDEFINED={type:3,value:"USERDEFINED"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSignalTypeEnum=Ms;class Bs{}Bs.P_BOUNDEDVALUE={type:3,value:"P_BOUNDEDVALUE"},Bs.P_ENUMERATEDVALUE={type:3,value:"P_ENUMERATEDVALUE"},Bs.P_LISTVALUE={type:3,value:"P_LISTVALUE"},Bs.P_REFERENCEVALUE={type:3,value:"P_REFERENCEVALUE"},Bs.P_SINGLEVALUE={type:3,value:"P_SINGLEVALUE"},Bs.P_TABLEVALUE={type:3,value:"P_TABLEVALUE"},Bs.Q_AREA={type:3,value:"Q_AREA"},Bs.Q_COUNT={type:3,value:"Q_COUNT"},Bs.Q_LENGTH={type:3,value:"Q_LENGTH"},Bs.Q_NUMBER={type:3,value:"Q_NUMBER"},Bs.Q_TIME={type:3,value:"Q_TIME"},Bs.Q_VOLUME={type:3,value:"Q_VOLUME"},Bs.Q_WEIGHT={type:3,value:"Q_WEIGHT"},e.IfcSimplePropertyTemplateTypeEnum=Bs;class Fs{}Fs.APPROACH_SLAB={type:3,value:"APPROACH_SLAB"},Fs.BASESLAB={type:3,value:"BASESLAB"},Fs.FLOOR={type:3,value:"FLOOR"},Fs.LANDING={type:3,value:"LANDING"},Fs.PAVING={type:3,value:"PAVING"},Fs.ROOF={type:3,value:"ROOF"},Fs.SIDEWALK={type:3,value:"SIDEWALK"},Fs.TRACKSLAB={type:3,value:"TRACKSLAB"},Fs.WEARING={type:3,value:"WEARING"},Fs.USERDEFINED={type:3,value:"USERDEFINED"},Fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=Fs;class Ls{}Ls.SOLARCOLLECTOR={type:3,value:"SOLARCOLLECTOR"},Ls.SOLARPANEL={type:3,value:"SOLARPANEL"},Ls.USERDEFINED={type:3,value:"USERDEFINED"},Ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSolarDeviceTypeEnum=Ls;class Us{}Us.CONVECTOR={type:3,value:"CONVECTOR"},Us.RADIATOR={type:3,value:"RADIATOR"},Us.USERDEFINED={type:3,value:"USERDEFINED"},Us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=Us;class Hs{}Hs.BERTH={type:3,value:"BERTH"},Hs.EXTERNAL={type:3,value:"EXTERNAL"},Hs.GFA={type:3,value:"GFA"},Hs.INTERNAL={type:3,value:"INTERNAL"},Hs.PARKING={type:3,value:"PARKING"},Hs.SPACE={type:3,value:"SPACE"},Hs.USERDEFINED={type:3,value:"USERDEFINED"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=Hs;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 ks{}ks.BIRDCAGE={type:3,value:"BIRDCAGE"},ks.COWL={type:3,value:"COWL"},ks.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},ks.USERDEFINED={type:3,value:"USERDEFINED"},ks.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=ks;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 js{}js.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},js.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},js.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},js.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},js.LADDER={type:3,value:"LADDER"},js.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},js.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},js.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},js.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},js.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},js.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},js.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},js.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},js.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},js.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},js.USERDEFINED={type:3,value:"USERDEFINED"},js.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=js;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 Zs{}Zs.DEFECT={type:3,value:"DEFECT"},Zs.HATCHMARKING={type:3,value:"HATCHMARKING"},Zs.LINEMARKING={type:3,value:"LINEMARKING"},Zs.MARK={type:3,value:"MARK"},Zs.NONSKIDSURFACING={type:3,value:"NONSKIDSURFACING"},Zs.PAVEMENTSURFACEMARKING={type:3,value:"PAVEMENTSURFACEMARKING"},Zs.RUMBLESTRIP={type:3,value:"RUMBLESTRIP"},Zs.SYMBOLMARKING={type:3,value:"SYMBOLMARKING"},Zs.TAG={type:3,value:"TAG"},Zs.TRANSVERSERUMBLESTRIP={type:3,value:"TRANSVERSERUMBLESTRIP"},Zs.TREATMENT={type:3,value:"TREATMENT"},Zs.USERDEFINED={type:3,value:"USERDEFINED"},Zs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceFeatureTypeEnum=Zs;class qs{}qs.BOTH={type:3,value:"BOTH"},qs.NEGATIVE={type:3,value:"NEGATIVE"},qs.POSITIVE={type:3,value:"POSITIVE"},e.IfcSurfaceSide=qs;class Js{}Js.CONTACTOR={type:3,value:"CONTACTOR"},Js.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},Js.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Js.KEYPAD={type:3,value:"KEYPAD"},Js.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},Js.RELAY={type:3,value:"RELAY"},Js.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},Js.STARTER={type:3,value:"STARTER"},Js.START_AND_STOP_EQUIPMENT={type:3,value:"START_AND_STOP_EQUIPMENT"},Js.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Js.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Js.USERDEFINED={type:3,value:"USERDEFINED"},Js.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=Js;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 ei{}ei.BASIN={type:3,value:"BASIN"},ei.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},ei.EXPANSION={type:3,value:"EXPANSION"},ei.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},ei.OILRETENTIONTRAY={type:3,value:"OILRETENTIONTRAY"},ei.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},ei.STORAGE={type:3,value:"STORAGE"},ei.VESSEL={type:3,value:"VESSEL"},ei.USERDEFINED={type:3,value:"USERDEFINED"},ei.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=ei;class ti{}ti.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},ti.WORKTIME={type:3,value:"WORKTIME"},ti.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskDurationEnum=ti;class si{}si.ADJUSTMENT={type:3,value:"ADJUSTMENT"},si.ATTENDANCE={type:3,value:"ATTENDANCE"},si.CALIBRATION={type:3,value:"CALIBRATION"},si.CONSTRUCTION={type:3,value:"CONSTRUCTION"},si.DEMOLITION={type:3,value:"DEMOLITION"},si.DISMANTLE={type:3,value:"DISMANTLE"},si.DISPOSAL={type:3,value:"DISPOSAL"},si.EMERGENCY={type:3,value:"EMERGENCY"},si.INSPECTION={type:3,value:"INSPECTION"},si.INSTALLATION={type:3,value:"INSTALLATION"},si.LOGISTIC={type:3,value:"LOGISTIC"},si.MAINTENANCE={type:3,value:"MAINTENANCE"},si.MOVE={type:3,value:"MOVE"},si.OPERATION={type:3,value:"OPERATION"},si.REMOVAL={type:3,value:"REMOVAL"},si.RENOVATION={type:3,value:"RENOVATION"},si.SAFETY={type:3,value:"SAFETY"},si.SHUTDOWN={type:3,value:"SHUTDOWN"},si.STARTUP={type:3,value:"STARTUP"},si.TESTING={type:3,value:"TESTING"},si.TROUBLESHOOTING={type:3,value:"TROUBLESHOOTING"},si.USERDEFINED={type:3,value:"USERDEFINED"},si.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskTypeEnum=si;class ii{}ii.COUPLER={type:3,value:"COUPLER"},ii.FIXED_END={type:3,value:"FIXED_END"},ii.TENSIONING_END={type:3,value:"TENSIONING_END"},ii.USERDEFINED={type:3,value:"USERDEFINED"},ii.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonAnchorTypeEnum=ii;class ri{}ri.COUPLER={type:3,value:"COUPLER"},ri.DIABOLO={type:3,value:"DIABOLO"},ri.DUCT={type:3,value:"DUCT"},ri.GROUTING_DUCT={type:3,value:"GROUTING_DUCT"},ri.TRUMPET={type:3,value:"TRUMPET"},ri.USERDEFINED={type:3,value:"USERDEFINED"},ri.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonConduitTypeEnum=ri;class oi{}oi.BAR={type:3,value:"BAR"},oi.COATED={type:3,value:"COATED"},oi.STRAND={type:3,value:"STRAND"},oi.WIRE={type:3,value:"WIRE"},oi.USERDEFINED={type:3,value:"USERDEFINED"},oi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=oi;class ni{}ni.DOWN={type:3,value:"DOWN"},ni.LEFT={type:3,value:"LEFT"},ni.RIGHT={type:3,value:"RIGHT"},ni.UP={type:3,value:"UP"},e.IfcTextPath=ni;class ai{}ai.CONTINUOUS={type:3,value:"CONTINUOUS"},ai.DISCRETE={type:3,value:"DISCRETE"},ai.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},ai.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},ai.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},ai.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},ai.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=ai;class li{}li.BLOCKINGDEVICE={type:3,value:"BLOCKINGDEVICE"},li.DERAILER={type:3,value:"DERAILER"},li.FROG={type:3,value:"FROG"},li.HALF_SET_OF_BLADES={type:3,value:"HALF_SET_OF_BLADES"},li.SLEEPER={type:3,value:"SLEEPER"},li.SPEEDREGULATOR={type:3,value:"SPEEDREGULATOR"},li.TRACKENDOFALIGNMENT={type:3,value:"TRACKENDOFALIGNMENT"},li.VEHICLESTOP={type:3,value:"VEHICLESTOP"},li.USERDEFINED={type:3,value:"USERDEFINED"},li.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTrackElementTypeEnum=li;class hi{}hi.CHOPPER={type:3,value:"CHOPPER"},hi.COMBINED={type:3,value:"COMBINED"},hi.CURRENT={type:3,value:"CURRENT"},hi.FREQUENCY={type:3,value:"FREQUENCY"},hi.INVERTER={type:3,value:"INVERTER"},hi.RECTIFIER={type:3,value:"RECTIFIER"},hi.VOLTAGE={type:3,value:"VOLTAGE"},hi.USERDEFINED={type:3,value:"USERDEFINED"},hi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=hi;class ci{}ci.CONTINUOUS={type:3,value:"CONTINUOUS"},ci.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},ci.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},ci.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},e.IfcTransitionCode=ci;class ui{}ui.CRANEWAY={type:3,value:"CRANEWAY"},ui.ELEVATOR={type:3,value:"ELEVATOR"},ui.ESCALATOR={type:3,value:"ESCALATOR"},ui.HAULINGGEAR={type:3,value:"HAULINGGEAR"},ui.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},ui.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},ui.USERDEFINED={type:3,value:"USERDEFINED"},ui.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=ui;class Ai{}Ai.CARTESIAN={type:3,value:"CARTESIAN"},Ai.PARAMETER={type:3,value:"PARAMETER"},Ai.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=Ai;class pi{}pi.FINNED={type:3,value:"FINNED"},pi.USERDEFINED={type:3,value:"USERDEFINED"},pi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=pi;class di{}di.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},di.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},di.AREAUNIT={type:3,value:"AREAUNIT"},di.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},di.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},di.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},di.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},di.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},di.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},di.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},di.ENERGYUNIT={type:3,value:"ENERGYUNIT"},di.FORCEUNIT={type:3,value:"FORCEUNIT"},di.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},di.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},di.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},di.LENGTHUNIT={type:3,value:"LENGTHUNIT"},di.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},di.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},di.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},di.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},di.MASSUNIT={type:3,value:"MASSUNIT"},di.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},di.POWERUNIT={type:3,value:"POWERUNIT"},di.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},di.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},di.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},di.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},di.TIMEUNIT={type:3,value:"TIMEUNIT"},di.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},di.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=di;class fi{}fi.ALARMPANEL={type:3,value:"ALARMPANEL"},fi.BASESTATIONCONTROLLER={type:3,value:"BASESTATIONCONTROLLER"},fi.COMBINED={type:3,value:"COMBINED"},fi.CONTROLPANEL={type:3,value:"CONTROLPANEL"},fi.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},fi.HUMIDISTAT={type:3,value:"HUMIDISTAT"},fi.INDICATORPANEL={type:3,value:"INDICATORPANEL"},fi.MIMICPANEL={type:3,value:"MIMICPANEL"},fi.THERMOSTAT={type:3,value:"THERMOSTAT"},fi.WEATHERSTATION={type:3,value:"WEATHERSTATION"},fi.USERDEFINED={type:3,value:"USERDEFINED"},fi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryControlElementTypeEnum=fi;class mi{}mi.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},mi.AIRHANDLER={type:3,value:"AIRHANDLER"},mi.DEHUMIDIFIER={type:3,value:"DEHUMIDIFIER"},mi.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},mi.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},mi.USERDEFINED={type:3,value:"USERDEFINED"},mi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryEquipmentTypeEnum=mi;class yi{}yi.AIRRELEASE={type:3,value:"AIRRELEASE"},yi.ANTIVACUUM={type:3,value:"ANTIVACUUM"},yi.CHANGEOVER={type:3,value:"CHANGEOVER"},yi.CHECK={type:3,value:"CHECK"},yi.COMMISSIONING={type:3,value:"COMMISSIONING"},yi.DIVERTING={type:3,value:"DIVERTING"},yi.DOUBLECHECK={type:3,value:"DOUBLECHECK"},yi.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},yi.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},yi.FAUCET={type:3,value:"FAUCET"},yi.FLUSHING={type:3,value:"FLUSHING"},yi.GASCOCK={type:3,value:"GASCOCK"},yi.GASTAP={type:3,value:"GASTAP"},yi.ISOLATING={type:3,value:"ISOLATING"},yi.MIXING={type:3,value:"MIXING"},yi.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},yi.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},yi.REGULATING={type:3,value:"REGULATING"},yi.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},yi.STEAMTRAP={type:3,value:"STEAMTRAP"},yi.STOPCOCK={type:3,value:"STOPCOCK"},yi.USERDEFINED={type:3,value:"USERDEFINED"},yi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=yi;class Ei{}Ei.CARGO={type:3,value:"CARGO"},Ei.ROLLINGSTOCK={type:3,value:"ROLLINGSTOCK"},Ei.VEHICLE={type:3,value:"VEHICLE"},Ei.VEHICLEAIR={type:3,value:"VEHICLEAIR"},Ei.VEHICLEMARINE={type:3,value:"VEHICLEMARINE"},Ei.VEHICLETRACKED={type:3,value:"VEHICLETRACKED"},Ei.VEHICLEWHEELED={type:3,value:"VEHICLEWHEELED"},Ei.USERDEFINED={type:3,value:"USERDEFINED"},Ei.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVehicleTypeEnum=Ei;class gi{}gi.AXIAL_YIELD={type:3,value:"AXIAL_YIELD"},gi.BENDING_YIELD={type:3,value:"BENDING_YIELD"},gi.FRICTION={type:3,value:"FRICTION"},gi.RUBBER={type:3,value:"RUBBER"},gi.SHEAR_YIELD={type:3,value:"SHEAR_YIELD"},gi.VISCOUS={type:3,value:"VISCOUS"},gi.USERDEFINED={type:3,value:"USERDEFINED"},gi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationDamperTypeEnum=gi;class vi{}vi.BASE={type:3,value:"BASE"},vi.COMPRESSION={type:3,value:"COMPRESSION"},vi.SPRING={type:3,value:"SPRING"},vi.USERDEFINED={type:3,value:"USERDEFINED"},vi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=vi;class Ii{}Ii.BOUNDARY={type:3,value:"BOUNDARY"},Ii.CLEARANCE={type:3,value:"CLEARANCE"},Ii.PROVISIONFORVOID={type:3,value:"PROVISIONFORVOID"},Ii.USERDEFINED={type:3,value:"USERDEFINED"},Ii.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVirtualElementTypeEnum=Ii;class _i{}_i.CHAMFER={type:3,value:"CHAMFER"},_i.CUTOUT={type:3,value:"CUTOUT"},_i.EDGE={type:3,value:"EDGE"},_i.HOLE={type:3,value:"HOLE"},_i.MITER={type:3,value:"MITER"},_i.NOTCH={type:3,value:"NOTCH"},_i.USERDEFINED={type:3,value:"USERDEFINED"},_i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVoidingFeatureTypeEnum=_i;class Ti{}Ti.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},Ti.MOVABLE={type:3,value:"MOVABLE"},Ti.PARAPET={type:3,value:"PARAPET"},Ti.PARTITIONING={type:3,value:"PARTITIONING"},Ti.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},Ti.POLYGONAL={type:3,value:"POLYGONAL"},Ti.RETAININGWALL={type:3,value:"RETAININGWALL"},Ti.SHEAR={type:3,value:"SHEAR"},Ti.SOLIDWALL={type:3,value:"SOLIDWALL"},Ti.STANDARD={type:3,value:"STANDARD"},Ti.WAVEWALL={type:3,value:"WAVEWALL"},Ti.USERDEFINED={type:3,value:"USERDEFINED"},Ti.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=Ti;class Pi{}Pi.FLOORTRAP={type:3,value:"FLOORTRAP"},Pi.FLOORWASTE={type:3,value:"FLOORWASTE"},Pi.GULLYSUMP={type:3,value:"GULLYSUMP"},Pi.GULLYTRAP={type:3,value:"GULLYTRAP"},Pi.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Pi.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Pi.WASTETRAP={type:3,value:"WASTETRAP"},Pi.USERDEFINED={type:3,value:"USERDEFINED"},Pi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Pi;class bi{}bi.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},bi.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},bi.OTHEROPERATION={type:3,value:"OTHEROPERATION"},bi.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},bi.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},bi.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},bi.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},bi.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},bi.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},bi.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},bi.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},bi.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},bi.TOPHUNG={type:3,value:"TOPHUNG"},bi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=bi;class Ri{}Ri.BOTTOM={type:3,value:"BOTTOM"},Ri.LEFT={type:3,value:"LEFT"},Ri.MIDDLE={type:3,value:"MIDDLE"},Ri.RIGHT={type:3,value:"RIGHT"},Ri.TOP={type:3,value:"TOP"},Ri.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=Ri;class Di{}Di.ALUMINIUM={type:3,value:"ALUMINIUM"},Di.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},Di.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},Di.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},Di.PLASTIC={type:3,value:"PLASTIC"},Di.STEEL={type:3,value:"STEEL"},Di.WOOD={type:3,value:"WOOD"},Di.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleConstructionEnum=Di;class Ci{}Ci.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},Ci.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},Ci.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},Ci.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},Ci.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},Ci.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},Ci.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},Ci.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},Ci.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},Ci.USERDEFINED={type:3,value:"USERDEFINED"},Ci.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleOperationEnum=Ci;class Ni{}Ni.LIGHTDOME={type:3,value:"LIGHTDOME"},Ni.SKYLIGHT={type:3,value:"SKYLIGHT"},Ni.WINDOW={type:3,value:"WINDOW"},Ni.USERDEFINED={type:3,value:"USERDEFINED"},Ni.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypeEnum=Ni;class Oi{}Oi.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},Oi.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},Oi.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},Oi.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},Oi.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},Oi.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},Oi.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},Oi.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},Oi.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},Oi.USERDEFINED={type:3,value:"USERDEFINED"},Oi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypePartitioningEnum=Oi;class xi{}xi.FIRSTSHIFT={type:3,value:"FIRSTSHIFT"},xi.SECONDSHIFT={type:3,value:"SECONDSHIFT"},xi.THIRDSHIFT={type:3,value:"THIRDSHIFT"},xi.USERDEFINED={type:3,value:"USERDEFINED"},xi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkCalendarTypeEnum=xi;class Si{}Si.ACTUAL={type:3,value:"ACTUAL"},Si.BASELINE={type:3,value:"BASELINE"},Si.PLANNED={type:3,value:"PLANNED"},Si.USERDEFINED={type:3,value:"USERDEFINED"},Si.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkPlanTypeEnum=Si;class wi{}wi.ACTUAL={type:3,value:"ACTUAL"},wi.BASELINE={type:3,value:"BASELINE"},wi.PLANNED={type:3,value:"PLANNED"},wi.USERDEFINED={type:3,value:"USERDEFINED"},wi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkScheduleTypeEnum=wi;e.IfcActorRole=class extends vv{constructor(e,t,s,i){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=i,this.type=3630933823}};class Mi extends vv{constructor(e,t,s,i){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.type=618182010}}e.IfcAddress=Mi;class Bi extends vv{constructor(e,t,s){super(e),this.StartTag=t,this.EndTag=s,this.type=2879124712}}e.IfcAlignmentParameterSegment=Bi;e.IfcAlignmentVerticalSegment=class extends Bi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartDistAlong=i,this.HorizontalLength=r,this.StartHeight=o,this.StartGradient=n,this.EndGradient=a,this.RadiusOfCurvature=l,this.PredefinedType=h,this.type=3633395639}};e.IfcApplication=class extends vv{constructor(e,t,s,i,r){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=i,this.ApplicationIdentifier=r,this.type=639542469}};class Fi extends vv{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.Category=a,this.Condition=l,this.ArithmeticOperator=h,this.Components=c,this.type=411424972}}e.IfcAppliedValue=Fi;e.IfcApproval=class extends vv{constructor(e,t,s,i,r,o,n,a,l,h){super(e),this.Identifier=t,this.Name=s,this.Description=i,this.TimeOfApproval=r,this.Status=o,this.Level=n,this.Qualifier=a,this.RequestingApproval=l,this.GivingApproval=h,this.type=130549933}};class Li extends vv{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=Li;e.IfcBoundaryEdgeCondition=class extends Li{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TranslationalStiffnessByLengthX=s,this.TranslationalStiffnessByLengthY=i,this.TranslationalStiffnessByLengthZ=r,this.RotationalStiffnessByLengthX=o,this.RotationalStiffnessByLengthY=n,this.RotationalStiffnessByLengthZ=a,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends Li{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.TranslationalStiffnessByAreaX=s,this.TranslationalStiffnessByAreaY=i,this.TranslationalStiffnessByAreaZ=r,this.type=3367102660}};class Ui extends Li{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=i,this.TranslationalStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.type=1387855156}}e.IfcBoundaryNodeCondition=Ui;e.IfcBoundaryNodeConditionWarping=class extends Ui{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=i,this.TranslationalStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.WarpingStiffness=l,this.type=2069777674}};class Hi extends vv{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=Hi;class Gi extends Hi{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=Gi;e.IfcConnectionSurfaceGeometry=class extends Hi{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};e.IfcConnectionVolumeGeometry=class extends Hi{constructor(e,t,s){super(e),this.VolumeOnRelatingElement=t,this.VolumeOnRelatedElement=s,this.type=775493141}};class ki extends vv{constructor(e,t,s,i,r,o,n,a){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.type=1959218052}}e.IfcConstraint=ki;class Vi extends vv{constructor(e,t,s){super(e),this.SourceCRS=t,this.TargetCRS=s,this.type=1785450214}}e.IfcCoordinateOperation=Vi;class ji extends vv{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.GeodeticDatum=i,this.VerticalDatum=r,this.type=1466758467}}e.IfcCoordinateReferenceSystem=ji;e.IfcCostValue=class extends Fi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h,c),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.Category=a,this.Condition=l,this.ArithmeticOperator=h,this.Components=c,this.type=602808272}};e.IfcDerivedUnit=class extends vv{constructor(e,t,s,i,r){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=i,this.Name=r,this.type=1765591967}};e.IfcDerivedUnitElement=class extends vv{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends vv{constructor(e,t,s,i,r,o,n,a){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=i,this.ElectricCurrentExponent=r,this.ThermodynamicTemperatureExponent=o,this.AmountOfSubstanceExponent=n,this.LuminousIntensityExponent=a,this.type=2949456006}};class Qi extends vv{constructor(e){super(e),this.type=4294318154}}e.IfcExternalInformation=Qi;class Wi extends vv{constructor(e,t,s,i){super(e),this.Location=t,this.Identification=s,this.Name=i,this.type=3200245327}}e.IfcExternalReference=Wi;e.IfcExternallyDefinedHatchStyle=class extends Wi{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends Wi{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=1040185647}};e.IfcExternallyDefinedTextFont=class extends Wi{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=3548104201}};e.IfcGridAxis=class extends vv{constructor(e,t,s,i){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=i,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends vv{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends Qi{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Version=s,this.Publisher=i,this.VersionDate=r,this.Location=o,this.Description=n,this.type=2655187982}};e.IfcLibraryReference=class extends Wi{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.Description=r,this.Language=o,this.ReferencedLibrary=n,this.type=3452421091}};e.IfcLightDistributionData=class extends vv{constructor(e,t,s,i){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=i,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends vv{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcMapConversion=class extends Vi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s),this.SourceCRS=t,this.TargetCRS=s,this.Eastings=i,this.Northings=r,this.OrthogonalHeight=o,this.XAxisAbscissa=n,this.XAxisOrdinate=a,this.Scale=l,this.ScaleY=h,this.ScaleZ=c,this.type=3057273783}};e.IfcMaterialClassificationRelationship=class extends vv{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};class zi extends vv{constructor(e){super(e),this.type=760658860}}e.IfcMaterialDefinition=zi;class Ki extends zi{constructor(e,t,s,i,r,o,n,a){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.Name=r,this.Description=o,this.Category=n,this.Priority=a,this.type=248100487}}e.IfcMaterialLayer=Ki;e.IfcMaterialLayerSet=class extends zi{constructor(e,t,s,i){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.Description=i,this.type=3303938423}};e.IfcMaterialLayerWithOffsets=class extends Ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.Name=r,this.Description=o,this.Category=n,this.Priority=a,this.OffsetDirection=l,this.OffsetValues=h,this.type=1847252529}};e.IfcMaterialList=class extends vv{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class Yi extends zi{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Description=s,this.Material=i,this.Profile=r,this.Priority=o,this.Category=n,this.type=2235152071}}e.IfcMaterialProfile=Yi;e.IfcMaterialProfileSet=class extends zi{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.MaterialProfiles=i,this.CompositeProfile=r,this.type=164193824}};e.IfcMaterialProfileWithOffsets=class extends Yi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.Name=t,this.Description=s,this.Material=i,this.Profile=r,this.Priority=o,this.Category=n,this.OffsetValues=a,this.type=552965576}};class Xi extends vv{constructor(e){super(e),this.type=1507914824}}e.IfcMaterialUsageDefinition=Xi;e.IfcMeasureWithUnit=class extends vv{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};e.IfcMetric=class extends ki{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.Benchmark=l,this.ValueSource=h,this.DataValue=c,this.ReferencePath=u,this.type=3368373690}};e.IfcMonetaryUnit=class extends vv{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class Zi extends vv{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=Zi;class qi extends vv{constructor(e,t){super(e),this.PlacementRelTo=t,this.type=3701648758}}e.IfcObjectPlacement=qi;e.IfcObjective=class extends ki{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.BenchmarkValues=l,this.LogicalAggregator=h,this.ObjectiveQualifier=c,this.UserDefinedQualifier=u,this.type=2251480897}};e.IfcOrganization=class extends vv{constructor(e,t,s,i,r,o){super(e),this.Identification=t,this.Name=s,this.Description=i,this.Roles=r,this.Addresses=o,this.type=4251960020}};e.IfcOwnerHistory=class extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=i,this.ChangeAction=r,this.LastModifiedDate=o,this.LastModifyingUser=n,this.LastModifyingApplication=a,this.CreationDate=l,this.type=1207048766}};e.IfcPerson=class extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Identification=t,this.FamilyName=s,this.GivenName=i,this.MiddleNames=r,this.PrefixTitles=o,this.SuffixTitles=n,this.Roles=a,this.Addresses=l,this.type=2077209135}};e.IfcPersonAndOrganization=class extends vv{constructor(e,t,s,i){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=i,this.type=101040310}};class Ji extends vv{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=Ji;class $i extends Ji{constructor(e,t,s,i){super(e,t,s),this.Name=t,this.Description=s,this.Unit=i,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=$i;e.IfcPostalAddress=class extends Mi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.InternalLocation=r,this.AddressLines=o,this.PostalBox=n,this.Town=a,this.Region=l,this.PostalCode=h,this.Country=c,this.type=3355820592}};class er extends vv{constructor(e){super(e),this.type=677532197}}e.IfcPresentationItem=er;class tr extends vv{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.type=2022622350}}e.IfcPresentationLayerAssignment=tr;e.IfcPresentationLayerWithStyle=class extends tr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.LayerOn=o,this.LayerFrozen=n,this.LayerBlocked=a,this.LayerStyles=l,this.type=1304840413}};class sr extends vv{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=sr;class ir extends vv{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Representations=i,this.type=2095639259}}e.IfcProductRepresentation=ir;class rr extends vv{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=rr;e.IfcProjectedCRS=class extends ji{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.Name=t,this.Description=s,this.GeodeticDatum=i,this.VerticalDatum=r,this.MapProjection=o,this.MapZone=n,this.MapUnit=a,this.type=3843373140}};class or extends vv{constructor(e){super(e),this.type=986844984}}e.IfcPropertyAbstraction=or;e.IfcPropertyEnumeration=class extends or{constructor(e,t,s,i){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=i,this.type=3710013099}};e.IfcQuantityArea=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.AreaValue=r,this.Formula=o,this.type=2044713172}};e.IfcQuantityCount=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.CountValue=r,this.Formula=o,this.type=2093928680}};e.IfcQuantityLength=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.LengthValue=r,this.Formula=o,this.type=931644368}};e.IfcQuantityNumber=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.NumberValue=r,this.Formula=o,this.type=2691318326}};e.IfcQuantityTime=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.TimeValue=r,this.Formula=o,this.type=3252649465}};e.IfcQuantityVolume=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.VolumeValue=r,this.Formula=o,this.type=2405470396}};e.IfcQuantityWeight=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.WeightValue=r,this.Formula=o,this.type=825690147}};e.IfcRecurrencePattern=class extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.RecurrenceType=t,this.DayComponent=s,this.WeekdayComponent=i,this.MonthComponent=r,this.Position=o,this.Interval=n,this.Occurrences=a,this.TimePeriods=l,this.type=3915482550}};e.IfcReference=class extends vv{constructor(e,t,s,i,r,o){super(e),this.TypeIdentifier=t,this.AttributeIdentifier=s,this.InstanceName=i,this.ListPositions=r,this.InnerReference=o,this.type=2433181523}};class nr extends vv{constructor(e,t,s,i,r){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1076942058}}e.IfcRepresentation=nr;class ar extends vv{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=ar;class lr extends vv{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=lr;e.IfcRepresentationMap=class extends vv{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};class hr extends vv{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2439245199}}e.IfcResourceLevelRelationship=hr;class cr extends vv{constructor(e,t,s,i,r){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2341007311}}e.IfcRoot=cr;e.IfcSIUnit=class extends Zi{constructor(e,t,s,i,r){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Prefix=i,this.Name=r,this.type=448429030}};class ur extends vv{constructor(e,t,s,i){super(e),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.type=1054537805}}e.IfcSchedulingTime=ur;e.IfcShapeAspect=class extends vv{constructor(e,t,s,i,r,o){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=i,this.ProductDefinitional=r,this.PartOfProductDefinitionShape=o,this.type=867548509}};class Ar extends nr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3982875396}}e.IfcShapeModel=Ar;e.IfcShapeRepresentation=class extends Ar{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=4240577450}};class pr extends vv{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=pr;class dr extends vv{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=dr;e.IfcStructuralLoadConfiguration=class extends dr{constructor(e,t,s,i){super(e,t),this.Name=t,this.Values=s,this.Locations=i,this.type=3478079324}};class fr extends dr{constructor(e,t){super(e,t),this.Name=t,this.type=609421318}}e.IfcStructuralLoadOrResult=fr;class mr extends fr{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=mr;e.IfcStructuralLoadTemperature=class extends mr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.DeltaTConstant=s,this.DeltaTY=i,this.DeltaTZ=r,this.type=3408363356}};class yr extends nr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=2830218821}}e.IfcStyleModel=yr;e.IfcStyledItem=class extends lr{constructor(e,t,s,i){super(e),this.Item=t,this.Styles=s,this.Name=i,this.type=3958052878}};e.IfcStyledRepresentation=class extends yr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3049322572}};e.IfcSurfaceReinforcementArea=class extends fr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SurfaceReinforcement1=s,this.SurfaceReinforcement2=i,this.ShearReinforcement=r,this.type=2934153892}};e.IfcSurfaceStyle=class extends sr{constructor(e,t,s,i){super(e,t),this.Name=t,this.Side=s,this.Styles=i,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends er{constructor(e,t,s,i,r){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=i,this.ReflectanceColour=r,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends er{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class Er extends er{constructor(e,t,s){super(e),this.SurfaceColour=t,this.Transparency=s,this.type=846575682}}e.IfcSurfaceStyleShading=Er;e.IfcSurfaceStyleWithTextures=class extends er{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class gr extends er{constructor(e,t,s,i,r,o){super(e),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.type=626085974}}e.IfcSurfaceTexture=gr;e.IfcTable=class extends vv{constructor(e,t,s,i){super(e),this.Name=t,this.Rows=s,this.Columns=i,this.type=985171141}};e.IfcTableColumn=class extends vv{constructor(e,t,s,i,r,o){super(e),this.Identifier=t,this.Name=s,this.Description=i,this.Unit=r,this.ReferencePath=o,this.type=2043862942}};e.IfcTableRow=class extends vv{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};class vr extends ur{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.DurationType=r,this.ScheduleDuration=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.EarlyStart=l,this.EarlyFinish=h,this.LateStart=c,this.LateFinish=u,this.FreeFloat=A,this.TotalFloat=p,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=m,this.ActualStart=y,this.ActualFinish=E,this.RemainingTime=g,this.Completion=v,this.type=1549132990}}e.IfcTaskTime=vr;e.IfcTaskTimeRecurring=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.DurationType=r,this.ScheduleDuration=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.EarlyStart=l,this.EarlyFinish=h,this.LateStart=c,this.LateFinish=u,this.FreeFloat=A,this.TotalFloat=p,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=m,this.ActualStart=y,this.ActualFinish=E,this.RemainingTime=g,this.Completion=v,this.Recurrence=I,this.type=2771591690}};e.IfcTelecomAddress=class extends Mi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.TelephoneNumbers=r,this.FacsimileNumbers=o,this.PagerNumber=n,this.ElectronicMailAddresses=a,this.WWWHomePageURL=l,this.MessagingIDs=h,this.type=912023232}};e.IfcTextStyle=class extends sr{constructor(e,t,s,i,r,o){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=i,this.TextFontStyle=r,this.ModelOrDraughting=o,this.type=1447204868}};e.IfcTextStyleForDefinedFont=class extends er{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends er{constructor(e,t,s,i,r,o,n,a){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=i,this.LetterSpacing=r,this.WordSpacing=o,this.TextTransform=n,this.LineHeight=a,this.type=1640371178}};class Ir extends er{constructor(e,t){super(e),this.Maps=t,this.type=280115917}}e.IfcTextureCoordinate=Ir;e.IfcTextureCoordinateGenerator=class extends Ir{constructor(e,t,s,i){super(e,t),this.Maps=t,this.Mode=s,this.Parameter=i,this.type=1742049831}};class _r extends vv{constructor(e,t,s){super(e),this.TexCoordIndex=t,this.TexCoordsOf=s,this.type=222769930}}e.IfcTextureCoordinateIndices=_r;e.IfcTextureCoordinateIndicesWithVoids=class extends _r{constructor(e,t,s,i){super(e,t,s),this.TexCoordIndex=t,this.TexCoordsOf=s,this.InnerTexCoordIndices=i,this.type=1010789467}};e.IfcTextureMap=class extends Ir{constructor(e,t,s,i){super(e,t),this.Maps=t,this.Vertices=s,this.MappedTo=i,this.type=2552916305}};e.IfcTextureVertex=class extends er{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcTextureVertexList=class extends er{constructor(e,t){super(e),this.TexCoordsList=t,this.type=3611470254}};e.IfcTimePeriod=class extends vv{constructor(e,t,s){super(e),this.StartTime=t,this.EndTime=s,this.type=1199560280}};class Tr extends vv{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.type=3101149627}}e.IfcTimeSeries=Tr;e.IfcTimeSeriesValue=class extends vv{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Pr extends lr{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Pr;e.IfcTopologyRepresentation=class extends Ar{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1735638870}};e.IfcUnitAssignment=class extends vv{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class br extends Pr{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=br;e.IfcVertexPoint=class extends br{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends vv{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWorkTime=class extends ur{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.RecurrencePattern=r,this.StartDate=o,this.FinishDate=n,this.type=1236880293}};e.IfcAlignmentCantSegment=class extends Bi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartDistAlong=i,this.HorizontalLength=r,this.StartCantLeft=o,this.EndCantLeft=n,this.StartCantRight=a,this.EndCantRight=l,this.PredefinedType=h,this.type=3752311538}};e.IfcAlignmentHorizontalSegment=class extends Bi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartPoint=i,this.StartDirection=r,this.StartRadiusOfCurvature=o,this.EndRadiusOfCurvature=n,this.SegmentLength=a,this.GravityCenterLineHeight=l,this.PredefinedType=h,this.type=536804194}};e.IfcApprovalRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingApproval=i,this.RelatedApprovals=r,this.type=3869604511}};class Rr extends rr{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Rr;class Dr extends rr{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Dr;e.IfcArbitraryProfileDefWithVoids=class extends Rr{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.InnerCurves=r,this.type=2705031697}};e.IfcBlobTexture=class extends gr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.RasterFormat=n,this.RasterCode=a,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Dr{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.Thickness=r,this.type=3150382593}};e.IfcClassification=class extends Qi{constructor(e,t,s,i,r,o,n,a){super(e),this.Source=t,this.Edition=s,this.EditionDate=i,this.Name=r,this.Description=o,this.Specification=n,this.ReferenceTokens=a,this.type=747523909}};e.IfcClassificationReference=class extends Wi{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.ReferencedSource=r,this.Description=o,this.Sort=n,this.type=647927063}};e.IfcColourRgbList=class extends er{constructor(e,t){super(e),this.ColourList=t,this.type=3285139300}};class Cr extends er{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=Cr;e.IfcCompositeProfileDef=class extends rr{constructor(e,t,s,i,r){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=i,this.Label=r,this.type=1485152156}};class Nr extends Pr{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=Nr;e.IfcConnectionCurveGeometry=class extends Hi{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends Gi{constructor(e,t,s,i,r,o){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=i,this.EccentricityInY=r,this.EccentricityInZ=o,this.type=45288368}};e.IfcContextDependentUnit=class extends Zi{constructor(e,t,s,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.type=3050246964}};class Or extends Zi{constructor(e,t,s,i,r){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.type=2889183280}}e.IfcConversionBasedUnit=Or;e.IfcConversionBasedUnitWithOffset=class extends Or{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.ConversionOffset=o,this.type=2713554722}};e.IfcCurrencyRelationship=class extends hr{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMonetaryUnit=i,this.RelatedMonetaryUnit=r,this.ExchangeRate=o,this.RateDateTime=n,this.RateSource=a,this.type=539742890}};e.IfcCurveStyle=class extends sr{constructor(e,t,s,i,r,o){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=i,this.CurveColour=r,this.ModelOrDraughting=o,this.type=3800577675}};e.IfcCurveStyleFont=class extends er{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends er{constructor(e,t,s,i){super(e),this.Name=t,this.CurveStyleFont=s,this.CurveFontScaling=i,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends er{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};class xr extends rr{constructor(e,t,s,i,r,o){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Operator=r,this.Label=o,this.type=3632507154}}e.IfcDerivedProfileDef=xr;e.IfcDocumentInformation=class extends Qi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e),this.Identification=t,this.Name=s,this.Description=i,this.Location=r,this.Purpose=o,this.IntendedUse=n,this.Scope=a,this.Revision=l,this.DocumentOwner=h,this.Editors=c,this.CreationTime=u,this.LastRevisionTime=A,this.ElectronicFormat=p,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=m,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends hr{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.RelatingDocument=i,this.RelatedDocuments=r,this.RelationshipType=o,this.type=770865208}};e.IfcDocumentReference=class extends Wi{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.Description=r,this.ReferencedDocument=o,this.type=3732053477}};class Sr extends Pr{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=Sr;e.IfcEdgeCurve=class extends Sr{constructor(e,t,s,i,r){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=i,this.SameSense=r,this.type=476780140}};e.IfcEventTime=class extends ur{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.ActualDate=r,this.EarlyDate=o,this.LateDate=n,this.ScheduleDate=a,this.type=211053100}};class wr extends or{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Properties=i,this.type=297599258}}e.IfcExtendedProperties=wr;e.IfcExternalReferenceRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingReference=i,this.RelatedResourceObjects=r,this.type=1437805879}};class Mr extends Pr{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Mr;class Br extends Pr{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=Br;e.IfcFaceOuterBound=class extends Br{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};class Fr extends Mr{constructor(e,t,s,i){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3008276851}}e.IfcFaceSurface=Fr;e.IfcFailureConnectionCondition=class extends pr{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=i,this.TensionFailureZ=r,this.CompressionFailureX=o,this.CompressionFailureY=n,this.CompressionFailureZ=a,this.type=4219587988}};e.IfcFillAreaStyle=class extends sr{constructor(e,t,s,i){super(e,t),this.Name=t,this.FillStyles=s,this.ModelOrDraughting=i,this.type=738692330}};class Lr extends ar{constructor(e,t,s,i,r,o,n){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=i,this.Precision=r,this.WorldCoordinateSystem=o,this.TrueNorth=n,this.type=3448662350}}e.IfcGeometricRepresentationContext=Lr;class Ur extends lr{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=Ur;e.IfcGeometricRepresentationSubContext=class extends Lr{constructor(e,s,i,r,o,n,a,l){super(e,s,i,new t(0),null,r,null),this.ContextIdentifier=s,this.ContextType=i,this.WorldCoordinateSystem=r,this.ParentContext=o,this.TargetScale=n,this.TargetView=a,this.UserDefinedTargetView=l,this.type=4142052618}};class Hr extends Ur{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=Hr;e.IfcGridPlacement=class extends qi{constructor(e,t,s,i){super(e,t),this.PlacementRelTo=t,this.PlacementLocation=s,this.PlacementRefDirection=i,this.type=178086475}};class Gr extends Ur{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=Gr;e.IfcImageTexture=class extends gr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.URLReference=n,this.type=3905492369}};e.IfcIndexedColourMap=class extends er{constructor(e,t,s,i,r){super(e),this.MappedTo=t,this.Opacity=s,this.Colours=i,this.ColourIndex=r,this.type=3570813810}};class kr extends Ir{constructor(e,t,s,i){super(e,t),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.type=1437953363}}e.IfcIndexedTextureMap=kr;e.IfcIndexedTriangleTextureMap=class extends kr{constructor(e,t,s,i,r){super(e,t,s,i),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.TexCoordIndex=r,this.type=2133299955}};e.IfcIrregularTimeSeries=class extends Tr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.Values=h,this.type=3741457305}};e.IfcLagTime=class extends ur{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.LagValue=r,this.DurationType=o,this.type=1585845231}};class Vr extends Ur{constructor(e,t,s,i,r){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=1402838566}}e.IfcLightSource=Vr;e.IfcLightSourceAmbient=class extends Vr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=125510826}};e.IfcLightSourceDirectional=class extends Vr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Orientation=o,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends Vr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.ColourAppearance=n,this.ColourTemperature=a,this.LuminousFlux=l,this.LightEmissionSource=h,this.LightDistributionDataSource=c,this.type=4266656042}};class jr extends Vr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.type=1520743889}}e.IfcLightSourcePositional=jr;e.IfcLightSourceSpot=class extends jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.Orientation=c,this.ConcentrationExponent=u,this.SpreadAngle=A,this.BeamWidthAngle=p,this.type=3422422726}};e.IfcLinearPlacement=class extends qi{constructor(e,t,s,i){super(e,t),this.PlacementRelTo=t,this.RelativePlacement=s,this.CartesianPosition=i,this.type=388784114}};e.IfcLocalPlacement=class extends qi{constructor(e,t,s){super(e,t),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class Qr extends Pr{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=Qr;e.IfcMappedItem=class extends lr{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterial=class extends zi{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Category=i,this.type=1838606355}};e.IfcMaterialConstituent=class extends zi{constructor(e,t,s,i,r,o){super(e),this.Name=t,this.Description=s,this.Material=i,this.Fraction=r,this.Category=o,this.type=3708119e3}};e.IfcMaterialConstituentSet=class extends zi{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.MaterialConstituents=i,this.type=2852063980}};e.IfcMaterialDefinitionRepresentation=class extends ir{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.RepresentedMaterial=r,this.type=2022407955}};e.IfcMaterialLayerSetUsage=class extends Xi{constructor(e,t,s,i,r,o){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=i,this.OffsetFromReferenceLine=r,this.ReferenceExtent=o,this.type=1303795690}};class Wr extends Xi{constructor(e,t,s,i){super(e),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=i,this.type=3079605661}}e.IfcMaterialProfileSetUsage=Wr;e.IfcMaterialProfileSetUsageTapering=class extends Wr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=i,this.ForProfileEndSet=r,this.CardinalEndPoint=o,this.type=3404854881}};e.IfcMaterialProperties=class extends wr{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Properties=i,this.Material=r,this.type=3265635763}};e.IfcMaterialRelationship=class extends hr{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMaterial=i,this.RelatedMaterials=r,this.MaterialExpression=o,this.type=853536259}};e.IfcMirroredProfileDef=class extends xr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Operator=r,this.Label=o,this.type=2998442950}};class zr extends cr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=219451334}}e.IfcObjectDefinition=zr;e.IfcOpenCrossProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.HorizontalWidths=i,this.Widths=r,this.Slopes=o,this.Tags=n,this.OffsetPoint=a,this.type=182550632}};e.IfcOpenShell=class extends Nr{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrganizationRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingOrganization=i,this.RelatedOrganizations=r,this.type=1411181986}};e.IfcOrientedEdge=class extends Sr{constructor(e,t,s,i){super(e,t,new gv(0)),this.EdgeStart=t,this.EdgeElement=s,this.Orientation=i,this.type=1029017970}};class Kr extends rr{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.type=2529465313}}e.IfcParameterizedProfileDef=Kr;e.IfcPath=class extends Pr{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends Ji{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=i,this.Discrimination=r,this.Quality=o,this.Usage=n,this.type=3021840470}};e.IfcPixelTexture=class extends gr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.Width=n,this.Height=a,this.ColourComponents=l,this.Pixel=h,this.type=597895409}};class Yr extends Ur{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=Yr;class Xr extends Ur{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=Xr;class Zr extends Ur{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=Zr;e.IfcPointByDistanceExpression=class extends Zr{constructor(e,t,s,i,r,o){super(e),this.DistanceAlong=t,this.OffsetLateral=s,this.OffsetVertical=i,this.OffsetLongitudinal=r,this.BasisCurve=o,this.type=2165702409}};e.IfcPointOnCurve=class extends Zr{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends Zr{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=i,this.type=1423911732}};e.IfcPolyLoop=class extends Qr{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends Gr{constructor(e,t,s,i,r){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=i,this.PolygonalBoundary=r,this.type=2775532180}};class qr extends er{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=qr;class Jr extends or{constructor(e){super(e),this.type=3778827333}}e.IfcPreDefinedProperties=Jr;class $r extends qr{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=$r;e.IfcProductDefinitionShape=class extends ir{constructor(e,t,s,i){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.type=673634403}};e.IfcProfileProperties=class extends wr{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Properties=i,this.ProfileDefinition=r,this.type=2802850158}};class eo extends or{constructor(e,t,s){super(e),this.Name=t,this.Specification=s,this.type=2598011224}}e.IfcProperty=eo;class to extends cr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1680319473}}e.IfcPropertyDefinition=to;e.IfcPropertyDependencyRelationship=class extends hr{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.DependingProperty=i,this.DependantProperty=r,this.Expression=o,this.type=148025276}};class so extends to{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3357820518}}e.IfcPropertySetDefinition=so;class io extends to{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1482703590}}e.IfcPropertyTemplateDefinition=io;class ro extends so{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2090586900}}e.IfcQuantitySet=ro;class oo extends Kr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.type=3615266464}}e.IfcRectangleProfileDef=oo;e.IfcRegularTimeSeries=class extends Tr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.TimeStep=h,this.Values=c,this.type=3413951693}};e.IfcReinforcementBarProperties=class extends Jr{constructor(e,t,s,i,r,o,n){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=i,this.EffectiveDepth=r,this.NominalBarDiameter=o,this.BarCount=n,this.type=1580146022}};class no extends cr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=478536968}}e.IfcRelationship=no;e.IfcResourceApprovalRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatedResourceObjects=i,this.RelatingApproval=r,this.type=2943643501}};e.IfcResourceConstraintRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingConstraint=i,this.RelatedResourceObjects=r,this.type=1608871552}};e.IfcResourceTime=class extends ur{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.ScheduleWork=r,this.ScheduleUsage=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.ScheduleContour=l,this.LevelingDelay=h,this.IsOverAllocated=c,this.StatusTime=u,this.ActualWork=A,this.ActualUsage=p,this.ActualStart=d,this.ActualFinish=f,this.RemainingWork=m,this.RemainingUsage=y,this.Completion=E,this.type=1042787934}};e.IfcRoundedRectangleProfileDef=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.RoundingRadius=n,this.type=2778083089}};e.IfcSectionProperties=class extends Jr{constructor(e,t,s,i){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=i,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends Jr{constructor(e,t,s,i,r,o,n){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=i,this.ReinforcementRole=r,this.SectionDefinition=o,this.CrossSectionReinforcementDefinitions=n,this.type=4165799628}};e.IfcSectionedSpine=class extends Ur{constructor(e,t,s,i){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=i,this.type=1509187699}};class ao extends Ur{constructor(e,t){super(e),this.Transition=t,this.type=823603102}}e.IfcSegment=ao;e.IfcShellBasedSurfaceModel=class extends Ur{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};class lo extends eo{constructor(e,t,s){super(e,t,s),this.Name=t,this.Specification=s,this.type=3692461612}}e.IfcSimpleProperty=lo;e.IfcSlippageConnectionCondition=class extends pr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=i,this.SlippageZ=r,this.type=2609359061}};class ho extends Ur{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=ho;e.IfcStructuralLoadLinearForce=class extends mr{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=i,this.LinearForceZ=r,this.LinearMomentX=o,this.LinearMomentY=n,this.LinearMomentZ=a,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends mr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=i,this.PlanarForceZ=r,this.type=2668620305}};class co extends mr{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=co;e.IfcStructuralLoadSingleDisplacementDistortion=class extends co{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.Distortion=l,this.type=1973038258}};class uo extends mr{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.type=1597423693}}e.IfcStructuralLoadSingleForce=uo;e.IfcStructuralLoadSingleForceWarping=class extends uo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.WarpingMoment=l,this.type=1190533807}};e.IfcSubedge=class extends Sr{constructor(e,t,s,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=i,this.type=2233826070}};class Ao extends Ur{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Ao;e.IfcSurfaceStyleRendering=class extends Er{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=i,this.TransmissionColour=r,this.DiffuseTransmissionColour=o,this.ReflectionColour=n,this.SpecularColour=a,this.SpecularHighlight=l,this.ReflectanceMethod=h,this.type=1878645084}};class po extends ho{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=po;class fo extends ho{constructor(e,t,s,i,r,o){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.type=1260650574}}e.IfcSweptDiskSolid=fo;e.IfcSweptDiskSolidPolygonal=class extends fo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.FilletRadius=n,this.type=1096409881}};class mo extends Ao{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=mo;e.IfcTShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.WebEdgeRadius=c,this.WebSlope=u,this.FlangeSlope=A,this.type=3071757647}};class yo extends Ur{constructor(e){super(e),this.type=901063453}}e.IfcTessellatedItem=yo;class Eo extends Ur{constructor(e,t,s,i){super(e),this.Literal=t,this.Placement=s,this.Path=i,this.type=4282788508}}e.IfcTextLiteral=Eo;e.IfcTextLiteralWithExtent=class extends Eo{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Literal=t,this.Placement=s,this.Path=i,this.Extent=r,this.BoxAlignment=o,this.type=3124975700}};e.IfcTextStyleFontModel=class extends $r{constructor(e,t,s,i,r,o,n){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=i,this.FontVariant=r,this.FontWeight=o,this.FontSize=n,this.type=1983826977}};e.IfcTrapeziumProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomXDim=r,this.TopXDim=o,this.YDim=n,this.TopXOffset=a,this.type=2715220739}};class go extends zr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.type=1628702193}}e.IfcTypeObject=go;class vo extends go{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.type=3736923433}}e.IfcTypeProcess=vo;class Io extends go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.type=2347495698}}e.IfcTypeProduct=Io;class _o extends go{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.type=3698973494}}e.IfcTypeResource=_o;e.IfcUShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.FlangeSlope=c,this.type=427810014}};e.IfcVector=class extends Ur{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends Qr{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcZShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.type=2543172580}};e.IfcAdvancedFace=class extends Fr{constructor(e,t,s,i){super(e,t,s,i),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3406155212}};e.IfcAnnotationFillArea=class extends Ur{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAsymmetricIShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomFlangeWidth=r,this.OverallDepth=o,this.WebThickness=n,this.BottomFlangeThickness=a,this.BottomFlangeFilletRadius=l,this.TopFlangeWidth=h,this.TopFlangeThickness=c,this.TopFlangeFilletRadius=u,this.BottomFlangeEdgeRadius=A,this.BottomFlangeSlope=p,this.TopFlangeEdgeRadius=d,this.TopFlangeSlope=f,this.type=3207858831}};e.IfcAxis1Placement=class extends Yr{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends Yr{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends Yr{constructor(e,t,s,i){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=i,this.type=2740243338}};e.IfcAxis2PlacementLinear=class extends Yr{constructor(e,t,s,i){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=i,this.type=3425423356}};class To extends Ur{constructor(e,t,s,i){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=2736907675}}e.IfcBooleanResult=To;class Po extends Ao{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=Po;e.IfcBoundingBox=class extends Ur{constructor(e,t,s,i,r){super(e),this.Corner=t,this.XDim=s,this.YDim=i,this.ZDim=r,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends Gr{constructor(e,t,s,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=i,this.type=2713105998}};e.IfcCShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.WallThickness=n,this.Girth=a,this.InternalFilletRadius=l,this.type=2898889636}};e.IfcCartesianPoint=class extends Zr{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class bo extends Ur{constructor(e){super(e),this.type=574549367}}e.IfcCartesianPointList=bo;e.IfcCartesianPointList2D=class extends bo{constructor(e,t,s){super(e),this.CoordList=t,this.TagList=s,this.type=1675464909}};e.IfcCartesianPointList3D=class extends bo{constructor(e,t,s){super(e),this.CoordList=t,this.TagList=s,this.type=2059837836}};class Ro extends Ur{constructor(e,t,s,i,r){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=59481748}}e.IfcCartesianTransformationOperator=Ro;class Do extends Ro{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Do;e.IfcCartesianTransformationOperator2DnonUniform=class extends Do{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Scale2=o,this.type=3486308946}};class Co extends Ro{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Co;e.IfcCartesianTransformationOperator3DnonUniform=class extends Co{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.Scale2=n,this.Scale3=a,this.type=1416205885}};class No extends Kr{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.type=1383045692}}e.IfcCircleProfileDef=No;e.IfcClosedShell=class extends Nr{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcColourRgb=class extends Cr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.Red=s,this.Green=i,this.Blue=r,this.type=776857604}};e.IfcComplexProperty=class extends eo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.UsageName=i,this.HasProperties=r,this.type=2542286263}};class Oo extends ao{constructor(e,t,s,i){super(e,t),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.type=2485617015}}e.IfcCompositeCurveSegment=Oo;class xo extends _o{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.type=2574617495}}e.IfcConstructionResourceType=xo;class So extends zr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=3419103109}}e.IfcContext=So;e.IfcCrewResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=1815067380}};class wo extends Ur{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=wo;e.IfcCsgSolid=class extends ho{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class Mo extends Ur{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=Mo;e.IfcCurveBoundedPlane=class extends Po{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=i,this.type=2827736869}};e.IfcCurveBoundedSurface=class extends Po{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.Boundaries=s,this.ImplicitOuter=i,this.type=2629017746}};e.IfcCurveSegment=class extends ao{constructor(e,t,s,i,r,o){super(e,t),this.Transition=t,this.Placement=s,this.SegmentStart=i,this.SegmentLength=r,this.ParentCurve=o,this.type=4212018352}};e.IfcDirection=class extends Ur{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};class Bo extends po{constructor(e,t,s,i,r,o){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.type=593015953}}e.IfcDirectrixCurveSweptAreaSolid=Bo;e.IfcEdgeLoop=class extends Qr{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends ro{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.MethodOfMeasurement=o,this.Quantities=n,this.type=1883228015}};class Fo extends Io{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=339256511}}e.IfcElementType=Fo;class Lo extends Ao{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=Lo;e.IfcEllipseProfileDef=class extends Kr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.SemiAxis1=r,this.SemiAxis2=o,this.type=2835456948}};e.IfcEventType=class extends vo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.EventTriggerType=u,this.UserDefinedEventTriggerType=A,this.type=4024345920}};class Uo extends po{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=477187591}}e.IfcExtrudedAreaSolid=Uo;e.IfcExtrudedAreaSolidTapered=class extends Uo{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.EndSweptArea=o,this.type=2804161546}};e.IfcFaceBasedSurfaceModel=class extends Ur{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends Ur{constructor(e,t,s,i,r,o){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=i,this.PatternStart=r,this.HatchLineAngle=o,this.type=374418227}};e.IfcFillAreaStyleTiles=class extends Ur{constructor(e,t,s,i){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=i,this.type=315944413}};class Ho extends Bo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.FixedReference=n,this.type=2652556860}}e.IfcFixedReferenceSweptAreaSolid=Ho;class Go extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=4238390223}}e.IfcFurnishingElementType=Go;e.IfcFurnitureType=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.AssemblyPlace=c,this.PredefinedType=u,this.type=1268542332}};e.IfcGeographicElementType=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4095422895}};e.IfcGeometricCurveSet=class extends Hr{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};e.IfcIShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallWidth=r,this.OverallDepth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.FlangeSlope=c,this.type=1484403080}};class ko extends yo{constructor(e,t){super(e),this.CoordIndex=t,this.type=178912537}}e.IfcIndexedPolygonalFace=ko;e.IfcIndexedPolygonalFaceWithVoids=class extends ko{constructor(e,t,s){super(e,t),this.CoordIndex=t,this.InnerCoordIndices=s,this.type=2294589976}};e.IfcIndexedPolygonalTextureMap=class extends kr{constructor(e,t,s,i,r){super(e,t,s,i),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.TexCoordIndices=r,this.type=3465909080}};e.IfcLShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.Thickness=n,this.FilletRadius=a,this.EdgeRadius=l,this.LegSlope=h,this.type=572779678}};e.IfcLaborResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=428585644}};e.IfcLine=class extends Mo{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class Vo extends ho{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=Vo;class jo extends zr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3888040117}}e.IfcObject=jo;class Qo extends Mo{constructor(e,t){super(e),this.BasisCurve=t,this.type=590820931}}e.IfcOffsetCurve=Qo;e.IfcOffsetCurve2D=class extends Qo{constructor(e,t,s,i){super(e,t),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Qo{constructor(e,t,s,i,r){super(e,t),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.RefDirection=r,this.type=3505215534}};e.IfcOffsetCurveByDistances=class extends Qo{constructor(e,t,s,i){super(e,t),this.BasisCurve=t,this.OffsetValues=s,this.Tag=i,this.type=2485787929}};e.IfcPcurve=class extends Mo{constructor(e,t,s){super(e),this.BasisSurface=t,this.ReferenceCurve=s,this.type=1682466193}};e.IfcPlanarBox=class extends Xr{constructor(e,t,s,i){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=i,this.type=603570806}};e.IfcPlane=class extends Lo{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};e.IfcPolynomialCurve=class extends Mo{constructor(e,t,s,i,r){super(e),this.Position=t,this.CoefficientsX=s,this.CoefficientsY=i,this.CoefficientsZ=r,this.type=3381221214}};class Wo extends qr{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=Wo;class zo extends qr{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=zo;class Ko extends so{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3967405729}}e.IfcPreDefinedPropertySet=Ko;e.IfcProcedureType=class extends vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.type=569719735}};class Yo extends jo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.type=2945172077}}e.IfcProcess=Yo;class Xo extends jo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=4208778838}}e.IfcProduct=Xo;e.IfcProject=class extends So{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=103090709}};e.IfcProjectLibrary=class extends So{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=653396225}};e.IfcPropertyBoundedValue=class extends lo{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Specification=s,this.UpperBoundValue=i,this.LowerBoundValue=r,this.Unit=o,this.SetPointValue=n,this.type=871118103}};e.IfcPropertyEnumeratedValue=class extends lo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.EnumerationValues=i,this.EnumerationReference=r,this.type=4166981789}};e.IfcPropertyListValue=class extends lo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.ListValues=i,this.Unit=r,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends lo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.UsageName=i,this.PropertyReference=r,this.type=941946838}};e.IfcPropertySet=class extends so{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.HasProperties=o,this.type=1451395588}};e.IfcPropertySetTemplate=class extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.TemplateType=o,this.ApplicableEntity=n,this.HasPropertyTemplates=a,this.type=492091185}};e.IfcPropertySingleValue=class extends lo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.NominalValue=i,this.Unit=r,this.type=3650150729}};e.IfcPropertyTableValue=class extends lo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s),this.Name=t,this.Specification=s,this.DefiningValues=i,this.DefinedValues=r,this.Expression=o,this.DefiningUnit=n,this.DefinedUnit=a,this.CurveInterpolation=l,this.type=110355661}};class Zo extends io{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3521284610}}e.IfcPropertyTemplate=Zo;e.IfcRectangleHollowProfileDef=class extends oo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.WallThickness=n,this.InnerFilletRadius=a,this.OuterFilletRadius=l,this.type=2770003689}};e.IfcRectangularPyramid=class extends wo{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.Height=r,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends Po{constructor(e,t,s,i,r,o,n,a){super(e),this.BasisSurface=t,this.U1=s,this.V1=i,this.U2=r,this.V2=o,this.Usense=n,this.Vsense=a,this.type=3454111270}};e.IfcReinforcementDefinitionProperties=class extends Ko{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.DefinitionType=o,this.ReinforcementSectionDefinitions=n,this.type=3765753017}};class qo extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.type=3939117080}}e.IfcRelAssigns=qo;e.IfcRelAssignsToActor=class extends qo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingActor=a,this.ActingRole=l,this.type=1683148259}};e.IfcRelAssignsToControl=class extends qo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=2495723537}};class Jo extends qo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.type=1307041759}}e.IfcRelAssignsToGroup=Jo;e.IfcRelAssignsToGroupByFactor=class extends Jo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.Factor=l,this.type=1027710054}};e.IfcRelAssignsToProcess=class extends qo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProcess=a,this.QuantityInProcess=l,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends qo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProduct=a,this.type=2857406711}};e.IfcRelAssignsToResource=class extends qo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingResource=a,this.type=205026976}};class $o extends no{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.type=1865459582}}e.IfcRelAssociates=$o;e.IfcRelAssociatesApproval=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingApproval=n,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingClassification=n,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends $o{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.Intent=n,this.RelatingConstraint=a,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingDocument=n,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingLibrary=n,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingMaterial=n,this.type=2655215786}};e.IfcRelAssociatesProfileDef=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingProfileDef=n,this.type=1033248425}};class en extends no{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=826625072}}e.IfcRelConnects=en;class tn extends en{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.type=1204542856}}e.IfcRelConnectsElements=tn;e.IfcRelConnectsPathElements=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RelatingPriorities=l,this.RelatedPriorities=h,this.RelatedConnectionType=c,this.RelatingConnectionType=u,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedElement=n,this.type=4201705270}};e.IfcRelConnectsPorts=class extends en{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedPort=n,this.RealizingElement=a,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedStructuralActivity=n,this.type=2127690289}};class sn extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.type=1638771189}}e.IfcRelConnectsStructuralMember=sn;e.IfcRelConnectsWithEccentricity=class extends sn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.ConnectionConstraint=u,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RealizingElements=l,this.ConnectionType=h,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedCoverings=n,this.type=886880790}};e.IfcRelCoversSpaces=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedCoverings=n,this.type=2802773753}};e.IfcRelDeclares=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingContext=o,this.RelatedDefinitions=n,this.type=2565941209}};class rn extends no{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2551354335}}e.IfcRelDecomposes=rn;class on extends no{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=693640335}}e.IfcRelDefines=on;e.IfcRelDefinesByObject=class extends on{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingObject=n,this.type=1462361463}};e.IfcRelDefinesByProperties=class extends on{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingPropertyDefinition=n,this.type=4186316022}};e.IfcRelDefinesByTemplate=class extends on{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedPropertySets=o,this.RelatingTemplate=n,this.type=307848117}};e.IfcRelDefinesByType=class extends on{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingType=n,this.type=781010003}};e.IfcRelFillsElement=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingOpeningElement=o,this.RelatedBuildingElement=n,this.type=3940055652}};e.IfcRelFlowControlElements=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedControlElements=o,this.RelatingFlowElement=n,this.type=279856033}};e.IfcRelInterferesElements=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedElement=n,this.InterferenceGeometry=a,this.InterferenceSpace=l,this.InterferenceType=h,this.ImpliedOrder=c,this.type=427948657}};e.IfcRelNests=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=3268803585}};e.IfcRelPositions=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPositioningElement=o,this.RelatedProducts=n,this.type=1441486842}};e.IfcRelProjectsElement=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedFeatureElement=n,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=1245217292}};e.IfcRelSequence=class extends en{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingProcess=o,this.RelatedProcess=n,this.TimeLag=a,this.SequenceType=l,this.UserDefinedSequenceType=h,this.type=4122056220}};e.IfcRelServicesBuildings=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSystem=o,this.RelatedBuildings=n,this.type=366585022}};class nn extends en{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.type=3451746338}}e.IfcRelSpaceBoundary=nn;class an extends nn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.ParentBoundary=c,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=an;e.IfcRelSpaceBoundary2ndLevel=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.ParentBoundary=c,this.CorrespondingBoundary=u,this.type=1521410863}};e.IfcRelVoidsElement=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedOpeningElement=n,this.type=1401173127}};e.IfcReparametrisedCompositeCurveSegment=class extends Oo{constructor(e,t,s,i,r){super(e,t,s,i),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.ParamLength=r,this.type=816062949}};class ln extends jo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.type=2914609552}}e.IfcResource=ln;class hn extends po{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.type=1856042241}}e.IfcRevolvedAreaSolid=hn;e.IfcRevolvedAreaSolidTapered=class extends hn{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.EndSweptArea=o,this.type=3243963512}};e.IfcRightCircularCone=class extends wo{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=i,this.type=4158566097}};e.IfcRightCircularCylinder=class extends wo{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.Radius=i,this.type=3626867408}};class cn extends ho{constructor(e,t,s){super(e),this.Directrix=t,this.CrossSections=s,this.type=1862484736}}e.IfcSectionedSolid=cn;e.IfcSectionedSolidHorizontal=class extends cn{constructor(e,t,s,i){super(e,t,s),this.Directrix=t,this.CrossSections=s,this.CrossSectionPositions=i,this.type=1290935644}};e.IfcSectionedSurface=class extends Ao{constructor(e,t,s,i){super(e),this.Directrix=t,this.CrossSectionPositions=s,this.CrossSections=i,this.type=1356537516}};e.IfcSimplePropertyTemplate=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.TemplateType=o,this.PrimaryMeasureType=n,this.SecondaryMeasureType=a,this.Enumerators=l,this.PrimaryUnit=h,this.SecondaryUnit=c,this.Expression=u,this.AccessState=A,this.type=3663146110}};class un extends Xo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.type=1412071761}}e.IfcSpatialElement=un;class An extends Io{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=710998568}}e.IfcSpatialElementType=An;class pn extends un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.type=2706606064}}e.IfcSpatialStructureElement=pn;class dn extends An{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893378262}}e.IfcSpatialStructureElementType=dn;e.IfcSpatialZone=class extends un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.PredefinedType=h,this.type=463610769}};e.IfcSpatialZoneType=class extends An{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.LongName=u,this.type=2481509218}};e.IfcSphere=class extends wo{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};e.IfcSphericalSurface=class extends Lo{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=4015995234}};class fn extends Mo{constructor(e,t){super(e),this.Position=t,this.type=2735484536}}e.IfcSpiral=fn;class mn extends Xo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3544373492}}e.IfcStructuralActivity=mn;class yn extends Xo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3136571912}}e.IfcStructuralItem=yn;class En extends yn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=530289379}}e.IfcStructuralMember=En;class gn extends mn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3689010777}}e.IfcStructuralReaction=gn;class vn extends En{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=3979015343}}e.IfcStructuralSurfaceMember=vn;e.IfcStructuralSurfaceMemberVarying=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=2218152070}};e.IfcStructuralSurfaceReaction=class extends gn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.PredefinedType=c,this.type=603775116}};e.IfcSubContractResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=4095615324}};class In extends Mo{constructor(e,t,s,i){super(e),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=699246055}}e.IfcSurfaceCurve=In;e.IfcSurfaceCurveSweptAreaSolid=class extends Bo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.ReferenceSurface=n,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends mo{constructor(e,t,s,i,r){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends mo{constructor(e,t,s,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=i,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1580310250}};e.IfcTask=class extends Yo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Status=l,this.WorkMethod=h,this.IsMilestone=c,this.Priority=u,this.TaskTime=A,this.PredefinedType=p,this.type=3473067441}};e.IfcTaskType=class extends vo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.WorkMethod=u,this.type=3206491090}};class _n extends yo{constructor(e,t,s){super(e),this.Coordinates=t,this.Closed=s,this.type=2387106220}}e.IfcTessellatedFaceSet=_n;e.IfcThirdOrderPolynomialSpiral=class extends fn{constructor(e,t,s,i,r,o){super(e,t),this.Position=t,this.CubicTerm=s,this.QuadraticTerm=i,this.LinearTerm=r,this.ConstantTerm=o,this.type=782932809}};e.IfcToroidalSurface=class extends Lo{constructor(e,t,s,i){super(e,t),this.Position=t,this.MajorRadius=s,this.MinorRadius=i,this.type=1935646853}};class Tn extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3665877780}}e.IfcTransportationDeviceType=Tn;class Pn extends _n{constructor(e,t,s,i,r,o){super(e,t,s),this.Coordinates=t,this.Closed=s,this.Normals=i,this.CoordIndex=r,this.PnIndex=o,this.type=2916149573}}e.IfcTriangulatedFaceSet=Pn;e.IfcTriangulatedIrregularNetwork=class extends Pn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.Coordinates=t,this.Closed=s,this.Normals=i,this.CoordIndex=r,this.PnIndex=o,this.Flags=n,this.type=1229763772}};e.IfcVehicleType=class extends Tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3651464721}};e.IfcWindowLiningProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.TransomThickness=a,this.MullionThickness=l,this.FirstTransomOffset=h,this.SecondTransomOffset=c,this.FirstMullionOffset=u,this.SecondMullionOffset=A,this.ShapeAspectStyle=p,this.LiningOffset=d,this.LiningToPanelOffsetX=f,this.LiningToPanelOffsetY=m,this.type=336235671}};e.IfcWindowPanelProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=512836454}};class bn extends jo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.type=2296667514}}e.IfcActor=bn;class Rn extends Vo{constructor(e,t){super(e,t),this.Outer=t,this.type=1635779807}}e.IfcAdvancedBrep=Rn;e.IfcAdvancedBrepWithVoids=class extends Rn{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=2603310189}};e.IfcAnnotation=class extends Xo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=1674181508}};class Dn extends Po{constructor(e,t,s,i,r,o,n,a){super(e),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.type=2887950389}}e.IfcBSplineSurface=Dn;class Cn extends Dn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.UMultiplicities=l,this.VMultiplicities=h,this.UKnots=c,this.VKnots=u,this.KnotSpec=A,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=Cn;e.IfcBlock=class extends wo{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.ZLength=r,this.type=1334484129}};e.IfcBooleanClippingResult=class extends To{constructor(e,t,s,i){super(e,t,s,i),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=3649129432}};class Nn extends Mo{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=Nn;e.IfcBuildingStorey=class extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.Elevation=c,this.type=3124254112}};class On extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1626504194}}e.IfcBuiltElementType=On;e.IfcChimneyType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2197970202}};e.IfcCircleHollowProfileDef=class extends No{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.WallThickness=o,this.type=2937912522}};e.IfcCivilElementType=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893394355}};e.IfcClothoid=class extends fn{constructor(e,t,s){super(e,t),this.Position=t,this.ClothoidConstant=s,this.type=3497074424}};e.IfcColumnType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=300633059}};e.IfcComplexPropertyTemplate=class extends Zo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.UsageName=o,this.TemplateType=n,this.HasPropertyTemplates=a,this.type=3875453745}};class xn extends Nn{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=xn;class Sn extends xn{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=15328376}}e.IfcCompositeCurveOnSurface=Sn;class wn extends Mo{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=wn;e.IfcConstructionEquipmentResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=2185764099}};e.IfcConstructionMaterialResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=4105962743}};e.IfcConstructionProductResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=1525564444}};class Mn extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.type=2559216714}}e.IfcConstructionResource=Mn;class Bn extends jo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.type=3293443760}}e.IfcControl=Bn;e.IfcCosineSpiral=class extends fn{constructor(e,t,s,i){super(e,t),this.Position=t,this.CosineTerm=s,this.ConstantTerm=i,this.type=2000195564}};e.IfcCostItem=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.CostValues=l,this.CostQuantities=h,this.type=3895139033}};e.IfcCostSchedule=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.SubmittedOn=h,this.UpdateDate=c,this.type=1419761937}};e.IfcCourseType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4189326743}};e.IfcCoveringType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1916426348}};e.IfcCrewResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3295246426}};e.IfcCurtainWallType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1457835157}};e.IfcCylindricalSurface=class extends Lo{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=1213902940}};class Fn extends On{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1306400036}}e.IfcDeepFoundationType=Fn;e.IfcDirectrixDerivedReferenceSweptAreaSolid=class extends Ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o,n),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.FixedReference=n,this.type=4234616927}};class Ln extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3256556792}}e.IfcDistributionElementType=Ln;class Un extends Ln{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3849074793}}e.IfcDistributionFlowElementType=Un;e.IfcDoorLiningProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.ThresholdDepth=a,this.ThresholdThickness=l,this.TransomThickness=h,this.TransomOffset=c,this.LiningOffset=u,this.ThresholdOffset=A,this.CasingThickness=p,this.CasingDepth=d,this.ShapeAspectStyle=f,this.LiningToPanelOffsetX=m,this.LiningToPanelOffsetY=y,this.type=2963535650}};e.IfcDoorPanelProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PanelDepth=o,this.PanelOperation=n,this.PanelWidth=a,this.PanelPosition=l,this.ShapeAspectStyle=h,this.type=1714330368}};e.IfcDoorType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.OperationType=u,this.ParameterTakesPrecedence=A,this.UserDefinedOperationType=p,this.type=2323601079}};e.IfcDraughtingPreDefinedColour=class extends Wo{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends zo{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};class Hn extends Xo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1758889154}}e.IfcElement=Hn;e.IfcElementAssembly=class extends Hn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.AssemblyPlace=h,this.PredefinedType=c,this.type=4123344466}};e.IfcElementAssemblyType=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2397081782}};class Gn extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1623761950}}e.IfcElementComponent=Gn;class kn extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2590856083}}e.IfcElementComponentType=kn;e.IfcEllipse=class extends wn{constructor(e,t,s,i){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=i,this.type=1704287377}};class Vn extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2107101300}}e.IfcEnergyConversionDeviceType=Vn;e.IfcEngineType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=132023988}};e.IfcEvaporativeCoolerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3174744832}};e.IfcEvaporatorType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3390157468}};e.IfcEvent=class extends Yo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.PredefinedType=l,this.EventTriggerType=h,this.UserDefinedEventTriggerType=c,this.EventOccurenceTime=u,this.type=4148101412}};class jn extends un{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.type=2853485674}}e.IfcExternalSpatialStructureElement=jn;class Qn extends Vo{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}}e.IfcFacetedBrep=Qn;e.IfcFacetedBrepWithVoids=class extends Qn{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};class Wn extends pn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.type=24185140}}e.IfcFacility=Wn;class zn extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.type=1310830890}}e.IfcFacilityPart=zn;e.IfcFacilityPartCommon=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=4228831410}};e.IfcFastener=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=647756555}};e.IfcFastenerType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2489546625}};class Kn extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2827207264}}e.IfcFeatureElement=Kn;class Yn extends Kn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2143335405}}e.IfcFeatureElementAddition=Yn;class Xn extends Kn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1287392070}}e.IfcFeatureElementSubtraction=Xn;class Zn extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3907093117}}e.IfcFlowControllerType=Zn;class qn extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3198132628}}e.IfcFlowFittingType=qn;e.IfcFlowMeterType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3815607619}};class Jn extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1482959167}}e.IfcFlowMovingDeviceType=Jn;class $n extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1834744321}}e.IfcFlowSegmentType=$n;class ea extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1339347760}}e.IfcFlowStorageDeviceType=ea;class ta extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2297155007}}e.IfcFlowTerminalType=ta;class sa extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=sa;e.IfcFootingType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1893162501}};class ia extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=263784265}}e.IfcFurnishingElement=ia;e.IfcFurniture=class extends ia{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1509553395}};e.IfcGeographicElement=class extends Hn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3493046030}};class ra extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=4230923436}}e.IfcGeotechnicalElement=ra;e.IfcGeotechnicalStratum=class extends ra{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1594536857}};e.IfcGradientCurve=class extends xn{constructor(e,t,s,i,r){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.BaseCurve=i,this.EndPoint=r,this.type=2898700619}};class oa extends jo{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2706460486}}e.IfcGroup=oa;e.IfcHeatExchangerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1251058090}};e.IfcHumidifierType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1806887404}};e.IfcImpactProtectionDevice=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2568555532}};e.IfcImpactProtectionDeviceType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3948183225}};e.IfcIndexedPolyCurve=class extends Nn{constructor(e,t,s,i){super(e),this.Points=t,this.Segments=s,this.SelfIntersect=i,this.type=2571569899}};e.IfcInterceptorType=class extends sa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3946677679}};e.IfcIntersectionCurve=class extends In{constructor(e,t,s,i){super(e,t,s,i),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=3113134337}};e.IfcInventory=class extends oa{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.Jurisdiction=a,this.ResponsiblePersons=l,this.LastUpdateDate=h,this.CurrentValue=c,this.OriginalValue=u,this.type=2391368822}};e.IfcJunctionBoxType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4288270099}};e.IfcKerbType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.Mountable=c,this.type=679976338}};e.IfcLaborResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3827777499}};e.IfcLampType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1051575348}};e.IfcLightFixtureType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1161773419}};class na extends Xo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=2176059722}}e.IfcLinearElement=na;e.IfcLiquidTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1770583370}};e.IfcMarineFacility=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.type=525669439}};e.IfcMarinePart=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=976884017}};e.IfcMechanicalFastener=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NominalDiameter=h,this.NominalLength=c,this.PredefinedType=u,this.type=377706215}};e.IfcMechanicalFastenerType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.NominalLength=A,this.type=2108223431}};e.IfcMedicalDeviceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1114901282}};e.IfcMemberType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3181161470}};e.IfcMobileTelecommunicationsApplianceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1950438474}};e.IfcMooringDeviceType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=710110818}};e.IfcMotorConnectionType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=977012517}};e.IfcNavigationElementType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=506776471}};e.IfcOccupant=class extends bn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.PredefinedType=a,this.type=4143007308}};e.IfcOpeningElement=class extends Xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3588315303}};e.IfcOutletType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2837617999}};e.IfcPavementType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=514975943}};e.IfcPerformanceHistory=class extends Bn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LifeCyclePhase=a,this.PredefinedType=l,this.type=2382730787}};e.IfcPermeableCoveringProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=3566463478}};e.IfcPermit=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=3327091369}};e.IfcPileType=class extends Fn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1158309216}};e.IfcPipeFittingType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=804291784}};e.IfcPipeSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4231323485}};e.IfcPlateType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4017108033}};e.IfcPolygonalFaceSet=class extends _n{constructor(e,t,s,i,r){super(e,t,s),this.Coordinates=t,this.Closed=s,this.Faces=i,this.PnIndex=r,this.type=2839578677}};e.IfcPolyline=class extends Nn{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class aa extends Xo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3740093272}}e.IfcPort=aa;class la extends Xo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1946335990}}e.IfcPositioningElement=la;e.IfcProcedure=class extends Yo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.PredefinedType=l,this.type=2744685151}};e.IfcProjectOrder=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=2904328755}};e.IfcProjectionElement=class extends Yn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1842657554}};e.IfcPumpType=class extends Jn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2250791053}};e.IfcRailType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1763565496}};e.IfcRailingType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2893384427}};e.IfcRailway=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.type=3992365140}};e.IfcRailwayPart=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=1891881377}};e.IfcRampFlightType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2324767716}};e.IfcRampType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1469900589}};e.IfcRationalBSplineSurfaceWithKnots=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.UMultiplicities=l,this.VMultiplicities=h,this.UKnots=c,this.VKnots=u,this.KnotSpec=A,this.WeightsData=p,this.type=683857671}};e.IfcReferent=class extends la{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=4021432810}};class ha extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.type=3027567501}}e.IfcReinforcingElement=ha;class ca extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=964333572}}e.IfcReinforcingElementType=ca;e.IfcReinforcingMesh=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.MeshLength=c,this.MeshWidth=u,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=p,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=m,this.TransverseBarSpacing=y,this.PredefinedType=E,this.type=2320036040}};e.IfcReinforcingMeshType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.MeshLength=u,this.MeshWidth=A,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=d,this.LongitudinalBarCrossSectionArea=f,this.TransverseBarCrossSectionArea=m,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=E,this.BendingShapeCode=g,this.BendingParameters=v,this.type=2310774935}};e.IfcRelAdheresToElement=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedSurfaceFeatures=n,this.type=3818125796}};e.IfcRelAggregates=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=160246688}};e.IfcRoad=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.type=146592293}};e.IfcRoadPart=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=550521510}};e.IfcRoofType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2781568857}};e.IfcSanitaryTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1768891740}};e.IfcSeamCurve=class extends In{constructor(e,t,s,i){super(e,t,s,i),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=2157484638}};e.IfcSecondOrderPolynomialSpiral=class extends fn{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.QuadraticTerm=s,this.LinearTerm=i,this.ConstantTerm=r,this.type=3649235739}};e.IfcSegmentedReferenceCurve=class extends xn{constructor(e,t,s,i,r){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.BaseCurve=i,this.EndPoint=r,this.type=544395925}};e.IfcSeventhOrderPolynomialSpiral=class extends fn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t),this.Position=t,this.SepticTerm=s,this.SexticTerm=i,this.QuinticTerm=r,this.QuarticTerm=o,this.CubicTerm=n,this.QuadraticTerm=a,this.LinearTerm=l,this.ConstantTerm=h,this.type=1027922057}};e.IfcShadingDeviceType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4074543187}};e.IfcSign=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=33720170}};e.IfcSignType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3599934289}};e.IfcSignalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1894708472}};e.IfcSineSpiral=class extends fn{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.SineTerm=s,this.LinearTerm=i,this.ConstantTerm=r,this.type=42703149}};e.IfcSite=class extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.RefLatitude=c,this.RefLongitude=u,this.RefElevation=A,this.LandTitleNumber=p,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2533589738}};e.IfcSolarDeviceType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1072016465}};e.IfcSpace=class extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.ElevationWithFlooring=u,this.type=3856911033}};e.IfcSpaceHeaterType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1305183839}};e.IfcSpaceType=class extends dn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.LongName=u,this.type=3812236995}};e.IfcStackTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3112655638}};e.IfcStairFlightType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1039846685}};e.IfcStairType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=338393293}};class ua extends mn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.type=682877961}}e.IfcStructuralAction=ua;class Aa extends yn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1179482911}}e.IfcStructuralConnection=Aa;class pa extends ua{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1004757350}}e.IfcStructuralCurveAction=pa;e.IfcStructuralCurveConnection=class extends Aa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.AxisDirection=h,this.type=4243806635}};class da extends En{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Axis=h,this.type=214636428}}e.IfcStructuralCurveMember=da;e.IfcStructuralCurveMemberVarying=class extends da{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Axis=h,this.type=2445595289}};e.IfcStructuralCurveReaction=class extends gn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.PredefinedType=c,this.type=2757150158}};e.IfcStructuralLinearAction=class extends pa{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1807405624}};class fa extends oa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.type=1252848954}}e.IfcStructuralLoadGroup=fa;e.IfcStructuralPointAction=class extends ua{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.type=2082059205}};e.IfcStructuralPointConnection=class extends Aa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.ConditionCoordinateSystem=h,this.type=734778138}};e.IfcStructuralPointReaction=class extends gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=1235345126}};e.IfcStructuralResultGroup=class extends oa{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheoryType=n,this.ResultForLoadGroup=a,this.IsLinear=l,this.type=2986769608}};class ma extends ua{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=3657597509}}e.IfcStructuralSurfaceAction=ma;e.IfcStructuralSurfaceConnection=class extends Aa{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1975003073}};e.IfcSubContractResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=148013059}};e.IfcSurfaceFeature=class extends Kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3101698114}};e.IfcSwitchingDeviceType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2315554128}};class ya extends oa{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2254336722}}e.IfcSystem=ya;e.IfcSystemFurnitureElement=class extends ia{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=413509423}};e.IfcTankType=class extends ea{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=5716631}};e.IfcTendon=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.TensionForce=p,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=m,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.type=2347447852}};e.IfcTendonAnchorType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3081323446}};e.IfcTendonConduit=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.type=3663046924}};e.IfcTendonConduitType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2281632017}};e.IfcTendonType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.SheathDiameter=p,this.type=2415094496}};e.IfcTrackElementType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=618700268}};e.IfcTransformerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1692211062}};e.IfcTransportElementType=class extends Tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2097647324}};class Ea extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1953115116}}e.IfcTransportationDevice=Ea;e.IfcTrimmedCurve=class extends Nn{constructor(e,t,s,i,r,o){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=i,this.SenseAgreement=r,this.MasterRepresentation=o,this.type=3593883385}};e.IfcTubeBundleType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1911125066}};e.IfcValveType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=728799441}};e.IfcVehicle=class extends Ea{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=840318589}};e.IfcVibrationDamper=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1530820697}};e.IfcVibrationDamperType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3956297820}};e.IfcVibrationIsolator=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2391383451}};e.IfcVibrationIsolatorType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3313531582}};e.IfcVirtualElement=class extends Hn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2769231204}};e.IfcVoidingFeature=class extends Xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=926996030}};e.IfcWallType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1898987631}};e.IfcWasteTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1133259667}};e.IfcWindowType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.PartitioningType=u,this.ParameterTakesPrecedence=A,this.UserDefinedPartitioningType=p,this.type=4009809668}};e.IfcWorkCalendar=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.WorkingTimes=a,this.ExceptionTimes=l,this.PredefinedType=h,this.type=4088093105}};class ga extends Bn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.type=1028945134}}e.IfcWorkControl=ga;e.IfcWorkPlan=class extends ga{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.PredefinedType=d,this.type=4218914973}};e.IfcWorkSchedule=class extends ga{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.PredefinedType=d,this.type=3342526732}};e.IfcZone=class extends ya{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.type=1033361043}};e.IfcActionRequest=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1411407467}};e.IfcAirTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1871374353}};e.IfcAlignmentCant=class extends na{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.RailHeadDistance=l,this.type=4266260250}};e.IfcAlignmentHorizontal=class extends na{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1545765605}};e.IfcAlignmentSegment=class extends na{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.DesignParameters=l,this.type=317615605}};e.IfcAlignmentVertical=class extends na{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1662888072}};e.IfcAsset=class extends oa{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.OriginalValue=a,this.CurrentValue=l,this.TotalReplacementCost=h,this.Owner=c,this.User=u,this.ResponsiblePerson=A,this.IncorporationDate=p,this.DepreciatedValue=d,this.type=3460190687}};e.IfcAudioVisualApplianceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1532957894}};class va extends Nn{constructor(e,t,s,i,r,o){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.type=1967976161}}e.IfcBSplineCurve=va;class Ia extends va{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.KnotMultiplicities=n,this.Knots=a,this.KnotSpec=l,this.type=2461110595}}e.IfcBSplineCurveWithKnots=Ia;e.IfcBeamType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=819618141}};e.IfcBearingType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3649138523}};e.IfcBoilerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=231477066}};class _a extends Sn{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1136057603}}e.IfcBoundaryCurve=_a;e.IfcBridge=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.type=644574406}};e.IfcBridgePart=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=963979645}};e.IfcBuilding=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.ElevationOfRefHeight=c,this.ElevationOfTerrain=u,this.BuildingAddress=A,this.type=4031249490}};e.IfcBuildingElementPart=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2979338954}};e.IfcBuildingElementPartType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=39481116}};e.IfcBuildingElementProxyType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1909888760}};e.IfcBuildingSystem=class extends ya{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.LongName=a,this.type=1177604601}};class Ta extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1876633798}}e.IfcBuiltElement=Ta;e.IfcBuiltSystem=class extends ya{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.LongName=a,this.type=3862327254}};e.IfcBurnerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2188180465}};e.IfcCableCarrierFittingType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3293546465}};e.IfcCableFittingType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2674252688}};e.IfcCableSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1285652485}};e.IfcCaissonFoundationType=class extends Fn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3203706013}};e.IfcChillerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2951183804}};e.IfcChimney=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3296154744}};e.IfcCircle=class extends wn{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCivilElement=class extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1677625105}};e.IfcCoilType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2301859152}};e.IfcColumn=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=843113511}};e.IfcCommunicationsApplianceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=400855858}};e.IfcCompressorType=class extends Jn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3850581409}};e.IfcCondenserType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2816379211}};e.IfcConstructionEquipmentResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=1060000209}};e.IfcConstructionProductResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=488727124}};e.IfcConveyorSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2940368186}};e.IfcCooledBeamType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=335055490}};e.IfcCoolingTowerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2954562838}};e.IfcCourse=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1502416096}};e.IfcCovering=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1973544240}};e.IfcCurtainWall=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3495092785}};e.IfcDamperType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3961806047}};class Pa extends Ta{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3426335179}}e.IfcDeepFoundation=Pa;e.IfcDiscreteAccessory=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1335981549}};e.IfcDiscreteAccessoryType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2635815018}};e.IfcDistributionBoardType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=479945903}};e.IfcDistributionChamberElementType=class extends Un{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1599208980}};class ba extends Ln{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2063403501}}e.IfcDistributionControlElementType=ba;class Ra extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1945004755}}e.IfcDistributionElement=Ra;class Da extends Ra{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3040386961}}e.IfcDistributionFlowElement=Da;e.IfcDistributionPort=class extends aa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.FlowDirection=l,this.PredefinedType=h,this.SystemType=c,this.type=3041715199}};class Ca extends ya{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.PredefinedType=a,this.type=3205830791}}e.IfcDistributionSystem=Ca;e.IfcDoor=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.OperationType=A,this.UserDefinedOperationType=p,this.type=395920057}};e.IfcDuctFittingType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=869906466}};e.IfcDuctSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3760055223}};e.IfcDuctSilencerType=class extends sa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2030761528}};e.IfcEarthworksCut=class extends Xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3071239417}};class Na extends Ta{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1077100507}}e.IfcEarthworksElement=Na;e.IfcEarthworksFill=class extends Na{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3376911765}};e.IfcElectricApplianceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=663422040}};e.IfcElectricDistributionBoardType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2417008758}};e.IfcElectricFlowStorageDeviceType=class extends ea{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3277789161}};e.IfcElectricFlowTreatmentDeviceType=class extends sa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2142170206}};e.IfcElectricGeneratorType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1534661035}};e.IfcElectricMotorType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=712377611}};class Oa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1658829314}}e.IfcEnergyConversionDevice=Oa;e.IfcEngine=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2814081492}};e.IfcEvaporativeCooler=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3747195512}};e.IfcEvaporator=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=484807127}};e.IfcExternalSpatialElement=class extends jn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.PredefinedType=h,this.type=1209101575}};e.IfcFanType=class extends Jn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=346874300}};e.IfcFilterType=class extends sa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4222183408}};class xa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2058353004}}e.IfcFlowController=xa;class Sa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=4278956645}}e.IfcFlowFitting=Sa;e.IfcFlowInstrumentType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4037862832}};e.IfcFlowMeter=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2188021234}};class wa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3132237377}}e.IfcFlowMovingDevice=wa;class Ma extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=987401354}}e.IfcFlowSegment=Ma;class Ba extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=707683696}}e.IfcFlowStorageDevice=Ba;class Fa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2223149337}}e.IfcFlowTerminal=Fa;class La extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3508470533}}e.IfcFlowTreatmentDevice=La;e.IfcFooting=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=900683007}};class Ua extends ra{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2713699986}}e.IfcGeotechnicalAssembly=Ua;e.IfcGrid=class extends la{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.UAxes=l,this.VAxes=h,this.WAxes=c,this.PredefinedType=u,this.type=3009204131}};e.IfcHeatExchanger=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3319311131}};e.IfcHumidifier=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2068733104}};e.IfcInterceptor=class extends La{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4175244083}};e.IfcJunctionBox=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2176052936}};e.IfcKerb=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.Mountable=h,this.type=2696325953}};e.IfcLamp=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=76236018}};e.IfcLightFixture=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=629592764}};class Ha extends la{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1154579445}}e.IfcLinearPositioningElement=Ha;e.IfcLiquidTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1638804497}};e.IfcMedicalDevice=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1437502449}};e.IfcMember=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1073191201}};e.IfcMobileTelecommunicationsAppliance=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2078563270}};e.IfcMooringDevice=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=234836483}};e.IfcMotorConnection=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2474470126}};e.IfcNavigationElement=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2182337498}};e.IfcOuterBoundaryCurve=class extends _a{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=144952367}};e.IfcOutlet=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3694346114}};e.IfcPavement=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1383356374}};e.IfcPile=class extends Pa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.ConstructionType=c,this.type=1687234759}};e.IfcPipeFitting=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=310824031}};e.IfcPipeSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3612865200}};e.IfcPlate=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3171933400}};e.IfcProtectiveDevice=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=738039164}};e.IfcProtectiveDeviceTrippingUnitType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=655969474}};e.IfcPump=class extends wa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=90941305}};e.IfcRail=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3290496277}};e.IfcRailing=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2262370178}};e.IfcRamp=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3024970846}};e.IfcRampFlight=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3283111854}};e.IfcRationalBSplineCurveWithKnots=class extends Ia{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.KnotMultiplicities=n,this.Knots=a,this.KnotSpec=l,this.WeightsData=h,this.type=1232101972}};e.IfcReinforcedSoil=class extends Na{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3798194928}};e.IfcReinforcingBar=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.NominalDiameter=c,this.CrossSectionArea=u,this.BarLength=A,this.PredefinedType=p,this.BarSurface=d,this.type=979691226}};e.IfcReinforcingBarType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.BarLength=p,this.BarSurface=d,this.BendingShapeCode=f,this.BendingParameters=m,this.type=2572171363}};e.IfcRoof=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2016517767}};e.IfcSanitaryTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3053780830}};e.IfcSensorType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1783015770}};e.IfcShadingDevice=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1329646415}};e.IfcSignal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=991950508}};e.IfcSlab=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1529196076}};e.IfcSolarDevice=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3420628829}};e.IfcSpaceHeater=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1999602285}};e.IfcStackTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1404847402}};e.IfcStair=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=331165859}};e.IfcStairFlight=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NumberOfRisers=h,this.NumberOfTreads=c,this.RiserHeight=u,this.TreadLength=A,this.PredefinedType=p,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends ya{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.OrientationOf2DPlane=a,this.LoadedBy=l,this.HasResults=h,this.SharedPlacement=c,this.type=2515109513}};e.IfcStructuralLoadCase=class extends fa{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.SelfWeightCoefficients=u,this.type=385403989}};e.IfcStructuralPlanarAction=class extends ma{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1621171031}};e.IfcSwitchingDevice=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1162798199}};e.IfcTank=class extends Ba{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=812556717}};e.IfcTrackElement=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3425753595}};e.IfcTransformer=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3825984169}};e.IfcTransportElement=class extends Ea{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1620046519}};e.IfcTubeBundle=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3026737570}};e.IfcUnitaryControlElementType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3179687236}};e.IfcUnitaryEquipment=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4292641817}};e.IfcValve=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4207607924}};class Ga extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2391406946}}e.IfcWall=Ga;e.IfcWallStandardCase=class extends Ga{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3512223829}};e.IfcWasteTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4237592921}};e.IfcWindow=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.PartitioningType=A,this.UserDefinedPartitioningType=p,this.type=3304561284}};e.IfcActuatorType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2874132201}};e.IfcAirTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1634111441}};e.IfcAirTerminalBox=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=177149247}};e.IfcAirToAirHeatRecovery=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2056796094}};e.IfcAlarmType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3001207471}};e.IfcAlignment=class extends Ha{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=325726236}};e.IfcAudioVisualAppliance=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=277319702}};e.IfcBeam=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=753842376}};e.IfcBearing=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4196446775}};e.IfcBoiler=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=32344328}};e.IfcBorehole=class extends Ua{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3314249567}};e.IfcBuildingElementProxy=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1095909175}};e.IfcBurner=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2938176219}};e.IfcCableCarrierFitting=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=635142910}};e.IfcCableCarrierSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3758799889}};e.IfcCableFitting=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1051757585}};e.IfcCableSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4217484030}};e.IfcCaissonFoundation=class extends Pa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3999819293}};e.IfcChiller=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3902619387}};e.IfcCoil=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=639361253}};e.IfcCommunicationsAppliance=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3221913625}};e.IfcCompressor=class extends wa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3571504051}};e.IfcCondenser=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2272882330}};e.IfcControllerType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=578613899}};e.IfcConveyorSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3460952963}};e.IfcCooledBeam=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4136498852}};e.IfcCoolingTower=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3640358203}};e.IfcDamper=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4074379575}};e.IfcDistributionBoard=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3693000487}};e.IfcDistributionChamberElement=class extends Da{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1052013943}};e.IfcDistributionCircuit=class extends Ca{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.PredefinedType=a,this.type=562808652}};class ka extends Ra{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1062813311}}e.IfcDistributionControlElement=ka;e.IfcDuctFitting=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=342316401}};e.IfcDuctSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3518393246}};e.IfcDuctSilencer=class extends La{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1360408905}};e.IfcElectricAppliance=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1904799276}};e.IfcElectricDistributionBoard=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=862014818}};e.IfcElectricFlowStorageDevice=class extends Ba{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3310460725}};e.IfcElectricFlowTreatmentDevice=class extends La{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=24726584}};e.IfcElectricGenerator=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=264262732}};e.IfcElectricMotor=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=402227799}};e.IfcElectricTimeControl=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1003880860}};e.IfcFan=class extends wa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3415622556}};e.IfcFilter=class extends La{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=819412036}};e.IfcFireSuppressionTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1426591983}};e.IfcFlowInstrument=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=182646315}};e.IfcGeomodel=class extends Ua{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2680139844}};e.IfcGeoslice=class extends Ua{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1971632696}};e.IfcProtectiveDeviceTrippingUnit=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2295281155}};e.IfcSensor=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4086658281}};e.IfcUnitaryControlElement=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=630975310}};e.IfcActuator=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4288193352}};e.IfcAlarm=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3087945054}};e.IfcController=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=25142252}}}(pv||(pv={})),(fv=dv||(dv={}))[fv.LOG_LEVEL_DEBUG=0]="LOG_LEVEL_DEBUG",fv[fv.LOG_LEVEL_INFO=1]="LOG_LEVEL_INFO",fv[fv.LOG_LEVEL_WARN=2]="LOG_LEVEL_WARN",fv[fv.LOG_LEVEL_ERROR=3]="LOG_LEVEL_ERROR",fv[fv.LOG_LEVEL_OFF=4]="LOG_LEVEL_OFF","undefined"!=typeof self&&self.crossOriginIsolated)try{yv()}catch(e){Ev()}else Ev();A.vec2(),A.vec3(),A.vec3(),A.vec3();class Iv{constructor(e={}){this._dataDir=e.dataDir||""}getProjects(e,t){const s=this._dataDir+"/projects/index.json";y.loadJSON(s,e,t)}getProject(e,t,s){const i=this._dataDir+"/projects/"+e+"/index.json";y.loadJSON(i,t,s)}getMetadata(e,t,s,i){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/metadata.json";y.loadJSON(r,s,i)}getGeometry(e,t,s,i){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/geometry.xkt";y.loadArraybuffer(r,s,i)}getObjectInfo(e,t,s,i,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/props/"+s+".json";y.loadJSON(o,i,r)}getIssues(e,t,s,i){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/issues.json";y.loadJSON(r,s,i)}getSplitModelManifest(e,t,s,i,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+s;y.loadJSON(o,i,r)}getSplitModelMetadata(e,t,s,i,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+s;y.loadJSON(o,i,r)}getSplitModelGeometry(e,t,s,i,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+s;y.loadArraybuffer(o,i,r)}}class _v{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}}class Tv{constructor(e,t,s,i){this.bimViewer=e?e.bimViewer||e:this,this.server=e?e.server:s,this.viewer=e?e.viewer:i,this._children=[],e&&e._children.push(this),this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._events=null,this._eventCallDepth=0,this._enabled=null,this._active=null}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==s&&(this._events[e]=t||!0);const i=this._eventSubs[e];let r;if(i)for(const s in i)i.hasOwnProperty(s)&&(r=i[s],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--)}on(e,t,s){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new _v),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={});let i=this._eventSubs[e];i||(i={},this._eventSubs[e]=i);const r=this._subIdMap.addItem();i[r]={callback:t,scope:s||this},this._subIdEvents[r]=e;const o=this._events[e];return void 0!==o&&t.call(s||this,o),r}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._subIdMap.removeItem(e)}}once(e,t,s){const i=this,r=this.on(e,(function(e){i.off(r),t.call(s||this,e)}),s)}log(e){e="[LOG] "+e,window.console.log(e)}warn(e){e="[WARN] "+e,window.console.warn(e)}error(e){e="[ERROR] "+e,window.console.error(e)}_mutexActivation(e){const t=e.length;for(let s=0;s
Default text
',s.appendChild(this._modal),this._modalVisible=!1,this._modal.style.display="hidden"}show(e){this._modalVisible=!0,this._modal.querySelector(".xeokit-busy-modal-message").innerText=e,this._modal.style.display="block"}hide(){this._modalVisible=!1,this._modal.style.display="none"}destroy(){super.destroy(),this._modal&&(this._modal.parentNode.removeChild(this._modal),this._modal=null)}}const bv=A.vec3();class Rv extends Tv{constructor(e,t={}){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement,i=this.viewer.camera;this._modelMementos={},i.eye=[.577,.577,.577],i.look=[0,0,0],i.up=[-1,1,-1],this.bimViewer._modelsExplorer.on("modelLoaded",(e=>{this._saveModelMemento(e)})),this.bimViewer._modelsExplorer.on("modelUnloaded",(e=>{this._destroyModelMemento(e)})),this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?s.classList.add("active"):s.classList.remove("active")})),s.addEventListener("click",(e=>{this.getEnabled()&&this.reset(),e.preventDefault()}))}_saveModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;const s=new ec;s.saveObjects(this.viewer.scene,t,{visible:!0,edges:!0,xrayed:!0,highlighted:!0,selected:!0,clippable:!0,pickable:!0,colorize:!1,opacity:!1}),this._modelMementos[e]=s}_restoreModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;this._modelMementos[e].restoreObjects(this.viewer.scene,t)}_destroyModelMemento(e){delete this._modelMementos[e]}reset(){const e=this.viewer.scene.modelIds;for(var t=0,s=e.length;t{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?s.classList.add("active"):s.classList.remove("active")})),s.addEventListener("click",(e=>{this.getEnabled()&&this.fit(),e.preventDefault()}))}fit(){const e=this.viewer.scene,t=e.getAABB(e.visibleObjectIds);this.viewer.cameraFlight.flyTo({aabb:t}),this.viewer.cameraControl.pivotPos=A.getAABB3Center(t,Dv)}set fov(e){this.viewer.scene.cameraFlight.fitFOV=e}get fov(){return this.viewer.scene.cameraFlight.fitFOV}set duration(e){this.viewer.scene.cameraFlight.duration=e}get duration(){return this.viewer.scene.cameraFlight.duration}}class Nv extends Tv{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement,i=this.viewer.cameraControl,r=t.cameraControlNavModeMediator;i.navMode="orbit",i.followPointer=!0,this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?s.classList.add("active"):s.classList.remove("active")})),this.on("active",(e=>{r.setFirstPersonModeActive(e),e?(i.followPointer=!0,i.pivoting=!1):i.pivoting=!0})),s.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class Ov extends Tv{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement;this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this.viewer.cameraControl.doublePickFlyTo=!1,this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.visible=!1)}))):(s.classList.remove("active"),this.viewer.cameraControl.doublePickFlyTo=!1,void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),s.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class xv extends Tv{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement;this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.selected=!e.entity.selected)}))):(s.classList.remove("active"),void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),s.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class Sv extends Tv{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.scene.on("modelLoaded",(e=>{if(!this._active){const e=this.viewer.metaScene.getObjectIDsByType("IfcSpace");this.viewer.scene.setObjectsCulled(e,!0)}})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e){this._active!==e&&(this._active=e,e?(this._buttonElement.classList.add("active"),this._enterShowSpacesMode(),this.fire("active",this._active)):(this._buttonElement.classList.remove("active"),this._exitShowSpacesMode(),this.fire("active",this._active)))}_enterShowSpacesMode(){const e=this.viewer,t=e.scene,s=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(s,!1)}_exitShowSpacesMode(){const e=this.viewer,t=e.scene,s=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(s,!0)}}class wv extends Tv{constructor(e,t){super(e)}}const Mv=A.AABB3(),Bv=A.vec3();class Fv extends o{constructor(e={}){if(!e.sectionPlanesPlugin)throw"Missing config: sectionPlanesPlugin";super(y.apply({},e)),this._sectionPlanesPlugin=e.sectionPlanesPlugin,this._viewer=this._sectionPlanesPlugin.viewer,this._onSceneSectionPlaneCreated=this._viewer.scene.on("sectionPlaneCreated",(()=>{this._buildMenu()})),this._onSceneSectionPlaneDestroyed=this._viewer.scene.on("sectionPlaneDestroyed",(()=>{this._buildMenu()})),this._buildMenu()}_buildMenu(){const e=this._sectionPlanesPlugin,t=Object.values(e.sectionPlanes),s=[];for(let i=0,r=t.length;i`${e.viewer.localeService.translate("sectionToolContextMenu.slice")||"Slice"} #`+(i+1),doHoverEnter(t){e.hideControl(),e.showControl(r.id)},doHoverLeave(t){e.hideControl()},items:[[{getTitle:e=>r.active?e.viewer.localeService.translate("sectionToolContextMenu.deactivate")||"Disable":e.viewer.localeService.translate("sectionToolContextMenu.activate")||"Enable",doAction:e=>{r.active=!r.active}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.edit")||"Edit",getEnabled:()=>r.active,doAction:t=>{e.hideControl(),e.showControl(r.id);const s=r.pos;Mv.set(this._viewer.scene.aabb),A.getAABB3Center(Mv,Bv),Mv[0]+=s[0]-Bv[0],Mv[1]+=s[1]-Bv[1],Mv[2]+=s[2]-Bv[2],Mv[3]+=s[0]-Bv[0],Mv[4]+=s[1]-Bv[1],Mv[5]+=s[2]-Bv[2],this._viewer.cameraFlight.flyTo({aabb:Mv,fitFOV:65})}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flip")||"Flip",getEnabled:()=>r.active,doAction:e=>{r.flipDir()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.delete")||"Delete",doAction:e=>{r.destroy()}}]]})}this.items=[[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flipSlices")||"Flip Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.flipSections()}}],[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.disableAllSlices")||"Disable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.disableSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.enableAllSlices")||"Enable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.enableSections()}}],s]}destroy(){super.destroy();const e=this._viewer.scene;e.off(this._onSceneSectionPlaneCreated),e.off(this._onSceneSectionPlaneDestroyed)}}class Lv extends Tv{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";if(!t.menuButtonElement)throw"Missing config: menuButtonElement";this._buttonElement=t.buttonElement,this._counterElement=t.counterElement,this._menuButtonElement=t.menuButtonElement,this._menuButtonArrowElement=t.menuButtonArrowElement,this._sectionPlanesPlugin=new fg(this.viewer,{}),this._sectionToolContextMenu=new Fv({sectionPlanesPlugin:this._sectionPlanesPlugin,hideOnMouseDown:!1,hideOnAction:!1}),this._sectionPlanesPlugin.setOverviewVisible(!1),this.on("enabled",(e=>{e?(this._buttonElement.classList.remove("disabled"),this._counterElement&&this._counterElement.classList.remove("disabled"),this._menuButtonElement.classList.remove("disabled"),this._menuButtonArrowElement.classList.remove("disabled")):(this._buttonElement.classList.add("disabled"),this._counterElement&&this._counterElement.classList.add("disabled"),this._menuButtonElement.classList.add("disabled"),this._menuButtonArrowElement.classList.add("disabled"))})),this.on("active",(e=>{e?(this._buttonElement.classList.add("active"),this._counterElement&&this._counterElement.classList.add("active"),this._menuButtonElement.classList.add("active"),this._menuButtonArrowElement.classList.add("active")):(this._buttonElement.classList.remove("active"),this._counterElement&&this._counterElement.classList.remove("active"),this._menuButtonElement.classList.remove("active"),this._menuButtonArrowElement.classList.remove("active"))})),this.on("active",(e=>{e||this._sectionPlanesPlugin.hideControl()})),this._buttonElement.addEventListener("click",(e=>{if(!this.getEnabled())return;if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement)return;const t=this.getActive();this.setActive(!t),e.preventDefault()})),document.addEventListener("mousedown",(e=>{if(!e.target.classList.contains("xeokit-context-menu-item"))if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement)if(e.preventDefault(),this._sectionToolContextMenu.shown)this._sectionToolContextMenu.hide();else{this._sectionToolContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,sectionTool:this};const e=this._menuButtonElement.getBoundingClientRect();this._sectionToolContextMenu.show(e.left,e.bottom+5)}else this._sectionToolContextMenu.hide()})),this._sectionToolContextMenu.on("shown",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-down"),this._menuButtonArrowElement.classList.add("xeokit-arrow-up")})),this._sectionToolContextMenu.on("hidden",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-up"),this._menuButtonArrowElement.classList.add("xeokit-arrow-down")})),this.bimViewer.on("reset",(()=>{this.clear(),this.setActive(!1)})),this.viewer.scene.on("sectionPlaneCreated",(()=>{this._updateSectionPlanesCount()})),this.viewer.scene.on("sectionPlaneDestroyed",(()=>{this._updateSectionPlanesCount()})),this._initSectionMode()}_initSectionMode(){this.viewer.scene.input.on("mouseclicked",(e=>{if(!this.getActive()||!this.getEnabled())return;const t=this.viewer.scene.pick({canvasPos:e,pickSurface:!0});if(t){const e=this._sectionPlanesPlugin.createSectionPlane({pos:t.worldPos,dir:A.mulVec3Scalar(t.worldNormal,-1)});this._sectionPlanesPlugin.showControl(e.id)}})),this._updateSectionPlanesCount()}_updateSectionPlanesCount(){this._counterElement&&(this._counterElement.innerText=""+this.getNumSections())}getNumSections(){return Object.keys(this.viewer.scene.sectionPlanes).length}clear(){this._sectionPlanesPlugin.clear(),this._updateSectionPlanesCount()}flipSections(){this._sectionPlanesPlugin.flipSectionPlanes()}enableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!0}}disableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!1}}hideControl(){this._sectionPlanesPlugin.hideControl()}destroy(){this._sectionPlanesPlugin.destroy(),this._sectionToolContextMenu.destroy(),super.destroy()}}class Uv extends Tv{constructor(e,t){if(super(e,t),!t.navCubeCanvasElement)throw"Missing config: navCubeCanvasElement";const s=t.navCubeCanvasElement;this._navCube=new ag(this.viewer,{canvasElement:s,fitVisible:!0,color:"#CFCFCF"}),this._navCube.setVisible(this._active),this.on("active",(e=>{this._navCube.setVisible(e)}))}destroy(){this._navCube.destroy(),super.destroy()}}class Hv extends o{constructor(e={}){const t=!!e.enableEditModels,s=!!e.enableMeasurements,i=[[{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadModel")||"Load",getEnabled:e=>!e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.loadModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadModel")||"Unload",getEnabled:e=>e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.unloadModel(e.modelId)}}]];t&&i.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.editModel")||"Edit",getEnabled:e=>!0,doAction:e=>{e.bimViewer.editModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.deleteModel")||"Delete",getEnabled:e=>!0,doAction:e=>{e.bimViewer.deleteModel(e.modelId)}}]),i.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadAllModels")||"Load All",getEnabled:e=>{const t=e.bimViewer,s=t.getModelIds();return t.getLoadedModelIds().length{e.bimViewer.loadAllModels()}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadAllModels")||"Unload All",getEnabled:e=>e.bimViewer.getLoadedModelIds().length>0,doAction:e=>{e.bimViewer.unloadAllModels()}}]),i.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}]),s&&i.push([{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]),super({hideOnAction:e.hideOnAction,context:e.context,items:i})}}const Gv=A.vec3();class kv{constructor(e){this._server=e}setProjectId(e){this._projectId=e}setModelId(e){this._modelId=e}getManifest(e,t,s){this._server.getSplitModelManifest(this._projectId,this._modelId,e,t,s)}getMetaModel(e,t,s){this._server.getSplitModelMetadata(this._projectId,this._modelId,e,t,s)}getXKT(e,t,s){this._server.getSplitModelGeometry(this._projectId,this._modelId,e,t,s)}}class Vv extends Tv{constructor(e,t){if(super(e,t),!t.modelsTabElement)throw"Missing config: modelsTabElement";if(!t.unloadModelsButtonElement)throw"Missing config: unloadModelsButtonElement";if(!t.modelsElement)throw"Missing config: modelsElement";if(this._enableAddModels=!!t.enableEditModels,this._modelsTabElement=t.modelsTabElement,this._loadModelsButtonElement=t.loadModelsButtonElement,this._unloadModelsButtonElement=t.unloadModelsButtonElement,this._addModelButtonElement=t.addModelButtonElement,this._modelsElement=t.modelsElement,this._modelsTabButtonElement=this._modelsTabElement.querySelector(".xeokit-tab-btn"),!this._modelsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._dataSource=new kv(this.server),this._xktLoader=new av(this.viewer,{dataSource:this._dataSource}),this._modelsContextMenu=new Hv({enableEditModels:t.enableEditModels,enableMeasurements:t.enableMeasurements,hideOnAction:!0}),this._modelsInfo={},this._numModels=0,this._numModelsLoaded=0,this._projectId=null}setObjectColors(e){this._xktLoader.objectDefaults=e}loadProject(e,t,s){this.server.getProject(e,(s=>{this.unloadProject(),this._projectId=e,this._modelsInfo={},this._numModels=0,this._parseProject(s,t),this._numModelsLoaded0&&this._unloadModelsButtonElement.classList.remove("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.remove("disabled")}),(e=>{this.error(e),s&&s(e)}))}_parseProject(e,t){this._buildModelsMenu(e),this._parseViewerConfigs(e),this._parseViewerContent(e,(()=>{this._parseViewerState(e,(()=>{t()}))}))}_buildModelsMenu(e){var t="";const s=e.models||[];this._modelsInfo={},this._numModels=s.length;for(let e=0,i=s.length;e",t+=""+i.name+"",t+=""}this._modelsElement.innerHTML=t;for(let e=0,t=s.length;e{r.checked?this.loadModel(i):this.unloadModel(t.id)})),o.addEventListener("click",(()=>{!!this.viewer.scene.models[i]?this.unloadModel(t.id):this.loadModel(i)})),o.oncontextmenu=e=>{this._modelsContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,modelId:i},this._modelsContextMenu.show(e.pageX,e.pageY),e.preventDefault()}}}_parseViewerConfigs(e){const t=e.viewerConfigs;t&&this.bimViewer.setConfigs(t)}_parseViewerContent(e,t){const s=e.viewerContent;s?this._parseModelsLoaded(s,(()=>{t()})):t()}_parseModelsLoaded(e,t){const s=e.modelsLoaded;s&&0!==s.length?this._loadNextModel(s.slice(0),t):t()}_loadNextModel(e,t){if(0===e.length)return void t();const s=e.pop();this.loadModel(s,(()=>{this._loadNextModel(e,t)}),(()=>{this._loadNextModel(e,t)}))}_parseViewerState(e,t){const s=e.viewerState;s?this.bimViewer.setViewerState(s,t):t()}unloadProject(){if(!this._projectId)return;const e=this.viewer.scene.models;for(var t in e)if(e.hasOwnProperty(t)){e[t].destroy()}this._modelsElement.innerHTML="",this._numModelsLoaded=0,this._loadModelsButtonElement.classList.add("disabled"),this._unloadModelsButtonElement.classList.add("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.add("disabled");const s=this._projectId;this._projectId=null,this.fire("projectUnloaded",{projectId:s})}getLoadedProjectId(){return this._projectId}getModelIds(){return Object.keys(this._modelsInfo)}loadModel(e,t,s){if(!this._projectId){const e="No project currently loaded";return this.error(e),void(s&&s(e))}const i=this._modelsInfo[e];if(!i){const e="Model not in currently loaded project";return this.error(e),void(s&&s(e))}this.bimViewer._busyModal.show(`${this.viewer.localeService.translate("busyModal.loading")||"Loading"} ${i.name}`);this.bimViewer.getConfig("externalMetadata")&&!i.manifest?this.server.getMetadata(this._projectId,e,(r=>{this._loadGeometry(e,i,r,t,s)}),(e=>{this.bimViewer._busyModal.hide(),this.error(e),s&&s(e)})):this._loadGeometry(e,i,null,t,s)}_loadGeometry(e,t,s,i,r){const o=()=>{document.getElementById(""+e).checked=!0,this._numModelsLoaded++,this._unloadModelsButtonElement.classList.remove("disabled"),this._numModelsLoaded{this.bimViewer._busyModal.hide(),this.error(e),r&&r(e)};if(t.manifest){this._dataSource.setProjectId(this._projectId),this._dataSource.setModelId(e);const s=this._xktLoader.load({id:e,manifestSrc:t.manifest,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});s.on("loaded",o),s.on("error",n)}else this.server.getGeometry(this._projectId,e,(i=>{const r=this._xktLoader.load({id:e,metaModelData:s,xkt:i,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});r.on("loaded",o),r.on("error",n)}),n)}_jumpToInitialCamera(){const e=this.viewer,t=e.scene,s=t.getAABB(t.visibleObjectIds),i=A.getAABB3Diag(s),r=A.getAABB3Center(s,Gv),o=t.camera;o.perspective.fov;const n=Math.abs(i/Math.tan(45*A.DEGTORAD)),a=A.normalizeVec3(o.yUp?[-.5,-.7071,-.5]:[-1,1,-1]),l=A.normalizeVec3(o.yUp?[-.5,.7071,-.5]:[-1,1,1]);e.cameraControl.pivotPos=r,e.cameraControl.planView=!1,e.cameraFlight.jumpTo({look:r,eye:[r[0]-n*a[0],r[1]-n*a[1],r[2]-n*a[2]],up:l,orthoScale:1.1*i})}unloadModel(e){const t=this.viewer.scene.models[e];if(!t)return void this.error("Model not loaded: "+e);t.destroy();document.getElementById(""+e).checked=!1,document.getElementById("span-"+e),this._numModelsLoaded--,this._numModelsLoaded>0?this._unloadModelsButtonElement.classList.remove("disabled"):this._unloadModelsButtonElement.classList.add("disabled"),this._numModelsLoadede.viewer.localeService.translate("treeViewContextMenu.inspectProperties")||"Inspect Properties",getShown:e=>!!e.viewer.metaScene.metaObjects[e.treeViewNode.objectId],doAction:e=>{const t=e.treeViewNode.objectId;e.bimViewer.showObjectProperties(t)}}),s.push({getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFit")||"View Fit",doAction:function(e){const t=e.viewer,s=t.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)})),s.setObjectsVisible(i,!0),s.setObjectsHighlighted(i,!0);const r=s.getAABB(i);t.cameraFlight.flyTo({aabb:r,duration:.5},(()=>{setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=A.getAABB3Center(r)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.selectedObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=A.getAABB3Center(i)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFitAll")||"View Fit All",doAction:function(e){const t=e.viewer,s=t.scene,i=s.getAABB(s.visibleObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=A.getAABB3Center(i)}}),r&&i.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,s,[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.isolate")||"Isolate",doAction:function(e){const t=e.viewer,s=t.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));const r=s.getAABB(i);t.cameraControl.pivotPos=A.getAABB3Center(r,jv),s.setObjectsXRayed(s.xrayedObjectIds,!1),s.setObjectsVisible(s.visibleObjectIds,!1),s.setObjectsSelected(s.selectedObjectIds,!1),s.setObjectsVisible(i,!0),t.cameraFlight.flyTo({aabb:r},(()=>{}))}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hide")||"Hide",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideOthers")||"Hide Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.visibleObjectIds,!1),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const s=t.objects[e.objectId];s&&(s.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideAll")||"Hide All",getEnabled:function(e){return e.viewer.scene.visibleObjectIds.length>0},doAction:function(e){e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.show")||"Show",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.visible=!0,s.xrayed&&(s.pickable=!0),s.xrayed=!1,s.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showOthers")||"Shows Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const s=t.objects[e.objectId];s&&(s.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showAll")||"Show All",getEnabled:function(e){const t=e.viewer.scene;return t.numVisibleObjects0},doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xray")||"X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.selected=!1,s.xrayed=!0,s.visible=!0,s.pickable=e.bimViewer.getConfig("xrayPickable"))}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoXray")||"Undo X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.xrayed=!1,s.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayOthers")||"X-Ray Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const s=t.objects[e.objectId];s&&(s.xrayed=!1,s.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayAll")||"X-Ray All",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayNone")||"X-Ray None",getEnabled:function(e){return e.viewer.scene.numXRayedObjects>0},doAction:function(e){const t=e.viewer.scene,s=t.xrayedObjectIds;t.setObjectsPickable(s,!0),t.setObjectsXRayed(s,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.select")||"Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.selected=!0,s.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoSelect")||"Undo Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.selectNone")||"Select None",getEnabled:function(e){return e.viewer.scene.numSelectedObjects>0},doAction:function(e){e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.clearSlices")||"Clear Slices",getEnabled:function(e){return e.bimViewer.getNumSections()>0},doAction:function(e){e.bimViewer.clearSections()}}],i]}}class Wv extends Tv{constructor(e,t={}){if(super(e),!t.objectsTabElement)throw"Missing config: objectsTabElement";if(!t.showAllObjectsButtonElement)throw"Missing config: showAllObjectsButtonElement";if(!t.hideAllObjectsButtonElement)throw"Missing config: hideAllObjectsButtonElement";if(!t.objectsElement)throw"Missing config: objectsElement";if(this._objectsTabElement=t.objectsTabElement,this._showAllObjectsButtonElement=t.showAllObjectsButtonElement,this._hideAllObjectsButtonElement=t.hideAllObjectsButtonElement,this._objectsTabButtonElement=this._objectsTabElement.querySelector(".xeokit-tab-btn"),!this._objectsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";const s=t.objectsElement;this._treeView=new Eg(this.viewer,{containerElement:s,hierarchy:"containment",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Qv(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!1),t.setObjectsPickable(s,!0)):(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!0),t.setObjectsPickable(s,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._objectsTabButtonElement.classList.remove("disabled"),this._showAllObjectsButtonElement.classList.remove("disabled"),this._hideAllObjectsButtonElement.classList.remove("disabled")):(this._objectsTabButtonElement.classList.add("disabled"),this._showAllObjectsButtonElement.classList.add("disabled"),this._hideAllObjectsButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}class zv extends Tv{constructor(e,t={}){if(super(e),!t.classesTabElement)throw"Missing config: classesTabElement";if(!t.showAllClassesButtonElement)throw"Missing config: showAllClassesButtonElement";if(!t.hideAllClassesButtonElement)throw"Missing config: hideAllClassesButtonElement";if(!t.classesElement)throw"Missing config: classesElement";if(this._classesTabElement=t.classesTabElement,this._showAllClassesButtonElement=t.showAllClassesButtonElement,this._hideAllClassesButtonElement=t.hideAllClassesButtonElement,this._classesTabButtonElement=this._classesTabElement.querySelector(".xeokit-tab-btn"),!this._classesTabButtonElement)throw"Missing DOM element: xeokit-tab-btn";const s=t.classesElement;this._treeView=new Eg(this.viewer,{containerElement:s,hierarchy:"types",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Qv(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!1),t.setObjectsPickable(s,!0)):(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!0),t.setObjectsPickable(s,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._classesTabButtonElement.classList.remove("disabled"),this._showAllClassesButtonElement.classList.remove("disabled"),this._hideAllClassesButtonElement.classList.remove("disabled")):(this._classesTabButtonElement.classList.add("disabled"),this._showAllClassesButtonElement.classList.add("disabled"),this._hideAllClassesButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const Kv=A.vec3();class Yv extends Tv{constructor(e,t={}){if(super(e),!t.storeysTabElement)throw"Missing config: storeysTabElement";if(!t.showAllStoreysButtonElement)throw"Missing config: showAllStoreysButtonElement";if(!t.hideAllStoreysButtonElement)throw"Missing config: hideAllStoreysButtonElement";if(!t.storeysElement)throw"Missing config: storeysElement";if(this._storeysTabElement=t.storeysTabElement,this._showAllStoreysButtonElement=t.showAllStoreysButtonElement,this._hideAllStoreysButtonElement=t.hideAllStoreysButtonElement,this._storeysTabButtonElement=this._storeysTabElement.querySelector(".xeokit-tab-btn"),!this._storeysTabButtonElement)throw"Missing DOM element: .xeokit-tab-btn";const s=t.storeysElement;this._treeView=new Eg(this.viewer,{containerElement:s,autoAddModels:!1,hierarchy:"storeys",autoExpandDepth:1}),this._treeViewContextMenu=new Qv(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode,pruneEmptyNodes:!0},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!1),t.setObjectsPickable(s,!0)):(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!0),t.setObjectsPickable(s,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{const t=this.bimViewer._modelsExplorer.getModelInfo(e);t&&this._treeView.addModel(e,{rootName:t.name})})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse(),this._treeView.expandToDepth(1)}))}setEnabled(e){e?(this._storeysTabButtonElement.classList.remove("disabled"),this._showAllStoreysButtonElement.classList.remove("disabled"),this._hideAllStoreysButtonElement.classList.remove("disabled")):(this._storeysTabButtonElement.classList.add("disabled"),this._showAllStoreysButtonElement.classList.add("disabled"),this._hideAllStoreysButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}selectStorey(e,t){const s=this.viewer.metaScene.metaObjects[e];if(!s)return void this.error("selectStorey() - object is not found: '"+e+"'");if("IfcBuildingStorey"!==s.type)return void this.error("selectStorey() - object is not found: '"+e+"'");const i=s.getObjectIDsInSubtree();this._selectObjects(i,t)}_selectObjects(e,t){const s=this.viewer.scene,i=s.getAABB(e);this.viewer.cameraControl.pivotPos=A.getAABB3Center(i,Kv),t?(s.setObjectsXRayed(s.objectIds,!0),s.setObjectsVisible(s.objectIds,!0),s.setObjectsPickable(s.objectIds,!1),s.setObjectsSelected(s.selectedObjectIds,!1),s.setObjectsXRayed(e,!1),s.setObjectsVisible(e,!0),s.setObjectsPickable(e,!0),this.viewer.cameraFlight.flyTo({aabb:i},(()=>{setTimeout((function(){s.setObjectsVisible(s.xrayedObjectIds,!1),s.setObjectsXRayed(s.xrayedObjectIds,!1)}),500),t()}))):(s.setObjectsVisible(s.objectIds,!1),s.setObjectsPickable(s.xrayedObjectIds,!0),s.setObjectsXRayed(s.xrayedObjectIds,!1),s.setObjectsSelected(s.selectedObjectIds,!1),s.setObjectsVisible(e,!0),this.viewer.cameraFlight.jumpTo({aabb:i}))}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const Xv=A.vec3();class Zv extends Tv{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._saveOrthoActive=null,this._buttonElement=t.buttonElement,this._cameraControlNavModeMediator=t.cameraControlNavModeMediator,this._active=!1,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&(this.bimViewer._sectionTool.hideControl(),this.setActive(!this.getActive(),(()=>{}))),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!0,(()=>{}))}))}setEnabled(e){super.setEnabled(e),this._saveOrthoActive=this.bimViewer._orthoMode.getActive()}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterThreeDMode((()=>{this.fire("active",this._active),t()})):(this._enterThreeDMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitThreeDMode((()=>{this.fire("active",this._active),t()})):(this._exitThreeDMode(),this.fire("active",this._active)))):t&&t()}_enterThreeDMode(e){const t=this.viewer,s=t.scene,i=s.getAABB(s.visibleObjectIds),r=A.getAABB3Diag(i),o=A.getAABB3Center(i,Xv),n=Math.abs(r/Math.tan(32.5)),a=s.camera,l=a.yUp?[-1,-1,-1]:[1,1,1],h=a.yUp?[-1,1,-1]:[-1,1,1];t.cameraControl.pivotPos=o,this.bimViewer._navCubeMode.setActive(!0),this.bimViewer._firstPersonMode.setEnabled(!0),this._cameraControlNavModeMediator.setThreeDModeActive(!0),this.bimViewer._sectionTool.setEnabled(!0),this.bimViewer._orthoMode.setEnabled(!0),e?t.cameraFlight.flyTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:h,orthoScale:1.3*r,duration:1,projection:this._saveOrthoActive?"ortho":"perspective"},(()=>{e()})):t.cameraFlight.jumpTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:h,orthoScale:1.3*r,projection:this._saveOrthoActive?"ortho":"perspective"})}_exitThreeDMode(e){const t=this.viewer,s=t.scene,i=s.camera,r=s.getAABB(s.visibleObjectIds),o=A.getAABB3Center(r),n=A.getAABB3Diag(r),a=Math.abs(n/Math.tan(45*A.DEGTORAD)),l=1.3*n,h=Xv;h[0]=o[0]+i.worldUp[0]*a,h[1]=o[1]+i.worldUp[1]*a,h[2]=o[2]+i.worldUp[2]*a;const c=A.mulVec3Scalar(i.worldForward,-1,[]);this.bimViewer._sectionTool.setActive(!1),this.bimViewer._firstPersonMode.setEnabled(!1),this._saveOrthoActive=this.bimViewer._orthoMode.getActive(),this.bimViewer._orthoMode.setEnabled(!1),this._cameraControlNavModeMediator.setThreeDModeActive(!1),e?t.cameraFlight.flyTo({eye:h,look:o,up:c,orthoScale:l,projection:"ortho"},(()=>{this.bimViewer._navCubeMode.setActive(!1)})):(t.cameraFlight.jumpTo({eye:h,look:o,up:c,orthoScale:l,projection:"ortho"}),this.bimViewer._navCubeMode.setActive(!1))}}class qv extends o{constructor(e,t={}){super(t),this._bimViewer=e,this._buildMenu(t)}_buildMenu(e){const t=[],s=[],i=[],r=!!e.enableMeasurements;this._bimViewer._enablePropertiesInspector&&t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.inspectProperties")||"Inspect Properties",doAction:e=>{const t=e.entity.id;e.bimViewer.showObjectProperties(t)}}),t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showInTree")||"Show in Explorer",doAction:e=>{const t=e.entity.id;e.showObjectInExplorers(t)}}),s.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFit")||"View Fit",doAction:e=>{const t=e.viewer,s=t.scene,i=e.entity;t.cameraFlight.flyTo({aabb:i.aabb,duration:.5},(()=>{setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=A.getAABB3Center(i.aabb)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.selectedObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=A.getAABB3Center(i)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.visibleObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=A.getAABB3Center(i)}}),r&&i.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,s,[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hide")||"Hide",getEnabled:e=>e.entity.visible,doAction:e=>{e.entity.visible=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideOthers")||"Hide Others",doAction:e=>{const t=e.viewer,s=t.scene,i=e.entity,r=t.metaScene.metaObjects[i.id];r&&(s.setObjectsVisible(s.visibleObjectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=s.objects[e.id];t&&(t.visible=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xray")||"X-Ray",getEnabled:e=>!e.entity.xrayed,doAction:e=>{const t=e.entity;t.xrayed=!0,t.pickable=e.bimViewer.getConfig("xrayPickable")}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayOthers")||"X-Ray Others",doAction:e=>{const t=e.viewer,s=t.scene,i=e.entity,r=t.metaScene.metaObjects[i.id];r&&(s.setObjectsVisible(s.objectIds,!0),s.setObjectsXRayed(s.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||s.setObjectsPickable(s.objectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=s.objects[e.id];t&&(t.xrayed=!1,t.pickable=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene,s=t.xrayedObjectIds;t.setObjectsPickable(s,!0),t.setObjectsXRayed(s,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.select")||"Select",getEnabled:e=>!e.entity.selected,doAction:e=>{e.entity.selected=!0}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.undoSelect")||"Undo Select",getEnabled:e=>e.entity.selected,doAction:e=>{e.entity.selected=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],i]}}class Jv extends o{constructor(e,t={}){super({hideOnAction:t.hideOnAction,context:t.context,items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.visibleObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=A.getAABB3Center(i)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.selectedObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=A.getAABB3Center(i)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene.xrayedObjectIds;e.viewer.scene.setObjectsPickable(t,!0),e.viewer.scene.setObjectsXRayed(t,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.resetView")||"Reset View",doAction:e=>{e.bimViewer.resetView()}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],t.enableMeasurements?[{getTitle:e=>"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]:[]]})}}class $v extends Tv{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.camera.on("projection",(()=>{const e="ortho"===this.viewer.camera.projection;this._active=e,this._active?this._buttonElement.classList.add("active"):this._buttonElement.classList.remove("active")})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterOrthoMode((()=>{this.fire("active",this._active),t()})):(this._enterOrthoMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitOrthoMode((()=>{this.fire("active",this._active),t()})):(this._exitOrthoMode(),this.fire("active",this._active)))):t&&t()}_enterOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"ortho",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"ortho"})}_exitOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"perspective",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"perspective"})}}class eI extends Tv{constructor(e,t={}){if(super(e),!t.propertiesTabElement)throw"Missing config: propertiesTabElement";if(!t.propertiesElement)throw"Missing config: propertiesElement";if(this._metaObject=null,this._propertiesTabElement=t.propertiesTabElement,this._propertiesElement=t.propertiesElement,this._propertiesTabButtonElement=this._propertiesTabElement.querySelector(".xeokit-tab-btn"),!this._propertiesTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{if(this._metaObject){const t=this._metaObject.metaModels;for(let s=0,i=t.length;s{this.clear()})),document.addEventListener("click",this._clickListener=e=>{e.target.matches(".xeokit-accordion .xeokit-accordion-button")&&(e.target.parentElement.classList.contains("active")?e.target.parentElement.classList.remove("active"):e.target.parentElement.classList.add("active"))}),this.clear()}showObjectPropertySets(e){const t=this.viewer.metaScene.metaObjects[e];if(!t)return;const s=t.propertySets;s&&s.length>0?this._setPropertySets(t,s):this._setPropertySets(t),this._metaObject=t}clear(){const e=[],t=this.viewer.localeService.translate("propertiesInspector.noObjectSelectedWarning")||"No object inspected. Right-click or long-tab an object and select 'Inspect Properties' to view its properties here.";e.push('
'),e.push(`

${t}

`),e.push("
");const s=e.join("");this._propertiesElement.innerHTML=s}_setPropertySets(e,t){const s=[];if(s.push('
'),e){s.push(''),s.push(``),e.type&&s.push(``),s.push(``),s.push(``);const i=e.attributes;if(i)for(let e in i)s.push(``);if(s.push("
Name:${e.name}
Class:${e.type}
UUID:${e.originalSystemId}
Viewer ID:${e.id}
${tI(e)}:${i[e]}
"),t&&0!==t.length){s.push("
"),s.push('
');for(let e=0,i=t.length;e0){s.push(`
\n

${i.name}

\n
\n `);for(let e=0,t=r.length;e`)}s.push("
${t.name||t.label}:${t.value}
\n
\n
")}}s.push("
")}else{const e=this.viewer.localeService.translate("propertiesInspector.noPropSetWarning")||"No properties sets found for this object";s.push(`

${e}

`),s.push("")}}else s.push('

No object selected

');this._propertiesElement.innerHTML=s.join("")}setEnabled(e){e?this._propertiesTabButtonElement.classList.remove("disabled"):this._propertiesTabButtonElement.classList.add("disabled")}destroy(){super.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded),document.removeEventListener("click",this._clickListener)}}function tI(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e}const sI=new Float32Array(3);class iI{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 i=t.aabb;if(s>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&A.containsAABB3(e.left.aabb,i))return void this._insertEntity(e.left,t,s+1);if(e.right&&A.containsAABB3(e.right.aabb,i))return void this._insertEntity(e.right,t,s+1);const r=e.aabb;sI[0]=r[3]-r[0],sI[1]=r[4]-r[1],sI[2]=r[5]-r[2];let o=0;if(sI[1]>sI[o]&&(o=1),sI[2]>sI[o]&&(o=2),!e.left){const n=r.slice();if(n[o+3]=(r[o]+r[o+3])/2,e.left={aabb:n},A.containsAABB3(n,i))return void this._insertEntity(e.left,t,s+1)}if(!e.right){const n=r.slice();if(n[o]=(r[o]+r[o+3])/2,e.right={aabb:n},A.containsAABB3(n,i))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 rI extends Tv{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";this._objectsKdTree3=t.objectsKdTree3,this._marquee=A.AABB2(),this._marqueeFrustum=new B,this._marqueeFrustumProjMat=A.mat4(),this._marqueeDir=!1;const s=t.buttonElement;this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this._objectsKdTree3.root):s.classList.remove("active")})),s.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}));const i=this.viewer.scene,r=i.canvas.canvas;this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement);const o=this._marqueeElement.style;let n,a,l,h,c,u,p,d;o.position="absolute",o["z-index"]="40000005",o.width="8px",o.height="8px",o.visibility="hidden",o.top="0px",o.left="0px",o["box-shadow"]="0 2px 5px 0 #182A3D;",o.opacity=1,o["pointer-events"]="none";let f=!1,m=!1;r.addEventListener("mousedown",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;const t=this.bimViewer.viewer.scene.input;t.keyDown[t.KEY_CTRL]||i.setObjectsSelected(i.selectedObjectIds,!1),n=e.pageX,a=e.pageY,o.visibility="visible",o.left=`${n}px`,o.top=`${a}px`,o.width="0px",o.height="0px",o.display="block",c=e.offsetX,u=e.offsetY,f=!0,this.viewer.cameraControl.pointerEnabled=!1})),r.addEventListener("mouseup",(e=>{if(!this.getActive()||!this.getEnabled())return;if(!f&&!m)return;if(0!==e.button)return;l=e.pageX,h=e.pageY;const t=Math.abs(l-n),s=Math.abs(h-a);o.width=`${t}px`,o.height=`${s}px`,o.visibility="hidden",f=!1,this.viewer.cameraControl.pointerEnabled=!0,m&&(m=!1),(t>3||s>3)&&this._marqueePick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&this.getEnabled()&&0===e.button&&f&&(o.visibility="hidden",f=!1,m=!0,this.viewer.cameraControl.pointerEnabled=!0)}),!0),r.addEventListener("mousemove",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;if(!f)return;const t=e.pageX,s=e.pageY,i=t-n,r=s-a;o.width=`${Math.abs(i)}px`,o.height=`${Math.abs(r)}px`,o.left=`${Math.min(n,t)}px`,o.top=`${Math.min(a,s)}px`,p=e.offsetX,d=e.offsetY;const l=c{if(i===B.INTERSECT&&(i=L(this._marqueeFrustum,s.aabb)),i!==B.OUTSIDE){if(s.entities){const t=s.entities;for(let s=0,i=t.length;se.measurement.axisVisible?"Hide Measurement Axis":"Show Measurement Axis",doAction:function(e){e.measurement.axisVisible=!e.measurement.axisVisible}},{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Labels":"Show Measurement Labels",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin=new kh(this.viewer,{defaultAxisVisible:!1}),this._distanceMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._distanceMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={distanceMeasurementsPlugin:this._distanceMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._distanceMeasurementsMouseControl=new Gh(this._distanceMeasurementsPlugin,{}),this._distanceMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this._distanceMeasurementsMouseControl.activate()):(s.classList.remove("active"),this._distanceMeasurementsMouseControl.deactivate())})),s.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._distanceMeasurementsPlugin.measurements).length}setMeasurementsAxisVisible(e){this._distanceMeasurementsPlugin.setAxisVisible(e)}getMeasurementsAxisVisible(){return this._distanceMeasurementsPlugin.getAxisVisible()}setSnappingEnabled(e){return this._distanceMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._distanceMeasurementsMouseControl.snapping}clear(){this._distanceMeasurementsPlugin.clear()}destroy(){this._distanceMeasurementsPlugin.destroy(),this._distanceMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}class nI extends Tv{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement;this._contextMenu=new o({items:[[{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Label":"Show Measurement Label",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin=new de(this.viewer,{}),this._angleMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._angleMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={angleMeasurementsPlugin:this._angleMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._angleMeasurementsMouseControl=new pe(this._angleMeasurementsPlugin,{}),this._angleMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this._angleMeasurementsMouseControl.activate()):(s.classList.remove("active"),this._angleMeasurementsMouseControl.deactivate())})),s.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._angleMeasurementsPlugin.measurements).length}setSnappingEnabled(e){return this._angleMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._angleMeasurementsMouseControl.snapping}clear(){this._angleMeasurementsPlugin.clear()}destroy(){this._angleMeasurementsPlugin.destroy(),this._angleMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}function aI(e){const t="xeokit-tab",s="active";function i(e){let i=e.parentNode.querySelectorAll("."+t);for(let t=0;t{e.preventDefault()},o.oncontextmenu=e=>{e.preventDefault()},n.oncontextmenu=e=>{e.preventDefault()};const l=new Vy({localeService:t.localeService,canvasElement:s,keyboardEventsElement:t.keyboardEventsElement,transparent:!1,backgroundColor:[1,1,1],backgroundColorFromAmbientLight:!1,saoEnabled:!0,pbrEnabled:!1,colorTextureEnabled:!0,numCachedSectionPlanes:4});super(null,t,e,l),this._configs={},this._enableAddModels=!!t.enableEditModels,this._enableMeasurements=!1!==t.enableMeasurements,this._enablePropertiesInspector=!!t.inspectorElement,this.viewer=l,this._objectsKdTree3=new iI({viewer:l}),this._customizeViewer(),this._initCanvasContextMenus(),i.innerHTML=function(e){return'
\n
\n Models\n
\n
\n \n '+(e.enableEditModels?'':"")+'
\n
\n
\n
\n
\n Objects\n
\n
\n \n \n
\n
\n
\n
\n
\n Classes\n
\n
\n \n \n
\n
\n
\n
\n
\n Storeys\n
\n
\n \n \n
\n
\n
\n
\n
'}(t),o.innerHTML=function(e={}){return'
\n \x3c!-- Reset button --\x3e\n
\n \n
\n
\n \x3c!-- 3D Mode button --\x3e\n \n \x3c!-- Perspective/Ortho Mode button --\x3e\n \n \x3c!-- Fit button --\x3e\n \n \x3c!-- First Person mode button --\x3e\n \n \x3c!-- Show/hide IFCSpaces --\x3e\n \n
\n \x3c!-- Tools button group --\x3e\n
\n \x3c!-- Hide tool button --\x3e\n \n \x3c!-- Select tool button --\x3e\n \n \x3c!-- Marquee select tool button --\x3e\n '+(e.enableMeasurements?'\x3c!-- Measure distance tool button --\x3e\n \n \x3c!-- Measure angle tool button --\x3e\n ':" ")+'\x3c!-- section tool button --\x3e\n \n
\n
'}({enableMeasurements:this._enableMeasurements}),this._enablePropertiesInspector&&(r.innerHTML='
\n
\n Properties\n
\n
\n
\n
\n
'),this._explorerElement=i,this._inspectorElement=r,aI(i),this._enablePropertiesInspector&&aI(r),this._modelsExplorer=new Vv(this,{enableMeasurements:this._enableMeasurements,modelsTabElement:i.querySelector(".xeokit-modelsTab"),loadModelsButtonElement:i.querySelector(".xeokit-loadAllModels"),unloadModelsButtonElement:i.querySelector(".xeokit-unloadAllModels"),addModelButtonElement:i.querySelector(".xeokit-addModel"),modelsElement:i.querySelector(".xeokit-models"),enableEditModels:this._enableAddModels}),this._objectsExplorer=new Wv(this,{enableMeasurements:this._enableMeasurements,objectsTabElement:i.querySelector(".xeokit-objectsTab"),showAllObjectsButtonElement:i.querySelector(".xeokit-showAllObjects"),hideAllObjectsButtonElement:i.querySelector(".xeokit-hideAllObjects"),objectsElement:i.querySelector(".xeokit-objects")}),this._classesExplorer=new zv(this,{enableMeasurements:this._enableMeasurements,classesTabElement:i.querySelector(".xeokit-classesTab"),showAllClassesButtonElement:i.querySelector(".xeokit-showAllClasses"),hideAllClassesButtonElement:i.querySelector(".xeokit-hideAllClasses"),classesElement:i.querySelector(".xeokit-classes")}),this._storeysExplorer=new Yv(this,{enableMeasurements:this._enableMeasurements,storeysTabElement:i.querySelector(".xeokit-storeysTab"),showAllStoreysButtonElement:i.querySelector(".xeokit-showAllStoreys"),hideAllStoreysButtonElement:i.querySelector(".xeokit-hideAllStoreys"),storeysElement:i.querySelector(".xeokit-storeys")}),this._enablePropertiesInspector&&(this._propertiesInspector=new eI(this,{propertiesTabElement:r.querySelector(".xeokit-propertiesTab"),propertiesElement:r.querySelector(".xeokit-properties")})),this._resetAction=new Rv(this,{buttonElement:o.querySelector(".xeokit-reset"),active:!1}),this._fitAction=new Cv(this,{buttonElement:o.querySelector(".xeokit-fit"),active:!1});const h=new function(e){let t=!1;this.setThreeDModeActive=s=>{s?(e._firstPersonMode.setActive(!1),e._marqueeSelectionTool.setEnabled(!0),e.viewer.cameraControl.navMode="orbit"):(e._marqueeSelectionTool.setEnabled(!1),e._marqueeSelectionTool.setActive(!1),e._firstPersonMode.setActive(!1),e.viewer.cameraControl.navMode="planView"),t=s},this.setFirstPersonModeActive=s=>{e.viewer.cameraControl.navMode=s?"firstPerson":t?"orbit":"planView"}}(this);this._threeDMode=new Zv(this,{buttonElement:o.querySelector(".xeokit-threeD"),cameraControlNavModeMediator:h,active:!1}),this._orthoMode=new $v(this,{buttonElement:o.querySelector(".xeokit-ortho"),active:!1}),this._firstPersonMode=new Nv(this,{buttonElement:o.querySelector(".xeokit-firstPerson"),cameraControlNavModeMediator:h,active:!1}),this._hideTool=new Ov(this,{buttonElement:o.querySelector(".xeokit-hide"),active:!1}),this._selectionTool=new xv(this,{buttonElement:o.querySelector(".xeokit-select"),active:!1}),this._marqueeSelectionTool=new rI(this,{buttonElement:o.querySelector(".xeokit-marquee"),active:!1,objectsKdTree3:this._objectsKdTree3}),this._showSpacesMode=new Sv(this,{buttonElement:o.querySelector(".xeokit-showSpaces"),active:!1}),this._queryTool=new wv(this,{active:!1}),this._sectionTool=new Lv(this,{buttonElement:o.querySelector(".xeokit-section"),counterElement:o.querySelector(".xeokit-section-counter"),menuButtonElement:o.querySelector(".xeokit-section-menu-button"),menuButtonArrowElement:o.querySelector(".xeokit-section-menu-button-arrow"),active:!1}),this._measureDistanceTool=new oI(this,{buttonElement:o.querySelector(".xeokit-measure-distance"),active:!1}),this._measureAngleTool=new nI(this,{buttonElement:o.querySelector(".xeokit-measure-angle"),active:!1}),this._navCubeMode=new Uv(this,{navCubeCanvasElement:n,active:!0}),this._busyModal=new Pv(this,{busyModalBackdropElement:a}),this._threeDMode.setActive(!0),this._firstPersonMode.setActive(!1),this._navCubeMode.setActive(!0),this._modelsExplorer.on("modelLoaded",(e=>{this._modelsExplorer.getNumModelsLoaded()>0&&this.setControlsEnabled(!0),this.fire("modelLoaded",e)})),this._modelsExplorer.on("modelUnloaded",(e=>{0===this._modelsExplorer.getNumModelsLoaded()&&(this.setControlsEnabled(!1),this.openTab("models")),this.fire("modelUnloaded",e)})),this._resetAction.on("reset",(()=>{this.fire("reset",!0)})),this._mutexActivation([this._hideTool,this._selectionTool,this._marqueeSelectionTool,this._sectionTool,this._measureDistanceTool,this._measureAngleTool]),i.querySelector(".xeokit-showAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),i.querySelector(".xeokit-hideAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),i.querySelector(".xeokit-showAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),i.querySelector(".xeokit-hideAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),i.querySelector(".xeokit-showAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),i.querySelector(".xeokit-hideAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),i.querySelector(".xeokit-loadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this.loadAllModels(),e.preventDefault()})),i.querySelector(".xeokit-unloadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this._modelsExplorer.unloadAllModels(),e.preventDefault()})),this._enableAddModels&&i.querySelector(".xeokit-addModel").addEventListener("click",(e=>{this.fire("addModel",{}),e.preventDefault()})),this._bcfViewpointsPlugin=new xh(this.viewer,{xrayAsZeroAlpha:!0}),this._fastNavPlugin=new Vh(l,{hideEdges:!0,hideSAO:!0,hidePBR:!1,hideColorTexture:!1,hideTransparentObjects:!1,scaleCanvasResolution:!1,scaleCanvasResolutionFactor:.6}),this._initConfigs(),this.setControlsEnabled(!1)}get localeService(){return this.viewer.localeService}_customizeViewer(){const e=this.viewer.scene;e.xrayMaterial.fill=!1,e.xrayMaterial.fillAlpha=.3,e.xrayMaterial.fillColor=[0,0,0],e.xrayMaterial.edges=!0,e.xrayMaterial.edgeAlpha=.1,e.xrayMaterial.edgeColor=[0,0,0],e.highlightMaterial.edges=!0,e.highlightMaterial.edgeColor=[1,1,1],e.highlightMaterial.edgeAlpha=1,e.highlightMaterial.fill=!0,e.highlightMaterial.fillAlpha=.1,e.highlightMaterial.fillColor=[1,0,0],e.selectedMaterial.edges=!0,e.selectedMaterial.edgeColor=[1,1,1],e.selectedMaterial.edgeAlpha=1,e.selectedMaterial.fill=!0,e.selectedMaterial.fillAlpha=.1,e.selectedMaterial.fillColor=[0,1,0],e.pointsMaterial.pointSize=1,e.pointsMaterial.roundPoints=!0,e.pointsMaterial.perspectivePoints=!0,e.pointsMaterial.minPerspectivePointSize=2,e.pointsMaterial.maxPerspectivePointSize=4,this.viewer.cameraControl.panRightClick=!0,this.viewer.cameraControl.followPointer=!0,this.viewer.cameraControl.doublePickFlyTo=!1,this.viewer.cameraControl.smartPivot=!0,this.viewer.cameraControl.keyboardDollyRate=100,this.viewer.cameraControl.mouseWheelDollyRate=100,this.viewer.cameraControl.dollyInertia=0,this.viewer.cameraControl.dollyMinSpeed=.04,this.viewer.cameraControl.dollyProximityThreshold=30;const t=document.createRange().createContextualFragment("
").firstChild;document.body.appendChild(t),this.viewer.cameraControl.pivotElement=t,e.camera.perspective.near=.01,e.camera.perspective.far=3e3,e.camera.ortho.near=.01,e.camera.ortho.far=2e3;const s=e.sao;s.enabled=!0,s.numSamples=50,s.kernelRadius=200}_initCanvasContextMenus(){this._canvasContextMenu=new Jv(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this._objectContextMenu=new qv(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this.viewer.cameraControl.on("rightClick",(e=>{e.event;const t=this.viewer.scene.pick({canvasPos:e.canvasPos});t&&t.entity.isObject?(this._canvasContextMenu.hide(),this._objectContextMenu.context={viewer:this.viewer,bimViewer:this,showObjectInExplorers:e=>{const t=this.getOpenTab();"objects"!==t&&"classes"!==t&&"storeys"!==t&&this.openTab("objects"),this.showObjectInExplorers(e)},entity:t.entity},this._objectContextMenu.show(e.pagePos[0],e.pagePos[1])):(this._objectContextMenu.hide(),this._canvasContextMenu.context={viewer:this.viewer,bimViewer:this},this._canvasContextMenu.show(e.pagePos[0],e.pagePos[1]))}))}_initConfigs(){this.setConfigs({cameraNear:"0.05",cameraFar:"3000.0",smartPivot:!0,saoEnabled:!0,pbrEnabled:!1,scaleCanvasResolution:!1,saoBias:.5,saoIntensity:.15,saoNumSamples:40,saoKernelRadius:100,edgesEnabled:!0,xrayContext:!0,xrayPickable:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,backgroundColor:[1,1,1],externalMetadata:!1,dtxEnabled:!1})}setConfigs(e){for(let t in e)if(e.hasOwnProperty(t)){const s=e[t];this.setConfig(t,s)}}setConfig(e,t){function s(e){return!0===e||"true"===e}try{switch(e){case"backgroundColor":const i=t;this.setBackgroundColor(i),this._configs[e]=i;break;case"cameraNear":const r=parseFloat(t);this.viewer.scene.camera.perspective.near=r,this.viewer.scene.camera.ortho.near=r,this._configs[e]=r;break;case"cameraFar":const o=parseFloat(t);this.viewer.scene.camera.perspective.far=o,this._configs[e]=o;break;case"smartPivot":this.viewer.cameraControl.smartPivot=this._configs[e]=s(t);break;case"saoEnabled":this._fastNavPlugin.saoEnabled=this._configs[e]=s(t);break;case"saoBias":this.viewer.scene.sao.bias=parseFloat(t);break;case"saoIntensity":this.viewer.scene.sao.intensity=parseFloat(t);break;case"saoKernelRadius":this.viewer.scene.sao.kernelRadius=this._configs[e]=parseFloat(t);break;case"saoNumSamples":this.viewer.scene.sao.numSamples=this._configs[e]=parseFloat(t);break;case"saoBlur":this.viewer.scene.sao.blur=this._configs[e]=s(t);break;case"edgesEnabled":this._fastNavPlugin.edgesEnabled=this._configs[e]=s(t);break;case"pbrEnabled":this._fastNavPlugin.pbrEnabled=this._configs[e]=s(t);break;case"scaleCanvasResolution":this._fastNavPlugin.scaleCanvasResolution=this._configs[e]=s(t);break;case"viewFitFOV":this.viewer.cameraFlight.fitFOV=this._configs[e]=parseFloat(t);break;case"viewFitDuration":this.viewer.cameraFlight.duration=this._configs[e]=parseFloat(t);break;case"perspectiveFOV":this.viewer.camera.perspective.fov=this._configs[e]=parseFloat(t);break;case"excludeUnclassifiedObjects":case"xrayPickable":case"externalMetadata":this._configs[e]=s(t);break;case"xrayContext":this._configs[e]=t;break;case"selectedGlowThrough":const n=this._configs[e]=s(t),a=this.viewer.scene.selectedMaterial;a.glowThrough=n,a.fillAlpha=n?.5:1,a.edgeAlpha=n?.5:1;break;case"highlightGlowThrough":const l=this._configs[e]=s(t),h=this.viewer.scene.highlightMaterial;h.glowThrough=l,h.fillAlpha=l?.5:1,h.edgeAlpha=l?.5:1;break;case"showSpaces":this._configs[e]=s(t),this._showSpacesMode.setActive(t);break;case"dtxEnabled":this._configs[e]=s(t),this.viewer.scene.dtxEnabled=t;break;case"objectColors":this._configs[e]=t,this._modelsExplorer.setObjectColors(t);break;default:this.warn("setConfig() - unsupported configuration: '"+e+"'")}}catch(t){this.error("setConfig() - failed to configure '"+e+"': "+t)}}getConfig(e){return this._configs[e]}getProjectsInfo(e,t){e?this.server.getProjects(e,(e=>{this.error("getProjectsInfo() - "+e),t&&t(e)})):this.error("getProjectsInfo() - Argument expected: 'done'")}getProjectInfo(e,t,s){e?t?this.server.getProject(e,t,(e=>{this.error("getProjectInfo() - "+e),s&&s(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getProjectInfo() - Argument expected: projectId")}getObjectInfo(e,t,s,i,r){e?t?s?i?this.server.getObjectInfo(e,t,s,i,(e=>{r&&r(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getObjectInfo() - Argument expected: objectId"):this.error("getObjectInfo() - Argument expected: modelId"):this.error("getObjectInfo() - Argument expected: projectId")}loadProject(e,t,s){e?this._modelsExplorer.loadProject(e,(()=>{t&&t()}),(e=>{this.error("loadProject() - "+e),s&&s(e)})):this.error("loadProject() - Argument expected: objectId")}unloadProject(){this._modelsExplorer.unloadProject(),this.openTab("models"),this.setControlsEnabled(!1)}getLoadedProjectId(){return this._modelsExplorer.getLoadedProjectId()}getModelIds(){return this._modelsExplorer.getModelIds()}loadModel(e,t,s){e?this._modelsExplorer.loadModel(e,(()=>{t&&t()}),(e=>{this.error("loadModel() - "+e),s&&s(e)})):this.error("loadModel() - Argument expected: modelId")}loadAllModels(e=function(){}){const t=this._modelsExplorer.getModelIds(),s=(e,i)=>{if(e>=t.length)i();else{const r=t[e];this._modelsExplorer.isModelLoaded(r)?s(e+1,i):this._modelsExplorer.loadModel(r,(()=>{s(e+1,i)}),(t=>{this.error("loadAllModels() - "+t),s(e+1,i)}))}};s(0,e)}getLoadedModelIds(){return this._modelsExplorer._getLoadedModelIds()}isModelLoaded(e){if(e)return this._modelsExplorer.isModelLoaded(e);this.error("unloadModel() - Argument expected: modelId")}unloadModel(e){e?this._modelsExplorer.unloadModel(e):this.error("unloadModel() - Argument expected: modelId")}unloadAllModels(){this._modelsExplorer.unloadAllModels()}editModel(e){this.fire("editModel",{modelId:e})}deleteModel(e){this.fire("deleteModel",{modelId:e})}addModel(){this.fire("addModel",{})}setBackgroundColor(e){this.viewer.scene.canvas.backgroundColor=e}setObjectColorSource(e){console.log("BIMViewer.setObjectColorSource() is now deprecated and no longer functional. By default, BIMViewer.getObjectColorSource() will now always return the (formerly) default value of `model`.")}getObjectColorSource(){return"model"}setViewerState(e,t=(()=>{})){e.tabOpen&&this.openTab(e.tabOpen),e.expandObjectsTree&&this._objectsExplorer.expandTreeViewToDepth(e.expandObjectsTree),e.expandClassesTree&&this._classesExplorer.expandTreeViewToDepth(e.expandClassesTree),e.expandStoreysTree&&this._storeysExplorer.expandTreeViewToDepth(e.expandStoreysTree),e.setCamera&&this.setCamera(e.setCamera),this._parseSelectedStorey(e,(()=>{this._parseThreeDMode(e,(()=>{t()}))}))}_parseSelectedStorey(e,t){e.selectedStorey?(this.selectStorey(e.selectedStorey),t()):t()}_parseThreeDMode(e,t){const s=!1!==e.threeDActive;this.set3DEnabled(s,t)}showObjectInExplorers(e){e?(this._objectsExplorer.showNodeInTreeView(e),this._classesExplorer.showNodeInTreeView(e),this._storeysExplorer.showNodeInTreeView(e),this.fire("openExplorer",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}unShowObjectInExplorers(){this._objectsExplorer.unShowNodeInTreeView(),this._classesExplorer.unShowNodeInTreeView(),this._storeysExplorer.unShowNodeInTreeView()}showObjectProperties(e){e?(this._enablePropertiesInspector&&this._propertiesInspector.showObjectPropertySets(e),this.fire("openInspector",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}setObjectsVisible(e,t){this._withObjectsInSubtree(e,(e=>{e.visible=t}))}setAllObjectsVisible(e){e?this.viewer.scene.setObjectsVisible(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsVisible(this.viewer.scene.visibleObjectIds,!1)}setObjectsXRayed(e,t){this._withObjectsInSubtree(e,(e=>{e.xrayed=t}))}setAllObjectsXRayed(e){e?this.viewer.scene.setObjectsXRayed(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsXRayed(this.viewer.scene.xrayedObjectIds,!1)}setObjectsSelected(e,t){this._withObjectsInSubtree(e,(e=>{e.selected=t}))}setAllObjectsSelected(e){e?this.viewer.scene.setObjectsSelected(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsSelected(this.viewer.scene.selectedObjectIds,!1)}_withObjectsInSubtree(e,t){if(e)for(let s=0,i=e.length;s{const s=this.viewer.scene.objects[e.id];s&&t(s)}))}else this.error("Argument expected: objectIds")}flyToObject(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectId");const s=this.viewer,i=s.scene,r=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{i.objects[e.id]&&r.push(e.id)})),0===r.length)return this.error("Object not found in viewer: '"+e+"'"),void(t&&t());i.setObjectsVisible(r,!0),i.setObjectsHighlighted(r,!0);const o=i.getAABB(r);s.cameraFlight.flyTo({aabb:o},(()=>{t&&t(),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),s.cameraControl.pivotPos=A.getAABB3Center(o)}viewFitObjects(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectIds");const s=this.viewer,i=s.scene,r=[];for(var o=0,n=e.length;o{i.objects[e.id]&&r.push(e.id)}))}if(0===r.length)return void(t&&t());i.setObjectsVisible(r,!0),i.setObjectsHighlighted(r,!0);const a=i.getAABB(r);s.cameraFlight.flyTo({aabb:a},(()=>{t&&t(),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),s.cameraControl.pivotPos=A.getAABB3Center(a)}viewFitAll(e){const t=this.viewer,s=t.scene.getAABB();t.cameraFlight.flyTo({aabb:s},(()=>{e&&e()})),t.cameraControl.pivotPos=A.getAABB3Center(s)}jumpToObject(e){if(!e)return void this.error("jumpToObject() - Argument expected: objectId");const t=this.viewer,s=t.scene,i=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{s.objects[e.id]&&i.push(e.id)})),0===i.length)return void this.error("Object not found in viewer: '"+e+"'");s.setObjectsVisible(i,!0);const r=s.getAABB(i);t.cameraFlight.jumpTo({aabb:r}),t.cameraControl.pivotPos=A.getAABB3Center(r)}setCamera(e){const t=this.viewer.scene.camera;e.eye&&(t.eye=e.eye),e.look&&(t.look=e.look),e.up&&(t.up=e.up)}viewFitModels(e,t){if(!e)return void this.error("viewFitModels() - Argument expected: modelIds");const s=this.viewer,i=s.scene,r=A.AABB3();A.collapseAABB3(r);for(var o=0,n=e.length;o{t(),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})):(s.cameraFlight.jumpTo({aabb:r}),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)),s.cameraControl.pivotPos=A.getAABB3Center(r)}openTab(e){if(!e)return void this.error("openTab() - Argument expected: tabId");let t;switch(e){case"models":t="xeokit-modelsTab";break;case"objects":t="xeokit-objectsTab";break;case"classes":t="xeokit-classesTab";break;case"storeys":t="xeokit-storeysTab";break;case"properties":t="xeokit-propertiesTab";break;default:return void this.error("openTab() - tab not recognized: '"+e+"'")}this._openTab(this._explorerElement,t)}_openTab(e,t){const s="active";let i=e.querySelectorAll(".xeokit-tab"),r=e.querySelector("."+t);for(let e=0;e-1}const t="active";return e(this._explorerElement.querySelector(".xeokit-modelsTab"),t)?"models":e(this._explorerElement.querySelector(".xeokit-objectsTab"),t)?"objects":e(this._explorerElement.querySelector(".xeokit-classesTab"),t)?"classes":e(this._explorerElement.querySelector(".xeokit-storeysTab"),t)?"storeys":e(this._inspectorElement.querySelector(".xeokit-propertiesTab"),t)?"properties":"none"}set3DEnabled(e,t){this._threeDMode.setActive(e,t)}get3DEnabled(){return this._threeDMode.getActive()}setSpacesShown(e){this._showSpacesMode.setActive(e)}getSpacesShown(){return this._showSpacesMode.getActive()}setOrthoEnabled(e,t){this._orthoMode.setActive(e,t)}getOrthoEnabled(){return this._orthoMode.getActive()}selectStorey(e,t){const s=this.viewer.metaScene.metaObjects[e];s?"IfcBuildingStorey"===s.type?this._storeysExplorer.selectStorey(e,t):this.error("selectStorey() - Object is not an IfcBuildingStorey: '"+e+"'"):this.error("selectStorey() - Object is not found: '"+e+"'")}saveBCFViewpoint(e){return this._bcfViewpointsPlugin.getViewpoint(e)}loadBCFViewpoint(e,t){e?(this._orthoMode.setActive("ortho"===this.viewer.camera.projection),this._bcfViewpointsPlugin.setViewpoint(e,t)):this.error("loadBCFViewpoint() - Argument expected: bcfViewpoint")}resetView(){this._resetAction.reset()}setControlsEnabled(e){this._objectsExplorer.setEnabled(e),this._classesExplorer.setEnabled(e),this._storeysExplorer.setEnabled(e),this._resetAction.setEnabled(e),this._fitAction.setEnabled(e),this._threeDMode.setEnabled(e),this._orthoMode.setEnabled(e),this._firstPersonMode.setEnabled(e),this._queryTool.setEnabled(e),this._hideTool.setEnabled(e),this._selectionTool.setEnabled(e),this._marqueeSelectionTool.setEnabled(e),this._showSpacesMode.setEnabled(e),this._measureDistanceTool.setEnabled(e),this._measureAngleTool.setEnabled(e),this._sectionTool.setEnabled(e),this._enablePropertiesInspector&&this._propertiesInspector.setEnabled(e)}setKeyboardEnabled(e){this.viewer.scene.input.keyboardEnabled=e}getKeyboardEnabled(){return this.viewer.scene.input.keyboardEnabled}clearSections(){this._sectionTool.clear()}disableSections(){this._sectionTool.disableSections()}enableSections(){this._sectionTool.enableSections()}flipSections(){this._sectionTool.flipSections()}hideSectionEditControl(){this._sectionTool.hideControl()}getNumSections(){return this._sectionTool.getNumSections()}getEnableMeasurements(){return this._enableMeasurements}clearMeasurements(){this._measureDistanceTool.clear(),this._measureAngleTool.clear()}getNumMeasurements(){return this._measureDistanceTool.getNumMeasurements()+this._measureAngleTool.getNumMeasurements()}setMeasurementsAxisVisible(e){this._measureDistanceTool.setMeasurementsAxisVisible(e)}getMeasurementsAxisVisible(){return this._measureDistanceTool.getMeasurementsAxisVisible()}setMeasurementsSnappingEnabled(e){this._measureDistanceTool.setSnappingEnabled(e)}getMeasurementsSnappingEnabled(){return this._measureDistanceTool.getSnappingEnabled()}destroy(){this.viewer.destroy(),this._bcfViewpointsPlugin.destroy(),this._canvasContextMenu.destroy(),this._objectContextMenu.destroy()}}export{lI as BIMViewer,jh as LocaleService,Iv as Server}; +***************************************************************************** */var zh=function(e,t){return zh=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},zh(e,t)};function Gh(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}zh(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var Wh=function(){return Wh=Object.assign||function(e){for(var t,i=1,s=arguments.length;i0&&r[r.length-1])||6!==o[0]&&2!==o[0])){n=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=55296&&r<=56319&&i>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},ec="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",tc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),ic=0;ic=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}(),lc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ac="undefined"==typeof Uint8Array?[]:new Uint8Array(256),hc=0;hc>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s0;){var n=s[--o];if(Array.isArray(e)?-1!==e.indexOf(n):e===n)for(var a=i;a<=s.length;){var l;if((l=s[++a])===t)return!0;if(l!==cc)break}if(n!==cc)break}return!1},Gc=function(e,t){for(var i=e;i>=0;){var s=t[i];if(s!==cc)return s;i--}return 0},Wc=function(e,t,i,s,r){if(0===i[s])return"×";var o=s-1;if(Array.isArray(r)&&!0===r[o])return"×";var n=o-1,a=o+1,l=t[o],A=n>=0?t[n]:0,h=t[a];if(2===l&&3===h)return"×";if(-1!==Oc.indexOf(l))return"!";if(-1!==Oc.indexOf(h))return"×";if(-1!==Nc.indexOf(h))return"×";if(8===Gc(o,t))return"÷";if(11===Uc.get(e[o]))return"×";if((l===Cc||l===Mc)&&11===Uc.get(e[a]))return"×";if(7===l||7===h)return"×";if(9===l)return"×";if(-1===[cc,uc,dc].indexOf(l)&&9===h)return"×";if(-1!==[pc,gc,mc,bc,Pc].indexOf(h))return"×";if(Gc(o,t)===vc)return"×";if(zc(23,vc,o,t))return"×";if(zc([pc,gc],_c,o,t))return"×";if(zc(12,12,o,t))return"×";if(l===cc)return"÷";if(23===l||23===h)return"×";if(16===h||16===l)return"÷";if(-1!==[uc,dc,_c].indexOf(h)||14===l)return"×";if(36===A&&-1!==Hc.indexOf(l))return"×";if(l===Pc&&36===h)return"×";if(h===fc)return"×";if(-1!==kc.indexOf(h)&&l===xc||-1!==kc.indexOf(l)&&h===xc)return"×";if(l===yc&&-1!==[Ic,Cc,Mc].indexOf(h)||-1!==[Ic,Cc,Mc].indexOf(l)&&h===wc)return"×";if(-1!==kc.indexOf(l)&&-1!==Qc.indexOf(h)||-1!==Qc.indexOf(l)&&-1!==kc.indexOf(h))return"×";if(-1!==[yc,wc].indexOf(l)&&(h===xc||-1!==[vc,dc].indexOf(h)&&t[a+1]===xc)||-1!==[vc,dc].indexOf(l)&&h===xc||l===xc&&-1!==[xc,Pc,bc].indexOf(h))return"×";if(-1!==[xc,Pc,bc,pc,gc].indexOf(h))for(var c=o;c>=0;){if((u=t[c])===xc)return"×";if(-1===[Pc,bc].indexOf(u))break;c--}if(-1!==[yc,wc].indexOf(h))for(c=-1!==[pc,gc].indexOf(l)?n:o;c>=0;){var u;if((u=t[c])===xc)return"×";if(-1===[Pc,bc].indexOf(u))break;c--}if(Dc===l&&-1!==[Dc,Sc,Ec,Fc].indexOf(h)||-1!==[Sc,Ec].indexOf(l)&&-1!==[Sc,Tc].indexOf(h)||-1!==[Tc,Fc].indexOf(l)&&h===Tc)return"×";if(-1!==jc.indexOf(l)&&-1!==[fc,wc].indexOf(h)||-1!==jc.indexOf(h)&&l===yc)return"×";if(-1!==kc.indexOf(l)&&-1!==kc.indexOf(h))return"×";if(l===bc&&-1!==kc.indexOf(h))return"×";if(-1!==kc.concat(xc).indexOf(l)&&h===vc&&-1===Lc.indexOf(e[a])||-1!==kc.concat(xc).indexOf(h)&&l===gc)return"×";if(41===l&&41===h){for(var d=i[o],p=1;d>0&&41===t[--d];)p++;if(p%2!=0)return"×"}return l===Cc&&h===Mc?"×":"÷"},Kc=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var i=function(e,t){void 0===t&&(t="strict");var i=[],s=[],r=[];return e.forEach((function(e,o){var n=Uc.get(e);if(n>50?(r.push(!0),n-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return s.push(o),i.push(16);if(4===n||11===n){if(0===o)return s.push(o),i.push(Bc);var a=i[o-1];return-1===Vc.indexOf(a)?(s.push(s[o-1]),i.push(a)):(s.push(o),i.push(Bc))}return s.push(o),31===n?i.push("strict"===t?_c:Ic):n===Rc||29===n?i.push(Bc):43===n?e>=131072&&e<=196605||e>=196608&&e<=262141?i.push(Ic):i.push(Bc):void i.push(n)})),[s,i,r]}(e,t.lineBreak),s=i[0],r=i[1],o=i[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(r=r.map((function(e){return-1!==[xc,Bc,Rc].indexOf(e)?Ic:e})));var n="keep-all"===t.wordBreak?o.map((function(t,i){return t&&e[i]>=19968&&e[i]<=40959})):void 0;return[s,r,n]},Xc=function(){function e(e,t,i,s){this.codePoints=e,this.required="!"===t,this.start=i,this.end=s}return e.prototype.slice=function(){return $h.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),Yc=function(e){return e>=48&&e<=57},qc=function(e){return Yc(e)||e>=65&&e<=70||e>=97&&e<=102},Zc=function(e){return 10===e||9===e||32===e},Jc=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},$c=function(e){return Jc(e)||Yc(e)||45===e},eu=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},tu=function(e,t){return 92===e&&10!==t},iu=function(e,t,i){return 45===e?Jc(t)||tu(t,i):!!Jc(e)||!(92!==e||!tu(e,t))},su=function(e,t,i){return 43===e||45===e?!!Yc(t)||46===t&&Yc(i):Yc(46===e?t:e)},ru=function(e){var t=0,i=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(i=-1),t++);for(var s=[];Yc(e[t]);)s.push(e[t++]);var r=s.length?parseInt($h.apply(void 0,s),10):0;46===e[t]&&t++;for(var o=[];Yc(e[t]);)o.push(e[t++]);var n=o.length,a=n?parseInt($h.apply(void 0,o),10):0;69!==e[t]&&101!==e[t]||t++;var l=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(l=-1),t++);for(var A=[];Yc(e[t]);)A.push(e[t++]);var h=A.length?parseInt($h.apply(void 0,A),10):0;return i*(r+a*Math.pow(10,-n))*Math.pow(10,l*h)},ou={type:2},nu={type:3},au={type:4},lu={type:13},Au={type:8},hu={type:21},cu={type:9},uu={type:10},du={type:11},pu={type:12},gu={type:14},mu={type:23},fu={type:1},_u={type:25},vu={type:24},bu={type:26},xu={type:27},wu={type:28},yu={type:29},Pu={type:31},Bu={type:32},Cu=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(Jh(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==Bu;)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),i=this.peekCodePoint(1),s=this.peekCodePoint(2);if($c(t)||tu(i,s)){var r=iu(t,i,s)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),lu;break;case 39:return this.consumeStringToken(39);case 40:return ou;case 41:return nu;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),gu;break;case 43:if(su(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return au;case 45:var o=e,n=this.peekCodePoint(0),a=this.peekCodePoint(1);if(su(o,n,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(iu(o,n,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(45===n&&62===a)return this.consumeCodePoint(),this.consumeCodePoint(),vu;break;case 46:if(su(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 l=this.consumeCodePoint();if(42===l&&47===(l=this.consumeCodePoint()))return this.consumeToken();if(-1===l)return this.consumeToken()}break;case 58:return bu;case 59:return xu;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),_u;break;case 64:var A=this.peekCodePoint(0),h=this.peekCodePoint(1),c=this.peekCodePoint(2);if(iu(A,h,c))return{type:7,value:this.consumeName()};break;case 91:return wu;case 92:if(tu(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return yu;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Au;break;case 123:return du;case 125:return pu;case 117:case 85:var u=this.peekCodePoint(0),d=this.peekCodePoint(1);return 43!==u||!qc(d)&&63!==d||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),cu;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),hu;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),uu;break;case-1:return Bu}return Zc(e)?(this.consumeWhiteSpace(),Pu):Yc(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):Jc(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:$h(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();qc(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var i=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),i=!0;if(i)return{type:30,start:parseInt($h.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt($h.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var s=parseInt($h.apply(void 0,e),16);if(45===this.peekCodePoint(0)&&qc(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var r=[];qc(t)&&r.length<6;)r.push(t),t=this.consumeCodePoint();return{type:30,start:s,end:parseInt($h.apply(void 0,r),16)}}return{type:30,start:s,end:s}},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 i=this.consumeStringToken(this.consumeCodePoint());return 0===i.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:i.value}):(this.consumeBadUrlRemnants(),mu)}for(;;){var s=this.consumeCodePoint();if(-1===s||41===s)return{type:22,value:$h.apply(void 0,e)};if(Zc(s))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:$h.apply(void 0,e)}):(this.consumeBadUrlRemnants(),mu);if(34===s||39===s||40===s||eu(s))return this.consumeBadUrlRemnants(),mu;if(92===s){if(!tu(s,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),mu;e.push(this.consumeEscapedCodePoint())}else e.push(s)}},e.prototype.consumeWhiteSpace=function(){for(;Zc(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||-1===e)return;tu(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var i=Math.min(5e4,e);t+=$h.apply(void 0,this._value.splice(0,i)),e-=i}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",i=0;;){var s=this._value[i];if(-1===s||void 0===s||s===e)return{type:0,value:t+=this.consumeStringSlice(i)};if(10===s)return this._value.splice(0,i),fu;if(92===s){var r=this._value[i+1];-1!==r&&void 0!==r&&(10===r?(t+=this.consumeStringSlice(i),i=-1,this._value.shift()):tu(s,r)&&(t+=this.consumeStringSlice(i),t+=$h(this.consumeEscapedCodePoint()),i=-1))}i++}},e.prototype.consumeNumber=function(){var e=[],t=4,i=this.peekCodePoint(0);for(43!==i&&45!==i||e.push(this.consumeCodePoint());Yc(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0);var s=this.peekCodePoint(1);if(46===i&&Yc(s))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Yc(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0),s=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===i||101===i)&&((43===s||45===s)&&Yc(r)||Yc(s)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Yc(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[ru(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],i=e[1],s=this.peekCodePoint(0),r=this.peekCodePoint(1),o=this.peekCodePoint(2);return iu(s,r,o)?{type:15,number:t,flags:i,unit:this.consumeName()}:37===s?(this.consumeCodePoint(),{type:16,number:t,flags:i}):{type:17,number:t,flags:i}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(qc(e)){for(var t=$h(e);qc(this.peekCodePoint(0))&&t.length<6;)t+=$h(this.consumeCodePoint());Zc(this.peekCodePoint(0))&&this.consumeCodePoint();var i=parseInt(t,16);return 0===i||function(e){return e>=55296&&e<=57343}(i)||i>1114111?65533:i}return-1===e?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if($c(t))e+=$h(t);else{if(!tu(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=$h(this.consumeEscapedCodePoint())}}},e}(),Mu=function(){function e(e){this._tokens=e}return e.create=function(t){var i=new Cu;return i.write(t),new e(i.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:[]},i=this.consumeToken();;){if(32===i.type||Uu(i,e))return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue()),i=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var i=this.consumeToken();if(32===i.type||3===i.type)return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?Bu:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),Eu=function(e){return 15===e.type},Fu=function(e){return 17===e.type},Iu=function(e){return 20===e.type},Du=function(e){return 0===e.type},Su=function(e,t){return Iu(e)&&e.value===t},Tu=function(e){return 31!==e.type},Ru=function(e){return 31!==e.type&&4!==e.type},Lu=function(e){var t=[],i=[];return e.forEach((function(e){if(4===e.type){if(0===i.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(i),void(i=[])}31!==e.type&&i.push(e)})),i.length&&t.push(i),t},Uu=function(e,t){return 11===t&&12===e.type||(28===t&&29===e.type||2===t&&3===e.type)},ku=function(e){return 17===e.type||15===e.type},Ou=function(e){return 16===e.type||ku(e)},Nu=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},Qu={type:17,number:0,flags:4},Vu={type:16,number:50,flags:4},ju={type:16,number:100,flags:4},Hu=function(e,t,i){var s=e[0],r=e[1];return[zu(s,t),zu(void 0!==r?r:s,i)]},zu=function(e,t){if(16===e.type)return e.number/100*t;if(Eu(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},Gu=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")},Wu=function(e){return 15===e.type&&("deg"===e.unit||"grad"===e.unit||"rad"===e.unit||"turn"===e.unit)},Ku=function(e){switch(e.filter(Iu).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Qu,Qu];case"to top":case"bottom":return Xu(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Qu,ju];case"to right":case"left":return Xu(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[ju,ju];case"to bottom":case"top":return Xu(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[ju,Qu];case"to left":case"right":return Xu(270)}return 0},Xu=function(e){return Math.PI*e/180},Yu=function(e,t){if(18===t.type){var i=sd[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return i(e,t.values)}if(5===t.type){if(3===t.value.length){var s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);return Ju(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),1)}if(4===t.value.length){s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);var n=t.value.substring(3,4);return Ju(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),parseInt(n+n,16)/255)}if(6===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6);return Ju(parseInt(s,16),parseInt(r,16),parseInt(o,16),1)}if(8===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6),n=t.value.substring(6,8);return Ju(parseInt(s,16),parseInt(r,16),parseInt(o,16),parseInt(n,16)/255)}}if(20===t.type){var a=od[t.value.toUpperCase()];if(void 0!==a)return a}return od.TRANSPARENT},qu=function(e){return 0==(255&e)},Zu=function(e){var t=255&e,i=255&e>>8,s=255&e>>16,r=255&e>>24;return t<255?"rgba("+r+","+s+","+i+","+t/255+")":"rgb("+r+","+s+","+i+")"},Ju=function(e,t,i,s){return(e<<24|t<<16|i<<8|Math.round(255*s)<<0)>>>0},$u=function(e,t){if(17===e.type)return e.number;if(16===e.type){var i=3===t?1:255;return 3===t?e.number/100*i:Math.round(e.number/100*i)}return 0},ed=function(e,t){var i=t.filter(Ru);if(3===i.length){var s=i.map($u),r=s[0],o=s[1],n=s[2];return Ju(r,o,n,1)}if(4===i.length){var a=i.map($u),l=(r=a[0],o=a[1],n=a[2],a[3]);return Ju(r,o,n,l)}return 0};function td(e,t,i){return i<0&&(i+=1),i>=1&&(i-=1),i<1/6?(t-e)*i*6+e:i<.5?t:i<2/3?6*(t-e)*(2/3-i)+e:e}var id=function(e,t){var i=t.filter(Ru),s=i[0],r=i[1],o=i[2],n=i[3],a=(17===s.type?Xu(s.number):Gu(e,s))/(2*Math.PI),l=Ou(r)?r.number/100:0,A=Ou(o)?o.number/100:0,h=void 0!==n&&Ou(n)?zu(n,1):1;if(0===l)return Ju(255*A,255*A,255*A,1);var c=A<=.5?A*(l+1):A+l-A*l,u=2*A-c,d=td(u,c,a+1/3),p=td(u,c,a),g=td(u,c,a-1/3);return Ju(255*d,255*p,255*g,h)},sd={hsl:id,hsla:id,rgb:ed,rgba:ed},rd=function(e,t){return Yu(e,Mu.create(t).parseComponentValue())},od={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},nd={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Iu(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},ad={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ld=function(e,t){var i=Yu(e,t[0]),s=t[1];return s&&Ou(s)?{color:i,stop:s}:{color:i,stop:null}},Ad=function(e,t){var i=e[0],s=e[e.length-1];null===i.stop&&(i.stop=Qu),null===s.stop&&(s.stop=ju);for(var r=[],o=0,n=0;no?r.push(l):r.push(o),o=l}else r.push(null)}var A=null;for(n=0;ne.optimumDistance)?{optimumCorner:t,optimumDistance:a}:e}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},dd=function(e,t){var i=Xu(180),s=[];return Lu(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&-1!==["top","left","right","bottom"].indexOf(o.value))return void(i=Ku(t));if(Wu(o))return void(i=(Gu(e,o)+Xu(270))%Xu(360))}var n=ld(e,t);s.push(n)})),{angle:i,stops:s,type:1}},pd=function(e,t){var i=0,s=3,r=[],o=[];return Lu(t).forEach((function(t,n){var a=!0;if(0===n?a=t.reduce((function(e,t){if(Iu(t))switch(t.value){case"center":return o.push(Vu),!1;case"top":case"left":return o.push(Qu),!1;case"right":case"bottom":return o.push(ju),!1}else if(Ou(t)||ku(t))return o.push(t),!1;return e}),a):1===n&&(a=t.reduce((function(e,t){if(Iu(t))switch(t.value){case"circle":return i=0,!1;case"ellipse":return i=1,!1;case"contain":case"closest-side":return s=0,!1;case"farthest-side":return s=1,!1;case"closest-corner":return s=2,!1;case"cover":case"farthest-corner":return s=3,!1}else if(ku(t)||Ou(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)),a){var l=ld(e,t);r.push(l)}})),{size:s,shape:i,stops:r,position:o,type:2}},gd=function(e,t){if(22===t.type){var i={url:t.value,type:0};return e.cache.addImage(t.value),i}if(18===t.type){var s=fd[t.name];if(void 0===s)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return s(e,t.values)}throw new Error("Unsupported image type "+t.type)};var md,fd={"linear-gradient":function(e,t){var i=Xu(180),s=[];return Lu(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&"to"===o.value)return void(i=Ku(t));if(Wu(o))return void(i=Gu(e,o))}var n=ld(e,t);s.push(n)})),{angle:i,stops:s,type:1}},"-moz-linear-gradient":dd,"-ms-linear-gradient":dd,"-o-linear-gradient":dd,"-webkit-linear-gradient":dd,"radial-gradient":function(e,t){var i=0,s=3,r=[],o=[];return Lu(t).forEach((function(t,n){var a=!0;if(0===n){var l=!1;a=t.reduce((function(e,t){if(l)if(Iu(t))switch(t.value){case"center":return o.push(Vu),e;case"top":case"left":return o.push(Qu),e;case"right":case"bottom":return o.push(ju),e}else(Ou(t)||ku(t))&&o.push(t);else if(Iu(t))switch(t.value){case"circle":return i=0,!1;case"ellipse":return i=1,!1;case"at":return l=!0,!1;case"closest-side":return s=0,!1;case"cover":case"farthest-side":return s=1,!1;case"contain":case"closest-corner":return s=2,!1;case"farthest-corner":return s=3,!1}else if(ku(t)||Ou(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)}if(a){var A=ld(e,t);r.push(A)}})),{size:s,shape:i,stops:r,position:o,type:2}},"-moz-radial-gradient":pd,"-ms-radial-gradient":pd,"-o-radial-gradient":pd,"-webkit-radial-gradient":pd,"-webkit-gradient":function(e,t){var i=Xu(180),s=[],r=1;return Lu(t).forEach((function(t,i){var o=t[0];if(0===i){if(Iu(o)&&"linear"===o.value)return void(r=1);if(Iu(o)&&"radial"===o.value)return void(r=2)}if(18===o.type)if("from"===o.name){var n=Yu(e,o.values[0]);s.push({stop:Qu,color:n})}else if("to"===o.name){n=Yu(e,o.values[0]);s.push({stop:ju,color:n})}else if("color-stop"===o.name){var a=o.values.filter(Ru);if(2===a.length){n=Yu(e,a[1]);var l=a[0];Fu(l)&&s.push({stop:{type:16,number:100*l.number,flags:l.flags},color:n})}}})),1===r?{angle:(i+Xu(180))%Xu(360),stops:s,type:r}:{size:3,shape:0,stops:s,position:[],type:r}}},_d={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var i=t[0];return 20===i.type&&"none"===i.value?[]:t.filter((function(e){return Ru(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!fd[e.name])}(e)})).map((function(t){return gd(e,t)}))}},vd={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Iu(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},bd={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return Lu(t).map((function(e){return e.filter(Ou)})).map(Nu)}},xd={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return Lu(t).map((function(e){return e.filter(Iu).map((function(e){return e.value})).join(" ")})).map(wd)}},wd=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"}(md||(md={}));var yd,Pd={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return Lu(t).map((function(e){return e.filter(Bd)}))}},Bd=function(e){return Iu(e)||Ou(e)},Cd=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Md=Cd("top"),Ed=Cd("right"),Fd=Cd("bottom"),Id=Cd("left"),Dd=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return Nu(t.filter(Ou))}}},Sd=Dd("top-left"),Td=Dd("top-right"),Rd=Dd("bottom-right"),Ld=Dd("bottom-left"),Ud=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}}},kd=Ud("top"),Od=Ud("right"),Nd=Ud("bottom"),Qd=Ud("left"),Vd=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return Eu(t)?t.number:0}}},jd=Vd("top"),Hd=Vd("right"),zd=Vd("bottom"),Gd=Vd("left"),Wd={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Kd={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},Xd={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(Iu).reduce((function(e,t){return e|Yd(t.value)}),0)}},Yd=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},qd={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}},Zd={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"}(yd||(yd={}));var Jd,$d={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?yd.STRICT:yd.NORMAL}},ep={name:"line-height",initialValue:"normal",prefix:!1,type:4},tp=function(e,t){return Iu(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:Ou(e)?zu(e,t):t},ip={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:gd(e,t)}},sp={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},rp={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}}},op=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},np=op("top"),ap=op("right"),lp=op("bottom"),Ap=op("left"),hp={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(Iu).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}}))}},cp={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},up=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},dp=up("top"),pp=up("right"),gp=up("bottom"),mp=up("left"),fp={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}}},_p={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}},vp={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&Su(t[0],"none")?[]:Lu(t).map((function(t){for(var i={color:od.TRANSPARENT,offsetX:Qu,offsetY:Qu,blur:Qu},s=0,r=0;r1?1:0],this.overflowWrap=Jp(e,cp,t.overflowWrap),this.paddingTop=Jp(e,dp,t.paddingTop),this.paddingRight=Jp(e,pp,t.paddingRight),this.paddingBottom=Jp(e,gp,t.paddingBottom),this.paddingLeft=Jp(e,mp,t.paddingLeft),this.paintOrder=Jp(e,Wp,t.paintOrder),this.position=Jp(e,_p,t.position),this.textAlign=Jp(e,fp,t.textAlign),this.textDecorationColor=Jp(e,Dp,null!==(i=t.textDecorationColor)&&void 0!==i?i:t.color),this.textDecorationLine=Jp(e,Sp,null!==(s=t.textDecorationLine)&&void 0!==s?s:t.textDecoration),this.textShadow=Jp(e,vp,t.textShadow),this.textTransform=Jp(e,bp,t.textTransform),this.transform=Jp(e,xp,t.transform),this.transformOrigin=Jp(e,Bp,t.transformOrigin),this.visibility=Jp(e,Cp,t.visibility),this.webkitTextStrokeColor=Jp(e,Kp,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=Jp(e,Xp,t.webkitTextStrokeWidth),this.wordBreak=Jp(e,Mp,t.wordBreak),this.zIndex=Jp(e,Ep,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return qu(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 Op(this.display,4)||Op(this.display,33554432)||Op(this.display,268435456)||Op(this.display,536870912)||Op(this.display,67108864)||Op(this.display,134217728)},e}(),qp=function(e,t){this.content=Jp(e,Np,t.content),this.quotes=Jp(e,Hp,t.quotes)},Zp=function(e,t){this.counterIncrement=Jp(e,Qp,t.counterIncrement),this.counterReset=Jp(e,Vp,t.counterReset)},Jp=function(e,t,i){var s=new Cu,r=null!=i?i.toString():t.initialValue;s.write(r);var o=new Mu(s.read());switch(t.type){case 2:var n=o.parseComponentValue();return t.parse(e,Iu(n)?n.value:t.initialValue);case 0:return t.parse(e,o.parseComponentValue());case 1:return t.parse(e,o.parseComponentValues());case 4:return o.parseComponentValue();case 3:switch(t.format){case"angle":return Gu(e,o.parseComponentValue());case"color":return Yu(e,o.parseComponentValue());case"image":return gd(e,o.parseComponentValue());case"length":var a=o.parseComponentValue();return ku(a)?a:Qu;case"length-percentage":var l=o.parseComponentValue();return Ou(l)?l:Qu;case"time":return Fp(e,o.parseComponentValue())}}},$p=function(e,t){var i=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===i||t===i},eg=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,$p(t,3),this.styles=new Yp(e,window.getComputedStyle(t,null)),em(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=Zh(this.context,t),$p(t,4)&&(this.flags|=16)},tg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ig="undefined"==typeof Uint8Array?[]:new Uint8Array(256),sg=0;sg=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}(),ng="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ag="undefined"==typeof Uint8Array?[]:new Uint8Array(256),lg=0;lg>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},gg=function(e,t){var i,s,r,o=function(e){var t,i,s,r,o,n=.75*e.length,a=e.length,l=0;"="===e[e.length-1]&&(n--,"="===e[e.length-2]&&n--);var A="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(n):new Array(n),h=Array.isArray(A)?A:new Uint8Array(A);for(t=0;t>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s=55296&&r<=56319&&i=i)return{done:!0,value:null};for(var e="×";sn.x||r.y>n.y;return n=r,0===t||a}));return e.body.removeChild(t),a}(document);return Object.defineProperty(wg,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,i=e.createElement("canvas"),s=i.getContext("2d");if(!s)return!1;t.src="data:image/svg+xml,";try{s.drawImage(t,0,0),i.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(wg,"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"),i=100;t.width=i,t.height=i;var s=t.getContext("2d");if(!s)return Promise.reject(!1);s.fillStyle="rgb(0, 255, 0)",s.fillRect(0,0,i,i);var r=new Image,o=t.toDataURL();r.src=o;var n=bg(i,i,0,0,r);return s.fillStyle="red",s.fillRect(0,0,i,i),xg(n).then((function(t){s.drawImage(t,0,0);var r=s.getImageData(0,0,i,i).data;s.fillStyle="red",s.fillRect(0,0,i,i);var n=e.createElement("div");return n.style.backgroundImage="url("+o+")",n.style.height="100px",vg(r)?xg(bg(i,i,0,0,n)):Promise.reject(!1)})).then((function(e){return s.drawImage(e,0,0),vg(s.getImageData(0,0,i,i).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(wg,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(wg,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(wg,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(wg,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(wg,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},yg=function(e,t){this.text=e,this.bounds=t},Pg=function(e,t){var i=t.ownerDocument;if(i){var s=i.createElement("html2canvaswrapper");s.appendChild(t.cloneNode(!0));var r=t.parentNode;if(r){r.replaceChild(s,t);var o=Zh(e,s);return s.firstChild&&r.replaceChild(s.firstChild,s),o}}return qh.EMPTY},Bg=function(e,t,i){var s=e.ownerDocument;if(!s)throw new Error("Node has no owner document");var r=s.createRange();return r.setStart(e,t),r.setEnd(e,t+i),r},Cg=function(e){if(wg.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,i=_g(e),s=[];!(t=i.next()).done;)t.value&&s.push(t.value.slice());return s}(e)},Mg=function(e,t){return 0!==t.letterSpacing?Cg(e):function(e,t){if(wg.SUPPORT_NATIVE_TEXT_SEGMENTATION){var i=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(i.segment(e)).map((function(e){return e.segment}))}return Fg(e,t)}(e,t)},Eg=[32,160,4961,65792,65793,4153,4241],Fg=function(e,t){for(var i,s=function(e,t){var i=Jh(e),s=Kc(i,t),r=s[0],o=s[1],n=s[2],a=i.length,l=0,A=0;return{next:function(){if(A>=a)return{done:!0,value:null};for(var e="×";A0)if(wg.SUPPORT_RANGE_BOUNDS){var r=Bg(s,n,t.length).getClientRects();if(r.length>1){var a=Cg(t),l=0;a.forEach((function(t){o.push(new yg(t,qh.fromDOMRectList(e,Bg(s,l+n,t.length).getClientRects()))),l+=t.length}))}else o.push(new yg(t,qh.fromDOMRectList(e,r)))}else{var A=s.splitText(t.length);o.push(new yg(t,Pg(e,s))),s=A}else wg.SUPPORT_RANGE_BOUNDS||(s=s.splitText(t.length));n+=t.length})),o}(e,this.text,i,t)},Dg=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(Sg,Tg);case 2:return e.toUpperCase();default:return e}},Sg=/(^|\s|:|-|\(|\))([a-z])/g,Tg=function(e,t,i){return e.length>0?t+i.toUpperCase():e},Rg=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.src=i.currentSrc||i.src,s.intrinsicWidth=i.naturalWidth,s.intrinsicHeight=i.naturalHeight,s.context.cache.addImage(s.src),s}return Gh(t,e),t}(eg),Lg=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.canvas=i,s.intrinsicWidth=i.width,s.intrinsicHeight=i.height,s}return Gh(t,e),t}(eg),Ug=function(e){function t(t,i){var s=e.call(this,t,i)||this,r=new XMLSerializer,o=Zh(t,i);return i.setAttribute("width",o.width+"px"),i.setAttribute("height",o.height+"px"),s.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(i)),s.intrinsicWidth=i.width.baseVal.value,s.intrinsicHeight=i.height.baseVal.value,s.context.cache.addImage(s.svg),s}return Gh(t,e),t}(eg),kg=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.value=i.value,s}return Gh(t,e),t}(eg),Og=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.start=i.start,s.reversed="boolean"==typeof i.reversed&&!0===i.reversed,s}return Gh(t,e),t}(eg),Ng=[{type:15,flags:0,unit:"px",number:3}],Qg=[{type:16,flags:0,number:50}],Vg="password",jg=function(e){function t(t,i){var s,r,o,n=e.call(this,t,i)||this;switch(n.type=i.type.toLowerCase(),n.checked=i.checked,n.value=0===(r=(s=i).type===Vg?new Array(s.value.length+1).join("•"):s.value).length?s.placeholder||"":r,"checkbox"!==n.type&&"radio"!==n.type||(n.styles.backgroundColor=3739148031,n.styles.borderTopColor=n.styles.borderRightColor=n.styles.borderBottomColor=n.styles.borderLeftColor=2779096575,n.styles.borderTopWidth=n.styles.borderRightWidth=n.styles.borderBottomWidth=n.styles.borderLeftWidth=1,n.styles.borderTopStyle=n.styles.borderRightStyle=n.styles.borderBottomStyle=n.styles.borderLeftStyle=1,n.styles.backgroundClip=[0],n.styles.backgroundOrigin=[0],n.bounds=(o=n.bounds).width>o.height?new qh(o.left+(o.width-o.height)/2,o.top,o.height,o.height):o.width0)i.textNodes.push(new Ig(e,r,i.styles));else if($g(r))if(pm(r)&&r.assignedNodes)r.assignedNodes().forEach((function(t){return Kg(e,t,i,s)}));else{var n=Xg(e,r);n.styles.isVisible()&&(qg(r,n,s)?n.flags|=4:Zg(n.styles)&&(n.flags|=2),-1!==Wg.indexOf(r.tagName)&&(n.flags|=8),i.elements.push(n),r.slot,r.shadowRoot?Kg(e,r.shadowRoot,n,s):um(r)||om(r)||dm(r)||Kg(e,r,n,s))}},Xg=function(e,t){return Am(t)?new Rg(e,t):am(t)?new Lg(e,t):om(t)?new Ug(e,t):im(t)?new kg(e,t):sm(t)?new Og(e,t):rm(t)?new jg(e,t):dm(t)?new Hg(e,t):um(t)?new zg(e,t):hm(t)?new Gg(e,t):new eg(e,t)},Yg=function(e,t){var i=Xg(e,t);return i.flags|=4,Kg(e,t,i,i),i},qg=function(e,t,i){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||nm(e)&&i.styles.isTransparent()},Zg=function(e){return e.isPositioned()||e.isFloating()},Jg=function(e){return e.nodeType===Node.TEXT_NODE},$g=function(e){return e.nodeType===Node.ELEMENT_NODE},em=function(e){return $g(e)&&void 0!==e.style&&!tm(e)},tm=function(e){return"object"==typeof e.className},im=function(e){return"LI"===e.tagName},sm=function(e){return"OL"===e.tagName},rm=function(e){return"INPUT"===e.tagName},om=function(e){return"svg"===e.tagName},nm=function(e){return"BODY"===e.tagName},am=function(e){return"CANVAS"===e.tagName},lm=function(e){return"VIDEO"===e.tagName},Am=function(e){return"IMG"===e.tagName},hm=function(e){return"IFRAME"===e.tagName},cm=function(e){return"STYLE"===e.tagName},um=function(e){return"TEXTAREA"===e.tagName},dm=function(e){return"SELECT"===e.tagName},pm=function(e){return"SLOT"===e.tagName},gm=function(e){return e.tagName.indexOf("-")>0},mm=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,i=e.counterIncrement,s=e.counterReset,r=!0;null!==i&&i.forEach((function(e){var i=t.counters[e.counter];i&&0!==e.increment&&(r=!1,i.length||i.push(1),i[Math.max(0,i.length-1)]+=e.increment)}));var o=[];return r&&s.forEach((function(e){var i=t.counters[e.counter];o.push(e.counter),i||(i=t.counters[e.counter]=[]),i.push(e.reset)})),o},e}(),fm={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"]},_m={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:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},vm={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:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},bm={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:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},xm=function(e,t,i,s,r,o){return ei?Cm(e,r,o.length>0):s.integers.reduce((function(t,i,r){for(;e>=i;)e-=i,t+=s.values[r];return t}),"")+o},wm=function(e,t,i,s){var r="";do{i||e--,r=s(e)+r,e/=t}while(e*t>=t);return r},ym=function(e,t,i,s,r){var o=i-t+1;return(e<0?"-":"")+(wm(Math.abs(e),o,s,(function(e){return $h(Math.floor(e%o)+t)}))+r)},Pm=function(e,t,i){void 0===i&&(i=". ");var s=t.length;return wm(Math.abs(e),s,!1,(function(e){return t[Math.floor(e%s)]}))+i},Bm=function(e,t,i,s,r,o){if(e<-9999||e>9999)return Cm(e,4,r.length>0);var n=Math.abs(e),a=r;if(0===n)return t[0]+a;for(var l=0;n>0&&l<=4;l++){var A=n%10;0===A&&Op(o,1)&&""!==a?a=t[A]+a:A>1||1===A&&0===l||1===A&&1===l&&Op(o,2)||1===A&&1===l&&Op(o,4)&&e>100||1===A&&l>1&&Op(o,8)?a=t[A]+(l>0?i[l-1]:"")+a:1===A&&l>0&&(a=i[l-1]+a),n=Math.floor(n/10)}return(e<0?s:"")+a},Cm=function(e,t,i){var s=i?". ":"",r=i?"、":"",o=i?", ":"",n=i?" ":"";switch(t){case 0:return"•"+n;case 1:return"◦"+n;case 2:return"◾"+n;case 5:var a=ym(e,48,57,!0,s);return a.length<4?"0"+a:a;case 4:return Pm(e,"〇一二三四五六七八九",r);case 6:return xm(e,1,3999,fm,3,s).toLowerCase();case 7:return xm(e,1,3999,fm,3,s);case 8:return ym(e,945,969,!1,s);case 9:return ym(e,97,122,!1,s);case 10:return ym(e,65,90,!1,s);case 11:return ym(e,1632,1641,!0,s);case 12:case 49:return xm(e,1,9999,_m,3,s);case 35:return xm(e,1,9999,_m,3,s).toLowerCase();case 13:return ym(e,2534,2543,!0,s);case 14:case 30:return ym(e,6112,6121,!0,s);case 15:return Pm(e,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return Pm(e,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return Bm(e,"零一二三四五六七八九","十百千萬","負",r,14);case 47:return Bm(e,"零壹貳參肆伍陸柒捌玖","拾佰仟萬","負",r,15);case 42:return Bm(e,"零一二三四五六七八九","十百千萬","负",r,14);case 41:return Bm(e,"零壹贰叁肆伍陆柒捌玖","拾佰仟萬","负",r,15);case 26:return Bm(e,"〇一二三四五六七八九","十百千万","マイナス",r,0);case 25:return Bm(e,"零壱弐参四伍六七八九","拾百千万","マイナス",r,7);case 31:return Bm(e,"영일이삼사오육칠팔구","십백천만","마이너스",o,7);case 33:return Bm(e,"零一二三四五六七八九","十百千萬","마이너스",o,0);case 32:return Bm(e,"零壹貳參四五六七八九","拾百千","마이너스",o,7);case 18:return ym(e,2406,2415,!0,s);case 20:return xm(e,1,19999,bm,3,s);case 21:return ym(e,2790,2799,!0,s);case 22:return ym(e,2662,2671,!0,s);case 22:return xm(e,1,10999,vm,3,s);case 23:return Pm(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Pm(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return ym(e,3302,3311,!0,s);case 28:return Pm(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return Pm(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return ym(e,3792,3801,!0,s);case 37:return ym(e,6160,6169,!0,s);case 38:return ym(e,4160,4169,!0,s);case 39:return ym(e,2918,2927,!0,s);case 40:return ym(e,1776,1785,!0,s);case 43:return ym(e,3046,3055,!0,s);case 44:return ym(e,3174,3183,!0,s);case 45:return ym(e,3664,3673,!0,s);case 46:return ym(e,3872,3881,!0,s);default:return ym(e,48,57,!0,s)}},Mm=function(){function e(e,t,i){if(this.context=e,this.options=i,this.scrolledElements=[],this.referenceElement=t,this.counters=new mm,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 i=this,s=Fm(e,t);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,o=e.defaultView.pageYOffset,n=s.contentWindow,a=n.document,l=Sm(s).then((function(){return Kh(i,void 0,void 0,(function(){var e,i;return Xh(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(km),n&&(n.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||n.scrollY===t.top&&n.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(n.scrollX-t.left,n.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(i=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Dm(a)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(a,i)})).then((function(){return s}))]:[2,s]}}))}))}));return a.open(),a.write(Lm(document.doctype)+""),Um(this.referenceElement.ownerDocument,r,o),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),l},e.prototype.createElementClone=function(e){if($p(e,2),am(e))return this.createCanvasClone(e);if(lm(e))return this.createVideoClone(e);if(cm(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return Am(t)&&(Am(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),gm(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return Rm(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var i=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),s=e.cloneNode(!1);return s.textContent=i,s}}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 i=e.ownerDocument.createElement("img");try{return i.src=e.toDataURL(),i}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var s=e.cloneNode(!1);try{s.width=e.width,s.height=e.height;var r=e.getContext("2d"),o=s.getContext("2d");if(o)if(!this.options.allowTaint&&r)o.putImageData(r.getImageData(0,0,e.width,e.height),0,0);else{var n=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(n){var a=n.getContextAttributes();!1===(null==a?void 0:a.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}o.drawImage(e,0,0)}return s}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return s},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var i=t.getContext("2d");try{return i&&(i.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||i.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var s=e.ownerDocument.createElement("canvas");return s.width=e.offsetWidth,s.height=e.offsetHeight,s},e.prototype.appendChildNode=function(e,t,i){$g(t)&&("SCRIPT"===t.tagName||t.hasAttribute("data-html2canvas-ignore")||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&$g(t)&&cm(t)||e.appendChild(this.cloneNode(t,i))},e.prototype.cloneChildNodes=function(e,t,i){for(var s=this,r=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;r;r=r.nextSibling)if($g(r)&&pm(r)&&"function"==typeof r.assignedNodes){var o=r.assignedNodes();o.length&&o.forEach((function(e){return s.appendChildNode(t,e,i)}))}else this.appendChildNode(t,r,i)},e.prototype.cloneNode=function(e,t){if(Jg(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var i=e.ownerDocument.defaultView;if(i&&$g(e)&&(em(e)||tm(e))){var s=this.createElementClone(e);s.style.transitionProperty="none";var r=i.getComputedStyle(e),o=i.getComputedStyle(e,":before"),n=i.getComputedStyle(e,":after");this.referenceElement===e&&em(s)&&(this.clonedReferenceElement=s),nm(s)&&Qm(s);var a=this.counters.parse(new Zp(this.context,r)),l=this.resolvePseudoContent(e,s,o,Ag.BEFORE);gm(e)&&(t=!0),lm(e)||this.cloneChildNodes(e,s,t),l&&s.insertBefore(l,s.firstChild);var A=this.resolvePseudoContent(e,s,n,Ag.AFTER);return A&&s.appendChild(A),this.counters.pop(a),(r&&(this.options.copyStyles||tm(e))&&!hm(e)||t)&&Rm(r,s),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([s,e.scrollLeft,e.scrollTop]),(um(e)||dm(e))&&(um(s)||dm(s))&&(s.value=e.value),s}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,i,s){var r=this;if(i){var o=i.content,n=t.ownerDocument;if(n&&o&&"none"!==o&&"-moz-alt-content"!==o&&"none"!==i.display){this.counters.parse(new Zp(this.context,i));var a=new qp(this.context,i),l=n.createElement("html2canvaspseudoelement");Rm(i,l),a.content.forEach((function(t){if(0===t.type)l.appendChild(n.createTextNode(t.value));else if(22===t.type){var i=n.createElement("img");i.src=t.value,i.style.opacity="1",l.appendChild(i)}else if(18===t.type){if("attr"===t.name){var s=t.values.filter(Iu);s.length&&l.appendChild(n.createTextNode(e.getAttribute(s[0].value)||""))}else if("counter"===t.name){var o=t.values.filter(Ru),A=o[0],h=o[1];if(A&&Iu(A)){var c=r.counters.getCounterValue(A.value),u=h&&Iu(h)?rp.parse(r.context,h.value):3;l.appendChild(n.createTextNode(Cm(c,u,!1)))}}else if("counters"===t.name){var d=t.values.filter(Ru),p=(A=d[0],d[1]);h=d[2];if(A&&Iu(A)){var g=r.counters.getCounterValues(A.value),m=h&&Iu(h)?rp.parse(r.context,h.value):3,f=p&&0===p.type?p.value:"",_=g.map((function(e){return Cm(e,m,!1)})).join(f);l.appendChild(n.createTextNode(_))}}}else if(20===t.type)switch(t.value){case"open-quote":l.appendChild(n.createTextNode(zp(a.quotes,r.quoteDepth++,!0)));break;case"close-quote":l.appendChild(n.createTextNode(zp(a.quotes,--r.quoteDepth,!1)));break;default:l.appendChild(n.createTextNode(t.value))}})),l.className=Om+" "+Nm;var A=s===Ag.BEFORE?" "+Om:" "+Nm;return tm(t)?t.className.baseValue+=A:t.className+=A,l}}},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"}(Ag||(Ag={}));var Em,Fm=function(e,t){var i=e.createElement("iframe");return i.className="html2canvas-container",i.style.visibility="hidden",i.style.position="fixed",i.style.left="-10000px",i.style.top="0px",i.style.border="0",i.width=t.width.toString(),i.height=t.height.toString(),i.scrolling="no",i.setAttribute("data-html2canvas-ignore","true"),e.body.appendChild(i),i},Im=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},Dm=function(e){return Promise.all([].slice.call(e.images,0).map(Im))},Sm=function(e){return new Promise((function(t,i){var s=e.contentWindow;if(!s)return i("No window assigned for iframe");var r=s.document;s.onload=e.onload=function(){s.onload=e.onload=null;var i=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(i),t(e))}),50)}}))},Tm=["all","d","content"],Rm=function(e,t){for(var i=e.length-1;i>=0;i--){var s=e.item(i);-1===Tm.indexOf(s)&&t.style.setProperty(s,e.getPropertyValue(s))}return t},Lm=function(e){var t="";return e&&(t+=""),t},Um=function(e,t,i){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||i!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,i)},km=function(e){var t=e[0],i=e[1],s=e[2];t.scrollLeft=i,t.scrollTop=s},Om="___html2canvas___pseudoelement_before",Nm="___html2canvas___pseudoelement_after",Qm=function(e){Vm(e,"."+Om+':before{\n content: "" !important;\n display: none !important;\n}\n .'+Nm+':after{\n content: "" !important;\n display: none !important;\n}')},Vm=function(e,t){var i=e.ownerDocument;if(i){var s=i.createElement("style");s.textContent=t,e.appendChild(s)}},jm=function(){function e(){}return e.getOrigin=function(t){var i=e._link;return i?(i.href=t,i.href=i.href,i.protocol+i.hostname+i.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}(),Hm=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:qm(e)||Km(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 Kh(this,void 0,void 0,(function(){var t,i,s,r,o=this;return Xh(this,(function(n){switch(n.label){case 0:return t=jm.isSameOrigin(e),i=!Xm(e)&&!0===this._options.useCORS&&wg.SUPPORT_CORS_IMAGES&&!t,s=!Xm(e)&&!t&&!qm(e)&&"string"==typeof this._options.proxy&&wg.SUPPORT_CORS_XHR&&!i,t||!1!==this._options.allowTaint||Xm(e)||qm(e)||s||i?(r=e,s?[4,this.proxy(r)]:[3,2]):[2];case 1:r=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var s=new Image;s.onload=function(){return e(s)},s.onerror=t,(Ym(r)||i)&&(s.crossOrigin="anonymous"),s.src=r,!0===s.complete&&setTimeout((function(){return e(s)}),500),o._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.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,i=this._options.proxy;if(!i)throw new Error("No proxy defined");var s=e.substring(0,256);return new Promise((function(r,o){var n=wg.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=function(){if(200===a.status)if("text"===n)r(a.response);else{var e=new FileReader;e.addEventListener("load",(function(){return r(e.result)}),!1),e.addEventListener("error",(function(e){return o(e)}),!1),e.readAsDataURL(a.response)}else o("Failed to proxy resource "+s+" with status code "+a.status)},a.onerror=o;var l=i.indexOf("?")>-1?"&":"?";if(a.open("GET",""+i+l+"url="+encodeURIComponent(e)+"&responseType="+n),"text"!==n&&a instanceof XMLHttpRequest&&(a.responseType=n),t._options.imageTimeout){var A=t._options.imageTimeout;a.timeout=A,a.ontimeout=function(){return o("Timed out ("+A+"ms) proxying "+s)}}a.send()}))},e}(),zm=/^data:image\/svg\+xml/i,Gm=/^data:image\/.*;base64,/i,Wm=/^data:image\/.*/i,Km=function(e){return wg.SUPPORT_SVG_DRAWING||!Zm(e)},Xm=function(e){return Wm.test(e)},Ym=function(e){return Gm.test(e)},qm=function(e){return"blob"===e.substr(0,4)},Zm=function(e){return"svg"===e.substr(-3).toLowerCase()||zm.test(e)},Jm=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,i){return new e(this.x+t,this.y+i)},e}(),$m=function(e,t,i){return new Jm(e.x+(t.x-e.x)*i,e.y+(t.y-e.y)*i)},ef=function(){function e(e,t,i,s){this.type=1,this.start=e,this.startControl=t,this.endControl=i,this.end=s}return e.prototype.subdivide=function(t,i){var s=$m(this.start,this.startControl,t),r=$m(this.startControl,this.endControl,t),o=$m(this.endControl,this.end,t),n=$m(s,r,t),a=$m(r,o,t),l=$m(n,a,t);return i?new e(this.start,s,n,l):new e(l,a,o,this.end)},e.prototype.add=function(t,i){return new e(this.start.add(t,i),this.startControl.add(t,i),this.endControl.add(t,i),this.end.add(t,i))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),tf=function(e){return 1===e.type},sf=function(e){var t=e.styles,i=e.bounds,s=Hu(t.borderTopLeftRadius,i.width,i.height),r=s[0],o=s[1],n=Hu(t.borderTopRightRadius,i.width,i.height),a=n[0],l=n[1],A=Hu(t.borderBottomRightRadius,i.width,i.height),h=A[0],c=A[1],u=Hu(t.borderBottomLeftRadius,i.width,i.height),d=u[0],p=u[1],g=[];g.push((r+a)/i.width),g.push((d+h)/i.width),g.push((o+p)/i.height),g.push((l+c)/i.height);var m=Math.max.apply(Math,g);m>1&&(r/=m,o/=m,a/=m,l/=m,h/=m,c/=m,d/=m,p/=m);var f=i.width-a,_=i.height-c,v=i.width-h,b=i.height-p,x=t.borderTopWidth,w=t.borderRightWidth,y=t.borderBottomWidth,P=t.borderLeftWidth,B=zu(t.paddingTop,e.bounds.width),C=zu(t.paddingRight,e.bounds.width),M=zu(t.paddingBottom,e.bounds.width),E=zu(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||o>0?rf(i.left+P/3,i.top+x/3,r-P/3,o-x/3,Em.TOP_LEFT):new Jm(i.left+P/3,i.top+x/3),this.topRightBorderDoubleOuterBox=r>0||o>0?rf(i.left+f,i.top+x/3,a-w/3,l-x/3,Em.TOP_RIGHT):new Jm(i.left+i.width-w/3,i.top+x/3),this.bottomRightBorderDoubleOuterBox=h>0||c>0?rf(i.left+v,i.top+_,h-w/3,c-y/3,Em.BOTTOM_RIGHT):new Jm(i.left+i.width-w/3,i.top+i.height-y/3),this.bottomLeftBorderDoubleOuterBox=d>0||p>0?rf(i.left+P/3,i.top+b,d-P/3,p-y/3,Em.BOTTOM_LEFT):new Jm(i.left+P/3,i.top+i.height-y/3),this.topLeftBorderDoubleInnerBox=r>0||o>0?rf(i.left+2*P/3,i.top+2*x/3,r-2*P/3,o-2*x/3,Em.TOP_LEFT):new Jm(i.left+2*P/3,i.top+2*x/3),this.topRightBorderDoubleInnerBox=r>0||o>0?rf(i.left+f,i.top+2*x/3,a-2*w/3,l-2*x/3,Em.TOP_RIGHT):new Jm(i.left+i.width-2*w/3,i.top+2*x/3),this.bottomRightBorderDoubleInnerBox=h>0||c>0?rf(i.left+v,i.top+_,h-2*w/3,c-2*y/3,Em.BOTTOM_RIGHT):new Jm(i.left+i.width-2*w/3,i.top+i.height-2*y/3),this.bottomLeftBorderDoubleInnerBox=d>0||p>0?rf(i.left+2*P/3,i.top+b,d-2*P/3,p-2*y/3,Em.BOTTOM_LEFT):new Jm(i.left+2*P/3,i.top+i.height-2*y/3),this.topLeftBorderStroke=r>0||o>0?rf(i.left+P/2,i.top+x/2,r-P/2,o-x/2,Em.TOP_LEFT):new Jm(i.left+P/2,i.top+x/2),this.topRightBorderStroke=r>0||o>0?rf(i.left+f,i.top+x/2,a-w/2,l-x/2,Em.TOP_RIGHT):new Jm(i.left+i.width-w/2,i.top+x/2),this.bottomRightBorderStroke=h>0||c>0?rf(i.left+v,i.top+_,h-w/2,c-y/2,Em.BOTTOM_RIGHT):new Jm(i.left+i.width-w/2,i.top+i.height-y/2),this.bottomLeftBorderStroke=d>0||p>0?rf(i.left+P/2,i.top+b,d-P/2,p-y/2,Em.BOTTOM_LEFT):new Jm(i.left+P/2,i.top+i.height-y/2),this.topLeftBorderBox=r>0||o>0?rf(i.left,i.top,r,o,Em.TOP_LEFT):new Jm(i.left,i.top),this.topRightBorderBox=a>0||l>0?rf(i.left+f,i.top,a,l,Em.TOP_RIGHT):new Jm(i.left+i.width,i.top),this.bottomRightBorderBox=h>0||c>0?rf(i.left+v,i.top+_,h,c,Em.BOTTOM_RIGHT):new Jm(i.left+i.width,i.top+i.height),this.bottomLeftBorderBox=d>0||p>0?rf(i.left,i.top+b,d,p,Em.BOTTOM_LEFT):new Jm(i.left,i.top+i.height),this.topLeftPaddingBox=r>0||o>0?rf(i.left+P,i.top+x,Math.max(0,r-P),Math.max(0,o-x),Em.TOP_LEFT):new Jm(i.left+P,i.top+x),this.topRightPaddingBox=a>0||l>0?rf(i.left+Math.min(f,i.width-w),i.top+x,f>i.width+w?0:Math.max(0,a-w),Math.max(0,l-x),Em.TOP_RIGHT):new Jm(i.left+i.width-w,i.top+x),this.bottomRightPaddingBox=h>0||c>0?rf(i.left+Math.min(v,i.width-P),i.top+Math.min(_,i.height-y),Math.max(0,h-w),Math.max(0,c-y),Em.BOTTOM_RIGHT):new Jm(i.left+i.width-w,i.top+i.height-y),this.bottomLeftPaddingBox=d>0||p>0?rf(i.left+P,i.top+Math.min(b,i.height-y),Math.max(0,d-P),Math.max(0,p-y),Em.BOTTOM_LEFT):new Jm(i.left+P,i.top+i.height-y),this.topLeftContentBox=r>0||o>0?rf(i.left+P+E,i.top+x+B,Math.max(0,r-(P+E)),Math.max(0,o-(x+B)),Em.TOP_LEFT):new Jm(i.left+P+E,i.top+x+B),this.topRightContentBox=a>0||l>0?rf(i.left+Math.min(f,i.width+P+E),i.top+x+B,f>i.width+P+E?0:a-P+E,l-(x+B),Em.TOP_RIGHT):new Jm(i.left+i.width-(w+C),i.top+x+B),this.bottomRightContentBox=h>0||c>0?rf(i.left+Math.min(v,i.width-(P+E)),i.top+Math.min(_,i.height+x+B),Math.max(0,h-(w+C)),c-(y+M),Em.BOTTOM_RIGHT):new Jm(i.left+i.width-(w+C),i.top+i.height-(y+M)),this.bottomLeftContentBox=d>0||p>0?rf(i.left+P+E,i.top+b,Math.max(0,d-(P+E)),p-(y+M),Em.BOTTOM_LEFT):new Jm(i.left+P+E,i.top+i.height-(y+M))};!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"}(Em||(Em={}));var rf=function(e,t,i,s,r){var o=(Math.sqrt(2)-1)/3*4,n=i*o,a=s*o,l=e+i,A=t+s;switch(r){case Em.TOP_LEFT:return new ef(new Jm(e,A),new Jm(e,A-a),new Jm(l-n,t),new Jm(l,t));case Em.TOP_RIGHT:return new ef(new Jm(e,t),new Jm(e+n,t),new Jm(l,A-a),new Jm(l,A));case Em.BOTTOM_RIGHT:return new ef(new Jm(l,t),new Jm(l,t+a),new Jm(e+n,A),new Jm(e,A));case Em.BOTTOM_LEFT:default:return new ef(new Jm(l,A),new Jm(l-n,A),new Jm(e,t+a),new Jm(e,t))}},of=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},nf=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},af=function(e,t,i){this.offsetX=e,this.offsetY=t,this.matrix=i,this.type=0,this.target=6},lf=function(e,t){this.path=e,this.target=t,this.type=1},Af=function(e){this.opacity=e,this.type=2,this.target=6},hf=function(e){return 1===e.type},cf=function(e,t){return e.length===t.length&&e.some((function(e,i){return e===t[i]}))},uf=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},df=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new sf(this.container),this.container.styles.opacity<1&&this.effects.push(new Af(this.container.styles.opacity)),null!==this.container.styles.transform){var i=this.container.bounds.left+this.container.styles.transformOrigin[0].number,s=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new af(i,s,r))}if(0!==this.container.styles.overflowX){var o=of(this.curves),n=nf(this.curves);cf(o,n)?this.effects.push(new lf(o,6)):(this.effects.push(new lf(o,2)),this.effects.push(new lf(n,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),i=this.parent,s=this.effects.slice(0);i;){var r=i.effects.filter((function(e){return!hf(e)}));if(t||0!==i.container.styles.position||!i.parent){if(s.unshift.apply(s,r),t=-1===[2,3].indexOf(i.container.styles.position),0!==i.container.styles.overflowX){var o=of(i.curves),n=nf(i.curves);cf(o,n)||s.unshift(new lf(n,6))}}else s.unshift.apply(s,r);i=i.parent}return s.filter((function(t){return Op(t.target,e)}))},e}(),pf=function(e,t,i,s){e.container.elements.forEach((function(r){var o=Op(r.flags,4),n=Op(r.flags,2),a=new df(r,e);Op(r.styles.display,2048)&&s.push(a);var l=Op(r.flags,8)?[]:s;if(o||n){var A=o||r.styles.isPositioned()?i:t,h=new uf(a);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var c=r.styles.zIndex.order;if(c<0){var u=0;A.negativeZIndex.some((function(e,t){return c>e.element.container.styles.zIndex.order?(u=t,!1):u>0})),A.negativeZIndex.splice(u,0,h)}else if(c>0){var d=0;A.positiveZIndex.some((function(e,t){return c>=e.element.container.styles.zIndex.order?(d=t+1,!1):d>0})),A.positiveZIndex.splice(d,0,h)}else A.zeroOrAutoZIndexOrTransformedOrOpacity.push(h)}else r.styles.isFloating()?A.nonPositionedFloats.push(h):A.nonPositionedInlineLevel.push(h);pf(a,h,o?h:i,l)}else r.styles.isInlineLevel()?t.inlineLevel.push(a):t.nonInlineLevel.push(a),pf(a,t,i,l);Op(r.flags,8)&&gf(r,l)}))},gf=function(e,t){for(var i=e instanceof Og?e.start:1,s=e instanceof Og&&e.reversed,r=0;r0&&e.intrinsicHeight>0){var s=bf(e),r=nf(t);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(i,0,0,e.intrinsicWidth,e.intrinsicHeight,s.left,s.top,s.width,s.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return Kh(this,void 0,void 0,(function(){var i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v;return Xh(this,(function(b){switch(b.label){case 0:this.applyEffects(e.getEffects(4)),i=e.container,s=e.curves,r=i.styles,o=0,n=i.textNodes,b.label=1;case 1:return o0&&y>0&&(f=s.ctx.createPattern(p,"repeat"),s.renderRepeat(v,f,B,C))):function(e){return 2===e.type}(i)&&(_=xf(e,t,[null,null,null]),v=_[0],b=_[1],x=_[2],w=_[3],y=_[4],P=0===i.position.length?[Vu]:i.position,B=zu(P[0],w),C=zu(P[P.length-1],y),M=function(e,t,i,s,r){var o=0,n=0;switch(e.size){case 0:0===e.shape?o=n=Math.min(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.min(Math.abs(t),Math.abs(t-s)),n=Math.min(Math.abs(i),Math.abs(i-r)));break;case 2:if(0===e.shape)o=n=Math.min(cd(t,i),cd(t,i-r),cd(t-s,i),cd(t-s,i-r));else if(1===e.shape){var a=Math.min(Math.abs(i),Math.abs(i-r))/Math.min(Math.abs(t),Math.abs(t-s)),l=ud(s,r,t,i,!0),A=l[0],h=l[1];n=a*(o=cd(A-t,(h-i)/a))}break;case 1:0===e.shape?o=n=Math.max(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.max(Math.abs(t),Math.abs(t-s)),n=Math.max(Math.abs(i),Math.abs(i-r)));break;case 3:if(0===e.shape)o=n=Math.max(cd(t,i),cd(t,i-r),cd(t-s,i),cd(t-s,i-r));else if(1===e.shape){a=Math.max(Math.abs(i),Math.abs(i-r))/Math.max(Math.abs(t),Math.abs(t-s));var c=ud(s,r,t,i,!1);A=c[0],h=c[1],n=a*(o=cd(A-t,(h-i)/a))}}return Array.isArray(e.size)&&(o=zu(e.size[0],s),n=2===e.size.length?zu(e.size[1],r):o),[o,n]}(i,B,C,w,y),E=M[0],F=M[1],E>0&&F>0&&(I=s.ctx.createRadialGradient(b+B,x+C,0,b+B,x+C,E),Ad(i.stops,2*E).forEach((function(e){return I.addColorStop(e.stop,Zu(e.color))})),s.path(v),s.ctx.fillStyle=I,E!==F?(D=e.bounds.left+.5*e.bounds.width,S=e.bounds.top+.5*e.bounds.height,R=1/(T=F/E),s.ctx.save(),s.ctx.translate(D,S),s.ctx.transform(1,0,0,T,0,0),s.ctx.translate(-D,-S),s.ctx.fillRect(b,R*(x-S)+S,w,y*R),s.ctx.restore()):s.ctx.fill())),L.label=6;case 6:return t--,[2]}}))},s=this,r=0,o=e.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return r0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,2)]:[3,11]:[3,13];case 4:return h.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,3)];case 6:return h.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,o,e.curves)];case 8:return h.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,o,e.curves)];case 10:h.sent(),h.label=11;case 11:o++,h.label=12;case 12:return n++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,t,i,s,r){return Kh(this,void 0,void 0,(function(){var o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b;return Xh(this,(function(x){return this.ctx.save(),o=function(e,t){switch(t){case 0:return ff(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return ff(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return ff(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return ff(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(s,i),n=mf(s,i),2===r&&(this.path(n),this.ctx.clip()),tf(n[0])?(a=n[0].start.x,l=n[0].start.y):(a=n[0].x,l=n[0].y),tf(n[1])?(A=n[1].end.x,h=n[1].end.y):(A=n[1].x,h=n[1].y),c=0===i||2===i?Math.abs(a-A):Math.abs(l-h),this.ctx.beginPath(),3===r?this.formatPath(o):this.formatPath(n.slice(0,2)),u=t<3?3*t:2*t,d=t<3?2*t:t,3===r&&(u=t,d=t),p=!0,c<=2*u?p=!1:c<=2*u+d?(u*=g=c/(2*u+d),d*=g):(m=Math.floor((c+d)/(u+d)),f=(c-m*u)/(m-1),d=(_=(c-(m+1)*u)/m)<=0||Math.abs(d-f){})),Xf(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){zf(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){zf(this.isRunning),this.isRunning=!1,this._reject(e)}}class qf{}const Zf=new Map;function Jf(e){zf(e.source&&!e.url||!e.source&&e.url);let t=Zf.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return $f((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),Zf.set(e.url,t)),e.source&&(t=$f(e.source),Zf.set(e.source,t))),zf(t),t}function $f(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function e_(e,t=!0,i){const s=i||new Set;if(e){if(t_(e))s.add(e);else if(t_(e.buffer))s.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const i in e)e_(e[i],t,s)}else;return void 0===i?Array.from(s):[]}function t_(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 i_=()=>{};class s_{static isSupported(){return"undefined"!=typeof Worker&&Gf||void 0!==typeof qf}constructor(e){Xf(this,"name",void 0),Xf(this,"source",void 0),Xf(this,"url",void 0),Xf(this,"terminated",!1),Xf(this,"worker",void 0),Xf(this,"onMessage",void 0),Xf(this,"onError",void 0),Xf(this,"_loadableURL","");const{name:t,source:i,url:s}=e;zf(i||s),this.name=t,this.source=i,this.url=s,this.onMessage=i_,this.onError=e=>console.log(e),this.worker=Gf?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=i_,this.onError=i_,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||e_(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=Jf({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 qf(t,{eval:!1})}else{if(!this.source)throw new Error("no worker");e=new qf(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 r_{static isSupported(){return s_.isSupported()}constructor(e){Xf(this,"name","unnamed"),Xf(this,"source",void 0),Xf(this,"url",void 0),Xf(this,"maxConcurrency",1),Xf(this,"maxMobileConcurrency",1),Xf(this,"onDebug",(()=>{})),Xf(this,"reuseWorkers",!0),Xf(this,"props",{}),Xf(this,"jobQueue",[]),Xf(this,"idleQueue",[]),Xf(this,"count",0),Xf(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,i)=>e.done(i)),i=((e,t)=>e.error(t))){const s=new Promise((s=>(this.jobQueue.push({name:e,onMessage:t,onError:i,onStart:s}),this)));return this._startQueuedJob(),await s}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 i=new Yf(t.name,e);e.onMessage=e=>t.onMessage(i,e.type,e.payload),e.onError=e=>t.onError(i,e),t.onStart(i);try{await i.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 n_{static isSupported(){return s_.isSupported()}static getWorkerFarm(e={}){return n_._workerFarm=n_._workerFarm||new n_({}),n_._workerFarm.setProps(e),n_._workerFarm}constructor(e){Xf(this,"props",void 0),Xf(this,"workerPools",new Map),this.props={...o_},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:i,url:s}=e;let r=this.workerPools.get(t);return r||(r=new r_({name:t,source:i,url:s}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}Xf(n_,"_workerFarm",void 0);const a_={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},l_=a_.window||a_.self||a_.global,A_=a_.process||{},h_="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source",c_=!("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,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}();class u_{constructor(e,t,i="sessionStorage"){this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),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 d_(e,t,i,s=600){const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}const p_={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 g_(e){return"string"==typeof e?p_[e.toUpperCase()]||p_.WHITE:e}function m_(e,t){if(!e)throw new Error(t||"Assertion failed")}function f_(){let e;if(c_&&l_.performance)e=l_.performance.now();else if(A_.hrtime){const t=A_.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}const __={debug:c_&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},v_={enabled:!0,level:0};function b_(){}const x_={},w_={once:!0};function y_(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}class P_{constructor({id:e}={id:""}){this.id=e,this.VERSION=h_,this._startTs=f_(),this._deltaTs=f_(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new u_("__probe-".concat(this.id,"__"),v_),this.userData={},this.timeStamp("".concat(this.id," started")),function(e,t=["constructor"]){const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].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((f_()-this._startTs).toPrecision(10))}getDelta(){return Number((f_()-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){m_(e,t)}warn(e){return this._getLogFunction(0,e,__.warn,arguments,w_)}error(e){return this._getLogFunction(0,e,__.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,__.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,__.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,__.debug||__.info,arguments,w_)}table(e,t,i){return t?this._getLogFunction(e,t,console.table||b_,i&&[i],{tag:y_(t)}):b_}image({logLevel:e,priority:t,image:i,message:s="",scale:r=1}){return this._shouldLog(e||t)?c_?function({image:e,message:t="",scale:i=1}){if("string"==typeof e){const s=new Image;return s.onload=()=>{const e=d_(s,t,i);console.log(...e)},s.src=e,b_}const s=e.nodeName||"";if("img"===s.toLowerCase())return console.log(...d_(e,t,i)),b_;if("canvas"===s.toLowerCase()){const s=new Image;return s.onload=()=>console.log(...d_(s,t,i)),s.src=e.toDataURL(),b_}return b_}({image:i,message:s,scale:r}):function({image:e,message:t="",scale:i=1}){let s=null;try{s=module.require("asciify-image")}catch(e){}if(s)return()=>s(e,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((e=>console.log(e)));return b_}({image:i,message:s,scale:r}):b_}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||b_)}group(e,t,i={collapsed:!1}){i=C_({logLevel:e,message:t,opts:i});const{collapsed:s}=i;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,i={}){return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||b_)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=B_(e)}_getLogFunction(e,t,i,s=[],r){if(this._shouldLog(e)){r=C_({logLevel:e,message:t,args:s,opts:r}),m_(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=f_();const o=r.tag||r.message;if(r.once){if(x_[o])return b_;x_[o]=f_()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e,t=8){const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).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}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return c_||"string"!=typeof e||(t&&(t=g_(t),e="[".concat(t,"m").concat(e,"")),i&&(t=g_(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return b_}}function B_(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 m_(Number.isFinite(t)&&t>=0),t}function C_(e){const{logLevel:t,message:i}=e;e.logLevel=B_(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(e.args=s,typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return m_("string"===r||"object"===r),Object.assign(e,e.opts)}P_.VERSION=h_,new P_({id:"loaders.gl"});function M_(){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,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}()}new class{constructor(){Xf(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)}};const E_={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},F_=E_.window||E_.self||E_.global,I_=E_.process||{},D_="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source";M_();class S_{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";Xf(this,"storage",void 0),Xf(this,"id",void 0),Xf(this,"config",{}),this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),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 T_(e,t,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600;const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}let R_;function L_(e){return"string"==typeof e?R_[e.toUpperCase()]||R_.WHITE:e}function U_(e,t){if(!e)throw new Error(t||"Assertion failed")}function k_(){let e;var t,i;if(M_&&"performance"in F_)e=null==F_||null===(t=F_.performance)||void 0===t||null===(i=t.now)||void 0===i?void 0:i.call(t);else if("hrtime"in I_){var s;const t=null==I_||null===(s=I_.hrtime)||void 0===s?void 0:s.call(I_);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"}(R_||(R_={}));const O_={debug:M_&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},N_={enabled:!0,level:0};function Q_(){}const V_={},j_={once:!0};class H_{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""};Xf(this,"id",void 0),Xf(this,"VERSION",D_),Xf(this,"_startTs",k_()),Xf(this,"_deltaTs",k_()),Xf(this,"_storage",void 0),Xf(this,"userData",{}),Xf(this,"LOG_THROTTLE_TIMEOUT",0),this.id=e,this._storage=new S_("__probe-".concat(this.id,"__"),N_),this.userData={},this.timeStamp("".concat(this.id," started")),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"];const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].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((k_()-this._startTs).toPrecision(10))}getDelta(){return Number((k_()-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){U_(e,t)}warn(e){return this._getLogFunction(0,e,O_.warn,arguments,j_)}error(e){return this._getLogFunction(0,e,O_.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,O_.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,O_.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r{const t=T_(e,i,s);console.log(...t)},e.src=t,Q_}const r=t.nodeName||"";if("img"===r.toLowerCase())return console.log(...T_(t,i,s)),Q_;if("canvas"===r.toLowerCase()){const e=new Image;return e.onload=()=>console.log(...T_(e,i,s)),e.src=t.toDataURL(),Q_}return Q_}({image:s,message:r,scale:o}):function(e){let{image:t,message:i="",scale:s=1}=e,r=null;try{r=module.require("asciify-image")}catch(e){}if(r)return()=>r(t,{fit:"box",width:"".concat(Math.round(80*s),"%")}).then((e=>console.log(e)));return Q_}({image:s,message:r,scale:o}):Q_}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||Q_)}group(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1};const s=G_({logLevel:e,message:t,opts:i}),{collapsed:r}=i;return s.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Q_)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=z_(e)}_getLogFunction(e,t,i,s,r){if(this._shouldLog(e)){r=G_({logLevel:e,message:t,args:s,opts:r}),U_(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=k_();const o=r.tag||r.message;if(r.once){if(V_[o])return Q_;V_[o]=k_()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).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}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return M_||"string"!=typeof e||(t&&(t=L_(t),e="[".concat(t,"m").concat(e,"")),i&&(t=L_(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return Q_}}function z_(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 U_(Number.isFinite(t)&&t>=0),t}function G_(e){const{logLevel:t,message:i}=e;e.logLevel=z_(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return U_("string"===r||"object"===r),Object.assign(e,{args:s},e.opts)}function W_(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}var K_,X_,Y_,q_,Z_,J_,$_,ev,tv;let iv;Xf(H_,"VERSION",D_),new H_({id:"loaders.gl"}),(tv=K_||(K_={}))[tv.NONE=0]="NONE",tv[tv.BASISLZ=1]="BASISLZ",tv[tv.ZSTD=2]="ZSTD",tv[tv.ZLIB=3]="ZLIB",function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(X_||(X_={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(Y_||(Y_={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}(q_||(q_={})),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"}(Z_||(Z_={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(J_||(J_={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}($_||($_={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(ev||(ev={})),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"}(iv||(iv={}));const sv={DEFAULT:{}};function rv(e,t,i={}){const s="lightgrey",r=i.hoverColor||"rgba(0,0,0,0.4)",o=i.textColor||"black",n=500,a=n+n/3,l=a/24,A=[{boundary:[6,6,6,6],color:i.frontColor||i.color||"#55FF55"},{boundary:[18,6,6,6],color:i.backColor||i.color||"#55FF55"},{boundary:[12,6,6,6],color:i.rightColor||i.color||"#FF5555"},{boundary:[0,6,6,6],color:i.leftColor||i.color||"#FF5555"},{boundary:[6,0,6,6],color:i.topColor||i.color||"#7777FF"},{boundary:[6,12,6,6],color:i.bottomColor||i.color||"#7777FF"}],h=[{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]}];i.frontColor||i.color,i.backColor||i.color,i.rightColor||i.color,i.leftColor||i.color,i.topColor||i.color,i.bottomColor||i.color;const c=[{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=h.length;e=r[0]*l&&t<=(r[0]+r[2])*l&&i>=r[1]*l&&i<=(r[1]+r[3])*l)return s}}return-1},this.setAreaHighlighted=function(e,t){var i=d[e];if(!i)throw"Area not found: "+e;i.highlighted=!!t,m()},this.getAreaDir=function(e){var t=d[e];if(!t)throw"Unknown area: "+e;return t.dir},this.getAreaUp=function(e){var t=d[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 ov=u.vec3(),nv=u.vec3();u.mat4();class av extends N{constructor(e,t={}){super("NavCube",e,t),e.navCube=this;try{this._navCubeScene=new Yt(e,{canvasId:t.canvasId,canvasElement:t.canvasElement,transparent:!0}),this._navCubeCanvas=this._navCubeScene.canvas.canvas,this._navCubeScene.input.keyboardEnabled=!1}catch(e){return void this.error(e)}const i=this._navCubeScene;i.clearLights(),new _t(i,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new _t(i,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new _t(i,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._navCubeCamera=i.camera,this._navCubeCamera.ortho.scale=7,this._navCubeCamera.ortho.near=.1,this._navCubeCamera.ortho.far=2e3,i.edgeMaterial.edgeColor=[.2,.2,.2],i.edgeMaterial.edgeAlpha=.6,this._zUp=Boolean(e.camera.zUp);var s=this;this.setIsProjectNorth(t.isProjectNorth),this.setProjectNorthOffsetAngle(t.projectNorthOffsetAngle);const r=function(){const e=u.mat4();return function(t,i,r){return u.identityMat4(e),u.rotationMat4v(t*s._projectNorthOffsetAngle*u.DEGTORAD,[0,1,0],e),u.transformVec3(e,i,r)}}();this._synchCamera=function(){var t=u.rotationMat4c(-90*u.DEGTORAD,1,0,0),i=u.vec3(),o=u.vec3(),n=u.vec3();return function(){var a=e.camera.eye,l=e.camera.look,A=e.camera.up;i=u.mulVec3Scalar(u.normalizeVec3(u.subVec3(a,l,i)),5),s._isProjectNorth&&s._projectNorthOffsetAngle&&(i=r(-1,i,ov),A=r(-1,A,nv)),s._zUp?(u.transformVec3(t,i,o),u.transformVec3(t,A,n),s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=u.transformVec3(t,i,o),s._navCubeCamera.up=u.transformPoint3(t,A,n)):(s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=i,s._navCubeCamera.up=A)}}(),this._cubeTextureCanvas=new rv(e,i,t),this._cubeSampler=new As(i,{image:this._cubeTextureCanvas.getImage(),flipY:!0,wrapS:1001,wrapT:1001}),this._cubeMesh=new Qi(i,{geometry:new Dt(i,{primitive:"triangles",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],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]}),material:new Ut(i,{diffuse:[.4,.4,.4],specular:[.4,.4,.4],emissive:[.6,.6,.6],diffuseMap:this._cubeSampler,emissiveMap:this._cubeSampler}),visible:!0,edges:!0}),this._shadow=!1===t.shadowVisible?null:new Qi(i,{geometry:new Dt(i,ji({center:[0,0,0],radiusTop:.001,radiusBottom:1.4,height:.01,radialSegments:20,heightSegments:1,openEnded:!0})),material:new Ut(i,{diffuse:[0,0,0],specular:[0,0,0],emissive:[0,0,0],alpha:.5}),position:[0,-1.5,0],visible:!0,pickable:!1,backfaces:!1}),this._onCameraMatrix=e.camera.on("matrix",this._synchCamera),this._onCameraWorldAxis=e.camera.on("worldAxis",(()=>{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 o=-1;function n(e){var t=[0,0];if(e){for(var i=e.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;t[0]=e.pageX-s,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var a,l,A=null,h=null,c=!1,d=!1,p=.5;s._navCubeCanvas.addEventListener("mouseenter",s._onMouseEnter=function(e){d=!0}),s._navCubeCanvas.addEventListener("mouseleave",s._onMouseLeave=function(e){d=!1}),s._navCubeCanvas.addEventListener("mousedown",s._onMouseDown=function(e){if(1===e.which){A=e.x,h=e.y,a=e.clientX,l=e.clientY;var t=n(e),s=i.pick({canvasPos:t});c=!!s}}),document.addEventListener("mouseup",s._onMouseUp=function(e){if(1===e.which&&(c=!1,null!==A)){var t=n(e),a=i.pick({canvasPos:t,pickSurface:!0});if(a&&a.uv){var l=s._cubeTextureCanvas.getArea(a.uv);if(l>=0&&(document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0)){if(s._cubeTextureCanvas.setAreaHighlighted(l,!0),o=l,s._repaint(),e.xA+3||e.yh+3)return;var u=s._cubeTextureCanvas.getAreaDir(l);if(u){var d=s._cubeTextureCanvas.getAreaUp(l);s._isProjectNorth&&s._projectNorthOffsetAngle&&(u=r(1,u,ov),d=r(1,d,nv)),g(u,d,(function(){o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0&&(s._cubeTextureCanvas.setAreaHighlighted(l,!1),o=-1,s._repaint())}))}}}}}),document.addEventListener("mousemove",s._onMouseMove=function(t){if(o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),1!==t.buttons||c){if(c){var r=t.clientX,A=t.clientY;return document.body.style.cursor="move",void function(t,i){var s=(t-a)*-p,r=(i-l)*-p;e.camera.orbitYaw(s),e.camera.orbitPitch(-r),a=t,l=i}(r,A)}if(d){var h=n(t),u=i.pick({canvasPos:h,pickSurface:!0});if(u){if(u.uv){document.body.style.cursor="pointer";var g=s._cubeTextureCanvas.getArea(u.uv);if(g===o)return;o>=0&&s._cubeTextureCanvas.setAreaHighlighted(o,!1),g>=0&&(s._cubeTextureCanvas.setAreaHighlighted(g,!0),s._repaint(),o=g)}}else document.body.style.cursor="default",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1)}}});var g=function(){var t=u.vec3();return function(i,r,o){var n=s._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,a=u.getAABB3Diag(n);u.getAABB3Center(n,t);var l=Math.abs(a/Math.tan(s._cameraFitFOV*u.DEGTORAD));e.cameraControl.pivotPos=t,s._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV,duration:s._cameraFlyDuration},o):e.cameraFlight.jumpTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV},o)}}();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()}}u.vec3();const lv=new Float64Array([0,0,1]),Av=new Float64Array(4);class hv{constructor(e){this.id=null,this._viewer=e.viewer,this._visible=!1,this._pos=u.vec3(),this._origin=u.vec3(),this._rtcPos=u.vec3(),this._baseDir=u.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=u.vec3PairToQuaternion(lv,e,Av)}_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,i=.01;this._rootNode=new es(t,{position:[0,0,0],scale:[5,5,5]});const s=this._rootNode,r={arrowHead:new Dt(s,ji({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new Dt(s,ji({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),arrowHeadHandle:new Dt(s,ji({radiusTop:.09,radiusBottom:.09,radialSegments:8,heightSegments:1,height:.37,openEnded:!1})),curve:new Dt(s,gs({radius:.8,tube:i,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),curveHandle:new Dt(s,gs({radius:.8,tube:.06,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),hoop:new Dt(s,gs({radius:.8,tube:i,radialSegments:64,tubeSegments:8,arc:2*Math.PI})),axis:new Dt(s,ji({radiusTop:i,radiusBottom:i,radialSegments:20,heightSegments:1,height:1,openEnded:!1})),axisHandle:new Dt(s,ji({radiusTop:.08,radiusBottom:.08,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},o={pickable:new Ut(s,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),red:new Ut(s,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Ot(s,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6}),green:new Ut(s,{diffuse:[0,1,0],emissive:[0,1,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightGreen:new Ot(s,{edges:!1,fill:!0,fillColor:[0,1,0],fillAlpha:.6}),blue:new Ut(s,{diffuse:[0,0,1],emissive:[0,0,1],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightBlue:new Ot(s,{edges:!1,fill:!0,fillColor:[0,0,1],fillAlpha:.2}),center:new Ut(s,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),highlightBall:new Ot(s,{edges:!1,fill:!0,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1}),highlightPlane:new Ot(s,{edges:!0,edgeWidth:3,fill:!1,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1})};this._displayMeshes={plane:s.addChild(new Qi(s,{geometry:new Dt(s,{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 Ut(s,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new Ot(s,{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:s.addChild(new Qi(s,{geometry:new Dt(s,gs({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ut(s,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new Ot(s,{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:s.addChild(new Qi(s,{geometry:r.curve,material:o.red,matrix:function(){const e=u.rotationMat4v(90*u.DEGTORAD,[0,1,0],u.identityMat4()),t=u.rotationMat4v(270*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveHandle:s.addChild(new Qi(s,{geometry:r.curveHandle,material:o.pickable,matrix:function(){const e=u.rotationMat4v(90*u.DEGTORAD,[0,1,0],u.identityMat4()),t=u.rotationMat4v(270*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveArrow1:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=u.translateMat4c(0,-.07,-.8,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(0*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xCurveArrow2:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=u.translateMat4c(0,-.8,-.07,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurve:s.addChild(new Qi(s,{geometry:r.curve,material:o.green,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveHandle:s.addChild(new Qi(s,{geometry:r.curveHandle,material:o.pickable,rotation:[-90,0,0],pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveArrow1:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=u.translateMat4c(.07,0,-.8,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurveArrow2:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=u.translateMat4c(.8,0,-.07,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurve:s.addChild(new Qi(s,{geometry:r.curve,material:o.blue,matrix:u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4()),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zCurveHandle:s.addChild(new Qi(s,{geometry:r.curveHandle,material:o.pickable,matrix:u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4()),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveCurveArrow1:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=u.translateMat4c(.8,-.07,0,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4());return u.mulMat4(e,t,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveArrow2:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=u.translateMat4c(.05,-.8,0,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),center:s.addChild(new Qi(s,{geometry:new Dt(s,Hi({radius:.05})),material:o.center,pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrowHandle:s.addChild(new Qi(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xAxis:s.addChild(new Qi(s,{geometry:r.axis,material:o.red,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisHandle:s.addChild(new Qi(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrowHandle:s.addChild(new Qi(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,opacity:.2}),e),yShaft:s.addChild(new Qi(s,{geometry:r.axis,material:o.green,position:[0,-.5,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yShaftHandle:s.addChild(new Qi(s,{geometry:r.axisHandle,material:o.pickable,position:[0,-.5,0],pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[.8,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrowHandle:s.addChild(new Qi(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[.8,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zShaft:s.addChild(new Qi(s,{geometry:r.axis,material:o.blue,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1}),e),zAxisHandle:s.addChild(new Qi(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),clippable:!1,pickable:!0,collidable:!0,visible:!1}),e)},this._affordanceMeshes={planeFrame:s.addChild(new Qi(s,{geometry:new Dt(s,gs({center:[0,0,0],radius:2,tube:i,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ut(s,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Ot(s,{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:s.addChild(new Qi(s,{geometry:r.hoop,material:o.red,highlighted:!0,highlightMaterial:o.highlightRed,matrix:function(){const e=u.rotationMat4v(90*u.DEGTORAD,[0,1,0],u.identityMat4()),t=u.rotationMat4v(270*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yHoop:s.addChild(new Qi(s,{geometry:r.hoop,material:o.green,highlighted:!0,highlightMaterial:o.highlightGreen,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zHoop:s.addChild(new Qi(s,{geometry:r.hoop,material:o.blue,highlighted:!0,highlightMaterial:o.highlightBlue,matrix:u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4()),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHeadBig,material:o.red,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHeadBig,material:o.green,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHeadBig,material:o.blue,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[.8,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e)}}_bindEvents(){const e=this;var t=!1;const i=-1,s=0,r=1,o=2,n=3,a=4,l=5,A=this._rootNode;var h=null,c=null;const d=u.vec2(),p=u.vec3([1,0,0]),g=u.vec3([0,1,0]),m=u.vec3([0,0,1]),f=this._viewer.scene.canvas.canvas,_=this._viewer.camera,v=this._viewer.scene;{const e=u.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 i=Math.abs(u.lenVec3(u.subVec3(v.camera.eye,this._pos,e)));if(i!==t&&"perspective"===_.projection){const e=.07*(Math.tan(_.perspective.fov*u.DEGTORAD)*i);A.scale=[e,e,e],t=i}if("ortho"===_.projection){const e=_.ortho.scale/10;A.scale=[e,e,e],t=i}}))}const b=function(){const e=new Float64Array(2);return function(t){if(t){for(var i=t.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;e[0]=t.pageX-s,e[1]=t.pageY-r}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),x=function(){const t=u.mat4();return function(i,s){return u.quaternionToMat4(e._rootNode.quaternion,t),u.transformVec3(t,i,s),u.normalizeVec3(s),s}}();var w=function(){const e=u.vec3();return function(t){const i=Math.abs(t[0]);return i>Math.abs(t[1])&&i>Math.abs(t[2])?u.cross3Vec3(t,[0,1,0],e):u.cross3Vec3(t,[1,0,0],e),u.cross3Vec3(e,t,e),u.normalizeVec3(e),e}}();const y=function(){const t=u.vec3(),i=u.vec3(),s=u.vec4();return function(r,o,n){x(r,s);const a=w(s,o,n);B(o,a,t),B(n,a,i),u.subVec3(i,t);const l=u.dotVec3(i,s);e._pos[0]+=s[0]*l,e._pos[1]+=s[1]*l,e._pos[2]+=s[2]*l,e._rootNode.position=e._pos,e._sectionPlane&&(e._sectionPlane.pos=e._pos)}}();var P=function(){const t=u.vec4(),i=u.vec4(),s=u.vec4(),r=u.vec4();return function(o,n,a){x(o,r);if(!(B(n,r,t)&&B(a,r,i))){const e=w(r,n,a);B(n,e,t,1),B(a,e,i,1);var l=u.dotVec3(t,r);t[0]-=l*r[0],t[1]-=l*r[1],t[2]-=l*r[2],l=u.dotVec3(i,r),i[0]-=l*r[0],i[1]-=l*r[1],i[2]-=l*r[2]}u.normalizeVec3(t),u.normalizeVec3(i),l=u.dotVec3(t,i),l=u.clamp(l,-1,1);var A=Math.acos(l)*u.RADTODEG;u.cross3Vec3(t,i,s),u.dotVec3(s,r)<0&&(A=-A),e._rootNode.rotate(o,A),C()}}(),B=function(){const t=u.vec4([0,0,0,1]),i=u.mat4();return function(s,r,o,n){n=n||0,t[0]=s[0]/f.width*2-1,t[1]=-(s[1]/f.height*2-1),t[2]=0,t[3]=1,u.mulMat4(_.projMatrix,_.viewMatrix,i),u.inverseMat4(i),u.transformVec4(i,t,t),u.mulVec4Scalar(t,1/t[3]);var a=_.eye;u.subVec4(t,a,t);const l=e._sectionPlane.pos;var A=-u.dotVec3(l,r)-n,h=u.dotVec3(r,t);if(Math.abs(h)>.005){var c=-(u.dotVec3(r,a)+A)/h;return u.mulVec3Scalar(t,c,o),u.addVec3(o,a),u.subVec3(o,l,o),!0}return!1}}();const C=function(){const t=u.vec3(),i=u.mat4();return function(){e.sectionPlane&&(u.quaternionToMat4(A.quaternion,i),u.transformVec3(i,[0,0,1],t),e._setSectionPlaneDir(t))}}();var M,E=!1;this._onCameraControlHover=this._viewer.cameraControl.on("hoverEnter",(e=>{if(!this._visible)return;if(E)return;var A;t=!1,M&&(M.visible=!1);switch(e.entity.id){case this._displayMeshes.xAxisArrowHandle.id:case this._displayMeshes.xAxisHandle.id:A=this._affordanceMeshes.xAxisArrow,h=s;break;case this._displayMeshes.yAxisArrowHandle.id:case this._displayMeshes.yShaftHandle.id:A=this._affordanceMeshes.yAxisArrow,h=r;break;case this._displayMeshes.zAxisArrowHandle.id:case this._displayMeshes.zAxisHandle.id:A=this._affordanceMeshes.zAxisArrow,h=o;break;case this._displayMeshes.xCurveHandle.id:A=this._affordanceMeshes.xHoop,h=n;break;case this._displayMeshes.yCurveHandle.id:A=this._affordanceMeshes.yHoop,h=a;break;case this._displayMeshes.zCurveHandle.id:A=this._affordanceMeshes.zHoop,h=l;break;default:return void(h=i)}A&&(A.visible=!0),M=A,t=!0})),this._onCameraControlHoverLeave=this._viewer.cameraControl.on("hoverOutEntity",(e=>{this._visible&&(M&&(M.visible=!1),M=null,h=i)})),f.addEventListener("mousedown",this._canvasMouseDownListener=e=>{if(e.preventDefault(),this._visible&&t&&(this._viewer.cameraControl.pointerEnabled=!1,1===e.which)){E=!0;var i=b(e);c=h,d[0]=i[0],d[1]=i[1]}}),f.addEventListener("mousemove",this._canvasMouseMoveListener=e=>{if(!this._visible)return;if(!E)return;var t=b(e);const i=t[0],A=t[1];switch(c){case s:y(p,d,t);break;case r:y(g,d,t);break;case o:y(m,d,t);break;case n:P(p,d,t);break;case a:P(g,d,t);break;case l:P(m,d,t)}d[0]=i,d[1]=A}),f.addEventListener("mouseup",this._canvasMouseUpListener=e=>{this._visible&&(this._viewer.cameraControl.pointerEnabled=!0,E&&(e.which,E=!1,t=!1))}),f.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,i=t.canvas.canvas,s=e.camera,r=e.cameraControl;t.off(this._onSceneTick),i.removeEventListener("mousedown",this._canvasMouseDownListener),i.removeEventListener("mousemove",this._canvasMouseMoveListener),i.removeEventListener("mouseup",this._canvasMouseUpListener),i.removeEventListener("wheel",this._canvasWheelListener),s.off(this._onCameraViewMatrix),s.off(this._onCameraProjMatrix),r.off(this._onCameraControlHover),r.off(this._onCameraControlHoverLeave)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class cv{constructor(e,t,i){this.id=i.id,this._sectionPlane=i,this._mesh=new Qi(t,{id:i.id,geometry:new Dt(t,St({xSize:.5,ySize:.5,zSize:.001})),material:new Ut(t,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new Qt(t,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new Ot(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Ot(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=u.vec3([0,0,0]),t=u.vec3(),i=u.vec3([0,0,1]),s=u.vec4(4),r=u.vec3(),o=()=>{const o=this._sectionPlane.scene.center,n=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];u.subVec3(o,this._sectionPlane.pos,e);const a=-u.dotVec3(n,e);u.normalizeVec3(n),u.mulVec3Scalar(n,a,t);const l=u.vec3PairToQuaternion(i,this._sectionPlane.dir,s);r[0]=.1*t[0],r[1]=.1*t[1],r[2]=.1*t[2],this._mesh.quaternion=l,this._mesh.position=r};this._onSectionPlanePos=this._sectionPlane.on("pos",o),this._onSectionPlaneDir=this._sectionPlane.on("dir",o)}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 uv{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 Yt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new _t(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new _t(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new _t(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=u.rotationMat4c(-90*u.DEGTORAD,1,0,0),i=u.vec3(),s=u.vec3(),r=u.vec3();this._synchCamera=()=>{const o=this._viewer.camera.eye,n=this._viewer.camera.look,a=this._viewer.camera.up;u.mulVec3Scalar(u.normalizeVec3(u.subVec3(o,n,i)),7),this._zUp?(u.transformVec3(t,i,s),u.transformVec3(t,a,r),e.look=[0,0,0],e.eye=u.transformVec3(t,i,s),e.up=u.transformPoint3(t,a,r)):(e.look=[0,0,0],e.eye=i,e.up=a)}}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 i=null;this._onInputMouseMove=this._scene.input.on("mousemove",(e=>{const t=this._scene.pick({canvasPos:e});if(t){if(!i||t.entity.id!==i.id){if(i){this._planes[i.id]&&this._onHoverLeavePlane(i.id)}i=t.entity;this._planes[i.id]&&this._onHoverEnterPlane(i.id)}}else i&&(this._onHoverLeavePlane(i.id),i=null)})),this._scene.canvas.canvas.addEventListener("mouseup",this._onCanvasMouseUp=()=>{if(i){this._planes[i.id]&&this._onClickedPlane(i.id)}else this._onClickedNothing()}),this._scene.canvas.canvas.addEventListener("mouseout",this._onCanvasMouseOut=()=>{i&&(this._onHoverLeavePlane(i.id),i=null)}),this.setVisible(t.overviewVisible)}addSectionPlane(e){this._planes[e.id]=new cv(this,this._scene,e)}setPlaneHighlighted(e,t){const i=this._planes[e];i&&i.setHighlighted(t)}setPlaneSelected(e,t){const i=this._planes[e];i&&i.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 dv=u.AABB3(),pv=u.vec3();class gv extends N{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 uv(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;dv.set(this.viewer.scene.aabb),u.getAABB3Center(dv,pv),dv[0]+=t[0]-pv[0],dv[1]+=t[1]-pv[1],dv[2]+=t[2]-pv[2],dv[3]+=t[0]-pv[0],dv[4]+=t[1]-pv[1],dv[5]+=t[2]-pv[2],this.viewer.cameraFlight.flyTo({aabb:dv,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 zi(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 hv(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,i=e.length;t0){const i=document.createElement("a");i.href="#",i.id=`switch-${e.nodeId}`,i.textContent="+",i.classList.add("plus"),t&&i.addEventListener("click",t),o.appendChild(i)}const n=document.createElement("input");n.id=`checkbox-${e.nodeId}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",i&&n.addEventListener("change",i),o.appendChild(n);const a=document.createElement("span");return a.textContent=e.title,o.appendChild(a),s&&(a.oncontextmenu=s),r&&(a.onclick=r),o}createDisabledNodeElement(e){const t=document.createElement("li"),i=document.createElement("a");i.href="#",i.textContent="!",i.classList.add("warn"),i.classList.add("warning"),t.appendChild(i);const s=document.createElement("span");return s.textContent=e,t.appendChild(s),t}addChildren(e,t){const i=document.createElement("ul");t.forEach((e=>{i.appendChild(e)})),e.parentElement.appendChild(i)}expand(e,t,i){e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",t),e.addEventListener("click",i)}collapse(e,t,i){if(!e)return;const s=e.parentElement;if(!s)return;const r=s.querySelector("ul");r&&(s.removeChild(r),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",i),e.addEventListener("click",t))}isExpanded(e){return void 0!==e.parentElement.getElementsByTagName("li")[0]}getId(e){return e.parentElement.id}getIdFromCheckbox(e){return e.id.replace("checkbox-","")}getSwitchElement(e){return document.getElementById(`switch-${e}`)}isChecked(e){return e.checked}setCheckbox(e,t){const i=document.getElementById(`checkbox-${e}`);i&&t!==i.checked&&(i.checked=t)}setXRayed(e,t){const i=document.getElementById(e);i&&(t?i.classList.add("xrayed-node"):i.classList.remove("xrayed-node"))}setHighlighted(e,t){const i=document.getElementById(e);i&&(t?(i.scrollIntoView({block:"center"}),i.classList.add("highlighted-node")):i.classList.remove("highlighted-node"))}}const fv=[];class _v extends N{constructor(e,t={}){super("TreeViewPlugin",e),this.errors=[],this.valid=!0;const i=t.containerElement||document.getElementById(t.containerElementId);if(i instanceof HTMLElement){for(let e=0;;e++)if(!fv[e]){fv[e]=this,this._index=e,this._id=`tree-${e}`;break}if(this._containerElement=i,this._metaModels={},this._autoAddModels=!1!==t.autoAddModels,this._autoExpandDepth=t.autoExpandDepth||0,this._sortNodes=!1!==t.sortNodes,this._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootNames={},this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._renderService=t.renderService||new mv,!this._renderService)throw new Error("TreeViewPlugin: no render service set");if(this._containerElement.oncontextmenu=e=>{e.preventDefault()},this._onObjectVisibility=this._viewer.scene.on("objectVisibility",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;const s=e.visible;if(!(s!==i.checked))return;this._muteTreeEvents=!0,i.checked=s,s?i.numVisibleEntities++:i.numVisibleEntities--,this._renderService.setCheckbox(i.nodeId,s);let r=i.parent;for(;r;)r.checked=s,s?r.numVisibleEntities++:r.numVisibleEntities--,this._renderService.setCheckbox(r.nodeId,r.numVisibleEntities>0),r=r.parent;this._muteTreeEvents=!1})),this._onObjectXrayed=this._viewer.scene.on("objectXRayed",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;this._muteTreeEvents=!0;const s=e.xrayed;s!==i.xrayed&&(i.xrayed=s,this._renderService.setXRayed(i.nodeId,s),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,i=this._renderService.isChecked(t),s=this._renderService.getIdFromCheckbox(t),r=this._nodeNodes[s],o=this._viewer.scene.objects;let n=0;this._withNodeTree(r,(e=>{const t=e.objectId,s=o[t],r=0===e.children.length;e.numVisibleEntities=i?e.numEntities:0,r&&i!==e.checked&&n++,e.checked=i,this._renderService.setCheckbox(e.nodeId,i),s&&(s.visible=i)}));let a=r.parent;for(;a;)a.checked=i,i?a.numVisibleEntities+=n:a.numVisibleEntities-=n,this._renderService.setCheckbox(a.nodeId,a.numVisibleEntities>0),a=a.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,i=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 i=this.viewer.scene.models[e];if(!i)throw"Model not found: "+e;const s=this.viewer.metaScene.metaModels[e];s?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=s,t&&t.rootName&&(this._rootNames[e]=t.rootName),i.on("destroyed",(()=>{this.removeModel(i.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(this._rootNames[e]&&delete this._rootNames[e],delete this._metaModels[e],this._createNodes())}showNode(e){this.unShowNode();const t=this._objectNodes[e];if(!t)return;const i=t.nodeId,s=this._renderService.getSwitchElement(i);if(s)return this._expandSwitchElement(s),s.scrollIntoView(),!0;const r=[];r.unshift(t);let o=t.parent;for(;o;)r.unshift(o),o=o.parent;for(let e=0,t=r.length;e{if(s===e)return;const r=this._renderService.getSwitchElement(i.nodeId);if(r){this._expandSwitchElement(r);const e=i.children;for(var o=0,n=e.length;o0;return this.valid}_validateMetaModelForStoreysHierarchy(e=0,t,i){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=this._renderService.createRootNode();this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let i in t){const s=t[i],r=s.type,o=s.name,n=o&&""!==o&&"Undefined"!==o&&"Default"!==o?o:r,a=this._renderService.createDisabledNodeElement(n);e.appendChild(a)}}_findEmptyNodes(){const e=this._viewer.metaScene.rootMetaObjects;for(let t in e)this._findEmptyNodes2(e[t])}_findEmptyNodes2(e,t=0){const i=this.viewer.scene,s=e.children,r=e.id,o=i.objects[r];if(e._countEntities=0,o&&e._countEntities++,s)for(let t=0,i=s.length;t{e.aabb&&r.aabb||(e.aabb||(e.aabb=t.getAABB(s.getObjectIDsInSubtree(e.objectId))),r.aabb||(r.aabb=t.getAABB(s.getObjectIDsInSubtree(r.objectId))));let o=0;return o=i.xUp?0:i.yUp?1:2,e.aabb[o]>r.aabb[o]?-1:e.aabb[o]s?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,i=this._viewer.scene.objects;for(let s=0,r=e.length;sthis._createNodeElement(e))),t=this._renderService.createRootNode();e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){return this._renderService.createNodeElement(e,this._switchExpandHandler,this._checkboxChangeHandler,(t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}),(t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}))}_expandSwitchElement(e){if(this._renderService.isExpanded(e))return;const t=this._renderService.getId(e),i=this._nodeNodes[t].children.map((e=>this._createNodeElement(e)));this._renderService.addChildren(e,i),this._renderService.expand(e,this._switchExpandHandler,this._switchCollapseHandler)}_collapseNode(e){const t=this._renderService.getSwitchElement(e);this._collapseSwitchElement(t)}_collapseSwitchElement(e){this._renderService.collapse(e,this._switchExpandHandler,this._switchCollapseHandler)}}class vv{constructor(){}getManifest(e,t,i){f.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getMetaModel(e,t,i){f.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getXKT(e,t,i){var s=()=>{};t=t||s,i=i||s;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),i=new Uint8Array(e);for(var n=0;n=0;)e[t]=0}const i=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]),s=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]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),o=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),n=new Array(576);t(n);const a=new Array(60);t(a);const l=new Array(512);t(l);const A=new Array(256);t(A);const h=new Array(29);t(h);const c=new Array(30);function u(e,t,i,s,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=s,this.max_length=r,this.has_stree=e&&e.length}let d,p,g;function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(c);const f=e=>e<256?l[e]:l[256+(e>>>7)],_=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<{v(e,i[2*t],i[2*t+1])},x=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},w=(e,t,i)=>{const s=new Array(16);let r,o,n=0;for(r=1;r<=15;r++)n=n+i[r-1]<<1,s[r]=n;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=x(s[t]++,t))}},y=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},P=e=>{e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},B=(e,t,i,s)=>{const r=2*t,o=2*i;return e[r]{const s=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r{let o,n,a,l,u=0;if(0!==e.sym_next)do{o=255&e.pending_buf[e.sym_buf+u++],o+=(255&e.pending_buf[e.sym_buf+u++])<<8,n=e.pending_buf[e.sym_buf+u++],0===o?b(e,n,t):(a=A[n],b(e,a+256+1,t),l=i[a],0!==l&&(n-=h[a],v(e,n,l)),o--,a=f(o),b(e,a,r),l=s[a],0!==l&&(o-=c[a],v(e,o,l)))}while(u{const i=t.dyn_tree,s=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let n,a,l,A=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)C(e,i,n);l=o;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],C(e,i,1),a=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=a,i[2*l]=i[2*n]+i[2*a],e.depth[l]=(e.depth[n]>=e.depth[a]?e.depth[n]:e.depth[a])+1,i[2*n+1]=i[2*a+1]=l,e.heap[1]=l++,C(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,s=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let A,h,c,u,d,p,g=0;for(u=0;u<=15;u++)e.bl_count[u]=0;for(i[2*e.heap[e.heap_max]+1]=0,A=e.heap_max+1;A<573;A++)h=e.heap[A],u=i[2*i[2*h+1]+1]+1,u>l&&(u=l,g++),i[2*h+1]=u,h>s||(e.bl_count[u]++,d=0,h>=a&&(d=n[h-a]),p=i[2*h],e.opt_len+=p*(u+d),o&&(e.static_len+=p*(r[2*h+1]+d)));if(0!==g){do{for(u=l-1;0===e.bl_count[u];)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(u=l;0!==u;u--)for(h=e.bl_count[u];0!==h;)c=e.heap[--A],c>s||(i[2*c+1]!==u&&(e.opt_len+=(u-i[2*c+1])*i[2*c],i[2*c+1]=u),h--)}})(e,t),w(i,A,e.bl_count)},F=(e,t,i)=>{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),t[2*(i+1)+1]=65535,s=0;s<=i;s++)r=n,n=t[2*(s+1)+1],++a{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),s=0;s<=i;s++)if(r=n,n=t[2*(s+1)+1],!(++a{v(e,0+(s?1:0),3),P(e),_(e,i),_(e,~i),i&&e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i};var T={_tr_init:e=>{D||((()=>{let e,t,o,m,f;const _=new Array(16);for(o=0,m=0;m<28;m++)for(h[m]=o,e=0;e<1<>=7;m<30;m++)for(c[m]=f<<7,e=0;e<1<{let r,l,A=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&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)),E(e,e.l_desc),E(e,e.d_desc),A=(e=>{let t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),E(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=r&&(r=l)):r=l=i+5,i+4<=r&&-1!==t?S(e,t,i,s):4===e.strategy||l===r?(v(e,2+(s?1:0),3),M(e,n,a)):(v(e,4+(s?1:0),3),((e,t,i,s)=>{let r;for(v(e,t-257,5),v(e,i-1,5),v(e,s-4,4),r=0;r(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++]=i,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(A[i]+256+1)]++,e.dyn_dtree[2*f(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),b(e,256,n),(e=>{16===e.bi_valid?(_(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)}},R=(e,t,i,s)=>{let r=65535&e|0,o=e>>>16&65535|0,n=0;for(;0!==i;){n=i>2e3?2e3:i,i-=n;do{r=r+t[s++]|0,o=o+r|0}while(--n);r%=65521,o%=65521}return r|o<<16|0};const L=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var s=0;s<8;s++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var U=(e,t,i,s)=>{const r=L,o=s+i;e^=-1;for(let i=s;i>>8^r[255&(e^t[i])];return-1^e},k={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"},O={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:N,_tr_stored_block:Q,_tr_flush_block:V,_tr_tally:j,_tr_align:H}=T,{Z_NO_FLUSH:z,Z_PARTIAL_FLUSH:G,Z_FULL_FLUSH:W,Z_FINISH:K,Z_BLOCK:X,Z_OK:Y,Z_STREAM_END:q,Z_STREAM_ERROR:Z,Z_DATA_ERROR:J,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:ie,Z_RLE:se,Z_FIXED:re,Z_DEFAULT_STRATEGY:oe,Z_UNKNOWN:ne,Z_DEFLATED:ae}=O,le=258,Ae=262,he=42,ce=113,ue=666,de=(e,t)=>(e.msg=k[t],t),pe=e=>2*e-(e>4?9:0),ge=e=>{let t=e.length;for(;--t>=0;)e[t]=0},me=e=>{let t,i,s,r=e.w_size;t=e.hash_size,s=t;do{i=e.head[--s],e.head[s]=i>=r?i-r:0}while(--t);t=r,s=t;do{i=e.prev[--s],e.prev[s]=i>=r?i-r:0}while(--t)};let fe=(e,t,i)=>(t<{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},ve=(e,t)=>{V(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,_e(e.strm)},be=(e,t)=>{e.pending_buf[e.pending++]=t},xe=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},we=(e,t,i,s)=>{let r=e.avail_in;return r>s&&(r=s),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),1===e.state.wrap?e.adler=R(e.adler,t,r,i):2===e.state.wrap&&(e.adler=U(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},ye=(e,t)=>{let i,s,r=e.max_chain_length,o=e.strstart,n=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-Ae?e.strstart-(e.w_size-Ae):0,A=e.window,h=e.w_mask,c=e.prev,u=e.strstart+le;let d=A[o+n-1],p=A[o+n];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(i=t,A[i+n]===p&&A[i+n-1]===d&&A[i]===A[o]&&A[++i]===A[o+1]){o+=2,i++;do{}while(A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&on){if(e.match_start=t,n=s,s>=a)break;d=A[o+n-1],p=A[o+n]}}}while((t=c[t&h])>l&&0!=--r);return n<=e.lookahead?n:e.lookahead},Pe=e=>{const t=e.w_size;let i,s,r;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ae)&&(e.window.set(e.window.subarray(t,t+t-s),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),me(e),s+=t),0===e.strm.avail_in)break;if(i=we(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=i,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=fe(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=fe(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let i,s,r,o=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n=0,a=e.strm.avail_in;do{if(i=65535,r=e.bi_valid+42>>3,e.strm.avail_outs+e.strm.avail_in&&(i=s+e.strm.avail_in),i>r&&(i=r),i>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,_e(e.strm),s&&(s>i&&(s=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+s),e.strm.next_out),e.strm.next_out+=s,e.strm.avail_out-=s,e.strm.total_out+=s,e.block_start+=s,i-=s),i&&(we(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(0===n);return a-=e.strm.avail_in,a&&(a>=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<=a&&(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-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&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++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(we(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,o=r>e.w_size?e.w_size:r,s=e.strstart-e.block_start,(s>=o||(s||t===K)&&t!==z&&0===e.strm.avail_in&&s<=r)&&(i=s>r?r:s,n=t===K&&0===e.strm.avail_in&&i===s?1:0,Q(e,e.block_start,i,n),e.block_start+=i,_e(e.strm)),n?3:1)},Ce=(e,t)=>{let i,s;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-Ae&&(e.match_length=ye(e,i)),e.match_length>=3)if(s=j(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=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=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=fe(e,e.ins_h,e.window[e.strstart+1]);else s=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(s&&(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},Me=(e,t)=>{let i,s,r;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=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!==i&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,s=j(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=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++,s&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(s=j(e,0,e.window[e.strstart-1]),s&&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&&(s=j(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 Ee(e,t,i,s,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=s,this.func=r}const Fe=[new Ee(0,0,0,0,Be),new Ee(4,4,8,4,Ce),new Ee(4,5,16,8,Ce),new Ee(4,6,32,32,Ce),new Ee(4,4,16,16,Me),new Ee(8,16,32,32,Me),new Ee(8,16,128,128,Me),new Ee(8,32,128,256,Me),new Ee(32,128,258,1024,Me),new Ee(32,258,258,4096,Me)];function Ie(){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=ae,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),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(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),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ge(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 De=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==he&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==ce&&t.status!==ue?1:0},Se=e=>{if(De(e))return de(e,Z);e.total_in=e.total_out=0,e.data_type=ne;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?he:ce,e.adler=2===t.wrap?0:1,t.last_flush=-2,N(t),Y},Te=e=>{const t=Se(e);var i;return t===Y&&((i=e.state).window_size=2*i.w_size,ge(i.head),i.max_lazy_match=Fe[i.level].max_lazy,i.good_match=Fe[i.level].good_length,i.nice_match=Fe[i.level].nice_length,i.max_chain_length=Fe[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},Re=(e,t,i,s,r,o)=>{if(!e)return Z;let n=1;if(t===ee&&(t=6),s<0?(n=0,s=-s):s>15&&(n=2,s-=16),r<1||r>9||i!==ae||s<8||s>15||t<0||t>9||o<0||o>re||8===s&&1!==n)return de(e,Z);8===s&&(s=9);const a=new Ie;return e.state=a,a.strm=e,a.status=he,a.wrap=n,a.gzhead=null,a.w_bits=s,a.w_size=1<De(e)||2!==e.state.wrap?Z:(e.state.gzhead=t,Y),ke=(e,t)=>{if(De(e)||t>X||t<0)return e?de(e,Z):Z;const i=e.state;if(!e.output||0!==e.avail_in&&!e.input||i.status===ue&&t!==K)return de(e,0===e.avail_out?$:Z);const s=i.last_flush;if(i.last_flush=t,0!==i.pending){if(_e(e),0===e.avail_out)return i.last_flush=-1,Y}else if(0===e.avail_in&&pe(t)<=pe(s)&&t!==K)return de(e,$);if(i.status===ue&&0!==e.avail_in)return de(e,$);if(i.status===he&&0===i.wrap&&(i.status=ce),i.status===he){let t=ae+(i.w_bits-8<<4)<<8,s=-1;if(s=i.strategy>=ie||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=s<<6,0!==i.strstart&&(t|=32),t+=31-t%31,xe(i,t),0!==i.strstart&&(xe(i,e.adler>>>16),xe(i,65535&e.adler)),e.adler=1,i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(57===i.status)if(e.adler=0,be(i,31),be(i,139),be(i,8),i.gzhead)be(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),be(i,255&i.gzhead.time),be(i,i.gzhead.time>>8&255),be(i,i.gzhead.time>>16&255),be(i,i.gzhead.time>>24&255),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(be(i,255&i.gzhead.extra.length),be(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=U(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69;else if(be(i,0),be(i,0),be(i,0),be(i,0),be(i,0),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,3),i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y;if(69===i.status){if(i.gzhead.extra){let t=i.pending,s=(65535&i.gzhead.extra.length)-i.gzindex;for(;i.pending+s>i.pending_buf_size;){let r=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+r),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex+=r,_e(e),0!==i.pending)return i.last_flush=-1,Y;t=0,s-=r}let r=new Uint8Array(i.gzhead.extra);i.pending_buf.set(r.subarray(i.gzindex,i.gzindex+s),i.pending),i.pending+=s,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex=0}i.status=73}if(73===i.status){if(i.gzhead.name){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex=0}i.status=91}if(91===i.status){if(i.gzhead.comment){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s))}i.status=103}if(103===i.status){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(_e(e),0!==i.pending))return i.last_flush=-1,Y;be(i,255&e.adler),be(i,e.adler>>8&255),e.adler=0}if(i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(0!==e.avail_in||0!==i.lookahead||t!==z&&i.status!==ue){let s=0===i.level?Be(i,t):i.strategy===ie?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Pe(e),0===e.lookahead)){if(t===z)return 1;break}if(e.match_length=0,i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(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})(i,t):i.strategy===se?((e,t)=>{let i,s,r,o;const n=e.window;for(;;){if(e.lookahead<=le){if(Pe(e),e.lookahead<=le&&t===z)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,s=n[r],s===n[++r]&&s===n[++r]&&s===n[++r])){o=e.strstart+le;do{}while(s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=j(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(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})(i,t):Fe[i.level].func(i,t);if(3!==s&&4!==s||(i.status=ue),1===s||3===s)return 0===e.avail_out&&(i.last_flush=-1),Y;if(2===s&&(t===G?H(i):t!==X&&(Q(i,0,0,!1),t===W&&(ge(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),_e(e),0===e.avail_out))return i.last_flush=-1,Y}return t!==K?Y:i.wrap<=0?q:(2===i.wrap?(be(i,255&e.adler),be(i,e.adler>>8&255),be(i,e.adler>>16&255),be(i,e.adler>>24&255),be(i,255&e.total_in),be(i,e.total_in>>8&255),be(i,e.total_in>>16&255),be(i,e.total_in>>24&255)):(xe(i,e.adler>>>16),xe(i,65535&e.adler)),_e(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?Y:q)},Oe=e=>{if(De(e))return Z;const t=e.state.status;return e.state=null,t===ce?de(e,J):Y},Ne=(e,t)=>{let i=t.length;if(De(e))return Z;const s=e.state,r=s.wrap;if(2===r||1===r&&s.status!==he||s.lookahead)return Z;if(1===r&&(e.adler=R(e.adler,t,i,0)),s.wrap=0,i>=s.w_size){0===r&&(ge(s.head),s.strstart=0,s.block_start=0,s.insert=0);let e=new Uint8Array(s.w_size);e.set(t.subarray(i-s.w_size,i),0),t=e,i=s.w_size}const o=e.avail_in,n=e.next_in,a=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Pe(s);s.lookahead>=3;){let e=s.strstart,t=s.lookahead-2;do{s.ins_h=fe(s,s.ins_h,s.window[e+3-1]),s.prev[e&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=e,e++}while(--t);s.strstart=e,s.lookahead=2,Pe(s)}return s.strstart+=s.lookahead,s.block_start=s.strstart,s.insert=s.lookahead,s.lookahead=0,s.match_length=s.prev_length=2,s.match_available=0,e.next_in=n,e.input=a,e.avail_in=o,s.wrap=r,Y};const Qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Ve=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)Qe(i,t)&&(e[t]=i[t])}}return e},je=e=>{let t=0;for(let i=0,s=e.length;i=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Ge=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,s,r,o,n=e.length,a=0;for(r=0;r>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},We=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let s,r;const o=new Array(2*i);for(r=0,s=0;s4)o[r++]=65533,s+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&s1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&He)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let s=0;s{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+ze[e[i]]>t?i:t},Xe=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 Ye=Object.prototype.toString,{Z_NO_FLUSH:qe,Z_SYNC_FLUSH:Ze,Z_FULL_FLUSH:Je,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:it,Z_DEFAULT_STRATEGY:st,Z_DEFLATED:rt}=O;function ot(e){this.options=Ve({level:it,method:rt,chunkSize:16384,windowBits:15,memLevel:8,strategy:st},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 Xe,this.strm.avail_out=0;let i=Le(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==et)throw new Error(k[i]);if(t.header&&Ue(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Ge(t.dictionary):"[object ArrayBuffer]"===Ye.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=Ne(this.strm,e),i!==et)throw new Error(k[i]);this._dict_set=!0}}function nt(e,t){const i=new ot(t);if(i.push(e,!0),i.err)throw i.msg||k[i.err];return i.result}ot.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?$e:qe,"string"==typeof e?i.input=Ge(e):"[object ArrayBuffer]"===Ye.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),(o===Ze||o===Je)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=ke(i,o),r===tt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Oe(this.strm),this.onEnd(r),this.ended=!0,r===et;if(0!==i.avail_out){if(o>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},ot.prototype.onData=function(e){this.chunks.push(e)},ot.prototype.onEnd=function(e){e===et&&(this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var at={Deflate:ot,deflate:nt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,nt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,nt(e,t)},constants:O};const lt=16209;var At=function(e,t){let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P,B;const C=e.state;i=e.next_in,P=e.input,s=i+(e.avail_in-5),r=e.next_out,B=e.output,o=r-(t-e.avail_out),n=r+(e.avail_out-257),a=C.dmax,l=C.wsize,A=C.whave,h=C.wnext,c=C.window,u=C.hold,d=C.bits,p=C.lencode,g=C.distcode,m=(1<>>24,u>>>=v,d-=v,v=_>>>16&255,0===v)B[r++]=65535&_;else{if(!(16&v)){if(0==(64&v)){_=p[(65535&_)+(u&(1<>>=v,d-=v),d<15&&(u+=P[i++]<>>24,u>>>=v,d-=v,v=_>>>16&255,!(16&v)){if(0==(64&v)){_=g[(65535&_)+(u&(1<a){e.msg="invalid distance too far back",C.mode=lt;break e}if(u>>>=v,d-=v,v=r-o,x>v){if(v=x-v,v>A&&C.sane){e.msg="invalid distance too far back",C.mode=lt;break e}if(w=0,y=c,0===h){if(w+=l-v,v2;)B[r++]=y[w++],B[r++]=y[w++],B[r++]=y[w++],b-=3;b&&(B[r++]=y[w++],b>1&&(B[r++]=y[w++]))}else{w=r-x;do{B[r++]=B[w++],B[r++]=B[w++],B[r++]=B[w++],b-=3}while(b>2);b&&(B[r++]=B[w++],b>1&&(B[r++]=B[w++]))}break}}break}}while(i>3,i-=b,d-=b<<3,u&=(1<{const l=a.bits;let A,h,c,u,d,p,g=0,m=0,f=0,_=0,v=0,b=0,x=0,w=0,y=0,P=0,B=null;const C=new Uint16Array(16),M=new Uint16Array(16);let E,F,I,D=null;for(g=0;g<=15;g++)C[g]=0;for(m=0;m=1&&0===C[_];_--);if(v>_&&(v=_),0===_)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(f=1;f<_&&0===C[f];f++);for(v0&&(0===e||1!==_))return-1;for(M[1]=0,g=1;g<15;g++)M[g+1]=M[g]+C[g];for(m=0;m852||2===e&&y>592)return 1;for(;;){E=g-x,n[m]+1=p?(F=D[n[m]-p],I=B[n[m]-p]):(F=96,I=0),A=1<>x)+h]=E<<24|F<<16|I|0}while(0!==h);for(A=1<>=1;if(0!==A?(P&=A-1,P+=A):P=0,m++,0==--C[g]){if(g===_)break;g=t[i+n[m]]}if(g>v&&(P&u)!==c){for(0===x&&(x=v),d+=f,b=g-x,w=1<852||2===e&&y>592)return 1;c=P&u,r[c]=v<<24|b<<16|d-o|0}}return 0!==P&&(r[d+P]=g-x<<24|64<<16|0),a.bits=v,0};const{Z_FINISH:gt,Z_BLOCK:mt,Z_TREES:ft,Z_OK:_t,Z_STREAM_END:vt,Z_NEED_DICT:bt,Z_STREAM_ERROR:xt,Z_DATA_ERROR:wt,Z_MEM_ERROR:yt,Z_BUF_ERROR:Pt,Z_DEFLATED:Bt}=O,Ct=16180,Mt=16190,Et=16191,Ft=16192,It=16194,Dt=16199,St=16200,Tt=16206,Rt=16209,Lt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Ut(){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 kt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ot=e=>{if(kt(e))return xt;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=Ct,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,_t},Nt=e=>{if(kt(e))return xt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ot(e)},Qt=(e,t)=>{let i;if(kt(e))return xt;const s=e.state;return t<0?(i=0,t=-t):(i=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?xt:(null!==s.window&&s.wbits!==t&&(s.window=null),s.wrap=i,s.wbits=t,Nt(e))},Vt=(e,t)=>{if(!e)return xt;const i=new Ut;e.state=i,i.strm=e,i.window=null,i.mode=Ct;const s=Qt(e,t);return s!==_t&&(e.state=null),s};let jt,Ht,zt=!0;const Gt=e=>{if(zt){jt=new Int32Array(512),Ht=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(pt(1,e.lens,0,288,jt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pt(2,e.lens,0,32,Ht,0,e.work,{bits:5}),zt=!1}e.lencode=jt,e.lenbits=9,e.distcode=Ht,e.distbits=5},Wt=(e,t,i,s)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(i-o.wsize,i),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>s&&(r=s),o.window.set(t.subarray(i-s,i-s+r),o.wnext),(s-=r)?(o.window.set(t.subarray(i-s,i),0),o.wnext=s,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P=0;const B=new Uint8Array(4);let C,M;const E=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(kt(e)||!e.output||!e.input&&0!==e.avail_in)return xt;i=e.state,i.mode===Et&&(i.mode=Ft),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,c=a,u=l,y=_t;e:for(;;)switch(i.mode){case Ct:if(0===i.wrap){i.mode=Ft;break}for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0),A=0,h=0,i.mode=16181;break}if(i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&A)<<8)+(A>>8))%31){e.msg="incorrect header check",i.mode=Rt;break}if((15&A)!==Bt){e.msg="unknown compression method",i.mode=Rt;break}if(A>>>=4,h-=4,w=8+(15&A),0===i.wbits&&(i.wbits=w),w>15||w>i.wbits){e.msg="invalid window size",i.mode=Rt;break}i.dmax=1<>8&1),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16182;case 16182:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>8&255,B[2]=A>>>16&255,B[3]=A>>>24&255,i.check=U(i.check,B,4,0)),A=0,h=0,i.mode=16183;case 16183:for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>8),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16184;case 16184:if(1024&i.flags){for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0}else i.head&&(i.head.extra=null);i.mode=16185;case 16185:if(1024&i.flags&&(d=i.length,d>a&&(d=a),d&&(i.head&&(w=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(s.subarray(o,o+d),w)),512&i.flags&&4&i.wrap&&(i.check=U(i.check,s,d,o)),a-=d,o+=d,i.length-=d),i.length))break e;i.length=0,i.mode=16186;case 16186:if(2048&i.flags){if(0===a)break e;d=0;do{w=s[o+d++],i.head&&w&&i.length<65536&&(i.head.name+=String.fromCharCode(w))}while(w&&d>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Et;break;case 16189:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>=7&h,h-=7&h,i.mode=Tt;break}for(;h<3;){if(0===a)break e;a--,A+=s[o++]<>>=1,h-=1,3&A){case 0:i.mode=16193;break;case 1:if(Gt(i),i.mode=Dt,t===ft){A>>>=2,h-=2;break e}break;case 2:i.mode=16196;break;case 3:e.msg="invalid block type",i.mode=Rt}A>>>=2,h-=2;break;case 16193:for(A>>>=7&h,h-=7&h;h<32;){if(0===a)break e;a--,A+=s[o++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=Rt;break}if(i.length=65535&A,A=0,h=0,i.mode=It,t===ft)break e;case It:i.mode=16195;case 16195:if(d=i.length,d){if(d>a&&(d=a),d>l&&(d=l),0===d)break e;r.set(s.subarray(o,o+d),n),a-=d,o+=d,l-=d,n+=d,i.length-=d;break}i.mode=Et;break;case 16196:for(;h<14;){if(0===a)break e;a--,A+=s[o++]<>>=5,h-=5,i.ndist=1+(31&A),A>>>=5,h-=5,i.ncode=4+(15&A),A>>>=4,h-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=Rt;break}i.have=0,i.mode=16197;case 16197:for(;i.have>>=3,h-=3}for(;i.have<19;)i.lens[E[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},y=pt(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid code lengths set",i.mode=Rt;break}i.have=0,i.mode=16198;case 16198:for(;i.have>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=m,h-=m,i.lens[i.have++]=_;else{if(16===_){for(M=m+2;h>>=m,h-=m,0===i.have){e.msg="invalid bit length repeat",i.mode=Rt;break}w=i.lens[i.have-1],d=3+(3&A),A>>>=2,h-=2}else if(17===_){for(M=m+3;h>>=m,h-=m,w=0,d=3+(7&A),A>>>=3,h-=3}else{for(M=m+7;h>>=m,h-=m,w=0,d=11+(127&A),A>>>=7,h-=7}if(i.have+d>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=Rt;break}for(;d--;)i.lens[i.have++]=w}}if(i.mode===Rt)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=Rt;break}if(i.lenbits=9,C={bits:i.lenbits},y=pt(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid literal/lengths set",i.mode=Rt;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},y=pt(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,y){e.msg="invalid distances set",i.mode=Rt;break}if(i.mode=Dt,t===ft)break e;case Dt:i.mode=St;case St:if(a>=6&&l>=258){e.next_out=n,e.avail_out=l,e.next_in=o,e.avail_in=a,i.hold=A,i.bits=h,At(e,u),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,i.mode===Et&&(i.back=-1);break}for(i.back=0;P=i.lencode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,i.length=_,0===f){i.mode=16205;break}if(32&f){i.back=-1,i.mode=Et;break}if(64&f){e.msg="invalid literal/length code",i.mode=Rt;break}i.extra=15&f,i.mode=16201;case 16201:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=16202;case 16202:for(;P=i.distcode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,64&f){e.msg="invalid distance code",i.mode=Rt;break}i.offset=_,i.extra=15&f,i.mode=16203;case 16203:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=Rt;break}i.mode=16204;case 16204:if(0===l)break e;if(d=u-l,i.offset>d){if(d=i.offset-d,d>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=Rt;break}d>i.wnext?(d-=i.wnext,p=i.wsize-d):p=i.wnext-d,d>i.length&&(d=i.length),g=i.window}else g=r,p=n-i.offset,d=i.length;d>l&&(d=l),l-=d,i.length-=d;do{r[n++]=g[p++]}while(--d);0===i.length&&(i.mode=St);break;case 16205:if(0===l)break e;r[n++]=i.length,l--,i.mode=St;break;case Tt:if(i.wrap){for(;h<32;){if(0===a)break e;a--,A|=s[o++]<{if(kt(e))return xt;let t=e.state;return t.window&&(t.window=null),e.state=null,_t},Zt=(e,t)=>{if(kt(e))return xt;const i=e.state;return 0==(2&i.wrap)?xt:(i.head=t,t.done=!1,_t)},Jt=(e,t)=>{const i=t.length;let s,r,o;return kt(e)?xt:(s=e.state,0!==s.wrap&&s.mode!==Mt?xt:s.mode===Mt&&(r=1,r=R(r,t,i,0),r!==s.check)?wt:(o=Wt(e,t,i,i),o?(s.mode=16210,yt):(s.havedict=1,_t)))},$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 ei=Object.prototype.toString,{Z_NO_FLUSH:ti,Z_FINISH:ii,Z_OK:si,Z_STREAM_END:ri,Z_NEED_DICT:oi,Z_STREAM_ERROR:ni,Z_DATA_ERROR:ai,Z_MEM_ERROR:li}=O;function Ai(e){this.options=Ve({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 Xe,this.strm.avail_out=0;let i=Xt(this.strm,t.windowBits);if(i!==si)throw new Error(k[i]);if(this.header=new $t,Zt(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Ge(t.dictionary):"[object ArrayBuffer]"===ei.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Jt(this.strm,t.dictionary),i!==si)))throw new Error(k[i])}function hi(e,t){const i=new Ai(t);if(i.push(e),i.err)throw i.msg||k[i.err];return i.result}Ai.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize,r=this.options.dictionary;let o,n,a;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ii:ti,"[object ArrayBuffer]"===ei.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),o=Yt(i,n),o===oi&&r&&(o=Jt(i,r),o===si?o=Yt(i,n):o===ai&&(o=oi));i.avail_in>0&&o===ri&&i.state.wrap>0&&0!==e[i.next_in];)Kt(i),o=Yt(i,n);switch(o){case ni:case ai:case oi:case li:return this.onEnd(o),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||o===ri))if("string"===this.options.to){let e=Ke(i.output,i.next_out),t=i.next_out-e,r=We(i.output,e);i.next_out=t,i.avail_out=s-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(o!==si||0!==a){if(o===ri)return o=qt(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Ai.prototype.onData=function(e){this.chunks.push(e)},Ai.prototype.onEnd=function(e){e===si&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ci={Inflate:Ai,inflate:hi,inflateRaw:function(e,t){return(t=t||{}).raw=!0,hi(e,t)},ungzip:hi,constants:O};const{Deflate:ui,deflate:di,deflateRaw:pi,gzip:gi}=at,{Inflate:mi,inflate:fi,inflateRaw:_i,ungzip:vi}=ci;var bi=ui,xi=di,wi=pi,yi=gi,Pi=mi,Bi=fi,Ci=_i,Mi=vi,Ei=O,Fi={Deflate:bi,deflate:xi,deflateRaw:wi,gzip:yi,Inflate:Pi,inflate:Bi,inflateRaw:Ci,ungzip:Mi,constants:Ei};e.Deflate=bi,e.Inflate=Pi,e.constants=Ei,e.default=Fi,e.deflate=xi,e.deflateRaw=wi,e.gzip=yi,e.inflate=Bi,e.inflateRaw=Ci,e.ungzip=Mi,Object.defineProperty(e,"__esModule",{value:!0})}));var bv=Object.freeze({__proto__:null});let xv=window.pako||bv;xv.inflate||(xv=xv.default);const wv=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 yv={version:1,parse:function(e,t,i,s,r,o){const n=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]}}(i),a=function(e){return{positions:new Uint16Array(xv.inflate(e.positions).buffer),normals:new Int8Array(xv.inflate(e.normals).buffer),indices:new Uint32Array(xv.inflate(e.indices).buffer),edgeIndices:new Uint32Array(xv.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(xv.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(xv.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(xv.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(xv.inflate(e.meshColors).buffer),entityIDs:xv.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(xv.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(xv.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(xv.inflate(e.positionsDecodeMatrix).buffer)}}(n);!function(e,t,i,s,r,o){o.getNextId(),s.positionsCompression="precompressed",s.normalsCompression="precompressed";const n=i.positions,a=i.normals,l=i.indices,A=i.edgeIndices,h=i.meshPositions,c=i.meshIndices,d=i.meshEdgesIndices,p=i.meshColors,g=JSON.parse(i.entityIDs),m=i.entityMeshes,_=i.entityIsObjects,v=h.length,b=m.length;for(let r=0;rm[e]m[t]?1:0));for(let e=0;e1||(E[i]=e)}}for(let e=0;e1,o=Dv(_.subarray(4*t,4*t+3)),u=_[4*t+3]/255,v=a.subarray(d[t],i?a.length:d[t+1]),x=l.subarray(d[t],i?l.length:d[t+1]),w=A.subarray(p[t],i?A.length:p[t+1]),P=h.subarray(g[t],i?h.length:g[t+1]),M=c.subarray(m[t],m[t]+16);if(r){const e=`${n}-geometry.${t}`;s.createGeometry({id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M})}else{const e=`${n}-${t}`;b[E[t]];const i={};s.createMesh(f.apply(i,{id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M,color:o,opacity:u}))}}let F=0;for(let e=0;e1){const t={},r=`${n}-instance.${F++}`,o=`${n}-geometry.${i}`,a=16*w[e],A=u.subarray(a,a+16);s.createMesh(f.apply(t,{id:r,geometryId:o,matrix:A})),l.push(r)}else l.push(i)}if(l.length>0){const e={};s.createEntity(f.apply(e,{id:r,isObject:!0,meshIds:l}))}}}(0,0,a,s,0,o)}};let Tv=window.pako||bv;Tv.inflate||(Tv=Tv.default);const Rv=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 Lv={version:5,parse:function(e,t,i,s,r,o){const n=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]}}(i),a=function(e){return{positions:new Float32Array(Tv.inflate(e.positions).buffer),normals:new Int8Array(Tv.inflate(e.normals).buffer),indices:new Uint32Array(Tv.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Tv.inflate(e.edgeIndices).buffer),matrices:new Float32Array(Tv.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(Tv.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(Tv.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(Tv.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(Tv.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(Tv.inflate(e.primitiveInstances).buffer),eachEntityId:Tv.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(Tv.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(Tv.inflate(e.eachEntityMatricesPortion).buffer)}}(n);!function(e,t,i,s,r,o){const n=o.getNextId();s.positionsCompression="disabled",s.normalsCompression="precompressed";const a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,u=i.eachPrimitivePositionsAndNormalsPortion,d=i.eachPrimitiveIndicesPortion,p=i.eachPrimitiveEdgeIndicesPortion,g=i.eachPrimitiveColor,m=i.primitiveInstances,_=JSON.parse(i.eachEntityId),v=i.eachEntityPrimitiveInstancesPortion,b=i.eachEntityMatricesPortion,x=u.length,w=m.length,y=new Uint8Array(x),P=_.length;for(let e=0;e1||(B[i]=e)}}for(let e=0;e1,r=Rv(g.subarray(4*e,4*e+3)),o=g[4*e+3]/255,c=a.subarray(u[e],t?a.length:u[e+1]),m=l.subarray(u[e],t?l.length:u[e+1]),v=A.subarray(d[e],t?A.length:d[e+1]),b=h.subarray(p[e],t?h.length:p[e+1]);if(i){const t=`${n}-geometry.${e}`;s.createGeometry({id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b})}else{const t=e;_[B[e]];const i={};s.createMesh(f.apply(i,{id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b,color:r,opacity:o}))}}let C=0;for(let e=0;e1){const t={},r="instance."+C++,o="geometry"+i,n=16*b[e],l=c.subarray(n,n+16);s.createMesh(f.apply(t,{id:r,geometryId:o,matrix:l})),a.push(r)}else a.push(i)}if(a.length>0){const e={};s.createEntity(f.apply(e,{id:r,isObject:!0,meshIds:a}))}}}(0,0,a,s,0,o)}};let Uv=window.pako||bv;Uv.inflate||(Uv=Uv.default);const kv=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 Ov={version:6,parse:function(e,t,i,s,r,o){const n=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]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Uv.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:Uv.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))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,d=i.reusedPrimitivesDecodeMatrix,p=i.eachPrimitivePositionsAndNormalsPortion,g=i.eachPrimitiveIndicesPortion,m=i.eachPrimitiveEdgeIndicesPortion,_=i.eachPrimitiveColorAndOpacity,v=i.primitiveInstances,b=JSON.parse(i.eachEntityId),x=i.eachEntityPrimitiveInstancesPortion,w=i.eachEntityMatricesPortion,y=i.eachTileAABB,P=i.eachTileEntitiesPortion,B=p.length,C=v.length,M=b.length,E=P.length,F=new Uint32Array(B);for(let e=0;e1,c=t===B-1,u=a.subarray(p[t],c?a.length:p[t+1]),b=l.subarray(p[t],c?l.length:p[t+1]),x=A.subarray(g[t],c?A.length:g[t+1]),w=h.subarray(m[t],c?h.length:m[t+1]),y=kv(_.subarray(4*t,4*t+3)),P=_[4*t+3]/255,C=o.getNextId();if(r){const e=`${n}-geometry.${i}.${t}`;U[e]||(s.createGeometry({id:e,primitive:"triangles",positionsCompressed:u,indices:x,edgeIndices:w,positionsDecodeMatrix:d}),U[e]=!0),s.createMesh(f.apply(N,{id:C,geometryId:e,origin:I,matrix:E,color:y,opacity:P})),R.push(C)}else s.createMesh(f.apply(N,{id:C,origin:I,primitive:"triangles",positionsCompressed:u,normalsCompressed:b,indices:x,edgeIndices:w,positionsDecodeMatrix:L,color:y,opacity:P})),R.push(C)}R.length>0&&s.createEntity(f.apply(O,{id:P,isObject:!0,meshIds:R}))}}}(e,t,a,s,0,o)}};let Nv=window.pako||bv;Nv.inflate||(Nv=Nv.default);const Qv=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 Vv(e){const t=[];for(let i=0,s=e.length;i1,u=t===F-1,B=Qv(P.subarray(6*e,6*e+3)),C=P[6*e+3]/255,M=P[6*e+4]/255,E=P[6*e+5]/255,I=o.getNextId();if(r){const r=y[e],o=d.slice(r,r+16),w=`${n}-geometry.${i}.${t}`;if(!Q[w]){let e,i,r,o,n,d;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],u?a.length:m[t+1]),o=Vv(A.subarray(v[t],u?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],u?a.length:m[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]);break;default:continue}s.createGeometry({id:w,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:d,positionsDecodeMatrix:p}),Q[w]=!0}s.createMesh(f.apply(V,{id:I,geometryId:w,origin:R,matrix:o,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}else{let e,i,r,o,n,d;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],u?a.length:m[t+1]),o=Vv(A.subarray(v[t],u?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],u?a.length:m[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]);break;default:continue}s.createMesh(f.apply(V,{id:I,origin:R,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:d,positionsDecodeMatrix:N,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}}U.length>0&&s.createEntity(f.apply(O,{id:E,isObject:!0,meshIds:U}))}}}(e,t,a,s,0,o)}};let Hv=window.pako||bv;Hv.inflate||(Hv=Hv.default);const zv=u.vec4(),Gv=u.vec4();const Wv=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 Kv(e){const t=[];for(let i=0,s=e.length;i1,l=r===L-1,A=Wv(F.subarray(6*e,6*e+3)),h=F[6*e+3]/255,c=F[6*e+4]/255,I=F[6*e+5]/255,D=o.getNextId();if(a){const o=E[e],a=v.slice(o,o+16),M=`${n}-geometry.${i}.${r}`;let F=j[M];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(x[r]){case 0:F.primitiveName="solid",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=_.subarray(C[r],l?_.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=_.subarray(C[r],l?_.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryColors=Kv(g.subarray(P[r],l?g.length:P[r+1])),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=d.subarray(w[r],l?d.length:w[r+1]),i=p.subarray(y[r],l?p.length:y[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),a=_.subarray(C[r],l?_.length:C[r+1]),u=t.length>0&&n.length>0;break;case 2:e="points",t=d.subarray(w[r],l?d.length:w[r+1]),o=Kv(g.subarray(P[r],l?g.length:P[r+1])),u=t.length>0;break;case 3:e="lines",t=d.subarray(w[r],l?d.length:w[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),u=t.length>0&&n.length>0;break;default:continue}u&&(s.createMesh(f.apply(z,{id:D,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:R,color:A,metallic:c,roughness:I,opacity:h})),T.push(D))}}T.length>0&&s.createEntity(f.apply(H,{id:A,isObject:!0,meshIds:T}))}}}(e,t,a,s,r,o)}};let Yv=window.pako||bv;Yv.inflate||(Yv=Yv.default);const qv=u.vec4(),Zv=u.vec4();const Jv=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 $v={version:9,parse:function(e,t,i,s,r,o){const n=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]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Yv.inflate(e,t).buffer}return{metadata:JSON.parse(Yv.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(Yv.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.metadata,l=i.positions,A=i.normals,h=i.colors,c=i.indices,d=i.edgeIndices,p=i.matrices,g=i.reusedGeometriesDecodeMatrix,m=i.eachGeometryPrimitiveType,_=i.eachGeometryPositionsPortion,v=i.eachGeometryNormalsPortion,b=i.eachGeometryColorsPortion,x=i.eachGeometryIndicesPortion,w=i.eachGeometryEdgeIndicesPortion,y=i.eachMeshGeometriesPortion,P=i.eachMeshMatricesPortion,B=i.eachMeshMaterial,C=i.eachEntityId,M=i.eachEntityMeshesPortion,E=i.eachTileAABB,F=i.eachTileEntitiesPortion,I=_.length,D=y.length,S=M.length,T=F.length;r&&r.loadData(a,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const R=new Uint32Array(I);for(let e=0;e1,C=r===I-1,M=Jv(B.subarray(6*e,6*e+3)),E=B[6*e+3]/255,F=B[6*e+4]/255,D=B[6*e+5]/255,S=o.getNextId();if(a){const o=P[e],a=p.slice(o,o+16),y=`${n}-geometry.${i}.${r}`;let B=k[y];if(!B){B={batchThisMesh:!t.reuseGeometries};let e=!1;switch(m[r]){case 0:B.primitiveName="solid",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=d.subarray(w[r],C?d.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 1:B.primitiveName="surface",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=d.subarray(w[r],C?d.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 2:B.primitiveName="points",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryColors=h.subarray(b[r],C?h.length:b[r+1]),e=B.geometryPositions.length>0;break;case 3:B.primitiveName="lines",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;default:continue}if(e||(B=null),B&&(B.geometryPositions.length,B.batchThisMesh)){B.decompressedPositions=new Float32Array(B.geometryPositions.length),B.transformedAndRecompressedPositions=new Uint16Array(B.geometryPositions.length);const e=B.geometryPositions,t=B.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=l.subarray(_[r],C?l.length:_[r+1]),i=A.subarray(v[r],C?A.length:v[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),a=d.subarray(w[r],C?d.length:w[r+1]),u=t.length>0&&n.length>0;break;case 2:e="points",t=l.subarray(_[r],C?l.length:_[r+1]),o=h.subarray(b[r],C?h.length:b[r+1]),u=t.length>0;break;case 3:e="lines",t=l.subarray(_[r],C?l.length:_[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),u=t.length>0&&n.length>0;break;default:continue}u&&(s.createMesh(f.apply(H,{id:S,origin:L,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:Q,color:M,metallic:F,roughness:D,opacity:E})),O.push(S))}}O.length>0&&s.createEntity(f.apply(j,{id:E,isObject:!0,meshIds:O}))}}}(e,t,a,s,r,o)}};let eb=window.pako||bv;eb.inflate||(eb=eb.default);const tb=u.vec4(),ib=u.vec4();const sb=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 rb(e,t){const i=[];if(t.length>1)for(let e=0,s=t.length-1;e1)for(let t=0,s=e.length/3-1;t0,a=9*e,c=1===h[a+0],u=h[a+1];h[a+2],h[a+3];const d=h[a+4],p=h[a+5],g=h[a+6],m=h[a+7],f=h[a+8];if(o){const t=new Uint8Array(l.subarray(i,r)).buffer,o=`${n}-texture-${e}`;if(c)s.createTexture({id:o,buffers:[t],minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f});else{const e=new Blob([t],{type:10001===u?"image/jpeg":10002===u?"image/png":"image/gif"}),i=(window.URL||window.webkitURL).createObjectURL(e),r=document.createElement("img");r.src=i,s.createTexture({id:o,image:r,minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f})}}}for(let e=0;e=0?`${n}-texture-${r}`:null,normalsTextureId:a>=0?`${n}-texture-${a}`:null,metallicRoughnessTextureId:o>=0?`${n}-texture-${o}`:null,emissiveTextureId:l>=0?`${n}-texture-${l}`:null,occlusionTextureId:A>=0?`${n}-texture-${A}`:null})}const H=new Uint32Array(N);for(let e=0;e1,l=r===N-1,A=D[e],h=A>=0?`${n}-textureSet-${A}`:null,T=sb(S.subarray(6*e,6*e+3)),R=S[6*e+3]/255,L=S[6*e+4]/255,O=S[6*e+5]/255,Q=o.getNextId();if(a){const o=I[e],a=b.slice(o,o+16),A=`${n}-geometry.${i}.${r}`;let F=W[A];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(w[r]){case 0:F.primitiveName="solid",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=d.subarray(P[r],l?d.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=_.subarray(E[r],l?_.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=d.subarray(P[r],l?d.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=_.subarray(E[r],l?_.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryColors=p.subarray(B[r],l?p.length:B[r+1]),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 4:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=rb(F.geometryPositions,m.subarray(M[r],l?m.length:M[r+1])),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length),F.transformedAndRecompressedPositions=new Uint16Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&a.length>0;break;case 1:e="surface",t=c.subarray(y[r],l?c.length:y[r+1]),i=d.subarray(P[r],l?d.length:P[r+1]),o=g.subarray(C[r],l?g.length:C[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),A=_.subarray(E[r],l?_.length:E[r+1]),u=t.length>0&&a.length>0;break;case 2:e="points",t=c.subarray(y[r],l?c.length:y[r+1]),n=p.subarray(B[r],l?p.length:B[r+1]),u=t.length>0;break;case 3:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),u=t.length>0&&a.length>0;break;case 4:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=rb(t,m.subarray(M[r],l?m.length:M[r+1])),u=t.length>0&&a.length>0;break;default:continue}u&&(s.createMesh(f.apply(j,{id:Q,textureSetId:h,origin:z,primitive:e,positionsCompressed:t,normalsCompressed:i,uv:o&&o.length>0?o:null,colorsCompressed:n,indices:a,edgeIndices:A,positionsDecodeMatrix:v,color:T,metallic:L,roughness:O,opacity:R})),U.push(Q))}}U.length>0&&s.createEntity(f.apply(Q,{id:l,isObject:!0,meshIds:U}))}}}(e,t,a,s,r,o)}},nb={};nb[yv.version]=yv,nb[Cv.version]=Cv,nb[Fv.version]=Fv,nb[Sv.version]=Sv,nb[Lv.version]=Lv,nb[Ov.version]=Ov,nb[jv.version]=jv,nb[Xv.version]=Xv,nb[$v.version]=$v,nb[ob.version]=ob;class ab extends N{constructor(e,t={}){super("XKTLoader",e,t),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this.textureTranscoder=t.textureTranscoder,this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults,this.includeTypes=t.includeTypes,this.excludeTypes=t.excludeTypes,this.excludeUnclassifiedObjects=t.excludeUnclassifiedObjects,this.reuseGeometries=t.reuseGeometries}get supportedVersions(){return Object.keys(nb)}get textureTranscoder(){return this._textureTranscoder}set textureTranscoder(e){this._textureTranscoder=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new vv}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||sv}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}get reuseGeometries(){return this._reuseGeometries}set reuseGeometries(e){this._reuseGeometries=!1!==e}load(e={}){if(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),!(e.src||e.xkt||e.manifestSrc||e.manifest))return this.error("load() param expected: src, xkt, manifestSrc or manifestData"),o;const t={},i=e.includeTypes||this._includeTypes,s=e.excludeTypes||this._excludeTypes,r=e.objectDefaults||this._objectDefaults;if(t.reuseGeometries=null!==e.reuseGeometries&&void 0!==e.reuseGeometries?e.reuseGeometries:!1!==this._reuseGeometries,i){t.includeTypesMap={};for(let e=0,s=i.length;e{o.finalize(),a.finalize(),this.viewer.scene.canvas.spinner.processes--,o.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(a.id)})),this.scheduleTask((()=>{o.destroyed||(o.scene.fire("modelLoaded",o.id),o.fire("loaded",!0,!1))}))},A=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),o.fire("error",e)};let h=0;const c={getNextId:()=>`${n}.${h++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const r=e.metaModelSrc;this._dataSource.getMetaModel(r,(r=>{o.destroyed||(a.loadData(r,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()))}),(e=>{A(`load(): Failed to load model metadata for model '${n} from '${r}' - ${e}`)}))}else e.metaModelData&&(a.loadData(e.metaModelData,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()));else if(e.src)this._loadModel(e.src,e,t,o,a,c,l,A);else if(e.xkt)this._parseModel(e.xkt,e,t,o,a,c),l();else if(e.manifestSrc||e.manifest){const r=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",n=(e,o,n)=>{let l=0;const A=()=>{l>=e.length?o():this._dataSource.getMetaModel(`${r}${e[l]}`,(e=>{a.loadData(e,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),l++,this.scheduleTask(A,100)}),n)};A()},h=(i,s,n)=>{let l=0;const A=()=>{l>=i.length?s():this._dataSource.getXKT(`${r}${i[l]}`,(i=>{this._parseModel(i,e,t,o,a,c),l++,this.scheduleTask(A,100)}),n)};A()};if(e.manifest){const t=e.manifest,i=t.xktFiles;if(!i||0===i.length)return void A("load(): Failed to load model manifest - manifest not valid");const s=t.metaModelFiles;s?n(s,(()=>{h(i,l,A)}),A):h(i,l,A)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(o.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void A("load(): Failed to load model manifest - manifest not valid");const i=e.metaModelFiles;i?n(i,(()=>{h(t,l,A)}),A):h(t,l,A)}),A)}return o}_loadModel(e,t,i,s,r,o,n,a){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,i,s,r,o),n()}),a)}_parseModel(e,t,i,s,r,o){if(s.destroyed)return;const n=new DataView(e),a=new Uint8Array(e),l=n.getUint32(0,!0),A=nb[l];if(!A)return void this.error("Unsupported .XKT file version: "+l+" - this XKTLoaderPlugin supports versions "+Object.keys(nb));this.log("Loading .xkt V"+l);const h=n.getUint32(4,!0),c=[];let u=4*(h+2);for(let e=0;ee.size)throw new RangeError("offset:"+t+", length:"+i+", size:"+e.size);return e.slice?e.slice(t,t+i):e.webkitSlice?e.webkitSlice(t,t+i):e.mozSlice?e.mozSlice(t,t+i):e.msSlice?e.msSlice(t,t+i):void 0}(e,t,i))}catch(e){r(e)}}}function p(){}function g(e){var i,s=this;s.init=function(e){i=new Blob([],{type:n}),e()},s.writeUint8Array=function(e,s){i=new Blob([i,t?e:e.buffer],{type:n}),s()},s.getData=function(t,s){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=s,r.readAsText(i,e)}}function m(t){var i=this,s="",r="";i.init=function(e){s+="data:"+(t||"")+";base64,",e()},i.writeUint8Array=function(t,i){var o,n=r.length,a=r;for(r="",o=0;o<3*Math.floor((n+t.length)/3)-n;o++)a+=String.fromCharCode(t[o]);for(;o2?s+=e.btoa(a):r=a,i()},i.getData=function(t){t(s+e.btoa(r))}}function f(e){var i,s=this;s.init=function(t){i=new Blob([],{type:e}),t()},s.writeUint8Array=function(s,r){i=new Blob([i,t?s:s.buffer],{type:e}),r()},s.getData=function(e){e(i)}}function _(e,t,i,s,r,n,a,l,A,h){var c,u,d,p=0,g=t.sn;function m(){e.removeEventListener("message",f,!1),l(u,d)}function f(t){var i=t.data,r=i.data,o=i.error;if(o)return o.toString=function(){return"Error: "+this.message},void A(o);if(i.sn===g)switch("number"==typeof i.codecTime&&(e.codecTime+=i.codecTime),"number"==typeof i.crcTime&&(e.crcTime+=i.crcTime),i.type){case"append":r?(u+=r.length,s.writeUint8Array(r,(function(){_()}),h)):_();break;case"flush":d=i.crc,r?(u+=r.length,s.writeUint8Array(r,(function(){m()}),h)):m();break;case"progress":a&&a(c+i.loaded,n);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",i)}}function _(){(c=p*o)<=n?i.readUint8Array(r+c,Math.min(o,n-c),(function(i){a&&a(c,n);var s=0===c?t:{sn:g};s.type="append",s.data=i;try{e.postMessage(s,[i.buffer])}catch(t){e.postMessage(s)}p++}),A):e.postMessage({sn:g,type:"flush"})}u=0,e.addEventListener("message",f,!1),_()}function v(e,t,i,s,r,n,l,A,h,c){var u,d=0,p=0,g="input"===n,m="output"===n,f=new a;!function n(){var a;if((u=d*o)127?r[i-128]:String.fromCharCode(i);return s}function w(e){return decodeURIComponent(escape(e))}function y(e){var t,i="";for(t=0;t>16,i=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch(e){}}(e.lastModDateRaw),1!=(1&e.bitFlag)?((s||8!=(8&e.bitFlag))&&(e.crc32=t.view.getUint32(i+10,!0),e.compressedSize=t.view.getUint32(i+14,!0),e.uncompressedSize=t.view.getUint32(i+18,!0)),4294967295!==e.compressedSize&&4294967295!==e.uncompressedSize?(e.filenameLength=t.view.getUint16(i+22,!0),e.extraFieldLength=t.view.getUint16(i+24,!0)):r("File is using Zip64 (4gb+ file size).")):r("File contains encrypted entry.")}function B(t,o,n){var a=0;function l(){}l.prototype.getData=function(s,o,l,h){var c=this;function u(e,t){h&&!function(e){var t=A(4);return t.view.setUint32(0,e),c.crc32==t.view.getUint32(0)}(t)?n("CRC failed."):s.getData((function(e){o(e)}))}function d(e){n(e||r)}function p(e){n(e||"Error while writing file data.")}t.readUint8Array(c.offset,30,(function(r){var o,g=A(r.length,r);1347093252==g.view.getUint32(0)?(P(c,g,4,!1,n),o=c.offset+30+c.filenameLength+c.extraFieldLength,s.init((function(){0===c.compressionMethod?b(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p):function(t,i,s,r,o,n,a,l,A,h,c){var u=a?"output":"none";e.zip.useWebWorkers?_(t,{sn:i,codecClass:"Inflater",crcType:u},s,r,o,n,A,l,h,c):v(new e.zip.Inflater,s,r,o,n,u,A,l,h,c)}(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p)}),p)):n(i)}),d)};var h={getEntries:function(e){var r=this._worker;!function(e){t.size<22?n(i):r(22,(function(){r(Math.min(65558,t.size),(function(){n(i)}))}));function r(i,r){t.readUint8Array(t.size-i,i,(function(t){for(var i=t.length-22;i>=0;i--)if(80===t[i]&&75===t[i+1]&&5===t[i+2]&&6===t[i+3])return void e(new DataView(t.buffer,i,22));r()}),(function(){n(s)}))}}((function(o){var a,h;a=o.getUint32(16,!0),h=o.getUint16(8,!0),a<0||a>=t.size?n(i):t.readUint8Array(a,t.size-a,(function(t){var s,o,a,c,u=0,d=[],p=A(t.length,t);for(s=0;s>>8^i[255&(t^e[s])];this.crc=t},a.prototype.get=function(){return~this.crc},a.prototype.table=function(){var e,t,i,s=[];for(e=0;e<256;e++){for(i=e,t=0;t<8;t++)1&i?i=i>>>1^3988292384:i>>>=1;s[e]=i}return s}(),l.prototype.append=function(e,t){return e},l.prototype.flush=function(){},c.prototype=new h,c.prototype.constructor=c,u.prototype=new h,u.prototype.constructor=u,d.prototype=new h,d.prototype.constructor=d,p.prototype.getData=function(e){e(this.data)},g.prototype=new p,g.prototype.constructor=g,m.prototype=new p,m.prototype.constructor=m,f.prototype=new p,f.prototype.constructor=f;var F={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function I(t,i,s){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var r;if(e.zip.workerScripts){if(r=e.zip.workerScripts[t],!Array.isArray(r))return void s(new Error("zip.workerScripts."+t+" is not an array!"));r=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(r)}else(r=F[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+r[0];var o=new Worker(r[0]);o.codecTime=o.crcTime=0,o.postMessage({type:"importScripts",scripts:r.slice(1)}),o.addEventListener("message",(function e(t){var r=t.data;if(r.error)return o.terminate(),void s(r.error);"importScripts"===r.type&&(o.removeEventListener("message",e),o.removeEventListener("error",n),i(o))})),o.addEventListener("error",n)}else s(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function n(e){o.terminate(),s(e)}}function D(e){console.error(e)}e.zip={Reader:h,Writer:p,BlobReader:d,Data64URIReader:u,TextReader:c,BlobWriter:f,Data64URIWriter:m,TextWriter:g,createReader:function(e,t,i){i=i||D,e.init((function(){B(e,t,i)}),i)},createWriter:function(e,t,i,s){i=i||D,s=!!s,e.init((function(){E(e,t,i,s)}),i)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(lb);!function(e){var t,i,s=e.Reader,r=e.Writer;try{i=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function o(e){var t=this;function i(i,s){var r;t.data?i():((r=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(r.getResponseHeader("Content-Length"))||Number(r.response.byteLength)),t.data=new Uint8Array(r.response),i()}),!1),r.addEventListener("error",s,!1),r.open("GET",e),r.responseType="arraybuffer",r.send())}t.size=0,t.init=function(s,r){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var o=new XMLHttpRequest;o.addEventListener("load",(function(){t.size=Number(o.getResponseHeader("Content-Length")),t.size?s():i(s,r)}),!1),o.addEventListener("error",r,!1),o.open("HEAD",e),o.send()}else i(s,r)},t.readUint8Array=function(e,s,r,o){i((function(){r(new Uint8Array(t.data.subarray(e,e+s)))}),o)}}function n(e){var t=this;t.size=0,t.init=function(i,s){var r=new XMLHttpRequest;r.addEventListener("load",(function(){t.size=Number(r.getResponseHeader("Content-Length")),"bytes"==r.getResponseHeader("Accept-Ranges")?i():s("HTTP Range not supported.")}),!1),r.addEventListener("error",s,!1),r.open("HEAD",e),r.send()},t.readUint8Array=function(t,i,s,r){!function(t,i,s,r){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="arraybuffer",o.setRequestHeader("Range","bytes="+t+"-"+(t+i-1)),o.addEventListener("load",(function(){s(o.response)}),!1),o.addEventListener("error",r,!1),o.send()}(t,i,(function(e){s(new Uint8Array(e))}),r)}}function a(e){var t=this;t.size=0,t.init=function(i,s){t.size=e.byteLength,i()},t.readUint8Array=function(t,i,s,r){s(new Uint8Array(e.slice(t,t+i)))}}function l(){var e,t=this;t.init=function(t,i){e=new Uint8Array,t()},t.writeUint8Array=function(t,i,s){var r=new Uint8Array(e.length+t.length);r.set(e),r.set(t,e.length),e=r,i()},t.getData=function(t){t(e.buffer)}}function A(e,t){var s,r=this;r.init=function(t,i){e.createWriter((function(e){s=e,t()}),i)},r.writeUint8Array=function(e,r,o){var n=new Blob([i?e:e.buffer],{type:t});s.onwrite=function(){s.onwrite=null,r()},s.onerror=o,s.write(n)},r.getData=function(t){e.file(t)}}o.prototype=new s,o.prototype.constructor=o,n.prototype=new s,n.prototype.constructor=n,a.prototype=new s,a.prototype.constructor=a,l.prototype=new r,l.prototype.constructor=l,A.prototype=new r,A.prototype.constructor=A,e.FileWriter=A,e.HttpReader=o,e.HttpRangeReader=n,e.ArrayBufferReader=a,e.ArrayBufferWriter=l,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(i,s,r){return function(i,s,r,o){if(i.directory)return o?new t(i.fs,s,r,i):new e.fs.ZipFileEntry(i.fs,s,r,i);throw"Parent entry is not a directory."}(this,i,{data:s,Reader:r?n:o})},t.prototype.importHttpContent=function(e,t,i,s){this.importZip(t?new n(e):new o(e),i,s)},e.fs.FS.prototype.importHttpContent=function(e,i,s,r){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,i,s,r)})}(lb.zip),u.vec2(),u.vec3(),u.vec3(),u.vec3();class Ab{constructor(e={}){this._dataDir=e.dataDir||""}getProjects(e,t){const i=this._dataDir+"/projects/index.json";f.loadJSON(i,e,t)}getProject(e,t,i){const s=this._dataDir+"/projects/"+e+"/index.json";f.loadJSON(s,t,i)}getMetadata(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/metadata.json";f.loadJSON(r,i,s)}getGeometry(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/geometry.xkt";f.loadArraybuffer(r,i,s)}getObjectInfo(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/props/"+i+".json";f.loadJSON(o,s,r)}getIssues(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/issues.json";f.loadJSON(r,i,s)}getSplitModelManifest(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;f.loadJSON(o,s,r)}getSplitModelMetadata(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;f.loadJSON(o,s,r)}getSplitModelGeometry(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;f.loadArraybuffer(o,s,r)}}class hb{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}}class cb{constructor(e,t,i,s){this.bimViewer=e?e.bimViewer||e:this,this.server=e?e.server:i,this.viewer=e?e.viewer:s,this._children=[],e&&e._children.push(this),this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._events=null,this._eventCallDepth=0,this._enabled=null,this._active=null}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],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--)}on(e,t,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new hb),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={});let s=this._eventSubs[e];s||(s={},this._eventSubs[e]=s);const r=this._subIdMap.addItem();s[r]={callback:t,scope:i||this},this._subIdEvents[r]=e;const o=this._events[e];return void 0!==o&&t.call(i||this,o),r}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&delete i[e],this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}log(e){e="[LOG] "+e,window.console.log(e)}warn(e){e="[WARN] "+e,window.console.warn(e)}error(e){e="[ERROR] "+e,window.console.error(e)}_mutexActivation(e){const t=e.length;for(let i=0;i
Default text
',i.appendChild(this._modal),this._modalVisible=!1,this._modal.style.display="hidden"}show(e){this._modalVisible=!0,this._modal.querySelector(".xeokit-busy-modal-message").innerText=e,this._modal.style.display="block"}hide(){this._modalVisible=!1,this._modal.style.display="none"}destroy(){super.destroy(),this._modal&&(this._modal.parentNode.removeChild(this._modal),this._modal=null)}}const db=u.vec3();class pb extends cb{constructor(e,t={}){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.camera;this._modelMementos={},s.eye=[.577,.577,.577],s.look=[0,0,0],s.up=[-1,1,-1],this.bimViewer._modelsExplorer.on("modelLoaded",(e=>{this._saveModelMemento(e)})),this.bimViewer._modelsExplorer.on("modelUnloaded",(e=>{this._destroyModelMemento(e)})),this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.reset(),e.preventDefault()}))}_saveModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;const i=new eh;i.saveObjects(this.viewer.scene,t,{visible:!0,edges:!0,xrayed:!0,highlighted:!0,selected:!0,clippable:!0,pickable:!0,colorize:!1,opacity:!1}),this._modelMementos[e]=i}_restoreModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;this._modelMementos[e].restoreObjects(this.viewer.scene,t)}_destroyModelMemento(e){delete this._modelMementos[e]}reset(){const e=this.viewer.scene.modelIds;for(var t=0,i=e.length;t{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.fit(),e.preventDefault()}))}fit(){const e=this.viewer.scene,t=e.getAABB(e.visibleObjectIds);this.viewer.cameraFlight.flyTo({aabb:t}),this.viewer.cameraControl.pivotPos=u.getAABB3Center(t,gb)}set fov(e){this.viewer.scene.cameraFlight.fitFOV=e}get fov(){return this.viewer.scene.cameraFlight.fitFOV}set duration(e){this.viewer.scene.cameraFlight.duration=e}get duration(){return this.viewer.scene.cameraFlight.duration}}class fb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.cameraControl,r=t.cameraControlNavModeMediator;s.navMode="orbit",s.followPointer=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),this.on("active",(e=>{r.setFirstPersonModeActive(e),e?(s.followPointer=!0,s.pivoting=!1):s.pivoting=!0})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class _b extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this.viewer.cameraControl.doublePickFlyTo=!1,this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.visible=!1)}))):(i.classList.remove("active"),this.viewer.cameraControl.doublePickFlyTo=!1,void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class vb extends cb{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.selected=!e.entity.selected)}))):(i.classList.remove("active"),void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class bb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.scene.on("modelLoaded",(e=>{if(!this._active){const e=this.viewer.metaScene.getObjectIDsByType("IfcSpace");this.viewer.scene.setObjectsCulled(e,!0)}})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e){this._active!==e&&(this._active=e,e?(this._buttonElement.classList.add("active"),this._enterShowSpacesMode(),this.fire("active",this._active)):(this._buttonElement.classList.remove("active"),this._exitShowSpacesMode(),this.fire("active",this._active)))}_enterShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!1)}_exitShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!0)}}class xb extends cb{constructor(e,t){super(e)}}const wb=u.AABB3(),yb=u.vec3();class Pb extends o{constructor(e={}){if(!e.sectionPlanesPlugin)throw"Missing config: sectionPlanesPlugin";super(f.apply({},e)),this._sectionPlanesPlugin=e.sectionPlanesPlugin,this._viewer=this._sectionPlanesPlugin.viewer,this._onSceneSectionPlaneCreated=this._viewer.scene.on("sectionPlaneCreated",(()=>{this._buildMenu()})),this._onSceneSectionPlaneDestroyed=this._viewer.scene.on("sectionPlaneDestroyed",(()=>{this._buildMenu()})),this._buildMenu()}_buildMenu(){const e=this._sectionPlanesPlugin,t=Object.values(e.sectionPlanes),i=[];for(let s=0,r=t.length;s`${e.viewer.localeService.translate("sectionToolContextMenu.slice")||"Slice"} #`+(s+1),doHoverEnter(t){e.hideControl(),e.showControl(r.id)},doHoverLeave(t){e.hideControl()},items:[[{getTitle:e=>r.active?e.viewer.localeService.translate("sectionToolContextMenu.deactivate")||"Disable":e.viewer.localeService.translate("sectionToolContextMenu.activate")||"Enable",doAction:e=>{r.active=!r.active}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.edit")||"Edit",getEnabled:()=>r.active,doAction:t=>{e.hideControl(),e.showControl(r.id);const i=r.pos;wb.set(this._viewer.scene.aabb),u.getAABB3Center(wb,yb),wb[0]+=i[0]-yb[0],wb[1]+=i[1]-yb[1],wb[2]+=i[2]-yb[2],wb[3]+=i[0]-yb[0],wb[4]+=i[1]-yb[1],wb[5]+=i[2]-yb[2],this._viewer.cameraFlight.flyTo({aabb:wb,fitFOV:65})}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flip")||"Flip",getEnabled:()=>r.active,doAction:e=>{r.flipDir()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.delete")||"Delete",doAction:e=>{r.destroy()}}]]})}this.items=[[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flipSlices")||"Flip Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.flipSections()}}],[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.disableAllSlices")||"Disable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.disableSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.enableAllSlices")||"Enable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.enableSections()}}],i]}destroy(){super.destroy();const e=this._viewer.scene;e.off(this._onSceneSectionPlaneCreated),e.off(this._onSceneSectionPlaneDestroyed)}}class Bb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";if(!t.menuButtonElement)throw"Missing config: menuButtonElement";this._buttonElement=t.buttonElement,this._counterElement=t.counterElement,this._menuButtonElement=t.menuButtonElement,this._menuButtonArrowElement=t.menuButtonArrowElement,this._sectionPlanesPlugin=new gv(this.viewer,{}),this._sectionToolContextMenu=new Pb({sectionPlanesPlugin:this._sectionPlanesPlugin,hideOnMouseDown:!1,hideOnAction:!1}),this._sectionPlanesPlugin.setOverviewVisible(!1),this.on("enabled",(e=>{e?(this._buttonElement.classList.remove("disabled"),this._counterElement&&this._counterElement.classList.remove("disabled"),this._menuButtonElement.classList.remove("disabled"),this._menuButtonArrowElement.classList.remove("disabled")):(this._buttonElement.classList.add("disabled"),this._counterElement&&this._counterElement.classList.add("disabled"),this._menuButtonElement.classList.add("disabled"),this._menuButtonArrowElement.classList.add("disabled"))})),this.on("active",(e=>{e?(this._buttonElement.classList.add("active"),this._counterElement&&this._counterElement.classList.add("active"),this._menuButtonElement.classList.add("active"),this._menuButtonArrowElement.classList.add("active")):(this._buttonElement.classList.remove("active"),this._counterElement&&this._counterElement.classList.remove("active"),this._menuButtonElement.classList.remove("active"),this._menuButtonArrowElement.classList.remove("active"))})),this.on("active",(e=>{e||this._sectionPlanesPlugin.hideControl()})),this._buttonElement.addEventListener("click",(e=>{if(!this.getEnabled())return;if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement)return;const t=this.getActive();this.setActive(!t),e.preventDefault()})),document.addEventListener("mousedown",(e=>{if(!e.target.classList.contains("xeokit-context-menu-item"))if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement)if(e.preventDefault(),this._sectionToolContextMenu.shown)this._sectionToolContextMenu.hide();else{this._sectionToolContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,sectionTool:this};const e=this._menuButtonElement.getBoundingClientRect();this._sectionToolContextMenu.show(e.left,e.bottom+5)}else this._sectionToolContextMenu.hide()})),this._sectionToolContextMenu.on("shown",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-down"),this._menuButtonArrowElement.classList.add("xeokit-arrow-up")})),this._sectionToolContextMenu.on("hidden",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-up"),this._menuButtonArrowElement.classList.add("xeokit-arrow-down")})),this.bimViewer.on("reset",(()=>{this.clear(),this.setActive(!1)})),this.viewer.scene.on("sectionPlaneCreated",(()=>{this._updateSectionPlanesCount()})),this.viewer.scene.on("sectionPlaneDestroyed",(()=>{this._updateSectionPlanesCount()})),this._initSectionMode()}_initSectionMode(){this.viewer.scene.input.on("mouseclicked",(e=>{if(!this.getActive()||!this.getEnabled())return;const t=this.viewer.scene.pick({canvasPos:e,pickSurface:!0});if(t){const e=this._sectionPlanesPlugin.createSectionPlane({pos:t.worldPos,dir:u.mulVec3Scalar(t.worldNormal,-1)});this._sectionPlanesPlugin.showControl(e.id)}})),this._updateSectionPlanesCount()}_updateSectionPlanesCount(){this._counterElement&&(this._counterElement.innerText=""+this.getNumSections())}getNumSections(){return Object.keys(this.viewer.scene.sectionPlanes).length}clear(){this._sectionPlanesPlugin.clear(),this._updateSectionPlanesCount()}flipSections(){this._sectionPlanesPlugin.flipSectionPlanes()}enableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!0}}disableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!1}}hideControl(){this._sectionPlanesPlugin.hideControl()}destroy(){this._sectionPlanesPlugin.destroy(),this._sectionToolContextMenu.destroy(),super.destroy()}}class Cb extends cb{constructor(e,t){if(super(e,t),!t.navCubeCanvasElement)throw"Missing config: navCubeCanvasElement";const i=t.navCubeCanvasElement;this._navCube=new av(this.viewer,{canvasElement:i,fitVisible:!0,color:"#CFCFCF"}),this._navCube.setVisible(this._active),this.on("active",(e=>{this._navCube.setVisible(e)}))}destroy(){this._navCube.destroy(),super.destroy()}}class Mb extends o{constructor(e={}){const t=!!e.enableEditModels,i=!!e.enableMeasurements,s=[[{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadModel")||"Load",getEnabled:e=>!e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.loadModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadModel")||"Unload",getEnabled:e=>e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.unloadModel(e.modelId)}}]];t&&s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.editModel")||"Edit",getEnabled:e=>!0,doAction:e=>{e.bimViewer.editModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.deleteModel")||"Delete",getEnabled:e=>!0,doAction:e=>{e.bimViewer.deleteModel(e.modelId)}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadAllModels")||"Load All",getEnabled:e=>{const t=e.bimViewer,i=t.getModelIds();return t.getLoadedModelIds().length{e.bimViewer.loadAllModels()}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadAllModels")||"Unload All",getEnabled:e=>e.bimViewer.getLoadedModelIds().length>0,doAction:e=>{e.bimViewer.unloadAllModels()}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}]),i&&s.push([{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]),super({hideOnAction:e.hideOnAction,context:e.context,items:s})}}const Eb=u.vec3();class Fb{constructor(e){this._server=e}setProjectId(e){this._projectId=e}setModelId(e){this._modelId=e}getManifest(e,t,i){this._server.getSplitModelManifest(this._projectId,this._modelId,e,t,i)}getMetaModel(e,t,i){this._server.getSplitModelMetadata(this._projectId,this._modelId,e,t,i)}getXKT(e,t,i){this._server.getSplitModelGeometry(this._projectId,this._modelId,e,t,i)}}class Ib extends cb{constructor(e,t){if(super(e,t),!t.modelsTabElement)throw"Missing config: modelsTabElement";if(!t.unloadModelsButtonElement)throw"Missing config: unloadModelsButtonElement";if(!t.modelsElement)throw"Missing config: modelsElement";if(this._enableAddModels=!!t.enableEditModels,this._modelsTabElement=t.modelsTabElement,this._loadModelsButtonElement=t.loadModelsButtonElement,this._unloadModelsButtonElement=t.unloadModelsButtonElement,this._addModelButtonElement=t.addModelButtonElement,this._modelsElement=t.modelsElement,this._modelsTabButtonElement=this._modelsTabElement.querySelector(".xeokit-tab-btn"),!this._modelsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._dataSource=new Fb(this.server),this._xktLoader=new ab(this.viewer,{dataSource:this._dataSource}),this._modelsContextMenu=new Mb({enableEditModels:t.enableEditModels,enableMeasurements:t.enableMeasurements,hideOnAction:!0}),this._modelsInfo={},this._numModels=0,this._numModelsLoaded=0,this._projectId=null}setObjectColors(e){this._xktLoader.objectDefaults=e}loadProject(e,t,i){this.server.getProject(e,(i=>{this.unloadProject(),this._projectId=e,this._modelsInfo={},this._numModels=0,this._parseProject(i,t),this._numModelsLoaded0&&this._unloadModelsButtonElement.classList.remove("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.remove("disabled")}),(e=>{this.error(e),i&&i(e)}))}_parseProject(e,t){this._buildModelsMenu(e),this._parseViewerConfigs(e),this._parseViewerContent(e,(()=>{this._parseViewerState(e,(()=>{t()}))}))}_buildModelsMenu(e){var t="";const i=e.models||[];this._modelsInfo={},this._numModels=i.length;for(let e=0,s=i.length;e",t+=""+s.name+"",t+=""}this._modelsElement.innerHTML=t;for(let e=0,t=i.length;e{r.checked?this.loadModel(s):this.unloadModel(t.id)})),o.addEventListener("click",(()=>{!!this.viewer.scene.models[s]?this.unloadModel(t.id):this.loadModel(s)})),o.oncontextmenu=e=>{this._modelsContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,modelId:s},this._modelsContextMenu.show(e.pageX,e.pageY),e.preventDefault()}}}_parseViewerConfigs(e){const t=e.viewerConfigs;t&&this.bimViewer.setConfigs(t)}_parseViewerContent(e,t){const i=e.viewerContent;i?this._parseModelsLoaded(i,(()=>{t()})):t()}_parseModelsLoaded(e,t){const i=e.modelsLoaded;i&&0!==i.length?this._loadNextModel(i.slice(0),t):t()}_loadNextModel(e,t){if(0===e.length)return void t();const i=e.pop();this.loadModel(i,(()=>{this._loadNextModel(e,t)}),(()=>{this._loadNextModel(e,t)}))}_parseViewerState(e,t){const i=e.viewerState;i?this.bimViewer.setViewerState(i,t):t()}unloadProject(){if(!this._projectId)return;const e=this.viewer.scene.models;for(var t in e)if(e.hasOwnProperty(t)){e[t].destroy()}this._modelsElement.innerHTML="",this._numModelsLoaded=0,this._loadModelsButtonElement.classList.add("disabled"),this._unloadModelsButtonElement.classList.add("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.add("disabled");const i=this._projectId;this._projectId=null,this.fire("projectUnloaded",{projectId:i})}getLoadedProjectId(){return this._projectId}getModelIds(){return Object.keys(this._modelsInfo)}loadModel(e,t,i){if(!this._projectId){const e="No project currently loaded";return this.error(e),void(i&&i(e))}const s=this._modelsInfo[e];if(!s){const e="Model not in currently loaded project";return this.error(e),void(i&&i(e))}this.bimViewer._busyModal.show(`${this.viewer.localeService.translate("busyModal.loading")||"Loading"} ${s.name}`);this.bimViewer.getConfig("externalMetadata")&&!s.manifest?this.server.getMetadata(this._projectId,e,(r=>{this._loadGeometry(e,s,r,t,i)}),(e=>{this.bimViewer._busyModal.hide(),this.error(e),i&&i(e)})):this._loadGeometry(e,s,null,t,i)}_loadGeometry(e,t,i,s,r){const o=()=>{document.getElementById(""+e).checked=!0,this._numModelsLoaded++,this._unloadModelsButtonElement.classList.remove("disabled"),this._numModelsLoaded{this.bimViewer._busyModal.hide(),this.error(e),r&&r(e)};if(t.manifest){this._dataSource.setProjectId(this._projectId),this._dataSource.setModelId(e);const i=this._xktLoader.load({id:e,manifestSrc:t.manifest,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});i.on("loaded",o),i.on("error",n)}else this.server.getGeometry(this._projectId,e,(s=>{const r=this._xktLoader.load({id:e,metaModelData:i,xkt:s,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});r.on("loaded",o),r.on("error",n)}),n)}_jumpToInitialCamera(){const e=this.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds),s=u.getAABB3Diag(i),r=u.getAABB3Center(i,Eb),o=t.camera;o.perspective.fov;const n=Math.abs(s/Math.tan(45*u.DEGTORAD)),a=u.normalizeVec3(o.yUp?[-.5,-.7071,-.5]:[-1,1,-1]),l=u.normalizeVec3(o.yUp?[-.5,.7071,-.5]:[-1,1,1]);e.cameraControl.pivotPos=r,e.cameraControl.planView=!1,e.cameraFlight.jumpTo({look:r,eye:[r[0]-n*a[0],r[1]-n*a[1],r[2]-n*a[2]],up:l,orthoScale:1.1*s})}unloadModel(e){const t=this.viewer.scene.models[e];if(!t)return void this.error("Model not loaded: "+e);t.destroy();document.getElementById(""+e).checked=!1,document.getElementById("span-"+e),this._numModelsLoaded--,this._numModelsLoaded>0?this._unloadModelsButtonElement.classList.remove("disabled"):this._unloadModelsButtonElement.classList.add("disabled"),this._numModelsLoadede.viewer.localeService.translate("treeViewContextMenu.inspectProperties")||"Inspect Properties",getShown:e=>!!e.viewer.metaScene.metaObjects[e.treeViewNode.objectId],doAction:e=>{const t=e.treeViewNode.objectId;e.bimViewer.showObjectProperties(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFit")||"View Fit",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)})),i.setObjectsVisible(s,!0),i.setObjectsHighlighted(s,!0);const r=i.getAABB(s);t.cameraFlight.flyTo({aabb:r,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=u.getAABB3Center(r)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFitAll")||"View Fit All",doAction:function(e){const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.isolate")||"Isolate",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));const r=i.getAABB(s);t.cameraControl.pivotPos=u.getAABB3Center(r,Db),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsVisible(i.visibleObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(s,!0),t.cameraFlight.flyTo({aabb:r},(()=>{}))}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hide")||"Hide",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideOthers")||"Hide Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.visibleObjectIds,!1),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideAll")||"Hide All",getEnabled:function(e){return e.viewer.scene.visibleObjectIds.length>0},doAction:function(e){e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.show")||"Show",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!0,i.xrayed&&(i.pickable=!0),i.xrayed=!1,i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showOthers")||"Shows Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showAll")||"Show All",getEnabled:function(e){const t=e.viewer.scene;return t.numVisibleObjects0},doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xray")||"X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1,i.xrayed=!0,i.visible=!0,i.pickable=e.bimViewer.getConfig("xrayPickable"))}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoXray")||"Undo X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayOthers")||"X-Ray Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayAll")||"X-Ray All",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayNone")||"X-Ray None",getEnabled:function(e){return e.viewer.scene.numXRayedObjects>0},doAction:function(e){const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.select")||"Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!0,i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoSelect")||"Undo Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.selectNone")||"Select None",getEnabled:function(e){return e.viewer.scene.numSelectedObjects>0},doAction:function(e){e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.clearSlices")||"Clear Slices",getEnabled:function(e){return e.bimViewer.getNumSections()>0},doAction:function(e){e.bimViewer.clearSections()}}],s]}}class Tb extends cb{constructor(e,t={}){if(super(e),!t.objectsTabElement)throw"Missing config: objectsTabElement";if(!t.showAllObjectsButtonElement)throw"Missing config: showAllObjectsButtonElement";if(!t.hideAllObjectsButtonElement)throw"Missing config: hideAllObjectsButtonElement";if(!t.objectsElement)throw"Missing config: objectsElement";if(this._objectsTabElement=t.objectsTabElement,this._showAllObjectsButtonElement=t.showAllObjectsButtonElement,this._hideAllObjectsButtonElement=t.hideAllObjectsButtonElement,this._objectsTabButtonElement=this._objectsTabElement.querySelector(".xeokit-tab-btn"),!this._objectsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";const i=t.objectsElement;this._treeView=new _v(this.viewer,{containerElement:i,hierarchy:"containment",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Sb(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._objectsTabButtonElement.classList.remove("disabled"),this._showAllObjectsButtonElement.classList.remove("disabled"),this._hideAllObjectsButtonElement.classList.remove("disabled")):(this._objectsTabButtonElement.classList.add("disabled"),this._showAllObjectsButtonElement.classList.add("disabled"),this._hideAllObjectsButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}class Rb extends cb{constructor(e,t={}){if(super(e),!t.classesTabElement)throw"Missing config: classesTabElement";if(!t.showAllClassesButtonElement)throw"Missing config: showAllClassesButtonElement";if(!t.hideAllClassesButtonElement)throw"Missing config: hideAllClassesButtonElement";if(!t.classesElement)throw"Missing config: classesElement";if(this._classesTabElement=t.classesTabElement,this._showAllClassesButtonElement=t.showAllClassesButtonElement,this._hideAllClassesButtonElement=t.hideAllClassesButtonElement,this._classesTabButtonElement=this._classesTabElement.querySelector(".xeokit-tab-btn"),!this._classesTabButtonElement)throw"Missing DOM element: xeokit-tab-btn";const i=t.classesElement;this._treeView=new _v(this.viewer,{containerElement:i,hierarchy:"types",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Sb(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._classesTabButtonElement.classList.remove("disabled"),this._showAllClassesButtonElement.classList.remove("disabled"),this._hideAllClassesButtonElement.classList.remove("disabled")):(this._classesTabButtonElement.classList.add("disabled"),this._showAllClassesButtonElement.classList.add("disabled"),this._hideAllClassesButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const Lb=u.vec3();class Ub extends cb{constructor(e,t={}){if(super(e),!t.storeysTabElement)throw"Missing config: storeysTabElement";if(!t.showAllStoreysButtonElement)throw"Missing config: showAllStoreysButtonElement";if(!t.hideAllStoreysButtonElement)throw"Missing config: hideAllStoreysButtonElement";if(!t.storeysElement)throw"Missing config: storeysElement";if(this._storeysTabElement=t.storeysTabElement,this._showAllStoreysButtonElement=t.showAllStoreysButtonElement,this._hideAllStoreysButtonElement=t.hideAllStoreysButtonElement,this._storeysTabButtonElement=this._storeysTabElement.querySelector(".xeokit-tab-btn"),!this._storeysTabButtonElement)throw"Missing DOM element: .xeokit-tab-btn";const i=t.storeysElement;this._treeView=new _v(this.viewer,{containerElement:i,autoAddModels:!1,hierarchy:"storeys",autoExpandDepth:1}),this._treeViewContextMenu=new Sb(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode,pruneEmptyNodes:!0},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{const t=this.bimViewer._modelsExplorer.getModelInfo(e);t&&this._treeView.addModel(e,{rootName:t.name})})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse(),this._treeView.expandToDepth(1)}))}setEnabled(e){e?(this._storeysTabButtonElement.classList.remove("disabled"),this._showAllStoreysButtonElement.classList.remove("disabled"),this._hideAllStoreysButtonElement.classList.remove("disabled")):(this._storeysTabButtonElement.classList.add("disabled"),this._showAllStoreysButtonElement.classList.add("disabled"),this._hideAllStoreysButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];if(!i)return void this.error("selectStorey() - object is not found: '"+e+"'");if("IfcBuildingStorey"!==i.type)return void this.error("selectStorey() - object is not found: '"+e+"'");const s=i.getObjectIDsInSubtree();this._selectObjects(s,t)}_selectObjects(e,t){const i=this.viewer.scene,s=i.getAABB(e);this.viewer.cameraControl.pivotPos=u.getAABB3Center(s,Lb),t?(i.setObjectsXRayed(i.objectIds,!0),i.setObjectsVisible(i.objectIds,!0),i.setObjectsPickable(i.objectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsXRayed(e,!1),i.setObjectsVisible(e,!0),i.setObjectsPickable(e,!0),this.viewer.cameraFlight.flyTo({aabb:s},(()=>{setTimeout((function(){i.setObjectsVisible(i.xrayedObjectIds,!1),i.setObjectsXRayed(i.xrayedObjectIds,!1)}),500),t()}))):(i.setObjectsVisible(i.objectIds,!1),i.setObjectsPickable(i.xrayedObjectIds,!0),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(e,!0),this.viewer.cameraFlight.jumpTo({aabb:s}))}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const kb=u.vec3();class Ob extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._saveOrthoActive=null,this._buttonElement=t.buttonElement,this._cameraControlNavModeMediator=t.cameraControlNavModeMediator,this._active=!1,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&(this.bimViewer._sectionTool.hideControl(),this.setActive(!this.getActive(),(()=>{}))),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!0,(()=>{}))}))}setEnabled(e){super.setEnabled(e),this._saveOrthoActive=this.bimViewer._orthoMode.getActive()}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterThreeDMode((()=>{this.fire("active",this._active),t()})):(this._enterThreeDMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitThreeDMode((()=>{this.fire("active",this._active),t()})):(this._exitThreeDMode(),this.fire("active",this._active)))):t&&t()}_enterThreeDMode(e){const t=this.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds),r=u.getAABB3Diag(s),o=u.getAABB3Center(s,kb),n=Math.abs(r/Math.tan(32.5)),a=i.camera,l=a.yUp?[-1,-1,-1]:[1,1,1],A=a.yUp?[-1,1,-1]:[-1,1,1];t.cameraControl.pivotPos=o,this.bimViewer._navCubeMode.setActive(!0),this.bimViewer._firstPersonMode.setEnabled(!0),this._cameraControlNavModeMediator.setThreeDModeActive(!0),this.bimViewer._sectionTool.setEnabled(!0),this.bimViewer._orthoMode.setEnabled(!0),e?t.cameraFlight.flyTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,duration:1,projection:this._saveOrthoActive?"ortho":"perspective"},(()=>{e()})):t.cameraFlight.jumpTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,projection:this._saveOrthoActive?"ortho":"perspective"})}_exitThreeDMode(e){const t=this.viewer,i=t.scene,s=i.camera,r=i.getAABB(i.visibleObjectIds),o=u.getAABB3Center(r),n=u.getAABB3Diag(r),a=Math.abs(n/Math.tan(45*u.DEGTORAD)),l=1.3*n,A=kb;A[0]=o[0]+s.worldUp[0]*a,A[1]=o[1]+s.worldUp[1]*a,A[2]=o[2]+s.worldUp[2]*a;const h=u.mulVec3Scalar(s.worldForward,-1,[]);this.bimViewer._sectionTool.setActive(!1),this.bimViewer._firstPersonMode.setEnabled(!1),this._saveOrthoActive=this.bimViewer._orthoMode.getActive(),this.bimViewer._orthoMode.setEnabled(!1),this._cameraControlNavModeMediator.setThreeDModeActive(!1),e?t.cameraFlight.flyTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"},(()=>{this.bimViewer._navCubeMode.setActive(!1)})):(t.cameraFlight.jumpTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"}),this.bimViewer._navCubeMode.setActive(!1))}}class Nb extends o{constructor(e,t={}){super(t),this._bimViewer=e,this._buildMenu(t)}_buildMenu(e){const t=[],i=[],s=[],r=!!e.enableMeasurements;this._bimViewer._enablePropertiesInspector&&t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.inspectProperties")||"Inspect Properties",doAction:e=>{const t=e.entity.id;e.bimViewer.showObjectProperties(t)}}),t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showInTree")||"Show in Explorer",doAction:e=>{const t=e.entity.id;e.showObjectInExplorers(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFit")||"View Fit",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity;t.cameraFlight.flyTo({aabb:s.aabb,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=u.getAABB3Center(s.aabb)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hide")||"Hide",getEnabled:e=>e.entity.visible,doAction:e=>{e.entity.visible=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideOthers")||"Hide Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.visibleObjectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.visible=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xray")||"X-Ray",getEnabled:e=>!e.entity.xrayed,doAction:e=>{const t=e.entity;t.xrayed=!0,t.pickable=e.bimViewer.getConfig("xrayPickable")}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayOthers")||"X-Ray Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.objectIds,!0),i.setObjectsXRayed(i.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||i.setObjectsPickable(i.objectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.xrayed=!1,t.pickable=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.select")||"Select",getEnabled:e=>!e.entity.selected,doAction:e=>{e.entity.selected=!0}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.undoSelect")||"Undo Select",getEnabled:e=>e.entity.selected,doAction:e=>{e.entity.selected=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],s]}}class Qb extends o{constructor(e,t={}){super({hideOnAction:t.hideOnAction,context:t.context,items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene.xrayedObjectIds;e.viewer.scene.setObjectsPickable(t,!0),e.viewer.scene.setObjectsXRayed(t,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.resetView")||"Reset View",doAction:e=>{e.bimViewer.resetView()}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],t.enableMeasurements?[{getTitle:e=>"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]:[]]})}}class Vb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.camera.on("projection",(()=>{const e="ortho"===this.viewer.camera.projection;this._active=e,this._active?this._buttonElement.classList.add("active"):this._buttonElement.classList.remove("active")})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterOrthoMode((()=>{this.fire("active",this._active),t()})):(this._enterOrthoMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitOrthoMode((()=>{this.fire("active",this._active),t()})):(this._exitOrthoMode(),this.fire("active",this._active)))):t&&t()}_enterOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"ortho",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"ortho"})}_exitOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"perspective",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"perspective"})}}class jb extends cb{constructor(e,t={}){if(super(e),!t.propertiesTabElement)throw"Missing config: propertiesTabElement";if(!t.propertiesElement)throw"Missing config: propertiesElement";if(this._metaObject=null,this._propertiesTabElement=t.propertiesTabElement,this._propertiesElement=t.propertiesElement,this._propertiesTabButtonElement=this._propertiesTabElement.querySelector(".xeokit-tab-btn"),!this._propertiesTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{if(this._metaObject){const t=this._metaObject.metaModels;for(let i=0,s=t.length;i{this.clear()})),document.addEventListener("click",this._clickListener=e=>{e.target.matches(".xeokit-accordion .xeokit-accordion-button")&&(e.target.parentElement.classList.contains("active")?e.target.parentElement.classList.remove("active"):e.target.parentElement.classList.add("active"))}),this.clear()}showObjectPropertySets(e){const t=this.viewer.metaScene.metaObjects[e];if(!t)return;const i=t.propertySets;i&&i.length>0?this._setPropertySets(t,i):this._setPropertySets(t),this._metaObject=t}clear(){const e=[],t=this.viewer.localeService.translate("propertiesInspector.noObjectSelectedWarning")||"No object inspected. Right-click or long-tab an object and select 'Inspect Properties' to view its properties here.";e.push('
'),e.push(`

${t}

`),e.push("
");const i=e.join("");this._propertiesElement.innerHTML=i}_setPropertySets(e,t){const i=[];if(i.push('
'),e){i.push(''),i.push(``),e.type&&i.push(``),i.push(``),i.push(``);const s=e.attributes;if(s)for(let e in s)i.push(``);if(i.push("
Name:${e.name}
Class:${e.type}
UUID:${e.originalSystemId}
Viewer ID:${e.id}
${Hb(e)}:${s[e]}
"),t&&0!==t.length){i.push("
"),i.push('
');for(let e=0,s=t.length;e0){i.push(`
\n

${s.name}

\n
\n `);for(let e=0,t=r.length;e`)}i.push("
${t.name||t.label}:${t.value}
\n
\n
")}}i.push("
")}else{const e=this.viewer.localeService.translate("propertiesInspector.noPropSetWarning")||"No properties sets found for this object";i.push(`

${e}

`),i.push("")}}else i.push('

No object selected

');this._propertiesElement.innerHTML=i.join("")}setEnabled(e){e?this._propertiesTabButtonElement.classList.remove("disabled"):this._propertiesTabButtonElement.classList.add("disabled")}destroy(){super.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded),document.removeEventListener("click",this._clickListener)}}function Hb(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e}const zb=new Float32Array(3);class Gb{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 i=e.objects[t];this._insertEntity(this._root,i,1)}this._needsRebuild=!1}_insertEntity(e,t,i){const s=t.aabb;if(i>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&u.containsAABB3(e.left.aabb,s))return void this._insertEntity(e.left,t,i+1);if(e.right&&u.containsAABB3(e.right.aabb,s))return void this._insertEntity(e.right,t,i+1);const r=e.aabb;zb[0]=r[3]-r[0],zb[1]=r[4]-r[1],zb[2]=r[5]-r[2];let o=0;if(zb[1]>zb[o]&&(o=1),zb[2]>zb[o]&&(o=2),!e.left){const n=r.slice();if(n[o+3]=(r[o]+r[o+3])/2,e.left={aabb:n},u.containsAABB3(n,s))return void this._insertEntity(e.left,t,i+1)}if(!e.right){const n=r.slice();if(n[o]=(r[o]+r[o+3])/2,e.right={aabb:n},u.containsAABB3(n,s))return void this._insertEntity(e.right,t,i+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 Wb extends cb{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";this._objectsKdTree3=t.objectsKdTree3,this._marquee=u.AABB2(),this._marqueeFrustum=new L,this._marqueeFrustumProjMat=u.mat4(),this._marqueeDir=!1;const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._objectsKdTree3.root):i.classList.remove("active")})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}));const s=this.viewer.scene,r=s.canvas.canvas;this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement);const o=this._marqueeElement.style;let n,a,l,A,h,c,d,p;o.position="absolute",o["z-index"]="40000005",o.width="8px",o.height="8px",o.visibility="hidden",o.top="0px",o.left="0px",o["box-shadow"]="0 2px 5px 0 #182A3D;",o.opacity=1,o["pointer-events"]="none";let g=!1,m=!1;r.addEventListener("mousedown",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;const t=this.bimViewer.viewer.scene.input;t.keyDown[t.KEY_CTRL]||s.setObjectsSelected(s.selectedObjectIds,!1),n=e.pageX,a=e.pageY,o.visibility="visible",o.left=`${n}px`,o.top=`${a}px`,o.width="0px",o.height="0px",o.display="block",h=e.offsetX,c=e.offsetY,g=!0,this.viewer.cameraControl.pointerEnabled=!1})),r.addEventListener("mouseup",(e=>{if(!this.getActive()||!this.getEnabled())return;if(!g&&!m)return;if(0!==e.button)return;l=e.pageX,A=e.pageY;const t=Math.abs(l-n),i=Math.abs(A-a);o.width=`${t}px`,o.height=`${i}px`,o.visibility="hidden",g=!1,this.viewer.cameraControl.pointerEnabled=!0,m&&(m=!1),(t>3||i>3)&&this._marqueePick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&this.getEnabled()&&0===e.button&&g&&(o.visibility="hidden",g=!1,m=!0,this.viewer.cameraControl.pointerEnabled=!0)}),!0),r.addEventListener("mousemove",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;if(!g)return;const t=e.pageX,i=e.pageY,s=t-n,r=i-a;o.width=`${Math.abs(s)}px`,o.height=`${Math.abs(r)}px`,o.left=`${Math.min(n,t)}px`,o.top=`${Math.min(a,i)}px`,d=e.offsetX,p=e.offsetY;const l=h{if(s===L.INTERSECT&&(s=k(this._marqueeFrustum,i.aabb)),s!==L.OUTSIDE){if(i.entities){const t=i.entities;for(let i=0,s=t.length;ie.measurement.axisVisible?"Hide Measurement Axis":"Show Measurement Axis",doAction:function(e){e.measurement.axisVisible=!e.measurement.axisVisible}},{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Labels":"Show Measurement Labels",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin=new VA(this.viewer,{defaultAxisVisible:!1}),this._distanceMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._distanceMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={distanceMeasurementsPlugin:this._distanceMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._distanceMeasurementsMouseControl=new QA(this._distanceMeasurementsPlugin,{}),this._distanceMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._distanceMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._distanceMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._distanceMeasurementsPlugin.measurements).length}setMeasurementsAxisVisible(e){this._distanceMeasurementsPlugin.setAxisVisible(e)}getMeasurementsAxisVisible(){return this._distanceMeasurementsPlugin.getAxisVisible()}setSnappingEnabled(e){return this._distanceMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._distanceMeasurementsMouseControl.snapping}clear(){this._distanceMeasurementsPlugin.clear()}destroy(){this._distanceMeasurementsPlugin.destroy(),this._distanceMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}class Xb extends cb{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this._contextMenu=new o({items:[[{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Label":"Show Measurement Label",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin=new pe(this.viewer,{}),this._angleMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._angleMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={angleMeasurementsPlugin:this._angleMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._angleMeasurementsMouseControl=new de(this._angleMeasurementsPlugin,{}),this._angleMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._angleMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._angleMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._angleMeasurementsPlugin.measurements).length}setSnappingEnabled(e){return this._angleMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._angleMeasurementsMouseControl.snapping}clear(){this._angleMeasurementsPlugin.clear()}destroy(){this._angleMeasurementsPlugin.destroy(),this._angleMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}function Yb(e){const t="xeokit-tab",i="active";function s(e){let s=e.parentNode.querySelectorAll("."+t);for(let t=0;t{e.preventDefault()},o.oncontextmenu=e=>{e.preventDefault()},n.oncontextmenu=e=>{e.preventDefault()};const l=new jf({localeService:t.localeService,canvasElement:i,keyboardEventsElement:t.keyboardEventsElement,transparent:!1,backgroundColor:[1,1,1],backgroundColorFromAmbientLight:!1,saoEnabled:!0,pbrEnabled:!1,colorTextureEnabled:!0,numCachedSectionPlanes:4});super(null,t,e,l),this._configs={},this._enableAddModels=!!t.enableEditModels,this._enableMeasurements=!1!==t.enableMeasurements,this._enablePropertiesInspector=!!t.inspectorElement,this.viewer=l,this._objectsKdTree3=new Gb({viewer:l}),this._customizeViewer(),this._initCanvasContextMenus(),s.innerHTML=function(e){return'
\n
\n Models\n
\n
\n \n '+(e.enableEditModels?'':"")+'
\n
\n
\n
\n
\n Objects\n
\n
\n \n \n
\n
\n
\n
\n
\n Classes\n
\n
\n \n \n
\n
\n
\n
\n
\n Storeys\n
\n
\n \n \n
\n
\n
\n
\n
'}(t),o.innerHTML=function(e={}){return'
\n \x3c!-- Reset button --\x3e\n
\n \n
\n
\n \x3c!-- 3D Mode button --\x3e\n \n \x3c!-- Perspective/Ortho Mode button --\x3e\n \n \x3c!-- Fit button --\x3e\n \n \x3c!-- First Person mode button --\x3e\n \n \x3c!-- Show/hide IFCSpaces --\x3e\n \n
\n \x3c!-- Tools button group --\x3e\n
\n \x3c!-- Hide tool button --\x3e\n \n \x3c!-- Select tool button --\x3e\n \n \x3c!-- Marquee select tool button --\x3e\n '+(e.enableMeasurements?'\x3c!-- Measure distance tool button --\x3e\n \n \x3c!-- Measure angle tool button --\x3e\n ':" ")+'\x3c!-- section tool button --\x3e\n \n
\n
'}({enableMeasurements:this._enableMeasurements}),this._enablePropertiesInspector&&(r.innerHTML='
\n
\n Properties\n
\n
\n
\n
\n
'),this._explorerElement=s,this._inspectorElement=r,Yb(s),this._enablePropertiesInspector&&Yb(r),this._modelsExplorer=new Ib(this,{enableMeasurements:this._enableMeasurements,modelsTabElement:s.querySelector(".xeokit-modelsTab"),loadModelsButtonElement:s.querySelector(".xeokit-loadAllModels"),unloadModelsButtonElement:s.querySelector(".xeokit-unloadAllModels"),addModelButtonElement:s.querySelector(".xeokit-addModel"),modelsElement:s.querySelector(".xeokit-models"),enableEditModels:this._enableAddModels}),this._objectsExplorer=new Tb(this,{enableMeasurements:this._enableMeasurements,objectsTabElement:s.querySelector(".xeokit-objectsTab"),showAllObjectsButtonElement:s.querySelector(".xeokit-showAllObjects"),hideAllObjectsButtonElement:s.querySelector(".xeokit-hideAllObjects"),objectsElement:s.querySelector(".xeokit-objects")}),this._classesExplorer=new Rb(this,{enableMeasurements:this._enableMeasurements,classesTabElement:s.querySelector(".xeokit-classesTab"),showAllClassesButtonElement:s.querySelector(".xeokit-showAllClasses"),hideAllClassesButtonElement:s.querySelector(".xeokit-hideAllClasses"),classesElement:s.querySelector(".xeokit-classes")}),this._storeysExplorer=new Ub(this,{enableMeasurements:this._enableMeasurements,storeysTabElement:s.querySelector(".xeokit-storeysTab"),showAllStoreysButtonElement:s.querySelector(".xeokit-showAllStoreys"),hideAllStoreysButtonElement:s.querySelector(".xeokit-hideAllStoreys"),storeysElement:s.querySelector(".xeokit-storeys")}),this._enablePropertiesInspector&&(this._propertiesInspector=new jb(this,{propertiesTabElement:r.querySelector(".xeokit-propertiesTab"),propertiesElement:r.querySelector(".xeokit-properties")})),this._resetAction=new pb(this,{buttonElement:o.querySelector(".xeokit-reset"),active:!1}),this._fitAction=new mb(this,{buttonElement:o.querySelector(".xeokit-fit"),active:!1});const A=new function(e){let t=!1;this.setThreeDModeActive=i=>{i?(e._firstPersonMode.setActive(!1),e._marqueeSelectionTool.setEnabled(!0),e.viewer.cameraControl.navMode="orbit"):(e._marqueeSelectionTool.setEnabled(!1),e._marqueeSelectionTool.setActive(!1),e._firstPersonMode.setActive(!1),e.viewer.cameraControl.navMode="planView"),t=i},this.setFirstPersonModeActive=i=>{e.viewer.cameraControl.navMode=i?"firstPerson":t?"orbit":"planView"}}(this);this._threeDMode=new Ob(this,{buttonElement:o.querySelector(".xeokit-threeD"),cameraControlNavModeMediator:A,active:!1}),this._orthoMode=new Vb(this,{buttonElement:o.querySelector(".xeokit-ortho"),active:!1}),this._firstPersonMode=new fb(this,{buttonElement:o.querySelector(".xeokit-firstPerson"),cameraControlNavModeMediator:A,active:!1}),this._hideTool=new _b(this,{buttonElement:o.querySelector(".xeokit-hide"),active:!1}),this._selectionTool=new vb(this,{buttonElement:o.querySelector(".xeokit-select"),active:!1}),this._marqueeSelectionTool=new Wb(this,{buttonElement:o.querySelector(".xeokit-marquee"),active:!1,objectsKdTree3:this._objectsKdTree3}),this._showSpacesMode=new bb(this,{buttonElement:o.querySelector(".xeokit-showSpaces"),active:!1}),this._queryTool=new xb(this,{active:!1}),this._sectionTool=new Bb(this,{buttonElement:o.querySelector(".xeokit-section"),counterElement:o.querySelector(".xeokit-section-counter"),menuButtonElement:o.querySelector(".xeokit-section-menu-button"),menuButtonArrowElement:o.querySelector(".xeokit-section-menu-button-arrow"),active:!1}),this._measureDistanceTool=new Kb(this,{buttonElement:o.querySelector(".xeokit-measure-distance"),active:!1}),this._measureAngleTool=new Xb(this,{buttonElement:o.querySelector(".xeokit-measure-angle"),active:!1}),this._navCubeMode=new Cb(this,{navCubeCanvasElement:n,active:!0}),this._busyModal=new ub(this,{busyModalBackdropElement:a}),this._threeDMode.setActive(!0),this._firstPersonMode.setActive(!1),this._navCubeMode.setActive(!0),this._modelsExplorer.on("modelLoaded",(e=>{this._modelsExplorer.getNumModelsLoaded()>0&&this.setControlsEnabled(!0),this.fire("modelLoaded",e)})),this._modelsExplorer.on("modelUnloaded",(e=>{0===this._modelsExplorer.getNumModelsLoaded()&&(this.setControlsEnabled(!1),this.openTab("models")),this.fire("modelUnloaded",e)})),this._resetAction.on("reset",(()=>{this.fire("reset",!0)})),this._mutexActivation([this._hideTool,this._selectionTool,this._marqueeSelectionTool,this._sectionTool,this._measureDistanceTool,this._measureAngleTool]),s.querySelector(".xeokit-showAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-loadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this.loadAllModels(),e.preventDefault()})),s.querySelector(".xeokit-unloadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this._modelsExplorer.unloadAllModels(),e.preventDefault()})),this._enableAddModels&&s.querySelector(".xeokit-addModel").addEventListener("click",(e=>{this.fire("addModel",{}),e.preventDefault()})),this._bcfViewpointsPlugin=new DA(this.viewer,{xrayAsZeroAlpha:!0}),this._fastNavPlugin=new jA(l,{hideEdges:!0,hideSAO:!0,hidePBR:!1,hideColorTexture:!1,hideTransparentObjects:!1,scaleCanvasResolution:!1,scaleCanvasResolutionFactor:.6}),this._initConfigs(),this.setControlsEnabled(!1)}get localeService(){return this.viewer.localeService}_customizeViewer(){const e=this.viewer.scene;e.xrayMaterial.fill=!1,e.xrayMaterial.fillAlpha=.3,e.xrayMaterial.fillColor=[0,0,0],e.xrayMaterial.edges=!0,e.xrayMaterial.edgeAlpha=.1,e.xrayMaterial.edgeColor=[0,0,0],e.highlightMaterial.edges=!0,e.highlightMaterial.edgeColor=[1,1,1],e.highlightMaterial.edgeAlpha=1,e.highlightMaterial.fill=!0,e.highlightMaterial.fillAlpha=.1,e.highlightMaterial.fillColor=[1,0,0],e.selectedMaterial.edges=!0,e.selectedMaterial.edgeColor=[1,1,1],e.selectedMaterial.edgeAlpha=1,e.selectedMaterial.fill=!0,e.selectedMaterial.fillAlpha=.1,e.selectedMaterial.fillColor=[0,1,0],e.pointsMaterial.pointSize=1,e.pointsMaterial.roundPoints=!0,e.pointsMaterial.perspectivePoints=!0,e.pointsMaterial.minPerspectivePointSize=2,e.pointsMaterial.maxPerspectivePointSize=4,this.viewer.cameraControl.panRightClick=!0,this.viewer.cameraControl.followPointer=!0,this.viewer.cameraControl.doublePickFlyTo=!1,this.viewer.cameraControl.smartPivot=!0,this.viewer.cameraControl.keyboardDollyRate=100,this.viewer.cameraControl.mouseWheelDollyRate=100,this.viewer.cameraControl.dollyInertia=0,this.viewer.cameraControl.dollyMinSpeed=.04,this.viewer.cameraControl.dollyProximityThreshold=30;const t=document.createRange().createContextualFragment("
").firstChild;document.body.appendChild(t),this.viewer.cameraControl.pivotElement=t,e.camera.perspective.near=.01,e.camera.perspective.far=3e3,e.camera.ortho.near=.01,e.camera.ortho.far=2e3;const i=e.sao;i.enabled=!0,i.numSamples=50,i.kernelRadius=200}_initCanvasContextMenus(){this._canvasContextMenu=new Qb(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this._objectContextMenu=new Nb(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this.viewer.cameraControl.on("rightClick",(e=>{e.event;const t=this.viewer.scene.pick({canvasPos:e.canvasPos});t&&t.entity.isObject?(this._canvasContextMenu.hide(),this._objectContextMenu.context={viewer:this.viewer,bimViewer:this,showObjectInExplorers:e=>{const t=this.getOpenTab();"objects"!==t&&"classes"!==t&&"storeys"!==t&&this.openTab("objects"),this.showObjectInExplorers(e)},entity:t.entity},this._objectContextMenu.show(e.pagePos[0],e.pagePos[1])):(this._objectContextMenu.hide(),this._canvasContextMenu.context={viewer:this.viewer,bimViewer:this},this._canvasContextMenu.show(e.pagePos[0],e.pagePos[1]))}))}_initConfigs(){this.setConfigs({cameraNear:"0.05",cameraFar:"3000.0",smartPivot:!0,saoEnabled:!0,pbrEnabled:!1,scaleCanvasResolution:!1,saoBias:.5,saoIntensity:.15,saoNumSamples:40,saoKernelRadius:100,edgesEnabled:!0,xrayContext:!0,xrayPickable:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,backgroundColor:[1,1,1],externalMetadata:!1,dtxEnabled:!1})}setConfigs(e){for(let t in e)if(e.hasOwnProperty(t)){const i=e[t];this.setConfig(t,i)}}setConfig(e,t){function i(e){return!0===e||"true"===e}try{switch(e){case"backgroundColor":const s=t;this.setBackgroundColor(s),this._configs[e]=s;break;case"cameraNear":const r=parseFloat(t);this.viewer.scene.camera.perspective.near=r,this.viewer.scene.camera.ortho.near=r,this._configs[e]=r;break;case"cameraFar":const o=parseFloat(t);this.viewer.scene.camera.perspective.far=o,this._configs[e]=o;break;case"smartPivot":this.viewer.cameraControl.smartPivot=this._configs[e]=i(t);break;case"saoEnabled":this._fastNavPlugin.saoEnabled=this._configs[e]=i(t);break;case"saoBias":this.viewer.scene.sao.bias=parseFloat(t);break;case"saoIntensity":this.viewer.scene.sao.intensity=parseFloat(t);break;case"saoKernelRadius":this.viewer.scene.sao.kernelRadius=this._configs[e]=parseFloat(t);break;case"saoNumSamples":this.viewer.scene.sao.numSamples=this._configs[e]=parseFloat(t);break;case"saoBlur":this.viewer.scene.sao.blur=this._configs[e]=i(t);break;case"edgesEnabled":this._fastNavPlugin.edgesEnabled=this._configs[e]=i(t);break;case"pbrEnabled":this._fastNavPlugin.pbrEnabled=this._configs[e]=i(t);break;case"scaleCanvasResolution":this._fastNavPlugin.scaleCanvasResolution=this._configs[e]=i(t);break;case"viewFitFOV":this.viewer.cameraFlight.fitFOV=this._configs[e]=parseFloat(t);break;case"viewFitDuration":this.viewer.cameraFlight.duration=this._configs[e]=parseFloat(t);break;case"perspectiveFOV":this.viewer.camera.perspective.fov=this._configs[e]=parseFloat(t);break;case"excludeUnclassifiedObjects":case"xrayPickable":case"externalMetadata":this._configs[e]=i(t);break;case"xrayContext":this._configs[e]=t;break;case"selectedGlowThrough":const n=this._configs[e]=i(t),a=this.viewer.scene.selectedMaterial;a.glowThrough=n,a.fillAlpha=n?.5:1,a.edgeAlpha=n?.5:1;break;case"highlightGlowThrough":const l=this._configs[e]=i(t),A=this.viewer.scene.highlightMaterial;A.glowThrough=l,A.fillAlpha=l?.5:1,A.edgeAlpha=l?.5:1;break;case"showSpaces":this._configs[e]=i(t),this._showSpacesMode.setActive(t);break;case"dtxEnabled":this._configs[e]=i(t),this.viewer.scene.dtxEnabled=t;break;case"objectColors":this._configs[e]=t,this._modelsExplorer.setObjectColors(t);break;default:this.warn("setConfig() - unsupported configuration: '"+e+"'")}}catch(t){this.error("setConfig() - failed to configure '"+e+"': "+t)}}getConfig(e){return this._configs[e]}getProjectsInfo(e,t){e?this.server.getProjects(e,(e=>{this.error("getProjectsInfo() - "+e),t&&t(e)})):this.error("getProjectsInfo() - Argument expected: 'done'")}getProjectInfo(e,t,i){e?t?this.server.getProject(e,t,(e=>{this.error("getProjectInfo() - "+e),i&&i(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getProjectInfo() - Argument expected: projectId")}getObjectInfo(e,t,i,s,r){e?t?i?s?this.server.getObjectInfo(e,t,i,s,(e=>{r&&r(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getObjectInfo() - Argument expected: objectId"):this.error("getObjectInfo() - Argument expected: modelId"):this.error("getObjectInfo() - Argument expected: projectId")}loadProject(e,t,i){e?this._modelsExplorer.loadProject(e,(()=>{t&&t()}),(e=>{this.error("loadProject() - "+e),i&&i(e)})):this.error("loadProject() - Argument expected: objectId")}unloadProject(){this._modelsExplorer.unloadProject(),this.openTab("models"),this.setControlsEnabled(!1)}getLoadedProjectId(){return this._modelsExplorer.getLoadedProjectId()}getModelIds(){return this._modelsExplorer.getModelIds()}loadModel(e,t,i){e?this._modelsExplorer.loadModel(e,(()=>{t&&t()}),(e=>{this.error("loadModel() - "+e),i&&i(e)})):this.error("loadModel() - Argument expected: modelId")}loadAllModels(e=function(){}){const t=this._modelsExplorer.getModelIds(),i=(e,s)=>{if(e>=t.length)s();else{const r=t[e];this._modelsExplorer.isModelLoaded(r)?i(e+1,s):this._modelsExplorer.loadModel(r,(()=>{i(e+1,s)}),(t=>{this.error("loadAllModels() - "+t),i(e+1,s)}))}};i(0,e)}getLoadedModelIds(){return this._modelsExplorer._getLoadedModelIds()}isModelLoaded(e){if(e)return this._modelsExplorer.isModelLoaded(e);this.error("unloadModel() - Argument expected: modelId")}unloadModel(e){e?this._modelsExplorer.unloadModel(e):this.error("unloadModel() - Argument expected: modelId")}unloadAllModels(){this._modelsExplorer.unloadAllModels()}editModel(e){this.fire("editModel",{modelId:e})}deleteModel(e){this.fire("deleteModel",{modelId:e})}addModel(){this.fire("addModel",{})}setBackgroundColor(e){this.viewer.scene.canvas.backgroundColor=e}setObjectColorSource(e){console.log("BIMViewer.setObjectColorSource() is now deprecated and no longer functional. By default, BIMViewer.getObjectColorSource() will now always return the (formerly) default value of `model`.")}getObjectColorSource(){return"model"}setViewerState(e,t=(()=>{})){e.tabOpen&&this.openTab(e.tabOpen),e.expandObjectsTree&&this._objectsExplorer.expandTreeViewToDepth(e.expandObjectsTree),e.expandClassesTree&&this._classesExplorer.expandTreeViewToDepth(e.expandClassesTree),e.expandStoreysTree&&this._storeysExplorer.expandTreeViewToDepth(e.expandStoreysTree),e.setCamera&&this.setCamera(e.setCamera),this._parseSelectedStorey(e,(()=>{this._parseThreeDMode(e,(()=>{t()}))}))}_parseSelectedStorey(e,t){e.selectedStorey?(this.selectStorey(e.selectedStorey),t()):t()}_parseThreeDMode(e,t){const i=!1!==e.threeDActive;this.set3DEnabled(i,t)}showObjectInExplorers(e){e?(this._objectsExplorer.showNodeInTreeView(e),this._classesExplorer.showNodeInTreeView(e),this._storeysExplorer.showNodeInTreeView(e),this.fire("openExplorer",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}unShowObjectInExplorers(){this._objectsExplorer.unShowNodeInTreeView(),this._classesExplorer.unShowNodeInTreeView(),this._storeysExplorer.unShowNodeInTreeView()}showObjectProperties(e){e?(this._enablePropertiesInspector&&this._propertiesInspector.showObjectPropertySets(e),this.fire("openInspector",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}setObjectsVisible(e,t){this._withObjectsInSubtree(e,(e=>{e.visible=t}))}setAllObjectsVisible(e){e?this.viewer.scene.setObjectsVisible(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsVisible(this.viewer.scene.visibleObjectIds,!1)}setObjectsXRayed(e,t){this._withObjectsInSubtree(e,(e=>{e.xrayed=t}))}setAllObjectsXRayed(e){e?this.viewer.scene.setObjectsXRayed(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsXRayed(this.viewer.scene.xrayedObjectIds,!1)}setObjectsSelected(e,t){this._withObjectsInSubtree(e,(e=>{e.selected=t}))}setAllObjectsSelected(e){e?this.viewer.scene.setObjectsSelected(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsSelected(this.viewer.scene.selectedObjectIds,!1)}_withObjectsInSubtree(e,t){if(e)for(let i=0,s=e.length;i{const i=this.viewer.scene.objects[e.id];i&&t(i)}))}else this.error("Argument expected: objectIds")}flyToObject(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectId");const i=this.viewer,s=i.scene,r=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{s.objects[e.id]&&r.push(e.id)})),0===r.length)return this.error("Object not found in viewer: '"+e+"'"),void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const o=s.getAABB(r);i.cameraFlight.flyTo({aabb:o},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=u.getAABB3Center(o)}viewFitObjects(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectIds");const i=this.viewer,s=i.scene,r=[];for(var o=0,n=e.length;o{s.objects[e.id]&&r.push(e.id)}))}if(0===r.length)return void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const a=s.getAABB(r);i.cameraFlight.flyTo({aabb:a},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=u.getAABB3Center(a)}viewFitAll(e){const t=this.viewer,i=t.scene.getAABB();t.cameraFlight.flyTo({aabb:i},(()=>{e&&e()})),t.cameraControl.pivotPos=u.getAABB3Center(i)}jumpToObject(e){if(!e)return void this.error("jumpToObject() - Argument expected: objectId");const t=this.viewer,i=t.scene,s=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{i.objects[e.id]&&s.push(e.id)})),0===s.length)return void this.error("Object not found in viewer: '"+e+"'");i.setObjectsVisible(s,!0);const r=i.getAABB(s);t.cameraFlight.jumpTo({aabb:r}),t.cameraControl.pivotPos=u.getAABB3Center(r)}setCamera(e){const t=this.viewer.scene.camera;e.eye&&(t.eye=e.eye),e.look&&(t.look=e.look),e.up&&(t.up=e.up)}viewFitModels(e,t){if(!e)return void this.error("viewFitModels() - Argument expected: modelIds");const i=this.viewer,s=i.scene,r=u.AABB3();u.collapseAABB3(r);for(var o=0,n=e.length;o{t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})):(i.cameraFlight.jumpTo({aabb:r}),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)),i.cameraControl.pivotPos=u.getAABB3Center(r)}openTab(e){if(!e)return void this.error("openTab() - Argument expected: tabId");let t;switch(e){case"models":t="xeokit-modelsTab";break;case"objects":t="xeokit-objectsTab";break;case"classes":t="xeokit-classesTab";break;case"storeys":t="xeokit-storeysTab";break;case"properties":t="xeokit-propertiesTab";break;default:return void this.error("openTab() - tab not recognized: '"+e+"'")}this._openTab(this._explorerElement,t)}_openTab(e,t){const i="active";let s=e.querySelectorAll(".xeokit-tab"),r=e.querySelector("."+t);for(let e=0;e-1}const t="active";return e(this._explorerElement.querySelector(".xeokit-modelsTab"),t)?"models":e(this._explorerElement.querySelector(".xeokit-objectsTab"),t)?"objects":e(this._explorerElement.querySelector(".xeokit-classesTab"),t)?"classes":e(this._explorerElement.querySelector(".xeokit-storeysTab"),t)?"storeys":e(this._inspectorElement.querySelector(".xeokit-propertiesTab"),t)?"properties":"none"}set3DEnabled(e,t){this._threeDMode.setActive(e,t)}get3DEnabled(){return this._threeDMode.getActive()}setSpacesShown(e){this._showSpacesMode.setActive(e)}getSpacesShown(){return this._showSpacesMode.getActive()}setOrthoEnabled(e,t){this._orthoMode.setActive(e,t)}getOrthoEnabled(){return this._orthoMode.getActive()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];i?"IfcBuildingStorey"===i.type?this._storeysExplorer.selectStorey(e,t):this.error("selectStorey() - Object is not an IfcBuildingStorey: '"+e+"'"):this.error("selectStorey() - Object is not found: '"+e+"'")}saveBCFViewpoint(e){return this._bcfViewpointsPlugin.getViewpoint(e)}loadBCFViewpoint(e,t){e?(this._orthoMode.setActive("ortho"===this.viewer.camera.projection),this._bcfViewpointsPlugin.setViewpoint(e,t)):this.error("loadBCFViewpoint() - Argument expected: bcfViewpoint")}resetView(){this._resetAction.reset()}setControlsEnabled(e){this._objectsExplorer.setEnabled(e),this._classesExplorer.setEnabled(e),this._storeysExplorer.setEnabled(e),this._resetAction.setEnabled(e),this._fitAction.setEnabled(e),this._threeDMode.setEnabled(e),this._orthoMode.setEnabled(e),this._firstPersonMode.setEnabled(e),this._queryTool.setEnabled(e),this._hideTool.setEnabled(e),this._selectionTool.setEnabled(e),this._marqueeSelectionTool.setEnabled(e),this._showSpacesMode.setEnabled(e),this._measureDistanceTool.setEnabled(e),this._measureAngleTool.setEnabled(e),this._sectionTool.setEnabled(e),this._enablePropertiesInspector&&this._propertiesInspector.setEnabled(e)}setKeyboardEnabled(e){this.viewer.scene.input.keyboardEnabled=e}getKeyboardEnabled(){return this.viewer.scene.input.keyboardEnabled}clearSections(){this._sectionTool.clear()}disableSections(){this._sectionTool.disableSections()}enableSections(){this._sectionTool.enableSections()}flipSections(){this._sectionTool.flipSections()}hideSectionEditControl(){this._sectionTool.hideControl()}getNumSections(){return this._sectionTool.getNumSections()}getEnableMeasurements(){return this._enableMeasurements}clearMeasurements(){this._measureDistanceTool.clear(),this._measureAngleTool.clear()}getNumMeasurements(){return this._measureDistanceTool.getNumMeasurements()+this._measureAngleTool.getNumMeasurements()}setMeasurementsAxisVisible(e){this._measureDistanceTool.setMeasurementsAxisVisible(e)}getMeasurementsAxisVisible(){return this._measureDistanceTool.getMeasurementsAxisVisible()}setMeasurementsSnappingEnabled(e){this._measureDistanceTool.setSnappingEnabled(e)}getMeasurementsSnappingEnabled(){return this._measureDistanceTool.getSnappingEnabled()}destroy(){this.viewer.destroy(),this._bcfViewpointsPlugin.destroy(),this._canvasContextMenu.destroy(),this._objectContextMenu.destroy()}}export{qb as BIMViewer,HA as LocaleService,Ab as Server}; diff --git a/dist/xeokit-bim-viewer.min.umd.js b/dist/xeokit-bim-viewer.min.umd.js index dc0fa01b..61f7e940 100644 --- a/dist/xeokit-bim-viewer.min.umd.js +++ b/dist/xeokit-bim-viewer.min.umd.js @@ -1,4 +1,4 @@ -!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).bundle={})}(this,(function(e){"use strict";class t{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 s=new t;class i{constructor(e){this.id=e,this.parentItem=null,this.groups=[],this.menuElement=null,this.shown=!1,this.mouseOver=0}}class r{constructor(){this.items=[]}}class o{constructor(e,t,s,i,r){this.id=e,this.getTitle=t,this.doAction=s,this.getEnabled=i,this.getShown=r,this.itemElement=null,this.subMenu=null,this.enabled=!0}}class n{constructor(e={}){this._id=s.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,i=s.length;e{const s=this._getNextId(),n=new i(s);for(let s=0,i=e.length;s0,h=this._getNextId(),c=s.getTitle||(()=>s.title||""),u=s.doAction||s.callback||(()=>{}),A=s.getEnabled||(()=>!0),p=s.getShown||(()=>!0),d=new o(h,c,u,A,p);if(d.parentMenu=n,a.items.push(d),l){const e=t(r);d.subMenu=e,e.parentItem=d}this._itemList.push(d),this._itemMap[d.id]=d}}return this._menuList.push(n),this._menuMap[n.id]=n,n};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,i=s.length;t'),s.push("
    "),t)for(let e=0,i=t.length;e'+l+" [MORE]"):s.push('
  • '+l+"
  • ")}}s.push("
"),s.push("");const i=s.join("");document.body.insertAdjacentHTML("beforeend",i);const r=document.querySelector("."+e.id);e.menuElement=r,r.style["border-radius"]="4px",r.style.display="none",r.style["z-index"]=3e5,r.style.background="white",r.style.border="1px solid black",r.style["box-shadow"]="0 4px 5px 0 gray",r.oncontextmenu=e=>{e.preventDefault()};const o=this;let n=null;if(t)for(let e=0,s=t.length;e{e.preventDefault();const s=t.subMenu;if(!s)return void(n&&(o._hideMenu(n.id),n=null));if(n&&n.id!==s.id&&(o._hideMenu(n.id),n=null),!1===t.enabled)return;const i=t.itemElement,r=s.menuElement,a=i.getBoundingClientRect();r.getBoundingClientRect();a.right+200>window.innerWidth?o._showMenu(s.id,a.left-200,a.top-1):o._showMenu(s.id,a.right-5,a.top-1),n=s})),i||(t.itemElement.addEventListener("click",(e=>{e.preventDefault(),o._context&&!1!==t.enabled&&(t.doAction&&t.doAction(o._context),this._hideOnAction?o.hide():(o._updateItemsTitles(),o._updateItemsEnabledStatus()))})),t.itemElement.addEventListener("mouseenter",(e=>{e.preventDefault(),!1!==t.enabled&&t.doHover&&t.doHover(o._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-i),t+r>window.innerWidth&&(t=window.innerWidth-r),e.style.left=t+"px",e.style.top=s+"px"}_hideMenuElement(e){e.style.display="none"}}let a=!0,l=a?Float64Array:Float32Array;const h=new l(3),c=new l(16),u=new l(16),A=new l(4),p={setDoublePrecisionEnabled(e){a=e,l=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 l(e||2),vec3:e=>new l(e||3),vec4:e=>new l(e||4),mat3:e=>new l(e||9),mat3ToMat4:(e,t=new l(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 l(e||16),mat4ToMat3(e,t){},doublesToFloats(e,t,s){const i=new l(2);for(let r=0,o=e.length;r{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,i=4294967295*Math.random()|0,r=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&i|128]}${e[i>>8&255]}-${e[i>>16&255]}${e[i>>24&255]}${e[255&r]}${e[r>>8&255]}${e[r>>16&255]}${e[r>>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 l(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],i=e[1],r=e[2],o=t[0],n=t[1],a=t[2];return[i*a-r*n,r*o-s*a,s*n-i*o,0]},cross3Vec3(e,t,s){s||(s=e);const i=e[0],r=e[1],o=e[2],n=t[0],a=t[1],l=t[2];return s[0]=r*l-o*a,s[1]=o*n-i*l,s[2]=i*a-r*n,s},sqLenVec4:e=>p.dotVec4(e,e),lenVec4:e=>Math.sqrt(p.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=>p.dotVec3(e,e),sqLenVec2:e=>p.dotVec2(e,e),lenVec3:e=>Math.sqrt(p.sqLenVec3(e)),distVec3:(()=>{const e=new l(3);return(t,s)=>p.lenVec3(p.subVec3(t,s,e))})(),lenVec2:e=>Math.sqrt(p.sqLenVec2(e)),distVec2:(()=>{const e=new l(2);return(t,s)=>p.lenVec2(p.subVec2(t,s,e))})(),rcpVec3:(e,t)=>p.divScalarVec3(1,e,t),normalizeVec4(e,t){const s=1/p.lenVec4(e);return p.mulVec4Scalar(e,s,t)},normalizeVec3(e,t){const s=1/p.lenVec3(e);return p.mulVec3Scalar(e,s,t)},normalizeVec2(e,t){const s=1/p.lenVec2(e);return p.mulVec2Scalar(e,s,t)},angleVec3(e,t){let s=p.dotVec3(e,t)/Math.sqrt(p.sqLenVec3(e)*p.sqLenVec3(t));return s=s<-1?-1:s>1?1:s,Math.acos(s)},vec3FromMat4Scale:(()=>{const e=new l(3);return(t,s)=>(e[0]=t[0],e[1]=t[1],e[2]=t[2],s[0]=p.lenVec3(e),e[0]=t[4],e[1]=t[5],e[2]=t[6],s[1]=p.lenVec3(e),e[0]=t[8],e[1]=t[9],e[2]=t[10],s[2]=p.lenVec3(e),s)})(),vecToArray:(()=>{function e(e){return Math.round(1e5*e)/1e5}return t=>{for(let s=0,i=(t=Array.prototype.slice.call(t)).length;s({x:e[0],y:e[1],z:e[2]}),xyzObjectToArray:(e,t)=>((t=t||p.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:()=>p.m4s(0),setMat4ToOnes:()=>p.m4s(1),diagonalMat4v:e=>new l([e[0],0,0,0,0,e[1],0,0,0,0,e[2],0,0,0,0,e[3]]),diagonalMat4c:(e,t,s,i)=>p.diagonalMat4v([e,t,s,i]),diagonalMat4s:e=>p.diagonalMat4c(e,e,e,e),identityMat4:(e=new l(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 l(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)=>p.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 i=e[0],r=e[1],o=e[2],n=e[3],a=e[4],l=e[5],h=e[6],c=e[7],u=e[8],A=e[9],p=e[10],d=e[11],f=e[12],m=e[13],y=e[14],E=e[15],g=t[0],v=t[1],I=t[2],_=t[3],T=t[4],P=t[5],b=t[6],R=t[7],D=t[8],C=t[9],N=t[10],O=t[11],x=t[12],S=t[13],w=t[14],M=t[15];return s[0]=g*i+v*a+I*u+_*f,s[1]=g*r+v*l+I*A+_*m,s[2]=g*o+v*h+I*p+_*y,s[3]=g*n+v*c+I*d+_*E,s[4]=T*i+P*a+b*u+R*f,s[5]=T*r+P*l+b*A+R*m,s[6]=T*o+P*h+b*p+R*y,s[7]=T*n+P*c+b*d+R*E,s[8]=D*i+C*a+N*u+O*f,s[9]=D*r+C*l+N*A+O*m,s[10]=D*o+C*h+N*p+O*y,s[11]=D*n+C*c+N*d+O*E,s[12]=x*i+S*a+w*u+M*f,s[13]=x*r+S*l+w*A+M*m,s[14]=x*o+S*h+w*p+M*y,s[15]=x*n+S*c+w*d+M*E,s},mulMat3(e,t,s){s||(s=new l(9));const i=e[0],r=e[3],o=e[6],n=e[1],a=e[4],h=e[7],c=e[2],u=e[5],A=e[8],p=t[0],d=t[3],f=t[6],m=t[1],y=t[4],E=t[7],g=t[2],v=t[5],I=t[8];return s[0]=i*p+r*m+o*g,s[3]=i*d+r*y+o*v,s[6]=i*f+r*E+o*I,s[1]=n*p+a*m+h*g,s[4]=n*d+a*y+h*v,s[7]=n*f+a*E+h*I,s[2]=c*p+u*m+A*g,s[5]=c*d+u*y+A*v,s[8]=c*f+u*E+A*I,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=p.vec4()){const i=t[0],r=t[1],o=t[2],n=t[3];return s[0]=e[0]*i+e[4]*r+e[8]*o+e[12]*n,s[1]=e[1]*i+e[5]*r+e[9]*o+e[13]*n,s[2]=e[2]*i+e[6]*r+e[10]*o+e[14]*n,s[3]=e[3]*i+e[7]*r+e[11]*o+e[15]*n,s},transposeMat4(e,t){const s=e[4],i=e[14],r=e[8],o=e[13],n=e[12],a=e[9];if(!t||e===t){const t=e[1],l=e[2],h=e[3],c=e[6],u=e[7],A=e[11];return e[1]=s,e[2]=r,e[3]=n,e[4]=t,e[6]=a,e[7]=o,e[8]=l,e[9]=c,e[11]=i,e[12]=h,e[13]=u,e[14]=A,e}return t[0]=e[0],t[1]=s,t[2]=r,t[3]=n,t[4]=e[1],t[5]=e[5],t[6]=a,t[7]=o,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=i,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],i=e[2],r=e[5];t[1]=e[3],t[2]=e[6],t[3]=s,t[5]=e[7],t[6]=i,t[7]=r}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],i=e[2],r=e[3],o=e[4],n=e[5],a=e[6],l=e[7],h=e[8],c=e[9],u=e[10],A=e[11],p=e[12],d=e[13],f=e[14],m=e[15];return p*c*a*r-h*d*a*r-p*n*u*r+o*d*u*r+h*n*f*r-o*c*f*r-p*c*i*l+h*d*i*l+p*s*u*l-t*d*u*l-h*s*f*l+t*c*f*l+p*n*i*A-o*d*i*A-p*s*a*A+t*d*a*A+o*s*f*A-t*n*f*A-h*n*i*m+o*c*i*m+h*s*a*m-t*c*a*m-o*s*u*m+t*n*u*m},inverseMat4(e,t){t||(t=e);const s=e[0],i=e[1],r=e[2],o=e[3],n=e[4],a=e[5],l=e[6],h=e[7],c=e[8],u=e[9],A=e[10],p=e[11],d=e[12],f=e[13],m=e[14],y=e[15],E=s*a-i*n,g=s*l-r*n,v=s*h-o*n,I=i*l-r*a,_=i*h-o*a,T=r*h-o*l,P=c*f-u*d,b=c*m-A*d,R=c*y-p*d,D=u*m-A*f,C=u*y-p*f,N=A*y-p*m,O=1/(E*N-g*C+v*D+I*R-_*b+T*P);return t[0]=(a*N-l*C+h*D)*O,t[1]=(-i*N+r*C-o*D)*O,t[2]=(f*T-m*_+y*I)*O,t[3]=(-u*T+A*_-p*I)*O,t[4]=(-n*N+l*R-h*b)*O,t[5]=(s*N-r*R+o*b)*O,t[6]=(-d*T+m*v-y*g)*O,t[7]=(c*T-A*v+p*g)*O,t[8]=(n*C-a*R+h*P)*O,t[9]=(-s*C+i*R-o*P)*O,t[10]=(d*_-f*v+y*E)*O,t[11]=(-c*_+u*v-p*E)*O,t[12]=(-n*D+a*b-l*P)*O,t[13]=(s*D-i*b+r*P)*O,t[14]=(-d*I+f*g-m*E)*O,t[15]=(c*I-u*g+A*E)*O,t},traceMat4:e=>e[0]+e[5]+e[10]+e[15],translationMat4v(e,t){const s=t||p.identityMat4();return s[12]=e[0],s[13]=e[1],s[14]=e[2],s},translationMat3v(e,t){const s=t||p.identityMat3();return s[6]=e[0],s[7]=e[1],s},translationMat4c:(()=>{const e=new l(3);return(t,s,i,r)=>(e[0]=t,e[1]=s,e[2]=i,p.translationMat4v(e,r))})(),translationMat4s:(e,t)=>p.translationMat4c(e,e,e,t),translateMat4v:(e,t)=>p.translateMat4c(e[0],e[1],e[2],t),translateMat4c(e,t,s,i){const r=i[3];i[0]+=r*e,i[1]+=r*t,i[2]+=r*s;const o=i[7];i[4]+=o*e,i[5]+=o*t,i[6]+=o*s;const n=i[11];i[8]+=n*e,i[9]+=n*t,i[10]+=n*s;const a=i[15];return i[12]+=a*e,i[13]+=a*t,i[14]+=a*s,i},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 i=p.normalizeVec4([t[0],t[1],t[2],0],[]),r=Math.sin(e),o=Math.cos(e),n=1-o,a=i[0],l=i[1],h=i[2];let c,u,A,d,f,m;return c=a*l,u=l*h,A=h*a,d=a*r,f=l*r,m=h*r,(s=s||p.mat4())[0]=n*a*a+o,s[1]=n*c+m,s[2]=n*A-f,s[3]=0,s[4]=n*c-m,s[5]=n*l*l+o,s[6]=n*u+d,s[7]=0,s[8]=n*A+f,s[9]=n*u-d,s[10]=n*h*h+o,s[11]=0,s[12]=0,s[13]=0,s[14]=0,s[15]=1,s},rotationMat4c:(e,t,s,i,r)=>p.rotationMat4v(e,[t,s,i],r),scalingMat4v:(e,t=p.identityMat4())=>(t[0]=e[0],t[5]=e[1],t[10]=e[2],t),scalingMat3v:(e,t=p.identityMat3())=>(t[0]=e[0],t[4]=e[1],t),scalingMat4c:(()=>{const e=new l(3);return(t,s,i,r)=>(e[0]=t,e[1]=s,e[2]=i,p.scalingMat4v(e,r))})(),scaleMat4c:(e,t,s,i)=>(i[0]*=e,i[4]*=t,i[8]*=s,i[1]*=e,i[5]*=t,i[9]*=s,i[2]*=e,i[6]*=t,i[10]*=s,i[3]*=e,i[7]*=t,i[11]*=s,i),scaleMat4v(e,t){const s=e[0],i=e[1],r=e[2];return t[0]*=s,t[4]*=i,t[8]*=r,t[1]*=s,t[5]*=i,t[9]*=r,t[2]*=s,t[6]*=i,t[10]*=r,t[3]*=s,t[7]*=i,t[11]*=r,t},scalingMat4s:e=>p.scalingMat4c(e,e,e),rotationTranslationMat4(e,t,s=p.mat4()){const i=e[0],r=e[1],o=e[2],n=e[3],a=i+i,l=r+r,h=o+o,c=i*a,u=i*l,A=i*h,d=r*l,f=r*h,m=o*h,y=n*a,E=n*l,g=n*h;return s[0]=1-(d+m),s[1]=u+g,s[2]=A-E,s[3]=0,s[4]=u-g,s[5]=1-(c+m),s[6]=f+y,s[7]=0,s[8]=A+E,s[9]=f-y,s[10]=1-(c+d),s[11]=0,s[12]=t[0],s[13]=t[1],s[14]=t[2],s[15]=1,s},mat4ToEuler(e,t,s=p.vec4()){const i=p.clamp,r=e[0],o=e[4],n=e[8],a=e[1],l=e[5],h=e[9],c=e[2],u=e[6],A=e[10];return"XYZ"===t?(s[1]=Math.asin(i(n,-1,1)),Math.abs(n)<.99999?(s[0]=Math.atan2(-h,A),s[2]=Math.atan2(-o,r)):(s[0]=Math.atan2(u,l),s[2]=0)):"YXZ"===t?(s[0]=Math.asin(-i(h,-1,1)),Math.abs(h)<.99999?(s[1]=Math.atan2(n,A),s[2]=Math.atan2(a,l)):(s[1]=Math.atan2(-c,r),s[2]=0)):"ZXY"===t?(s[0]=Math.asin(i(u,-1,1)),Math.abs(u)<.99999?(s[1]=Math.atan2(-c,A),s[2]=Math.atan2(-o,l)):(s[1]=0,s[2]=Math.atan2(a,r))):"ZYX"===t?(s[1]=Math.asin(-i(c,-1,1)),Math.abs(c)<.99999?(s[0]=Math.atan2(u,A),s[2]=Math.atan2(a,r)):(s[0]=0,s[2]=Math.atan2(-o,l))):"YZX"===t?(s[2]=Math.asin(i(a,-1,1)),Math.abs(a)<.99999?(s[0]=Math.atan2(-h,l),s[1]=Math.atan2(-c,r)):(s[0]=0,s[1]=Math.atan2(n,A))):"XZY"===t&&(s[2]=Math.asin(-i(o,-1,1)),Math.abs(o)<.99999?(s[0]=Math.atan2(u,l),s[1]=Math.atan2(n,r)):(s[0]=Math.atan2(-h,A),s[1]=0)),s},composeMat4:(e,t,s,i=p.mat4())=>(p.quaternionToRotationMat4(t,i),p.scaleMat4v(s,i),p.translateMat4v(e,i),i),decomposeMat4:(()=>{const e=new l(3),t=new l(16);return function(s,i,r,o){e[0]=s[0],e[1]=s[1],e[2]=s[2];let n=p.lenVec3(e);e[0]=s[4],e[1]=s[5],e[2]=s[6];const a=p.lenVec3(e);e[8]=s[8],e[9]=s[9],e[10]=s[10];const l=p.lenVec3(e);p.determinantMat4(s)<0&&(n=-n),i[0]=s[12],i[1]=s[13],i[2]=s[14],t.set(s);const h=1/n,c=1/a,u=1/l;return t[0]*=h,t[1]*=h,t[2]*=h,t[4]*=c,t[5]*=c,t[6]*=c,t[8]*=u,t[9]*=u,t[10]*=u,p.mat4ToQuaternion(t,r),o[0]=n,o[1]=a,o[2]=l,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,i){i||(i=p.mat4());const r=e[0],o=e[1],n=e[2],a=s[0],l=s[1],h=s[2],c=t[0],u=t[1],A=t[2];if(r===c&&o===u&&n===A)return p.identityMat4();let d,f,m,y,E,g,v,I,_,T;return d=r-c,f=o-u,m=n-A,T=1/Math.sqrt(d*d+f*f+m*m),d*=T,f*=T,m*=T,y=l*m-h*f,E=h*d-a*m,g=a*f-l*d,T=Math.sqrt(y*y+E*E+g*g),T?(T=1/T,y*=T,E*=T,g*=T):(y=0,E=0,g=0),v=f*g-m*E,I=m*y-d*g,_=d*E-f*y,T=Math.sqrt(v*v+I*I+_*_),T?(T=1/T,v*=T,I*=T,_*=T):(v=0,I=0,_=0),i[0]=y,i[1]=v,i[2]=d,i[3]=0,i[4]=E,i[5]=I,i[6]=f,i[7]=0,i[8]=g,i[9]=_,i[10]=m,i[11]=0,i[12]=-(y*r+E*o+g*n),i[13]=-(v*r+I*o+_*n),i[14]=-(d*r+f*o+m*n),i[15]=1,i},lookAtMat4c:(e,t,s,i,r,o,n,a,l)=>p.lookAtMat4v([e,t,s],[i,r,o],[n,a,l],[]),orthoMat4c(e,t,s,i,r,o,n){n||(n=p.mat4());const a=t-e,l=i-s,h=o-r;return n[0]=2/a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2/l,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=-2/h,n[11]=0,n[12]=-(e+t)/a,n[13]=-(i+s)/l,n[14]=-(o+r)/h,n[15]=1,n},frustumMat4v(e,t,s){s||(s=p.mat4());const i=[e[0],e[1],e[2],0],r=[t[0],t[1],t[2],0];p.addVec4(r,i,c),p.subVec4(r,i,u);const o=2*i[2],n=u[0],a=u[1],l=u[2];return s[0]=o/n,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=o/a,s[6]=0,s[7]=0,s[8]=c[0]/n,s[9]=c[1]/a,s[10]=-c[2]/l,s[11]=-1,s[12]=0,s[13]=0,s[14]=-o*r[2]/l,s[15]=0,s},frustumMat4(e,t,s,i,r,o,n){n||(n=p.mat4());const a=t-e,l=i-s,h=o-r;return n[0]=2*r/a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2*r/l,n[6]=0,n[7]=0,n[8]=(t+e)/a,n[9]=(i+s)/l,n[10]=-(o+r)/h,n[11]=-1,n[12]=0,n[13]=0,n[14]=-o*r*2/h,n[15]=0,n},perspectiveMat4(e,t,s,i,r){const o=[],n=[];return o[2]=s,n[2]=i,n[1]=o[2]*Math.tan(e/2),o[1]=-n[1],n[0]=n[1]*t,o[0]=-n[0],p.frustumMat4v(o,n,r)},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=p.vec3()){const i=t[0],r=t[1],o=t[2];return s[0]=e[0]*i+e[4]*r+e[8]*o+e[12],s[1]=e[1]*i+e[5]*r+e[9]*o+e[13],s[2]=e[2]*i+e[6]*r+e[10]*o+e[14],s},transformPoint4:(e,t,s=p.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 i=s||[],r=t.length;let o,n,a,l;const h=e[0],c=e[1],u=e[2],A=e[3],p=e[4],d=e[5],f=e[6],m=e[7],y=e[8],E=e[9],g=e[10],v=e[11],I=e[12],_=e[13],T=e[14],P=e[15];let b;for(let e=0;e{const e=new l(16),t=new l(16),s=new l(16);return function(i,r,o,n){return this.transformVec3(this.mulMat4(this.inverseMat4(r,e),this.inverseMat4(o,t),s),i,n)}})(),lerpVec3(e,t,s,i,r,o){const n=o||p.vec3(),a=(e-t)/(s-t);return n[0]=i[0]+a*(r[0]-i[0]),n[1]=i[1]+a*(r[1]-i[1]),n[2]=i[2]+a*(r[2]-i[2]),n},lerpMat4(e,t,s,i,r,o){const n=o||p.mat4(),a=(e-t)/(s-t);return n[0]=i[0]+a*(r[0]-i[0]),n[1]=i[1]+a*(r[1]-i[1]),n[2]=i[2]+a*(r[2]-i[2]),n[3]=i[3]+a*(r[3]-i[3]),n[4]=i[4]+a*(r[4]-i[4]),n[5]=i[5]+a*(r[5]-i[5]),n[6]=i[6]+a*(r[6]-i[6]),n[7]=i[7]+a*(r[7]-i[7]),n[8]=i[8]+a*(r[8]-i[8]),n[9]=i[9]+a*(r[9]-i[9]),n[10]=i[10]+a*(r[10]-i[10]),n[11]=i[11]+a*(r[11]-i[11]),n[12]=i[12]+a*(r[12]-i[12]),n[13]=i[13]+a*(r[13]-i[13]),n[14]=i[14]+a*(r[14]-i[14]),n[15]=i[15]+a*(r[15]-i[15]),n},flatten(e){const t=[];let s,i,r,o,n;for(s=0,i=e.length;s(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e),eulerToQuaternion(e,t,s=p.vec4()){const i=e[0]*p.DEGTORAD/2,r=e[1]*p.DEGTORAD/2,o=e[2]*p.DEGTORAD/2,n=Math.cos(i),a=Math.cos(r),l=Math.cos(o),h=Math.sin(i),c=Math.sin(r),u=Math.sin(o);return"XYZ"===t?(s[0]=h*a*l+n*c*u,s[1]=n*c*l-h*a*u,s[2]=n*a*u+h*c*l,s[3]=n*a*l-h*c*u):"YXZ"===t?(s[0]=h*a*l+n*c*u,s[1]=n*c*l-h*a*u,s[2]=n*a*u-h*c*l,s[3]=n*a*l+h*c*u):"ZXY"===t?(s[0]=h*a*l-n*c*u,s[1]=n*c*l+h*a*u,s[2]=n*a*u+h*c*l,s[3]=n*a*l-h*c*u):"ZYX"===t?(s[0]=h*a*l-n*c*u,s[1]=n*c*l+h*a*u,s[2]=n*a*u-h*c*l,s[3]=n*a*l+h*c*u):"YZX"===t?(s[0]=h*a*l+n*c*u,s[1]=n*c*l+h*a*u,s[2]=n*a*u-h*c*l,s[3]=n*a*l-h*c*u):"XZY"===t&&(s[0]=h*a*l-n*c*u,s[1]=n*c*l-h*a*u,s[2]=n*a*u+h*c*l,s[3]=n*a*l+h*c*u),s},mat4ToQuaternion(e,t=p.vec4()){const s=e[0],i=e[4],r=e[8],o=e[1],n=e[5],a=e[9],l=e[2],h=e[6],c=e[10];let u;const A=s+n+c;return A>0?(u=.5/Math.sqrt(A+1),t[3]=.25/u,t[0]=(h-a)*u,t[1]=(r-l)*u,t[2]=(o-i)*u):s>n&&s>c?(u=2*Math.sqrt(1+s-n-c),t[3]=(h-a)/u,t[0]=.25*u,t[1]=(i+o)/u,t[2]=(r+l)/u):n>c?(u=2*Math.sqrt(1+n-s-c),t[3]=(r-l)/u,t[0]=(i+o)/u,t[1]=.25*u,t[2]=(a+h)/u):(u=2*Math.sqrt(1+c-s-n),t[3]=(o-i)/u,t[0]=(r+l)/u,t[1]=(a+h)/u,t[2]=.25*u),t},vec3PairToQuaternion(e,t,s=p.vec4()){const i=Math.sqrt(p.dotVec3(e,e)*p.dotVec3(t,t));let r=i+p.dotVec3(e,t);return r<1e-8*i?(r=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])):p.cross3Vec3(e,t,s),s[3]=r,p.normalizeQuaternion(s)},angleAxisToQuaternion(e,t=p.vec4()){const s=e[3]/2,i=Math.sin(s);return t[0]=i*e[0],t[1]=i*e[1],t[2]=i*e[2],t[3]=Math.cos(s),t},quaternionToEuler:(()=>{const e=new l(16);return(t,s,i)=>(i=i||p.vec3(),p.quaternionToRotationMat4(t,e),p.mat4ToEuler(e,s,i),i)})(),mulQuaternions(e,t,s=p.vec4()){const i=e[0],r=e[1],o=e[2],n=e[3],a=t[0],l=t[1],h=t[2],c=t[3];return s[0]=n*a+i*c+r*h-o*l,s[1]=n*l+r*c+o*a-i*h,s[2]=n*h+o*c+i*l-r*a,s[3]=n*c-i*a-r*l-o*h,s},vec3ApplyQuaternion(e,t,s=p.vec3()){const i=t[0],r=t[1],o=t[2],n=e[0],a=e[1],l=e[2],h=e[3],c=h*i+a*o-l*r,u=h*r+l*i-n*o,A=h*o+n*r-a*i,d=-n*i-a*r-l*o;return s[0]=c*h+d*-n+u*-l-A*-a,s[1]=u*h+d*-a+A*-n-c*-l,s[2]=A*h+d*-l+c*-a-u*-n,s},quaternionToMat4(e,t){t=p.identityMat4(t);const s=e[0],i=e[1],r=e[2],o=e[3],n=2*s,a=2*i,l=2*r,h=n*o,c=a*o,u=l*o,A=n*s,d=a*s,f=l*s,m=a*i,y=l*i,E=l*r;return t[0]=1-(m+E),t[1]=d+u,t[2]=f-c,t[4]=d-u,t[5]=1-(A+E),t[6]=y+h,t[8]=f+c,t[9]=y-h,t[10]=1-(A+m),t},quaternionToRotationMat4(e,t){const s=e[0],i=e[1],r=e[2],o=e[3],n=s+s,a=i+i,l=r+r,h=s*n,c=s*a,u=s*l,A=i*a,p=i*l,d=r*l,f=o*n,m=o*a,y=o*l;return t[0]=1-(A+d),t[4]=c-y,t[8]=u+m,t[1]=c+y,t[5]=1-(h+d),t[9]=p-f,t[2]=u-m,t[6]=p+f,t[10]=1-(h+A),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=p.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)=>p.normalizeQuaternion(p.conjugateQuaternion(e,t)),quaternionToAngleAxis(e,t=p.vec4()){const s=(e=p.normalizeQuaternion(e,A))[3],i=2*Math.acos(s),r=Math.sqrt(1-s*s);return r<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r),t[3]=i,t},AABB3:e=>new l(e||6),AABB2:e=>new l(e||4),OBB3:e=>new l(e||32),OBB2:e=>new l(e||16),Sphere3:(e,t,s,i)=>new l([e,t,s,i]),transformOBB3(e,t,s=t){let i;const r=t.length;let o,n,a;const l=e[0],h=e[1],c=e[2],u=e[3],A=e[4],p=e[5],d=e[6],f=e[7],m=e[8],y=e[9],E=e[10],g=e[11],v=e[12],I=e[13],_=e[14],T=e[15];for(i=0;i{const e=new l(3),t=new l(3),s=new l(3);return i=>(e[0]=i[0],e[1]=i[1],e[2]=i[2],t[0]=i[3],t[1]=i[4],t[2]=i[5],p.subVec3(t,e,s),Math.abs(p.lenVec3(s)))})(),getAABB3DiagPoint:(()=>{const e=new l(3),t=new l(3),s=new l(3);return(i,r)=>{e[0]=i[0],e[1]=i[1],e[2]=i[2],t[0]=i[3],t[1]=i[4],t[2]=i[5];const o=p.subVec3(t,e,s),n=r[0]-i[0],a=i[3]-r[0],l=r[1]-i[1],h=i[4]-r[1],c=r[2]-i[2],u=i[5]-r[2];return o[0]+=n>a?n:a,o[1]+=l>h?l:h,o[2]+=c>u?c:u,Math.abs(p.lenVec3(o))}})(),getAABB3Area:e=>(e[3]-e[0])*(e[4]-e[1])*(e[5]-e[2]),getAABB3Center(e,t){const s=t||p.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||p.vec2();return s[0]=(e[2]+e[0])/2,s[1]=(e[3]+e[1])/2,s},collapseAABB3:(e=p.AABB3())=>(e[0]=p.MAX_DOUBLE,e[1]=p.MAX_DOUBLE,e[2]=p.MAX_DOUBLE,e[3]=p.MIN_DOUBLE,e[4]=p.MIN_DOUBLE,e[5]=p.MIN_DOUBLE,e),AABB3ToOBB3:(e,t=p.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 l(3);return(t,s,i)=>{s=s||p.AABB3();let r,o,n,a=p.MAX_DOUBLE,l=p.MAX_DOUBLE,h=p.MAX_DOUBLE,c=p.MIN_DOUBLE,u=p.MIN_DOUBLE,A=p.MIN_DOUBLE;for(let s=0,d=t.length;sc&&(c=r),o>u&&(u=o),n>A&&(A=n);return s[0]=a,s[1]=l,s[2]=h,s[3]=c,s[4]=u,s[5]=A,s}})(),OBB3ToAABB3(e,t=p.AABB3()){let s,i,r,o=p.MAX_DOUBLE,n=p.MAX_DOUBLE,a=p.MAX_DOUBLE,l=p.MIN_DOUBLE,h=p.MIN_DOUBLE,c=p.MIN_DOUBLE;for(let t=0,u=e.length;tl&&(l=s),i>h&&(h=i),r>c&&(c=r);return t[0]=o,t[1]=n,t[2]=a,t[3]=l,t[4]=h,t[5]=c,t},points3ToAABB3(e,t=p.AABB3()){let s,i,r,o=p.MAX_DOUBLE,n=p.MAX_DOUBLE,a=p.MAX_DOUBLE,l=p.MIN_DOUBLE,h=p.MIN_DOUBLE,c=p.MIN_DOUBLE;for(let t=0,u=e.length;tl&&(l=s),i>h&&(h=i),r>c&&(c=r);return t[0]=o,t[1]=n,t[2]=a,t[3]=l,t[4]=h,t[5]=c,t},points3ToSphere3:(()=>{const e=new l(3);return(t,s)=>{s=s||p.vec4();let i,r=0,o=0,n=0;const a=t.length;for(i=0;ih&&(h=l);return s[3]=h,s}})(),positions3ToSphere3:(()=>{const e=new l(3),t=new l(3);return(s,i)=>{i=i||p.vec4();let r,o=0,n=0,a=0;const l=s.length;let h=0;for(r=0;rh&&(h=u);return i[3]=h,i}})(),OBB3ToSphere3:(()=>{const e=new l(3),t=new l(3);return(s,i)=>{i=i||p.vec4();let r,o=0,n=0,a=0;const l=s.length,h=l/4;for(r=0;ru&&(u=c);return i[3]=u,i}})(),getSphere3Center:(e,t=p.vec3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t),getPositionsCenter(e,t=p.vec3()){let s=0,i=0,r=0;for(var o=0,n=e.length;o(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]>i&&(e[1]=i),e[2]>r&&(e[2]=r),e[3](e[0]=p.MAX_DOUBLE,e[1]=p.MAX_DOUBLE,e[2]=p.MIN_DOUBLE,e[3]=p.MIN_DOUBLE,e),point3AABB3Intersect:(e,t)=>e[0]>t[0]||e[3]t[1]||e[4]t[2]||e[5]0?(i=e[0]*s[0],r=e[0]*s[3]):(i=e[0]*s[3],r=e[0]*s[0]),e[1]>0?(i+=e[1]*s[1],r+=e[1]*s[4]):(i+=e[1]*s[4],r+=e[1]*s[1]),e[2]>0?(i+=e[2]*s[2],r+=e[2]*s[5]):(i+=e[2]*s[5],r+=e[2]*s[2]);if(i<=-t&&r<=-t)return-1;return i>=-t&&r>=-t?1:0},OBB3ToAABB2(e,t=p.AABB2()){let s,i,r,o,n=p.MAX_DOUBLE,a=p.MAX_DOUBLE,l=p.MIN_DOUBLE,h=p.MIN_DOUBLE;for(let t=0,c=e.length;tl&&(l=s),i>h&&(h=i);return t[0]=n,t[1]=a,t[2]=l,t[3]=h,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*(i-s),tangentQuadraticBezier3:(e,t,s,i,r)=>-3*t*(1-e)*(1-e)+3*s*(1-e)*(1-e)-6*e*s*(1-e)+6*e*i*(1-e)-3*e*e*i+3*e*e*r,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,i,r){const o=.5*(s-e),n=.5*(i-t),a=r*r;return(2*t-2*s+o+n)*(r*a)+(-3*t+3*s-2*o-n)*a+o*r+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,i){return this.b2p0(e,t)+this.b2p1(e,s)+this.b2p2(e,i)},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,i,r){return this.b3p0(e,t)+this.b3p1(e,s)+this.b3p2(e,i)+this.b3p3(e,r)},triangleNormal(e,t,s,i=p.vec3()){const r=t[0]-e[0],o=t[1]-e[1],n=t[2]-e[2],a=s[0]-e[0],l=s[1]-e[1],h=s[2]-e[2],c=o*h-n*l,u=n*a-r*h,A=r*l-o*a,d=Math.sqrt(c*c+u*u+A*A);return 0===d?(i[0]=0,i[1]=0,i[2]=0):(i[0]=c/d,i[1]=u/d,i[2]=A/d),i},rayTriangleIntersect:(()=>{const e=new l(3),t=new l(3),s=new l(3),i=new l(3),r=new l(3);return(o,n,a,l,h,c)=>{c=c||p.vec3();const u=p.subVec3(l,a,e),A=p.subVec3(h,a,t),d=p.cross3Vec3(n,A,s),f=p.dotVec3(u,d);if(f<1e-6)return null;const m=p.subVec3(o,a,i),y=p.dotVec3(m,d);if(y<0||y>f)return null;const E=p.cross3Vec3(m,u,r),g=p.dotVec3(n,E);if(g<0||y+g>f)return null;const v=p.dotVec3(A,E)/f;return c[0]=o[0]+v*n[0],c[1]=o[1]+v*n[1],c[2]=o[2]+v*n[2],c}})(),rayPlaneIntersect:(()=>{const e=new l(3),t=new l(3),s=new l(3),i=new l(3);return(r,o,n,a,l,h)=>{h=h||p.vec3(),o=p.normalizeVec3(o,e);const c=p.subVec3(a,n,t),u=p.subVec3(l,n,s),A=p.cross3Vec3(c,u,i);p.normalizeVec3(A,A);const d=-p.dotVec3(n,A),f=-(p.dotVec3(r,A)+d)/p.dotVec3(o,A);return h[0]=r[0]+f*o[0],h[1]=r[1]+f*o[1],h[2]=r[2]+f*o[2],h}})(),cartesianToBarycentric:(()=>{const e=new l(3),t=new l(3),s=new l(3);return(i,r,o,n,a)=>{const l=p.subVec3(n,r,e),h=p.subVec3(o,r,t),c=p.subVec3(i,r,s),u=p.dotVec3(l,l),A=p.dotVec3(l,h),d=p.dotVec3(l,c),f=p.dotVec3(h,h),m=p.dotVec3(h,c),y=u*f-A*A;if(0===y)return null;const E=1/y,g=(f*d-A*m)*E,v=(u*m-A*d)*E;return a[0]=1-g-v,a[1]=v,a[2]=g,a}})(),barycentricInsideTriangle(e){const t=e[1],s=e[2];return s>=0&&t>=0&&s+t<1},barycentricToCartesian(e,t,s,i,r=p.vec3()){const o=e[0],n=e[1],a=e[2];return r[0]=t[0]*o+s[0]*n+i[0]*a,r[1]=t[1]*o+s[1]*n+i[1]*a,r[2]=t[2]*o+s[2]*n+i[2]*a,r},mergeVertices(e,t,s,i){const r={},o=[],n=[],a=t?[]:null,l=s?[]:null,h=[];let c,u,A,p;const d=1e4;let f,m,y=0;for(f=0,m=e.length;f{const e=new l(3),t=new l(3),s=new l(3),i=new l(3),r=new l(3),o=new l(3);return(n,a,l)=>{let h,c;const u=new Array(n.length/3);let A,d,f,m,y,E,g;for(h=0,c=a.length;h{const e=new l(3),t=new l(3),s=new l(3),i=new l(3),r=new l(3),o=new l(3),n=new l(3);return(a,l,h)=>{const c=new Float32Array(a.length);for(let u=0;u>24&255,c=A>>16&255,h=A>>8&255,l=255&A,a=t[s],n=3*a,r[p++]=e[n],r[p++]=e[n+1],r[p++]=e[n+2],o[d++]=l,o[d++]=h,o[d++]=c,o[d++]=u,a=t[s+1],n=3*a,r[p++]=e[n],r[p++]=e[n+1],r[p++]=e[n+2],o[d++]=l,o[d++]=h,o[d++]=c,o[d++]=u,a=t[s+2],n=3*a,r[p++]=e[n],r[p++]=e[n+1],r[p++]=e[n+2],o[d++]=l,o[d++]=h,o[d++]=c,o[d++]=u,A++;return{positions:r,colors:o}},faceToVertexNormals(e,t,s={}){const i=s.smoothNormalsAngleThreshold||20,r={},o=[],n={};let a,l,h,c,u;const A=1e4;let d,f,m,y,E,g;for(f=0,y=e.length;f{const e=new l(4),t=new l(4);return(s,i,r,o,n)=>{e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=1,p.transformVec4(s,e,t),o[0]=t[0],o[1]=t[1],o[2]=t[2],e[0]=r[0],e[1]=r[1],e[2]=r[2],p.transformVec3(s,e,t),p.normalizeVec3(t),n[0]=t[0],n[1]=t[1],n[2]=t[2]}})(),canvasPosToWorldRay:(()=>{const e=new l(16),t=new l(16),s=new l(4),i=new l(4),r=new l(4),o=new l(4);return(n,a,l,h,c,u)=>{const A=p.mulMat4(l,a,e),d=p.inverseMat4(A,t),f=n.width,m=n.height,y=(h[0]-f/2)/(f/2),E=-(h[1]-m/2)/(m/2);s[0]=y,s[1]=E,s[2]=-1,s[3]=1,p.transformVec4(d,s,i),p.mulVec4Scalar(i,1/i[3]),r[0]=y,r[1]=E,r[2]=1,r[3]=1,p.transformVec4(d,r,o),p.mulVec4Scalar(o,1/o[3]),c[0]=o[0],c[1]=o[1],c[2]=o[2],p.subVec3(o,i,u),p.normalizeVec3(u)}})(),canvasPosToLocalRay:(()=>{const e=new l(3),t=new l(3);return(s,i,r,o,n,a,l)=>{p.canvasPosToWorldRay(s,i,r,n,e,t),p.worldRayToLocalRay(o,e,t,a,l)}})(),worldRayToLocalRay:(()=>{const e=new l(16),t=new l(4),s=new l(4);return(i,r,o,n,a)=>{const l=p.inverseMat4(i,e);t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=1,p.transformVec4(l,t,s),n[0]=s[0],n[1]=s[1],n[2]=s[2],p.transformVec3(l,o,a)}})(),buildKDTree:(()=>{const e=new Float32Array;function t(s,i,r,o){const n=new l(6),a={triangles:null,left:null,right:null,leaf:!1,splitDim:0,aabb:n};let h,c;for(n[0]=n[1]=n[2]=Number.POSITIVE_INFINITY,n[3]=n[4]=n[5]=Number.NEGATIVE_INFINITY,h=0,c=s.length;hn[3]&&(n[3]=r[t]),r[t+1]n[4]&&(n[4]=r[t+1]),r[t+2]n[5]&&(n[5]=r[t+2])}}if(s.length<20||o>10)return a.triangles=s,a.leaf=!0,a;e[0]=n[3]-n[0],e[1]=n[4]-n[1],e[2]=n[5]-n[2];let A=0;e[1]>e[A]&&(A=1),e[2]>e[A]&&(A=2),a.splitDim=A;const p=(n[A]+n[A+3])/2,d=new Array(s.length);let f=0;const m=new Array(s.length);let y=0;for(h=0,c=s.length;h{const i=e.length/3,r=new Array(i);for(let e=0;e=0?1:-1),i=(1-Math.abs(s))*(i>=0?1:-1));const o=Math.sqrt(s*s+i*i+r*r);return t[0]=s/o,t[1]=i/o,t[2]=r/o,t},octDecodeVec2s(e,t){for(let s=0,i=0,r=e.length;s=0?1:-1),o=(1-Math.abs(r))*(o>=0?1:-1));const a=Math.sqrt(r*r+o*o+n*n);t[i+0]=r/a,t[i+1]=o/a,t[i+2]=n/a,i+=3}return t}};p.buildEdgeIndices=function(){const e=[],t=[],s=[],i=[],r=[];let o=0;const n=new Uint16Array(3),a=new Uint16Array(3),l=new Uint16Array(3),h=p.vec3(),c=p.vec3(),u=p.vec3(),A=p.vec3(),d=p.vec3(),f=p.vec3(),m=p.vec3();return function(y,E,g,v){!function(r,o){const n={};let a,l,h,c;const u=Math.pow(10,4);let A,p,d=0;for(A=0,p=r.length;A_)||(w=s[N.index1],M=s[N.index2],(!B&&w>65535||M>65535)&&(B=!0),I.push(w),I.push(M));return B?new Uint32Array(I):new Uint16Array(I)}}(),p.planeClipsPositions3=function(e,t,s,i=3){for(let r=0,o=s.length;r{};t=t||i,s=s||i;var r=new XMLHttpRequest;r.overrideMimeType("application/json"),r.open("GET",e,!0),r.addEventListener("load",(function(e){var i=e.target.response;if(200===this.status){var r;try{r=JSON.parse(i)}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}t(r)}else if(0===this.status){console.warn("loadFile: HTTP Status 0 received.");try{t(JSON.parse(i))}catch(e){s(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}}else s(e)}),!1),r.addEventListener("error",(function(e){s(e)}),!1),r.send(null)},loadArraybuffer:function(e,t,s){var i=e=>{};t=t||i,s=s||i;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),s=new Uint8Array(e);for(var n=0;n{t(e)}))}catch(e){D.scheduleTask((()=>{s(e)}))}}else{const i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onreadystatechange=function(){4===i.readyState&&(200===i.status?t(i.response):s("loadArrayBuffer error : "+i.response))},i.send(null)}},queryString:y,isArray:function(e){return e&&!e.propertyIsEnumerable("length")&&"object"==typeof e&&"number"==typeof e.length},isString:function(e){return"string"==typeof e||e instanceof String},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},isID:function(e){return E.isString(e)||E.isNumeric(e)},isSameComponent:function(e,t){return!(!e||!t)&&(E.isNumeric(e)||E.isString(e)?`${e}`:e.id)===(E.isNumeric(t)||E.isString(t)?`${t}`:t.id)},isFunction:function(e){return"function"==typeof e},isObject:function(e){const t={}.constructor;return!!e&&e.constructor===t},copy:function(e){return E.apply(e,{})},apply:function(e,t){for(const s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);return t},apply2:function(e,t){for(const s in e)e.hasOwnProperty(s)&&void 0!==e[s]&&null!==e[s]&&(t[s]=e[s]);return t},applyIf:function(e,t){for(const s in e)e.hasOwnProperty(s)&&(void 0!==t[s]&&null!==t[s]||(t[s]=e[s]));return t},isEmptyObject:function(e){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},inQuotes:function(e){return E.isNumeric(e)?`${e}`:`'${e}'`},concat:function(e,t){const s=new e.constructor(e.length+t.length);return s.set(e),s.set(t,e.length),s},flattenParentChildHierarchy:function(e){var t=[];return function e(s){s.id=s.uuid,delete s.oid,t.push(s);var i=s.children;if(i)for(var r=0,o=i.length;r=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}},_={sceneId:null,time:null,startTime:null,prevTime:null,deltaTime:null},T=[];let P,b=0,R=0;const D=new function(){this.version="1.0.0",this.scenes={},this._superTypes={},this._addScene=function(e){if(e.id){if(D.scenes[e.id])return void console.error(`[ERROR] Scene ${E.inQuotes(e.id)} already exists`)}else e.id=v.addItem({});D.scenes[e.id]=e;const t=e.ticksPerOcclusionTest,s=e.ticksPerRender;g[e.id]={ticksPerOcclusionTest:t,ticksPerRender:s,renderCountdown:s},d.components.scenes++,e.once("destroyed",(()=>{v.removeItem(e.id),delete D.scenes[e.id],delete g[e.id],d.components.scenes--}))},this.clear=function(){let e;for(const t in D.scenes)D.scenes.hasOwnProperty(t)&&(e=D.scenes[t],"default.scene"===t?e.clear():(e.destroy(),delete D.scenes[e.id]))},this.scheduleTask=function(e,t=null){I.push(e),I.push(t)},this.runTasks=function(e=-1){let t,s,i=(new Date).getTime(),r=0;for(;I.length>0&&(e<0||i0&&P>0){var t=1e3/P;R+=t,T.push(t),T.length>=30&&(R-=T.shift()),d.frame.fps=Math.round(R/T.length)}for(let e in D.scenes)D.scenes[e].compile();O(e),b=e};new class{worker=null;constructor(e,t){const s=new Blob([`setInterval(() => postMessage(0), ${t});`]),i=URL.createObjectURL(s);this.worker=new Worker(i),this.worker.onmessage=e}stop(){this.worker.terminate()}}(C,100);const N=function(){let e=Date.now();if(P=e-b,b>0&&P>0){var t=1e3/P;R+=t,T.push(t),T.length>=30&&(R-=T.shift()),d.frame.fps=Math.round(R/T.length)}O(e),function(e){for(var t in _.time=e,D.scenes)if(D.scenes.hasOwnProperty(t)){var s=D.scenes[t];_.sceneId=t,_.startTime=s.startTime,_.deltaTime=null!=_.prevTime?_.time-_.prevTime:0,s.fire("tick",_,!0)}_.prevTime=e}(e),function(){const e=D.scenes,t=!1;let s,i,r,o,n;for(n in e)e.hasOwnProperty(n)&&(s=e[n],i=g[n],i||(i=g[n]={}),r=s.ticksPerOcclusionTest,i.ticksPerOcclusionTest!==r&&(i.ticksPerOcclusionTest=r,i.renderCountdown=r),--s.occlusionTestCountdown<=0&&(s.doOcclusionTest(),s.occlusionTestCountdown=r),o=s.ticksPerRender,i.ticksPerRender!==o&&(i.ticksPerRender=o,i.renderCountdown=o),0==--i.renderCountdown&&(s.render(t),i.renderCountdown=o))}(),void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(C):requestAnimationFrame(N)};function O(e){const t=D.runTasks(e+10),s=D.getNumTasks();d.frame.tasksRun=t,d.frame.tasksScheduled=s,d.frame.tasksBudget=10}N();class x{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 x))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 i=this._eventSubs[e];let r;if(i)for(const s in i)i.hasOwnProperty(s)&&(r=i[s],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--)}on(e,s,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new t),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let r=this._eventSubs[e];r?this._eventSubsNum[e]++:(r={},this._eventSubs[e]=r,this._eventSubsNum[e]=1);const o=this._subIdMap.addItem();r[o]={callback:s,scope:i||this},this._subIdEvents[o]=e;const n=this._events[e];return void 0!==n&&s.call(i||this,n),o}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 i=this,r=this.on(e,(function(e){i.off(r),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+" "+E.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 i=e.sceneDefault,r=e.sceneSingleton,o=e.type,n=e.on,a=!1!==e.recompiles;if(s&&(E.isNumeric(s)||E.isString(s))){const e=s;if(s=this.scene.components[e],!s)return void this.error("Component not found: "+E.inQuotes(e))}if(!s)if(!0===r){const e=this.scene.types[o];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===i&&(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+" "+E.inQuotes(s.id));if(o&&!s.isType(o))return void this.error("Expected a "+o+" type or subtype: "+s.type+" "+E.inQuotes(s.id))}this._attachments||(this._attachments={});const l=this._attached[t];let h,c,u;if(l){if(s&&l.id===s.id)return;const e=this._attachments[l.id];for(h=e.subs,c=0,u=h.length;c{delete this._ownedComponents[e.id]}),this)}_needUpdate(e){this._updateScheduled||(this._updateScheduled=!0,0===e?this._doUpdate():D.scheduleTask(this._doUpdate,this))}_doUpdate(){this._updateScheduled&&(this._updateScheduled=!1,this._update&&this._update())}scheduleTask(e){D.scheduleTask(e,null)}_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,i,r,o;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,i=t.subs,r=0,o=i.length;r=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 B,new B,new B,new B,new B,new B]}}function L(e,t,s){const i=p.mulMat4(s,t,M),r=i[0],o=i[1],n=i[2],a=i[3],l=i[4],h=i[5],c=i[6],u=i[7],A=i[8],d=i[9],f=i[10],m=i[11],y=i[12],E=i[13],g=i[14],v=i[15];e.planes[0].set(a-r,u-l,m-A,v-y),e.planes[1].set(a+r,u+l,m+A,v+y),e.planes[2].set(a-o,u-h,m-d,v-E),e.planes[3].set(a+o,u+h,m+d,v+E),e.planes[4].set(a-n,u-c,m-f,v-g),e.planes[5].set(a+n,u+c,m+f,v+g)}function U(e,t){let s=F.INSIDE;const i=S,r=w;i[0]=t[0],i[1]=t[1],i[2]=t[2],r[0]=t[3],r[1]=t[4],r[2]=t[5];const o=[i,r];for(let t=0;t<6;++t){const i=e.planes[t];if(i.normal[0]*o[i.testVertex[0]][0]+i.normal[1]*o[i.testVertex[1]][1]+i.normal[2]*o[i.testVertex[2]][2]+i.offset<0)return F.OUTSIDE;i.normal[0]*o[1-i.testVertex[0]][0]+i.normal[1]*o[1-i.testVertex[1]][1]+i.normal[2]*o[1-i.testVertex[2]][2]+i.offset<0&&(s=F.INTERSECT)}return s}F.INSIDE=0,F.INTERSECT=1,F.OUTSIDE=2;class H extends x{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=p.vec2(),this._canvasMarqueeCorner2=p.vec2(),this._canvasMarquee=p.AABB2(),this._marqueeFrustum=new F,this._marqueeFrustumProjMat=p.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!==H.PICK_MODE_INSIDE&&e!==H.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===H.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,i=F.INTERSECT)=>{if(i===F.INTERSECT&&(i=U(this._marqueeFrustum,s.aabb)),i!==F.OUTSIDE){if(s.entities){const t=s.entities;for(let s=0,i=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,i=e.clientLeft,r=e.clientTop,o=2/t,n=2/s,a=e.clientHeight/e.clientWidth,l=(this._canvasMarquee[0]-i)*o-1,h=(this._canvasMarquee[2]-i)*o-1,c=-(this._canvasMarquee[3]-r)*n+1,u=-(this._canvasMarquee[1]-r)*n+1,A=this.viewer.scene.camera.frustum.near*(17*a);p.frustumMat4(l,h,c*a,u*a,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)}}H.PICK_MODE_INTERSECTS=0,H.PICK_MODE_INSIDE=1;class G{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)}scheduleTask(e){D.scheduleTask(e,null)}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==s&&(this._events[e]=t||!0);const i=this._eventSubs[e];let r;if(i)for(const s in i)i.hasOwnProperty(s)&&(r=i[s],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--)}on(e,s,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new t),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let r=this._eventSubs[e];r?this._eventSubsNum[e]++:(r={},this._eventSubs[e]=r,this._eventSubsNum[e]=1);const o=this._subIdMap.addItem();r[o]={callback:s,scope:i||this},this._subIdEvents[o]=e;const n=this._events[e];return void 0!==n&&s.call(i||this,n),o}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 i=this,r=this.on(e,(function(e){i.off(r),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 k=p.vec3(),V=function(){const e=new Float64Array(16),t=new Float64Array(4),s=new Float64Array(4);return function(i,r,o){return o=o||e,t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=1,p.transformVec4(i,t,s),p.setMat4Translation(i,s,o),o.slice()}}();function j(e,t,s){const i=Float32Array.from([e[0]])[0],r=e[0]-i,o=Float32Array.from([e[1]])[0],n=e[1]-o,a=Float32Array.from([e[2]])[0],l=e[2]-a;t[0]=i,t[1]=o,t[2]=a,s[0]=r,s[1]=n,s[2]=l}function Q(e,t,s,i=1e3){const r=p.getPositionsCenter(e,k),o=Math.round(r[0]/i)*i,n=Math.round(r[1]/i)*i,a=Math.round(r[2]/i)*i;s[0]=o,s[1]=n,s[2]=a;const l=0!==s[0]||0!==s[1]||0!==s[2];if(l)for(let s=0,i=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 i=255;if(t){if(e<0?e=0:e>1&&(e=1),i=Math.floor(255*e),s===i)return}else if(i=255,s===i)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&&(p.transformPoint3(this.scene.camera.viewMatrix,this._worldPos,this._viewPos),this._viewPosDirty=!1,this._canvasPosDirty=!0,this.fire("viewPos",this._viewPos)),this._canvasPosDirty){re.set(this._viewPos),re[3]=1,p.transformPoint4(this.scene.camera.projMatrix,re,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 ie?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,i=s.style;i.border="solid "+this._thickness+"px "+this._color,i.position="absolute",i["z-index"]=void 0===t.zIndex?"2000001":t.zIndex,i.width="0px",i.height="0px",i.visibility="visible",i.top="0px",i.left="0px",i["-webkit-transform-origin"]="0 0",i["-moz-transform-origin"]="0 0",i["-ms-transform-origin"]="0 0",i["-o-transform-origin"]="0 0",i["transform-origin"]="0 0",i["-webkit-transform"]="rotate(0deg)",i["-moz-transform"]="rotate(0deg)",i["-ms-transform"]="rotate(0deg)",i["-o-transform"]="rotate(0deg)",i.transform="rotate(0deg)",i.opacity=1,i["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var r=this._wireClickable,o=r.style;o.border="solid "+this._thicknessClickable+"px "+this._color,o.position="absolute",o["z-index"]=void 0===t.zIndex?"2000002":t.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",t.onContextMenu,e.appendChild(r),t.onMouseOver&&r.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&r.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&r.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&r.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&r.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&r.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&r.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 i=this._wireClickable.style;i.width=Math.round(e)+"px",i.left=Math.round(this._x1)+"px",i.top=Math.round(this._y1)+"px",i["-webkit-transform"]="rotate("+t+"deg)",i["-moz-transform"]="rotate("+t+"deg)",i["-ms-transform"]="rotate("+t+"deg)",i["-o-transform"]="rotate("+t+"deg)",i.transform="rotate("+t+"deg)"}setStartAndEnd(e,t,s,i){this._x1=e,this._y1=t,this._x2=s,this._y2=i,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 le{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,i=s.style;i["border-radius"]="25px",i.border="solid 2px white",i.background="lightgreen",i.position="absolute",i["z-index"]=void 0===t.zIndex?"40000005":t.zIndex,i.width="8px",i.height="8px",i.visibility=!1!==t.visible?"visible":"hidden",i.top="0px",i.left="0px",i["box-shadow"]="0 2px 5px 0 #182A3D;",i.opacity=1,i["pointer-events"]="none",t.onContextMenu,e.appendChild(s);var r=this._dotClickable,o=r.style;o["border-radius"]="35px",o.border="solid 10px white",o.position="absolute",o["z-index"]=void 0===t.zIndex?"40000007":t.zIndex+1,o.width="8px",o.height="8px",o.visibility="visible",o.top="0px",o.left="0px",o.opacity=0,o["pointer-events"]="none",t.onContextMenu,e.appendChild(r),r.addEventListener("click",(t=>{e.dispatchEvent(new MouseEvent("mouseover",t))})),t.onMouseOver&&r.addEventListener("mouseover",(s=>{t.onMouseOver(s,this),e.dispatchEvent(new MouseEvent("mouseover",s))})),t.onMouseLeave&&r.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&r.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&r.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&r.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&r.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&r.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 i=this._dotClickable.style;i.left=Math.round(e)-9+"px",i.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 he{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,i=s.style;i["border-radius"]="5px",i.color="white",i.padding="4px",i.border="solid 1px",i.background="lightgreen",i.position="absolute",i["z-index"]=void 0===t.zIndex?"5000005":t.zIndex,i.width="auto",i.height="auto",i.visibility="visible",i.top="0px",i.left="0px",i["pointer-events"]="all",i.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,i){var r=e+.5*(s-e),o=t+.5*(i-t),n=this._label.style;n.left=Math.round(r)-20+"px",n.top=Math.round(o)-12+"px"}setPosBetweenWires(e,t,s,i,r,o){var n=(e+s+r)/3,a=(t+i+o)/3,l=this._label.style;l.left=Math.round(n)-20+"px",l.top=Math.round(a)-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 ce=p.vec3(),ue=p.vec3();class Ae extends x{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 ne(s,t.origin),this._cornerMarker=new ne(s,t.corner),this._targetMarker=new ne(s,t.target),this._originWorld=p.vec3(),this._cornerWorld=p.vec3(),this._targetWorld=p.vec3(),this._wp=new Float64Array(12),this._vp=new Float64Array(12),this._pp=new Float64Array(12),this._cp=new Int16Array(6);const i=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,r=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,o=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,n=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))},a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},l=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},h=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))};this._originDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._cornerDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._targetDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._originWire=new ae(this._container,{color:this._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._targetWire=new ae(this._container,{color:this._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),this._angleLabel=new he(this._container,{fillColor:this._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:i,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:h,onContextMenu:o}),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&&(p.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],m=this._targetMarker.viewPos[2];if(d>A||f>A||m>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);p.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var t=this._pp,s=this._cp,i=e.canvas.canvas.getBoundingClientRect();const y=this._container.getBoundingClientRect();for(var r=i.top-y.top,o=i.left-y.left,n=e.canvas.boundary,a=n[2],l=n[3],h=0,c=0,u=t.length;c{e.snappedToVertex||e.snappedToEdge?(i&&(i.visible=!0,i.canvasPos=e.canvasPos,i.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,i.snapped=!0),this.markerDiv.style.background="greenyellow",this.markerDiv.style.border="2px solid green"):(i&&(i.visible=!0,i.canvasPos=e.canvasPos,i.snappedCanvasPos=e.canvasPos,i.snapped=!1),this.markerDiv.style.background="pink",this.markerDiv.style.border="2px solid red");const s=e.snappedCanvasPos||e.canvasPos;switch(r=!0,o=e.entity,l.set(e.worldPos),h.set(s),this._mouseState){case 0:const i=t.getBoundingClientRect(),r=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop,n=i.left+r,a=i.top+o;this.markerDiv.style.left=n+s[0]-5+"px",this.markerDiv.style.top=a+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.left="-10000px",this.markerDiv.style.top="-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.left="-10000px",this.markerDiv.style.top="-10000px",t.style.cursor="pointer"}})),t.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(n=e.clientX,a=e.clientY)}),t.addEventListener("mouseup",this._onMouseUp=e=>{if(1===e.which&&!(e.clientX>n+20||e.clientXa+20||e.clientY{if(r=!1,i&&(i.visible=!0,i.pointerPos=e.canvasPos,i.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,i.snapped=!1),this.markerDiv.style.left="-100px",this.markerDiv.style.top="-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 fe extends G{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 de(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,i=e.target,r=new Ae(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:i.entity,worldPos:i.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[r.id]=r,r.on("destroyed",(()=>{delete this._measurements[r.id]})),r.clickable=!0,this.fire("measurementCreated",r),r}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._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 ye=["webgl2","experimental-webgl","webkit-3d","moz-webgl","moz-glweb20"];class Ee extends x{constructor(e,t={}){super(e,t),this._backgroundColor=p.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 i=!0;new ResizeObserver((e=>{for(const t of e)t.contentBoxSize&&(i=!0)})).observe(this.canvas),this._tick=this.scene.on("tick",(()=>{i&&(i=!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 me(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-"+p.createUUID(),t=document.getElementsByTagName("body")[0],s=document.createElement("div"),i=s.style;i.height="100%",i.width="100%",i.padding="0",i.margin="0",i.background="rgba(0,0,0,0);",i.float="left",i.left="0",i.top="0",i.position="absolute",i.opacity="1.0",i["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?ve.FS_MAX_FLOAT_PRECISION="highp":e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?ve.FS_MAX_FLOAT_PRECISION="mediump":ve.FS_MAX_FLOAT_PRECISION="lowp":ve.FS_MAX_FLOAT_PRECISION="mediump",ve.DEPTH_BUFFER_BITS=e.getParameter(e.DEPTH_BITS),ve.MAX_TEXTURE_SIZE=e.getParameter(e.MAX_TEXTURE_SIZE),ve.MAX_CUBE_MAP_SIZE=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),ve.MAX_RENDERBUFFER_SIZE=e.getParameter(e.MAX_RENDERBUFFER_SIZE),ve.MAX_TEXTURE_UNITS=e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),ve.MAX_TEXTURE_IMAGE_UNITS=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),ve.MAX_VERTEX_ATTRIBS=e.getParameter(e.MAX_VERTEX_ATTRIBS),ve.MAX_VERTEX_UNIFORM_VECTORS=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),ve.MAX_FRAGMENT_UNIFORM_VECTORS=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),ve.MAX_VARYING_VECTORS=e.getParameter(e.MAX_VARYING_VECTORS),e.getSupportedExtensions().forEach((function(e){ve.SUPPORTED_EXTENSIONS[e]=!0})))}class _e{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 Te{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"),i=[];for(let e=0;e0&&"/"===s.charAt(i+1)&&(s=s.substring(0,i)),t.push(s);return t.join("\n")}function Ce(e){console.error(e.join("\n"))}class Ne{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 Te(e,e.VERTEX_SHADER,De(this.source.vertex)),this._fragmentShader=new Te(e,e.FRAGMENT_SHADER,De(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void Ce(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void Ce(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void Ce(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void Ce(this.errors);let t,s,i,r,o;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 Ce(this.errors);const n=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 xe{constructor(e,t){this.scene=e,this.aabb=p.AABB3(),this.origin=p.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 n=s.canvasPos,a=n[0],l=n[1];a+10<0||l+10<0||a-10>i||l-10>r?s._setVisible(!1):!s.entity||s.entity.visible?s.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=s,this.pixels[o++]=a,this.pixels[o++]=l):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 xe(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 i=this._occlusionLayers[s];i||(i=new xe(this._scene,e.origin),this._occlusionLayers[s]=t,this._occlusionLayersListDirty=!0),i.addMarker(e),this._markersToOcclusionLayersMap[e.id]=i}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,i=[];if(i.push("#version 300 es"),i.push("// OcclusionTester 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),i.push("}"),i}_buildProgram(){this._program&&this._program.destroy();const e=this._scene,t=e.canvas.gl,s=e._sectionPlanesState;if(this._program=new Ne(t,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,t=s.sectionPlanes.length;e0){const e=i.sectionPlanes;for(let i=0;i{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=p.mat4();return()=>(e&&p.inverseMat4(i.camera.projMatrix,t),t)})());const t=this._scene.canvas.gl,s=this._program,i=this._scene,r=i.sao,o=t.drawingBufferWidth,n=t.drawingBufferHeight,a=i.camera.project._state,l=a.near,h=a.far,c=a.matrix,u=this._getInverseProjectMat(),A=Math.random(),d="perspective"===i.camera.projection;Be[0]=o,Be[1]=n,t.viewport(0,0,o,n),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,l),t.uniform1f(this._uCameraFar,h),t.uniformMatrix4fv(this._uCameraProjectionMatrix,!1,c),t.uniformMatrix4fv(this._uCameraInverseProjectionMatrix,!1,u),t.uniform1i(this._uPerspective,d),t.uniform1f(this._uScale,r.scale*(h/5)),t.uniform1f(this._uIntensity,r.intensity),t.uniform1f(this._uBias,r.bias),t.uniform1f(this._uKernelRadius,r.kernelRadius),t.uniform1f(this._uMinResolution,r.minResolution),t.uniform2fv(this._uViewport,Be),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 Ne(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 i=new Float32Array([1,1,0,1,0,0,1,0]),r=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),o=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Oe(s,s.ARRAY_BUFFER,r,r.length,3,s.STATIC_DRAW),this._uvBuf=new Oe(s,s.ARRAY_BUFFER,i,i.length,2,s.STATIC_DRAW),this._indicesBuf=new Oe(s,s.ELEMENT_ARRAY_BUFFER,o,o.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 Le=new Float32Array(je(17,[0,1])),Ue=new Float32Array(je(17,[1,0])),He=new Float32Array(function(e,t){const s=[];for(let i=0;i<=e;i++)s.push(Ve(i,t));return s}(17,4)),Ge=new Float32Array(2);class ke{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 Ne(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]),i=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,i,i.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=p.mat4();return()=>(e&&p.inverseMat4(o.camera.projMatrix,t),t)})());const i=this._scene.canvas.gl,r=this._program,o=this._scene,n=i.drawingBufferWidth,a=i.drawingBufferHeight,l=o.camera.project._state,h=l.near,c=l.far;i.viewport(0,0,n,a),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),r.bind(),Ge[0]=n,Ge[1]=a,i.uniform2fv(this._uViewport,Ge),i.uniform1f(this._uCameraNear,h),i.uniform1f(this._uCameraFar,c),i.uniform1f(this._uDepthCutoff,.01),0===s?i.uniform2fv(this._uSampleOffsets,Ue):i.uniform2fv(this._uSampleOffsets,Le),i.uniform1fv(this._uSampleWeights,He);const u=e.getDepthTexture(),A=t.getTexture();r.bindTexture(this._uDepthTexture,u,0),r.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)}destroy(){this._program.destroy()}}function Ve(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function je(e,t){const s=[];for(let i=0;i<=e;i++)s.push(t[0]*i),s.push(t[1]*i);return s}class Qe{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 i=this.gl,r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),s?i.texStorage2D(i.TEXTURE_2D,1,s,e,t):i.texImage2D(i.TEXTURE_2D,0,i.RGBA,e,t,0,i.RGBA,i.UNSIGNED_BYTE,null),r}_touch(...e){let t,s;const i=this.gl;if(this.size?(t=this.size[0],s=this.size[1]):(t=i.drawingBufferWidth,s=i.drawingBufferHeight),this.buffer){if(this.buffer.width===t&&this.buffer.height===s)return;this.buffer.textures.forEach((e=>i.deleteTexture(e))),i.deleteFramebuffer(this.buffer.framebuf),i.deleteRenderbuffer(this.buffer.renderbuf)}const r=[];let o;e.length>0?r.push(...e.map((e=>this.createTexture(t,s,e)))):r.push(this.createTexture(t,s)),this._hasDepthTexture&&(o=i.createTexture(),i.bindTexture(i.TEXTURE_2D,o),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.texImage2D(i.TEXTURE_2D,0,i.DEPTH_COMPONENT32F,t,s,0,i.DEPTH_COMPONENT,i.FLOAT,null));const n=i.createRenderbuffer();i.bindRenderbuffer(i.RENDERBUFFER,n),i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_COMPONENT32F,t,s);const a=i.createFramebuffer();i.bindFramebuffer(i.FRAMEBUFFER,a);for(let e=0;e0&&i.drawBuffers(r.map(((e,t)=>i.COLOR_ATTACHMENT0+t))),this._hasDepthTexture?i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_2D,o,0):i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,n),i.bindTexture(i.TEXTURE_2D,null),i.bindRenderbuffer(i.RENDERBUFFER,null),i.bindFramebuffer(i.FRAMEBUFFER,null),i.bindFramebuffer(i.FRAMEBUFFER,a),!i.isFramebuffer(a))throw"Invalid framebuffer";i.bindFramebuffer(i.FRAMEBUFFER,null);const l=i.checkFramebufferStatus(i.FRAMEBUFFER);switch(l){case i.FRAMEBUFFER_COMPLETE:break;case i.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case i.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case i.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case i.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+l}this.buffer={framebuf:a,renderbuf:n,texture:r[0],textures:r,depthTexture:o,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,i=null,r=Uint8Array,o=4,n=0){const a=e,l=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,h=new r(o),c=this.gl;return c.readBuffer(c.COLOR_ATTACHMENT0+n),c.readPixels(a,l,1,1,s||c.RGBA,i||c.UNSIGNED_BYTE,h,0),h}readArray(e=null,t=null,s=Uint8Array,i=4,r=0){const o=new s(this.buffer.width*this.buffer.height*i),n=this.gl;return n.readBuffer(n.COLOR_ATTACHMENT0+r),n.readPixels(0,0,this.buffer.width,this.buffer.height,e||n.RGBA,t||n.UNSIGNED_BYTE,o,0),o}readImageAsCanvas(){const e=this.gl,t=this._getImageDataCache(),s=t.pixelData,i=t.canvas,r=t.imageData,o=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,s);const n=this.buffer.width,a=this.buffer.height,l=a/2|0,h=4*n,c=new Uint8Array(4*n);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 We{constructor(e){this.scene=e,this._renderBuffersBasic={},this._renderBuffersScaled={}}getRenderBuffer(e,t){const s=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled;let i=s[e];return i||(i=new Qe(this.scene.canvas.canvas,this.scene.canvas.gl,t),s[e]=i),i}destroy(){for(let e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(let e in this._renderBuffersScaled)this._renderBuffersScaled[e].destroy()}}function ze(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 Ke=function(e,s){s=s||{};const i=new ge(e),r=e.canvas.canvas,o=e.canvas.gl,n=!!s.transparent,a=s.alphaDepthMask,l=new t({});let h={},c={},u=!0,A=!0,f=!0,m=!0,y=!0,E=!0,g=!0,v=!0;const I=new We(e);let _=!1;const T=new Fe(e),P=new ke(e);function b(){u&&(!function(){for(let e in h)if(h.hasOwnProperty(e)){const t=h[e],s=t.drawableMap,i=t.drawableListPreCull;let r=0;for(let e in s)s.hasOwnProperty(e)&&(i[r++]=s[e]);i.length=r}}(),u=!1,A=!0),A&&(!function(){for(let e in h)if(h.hasOwnProperty(e)){const t=h[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),A=!1,f=!0),f&&function(){for(let e in h)if(h.hasOwnProperty(e)){const t=h[e],s=t.drawableListPreCull,i=t.drawableList;let r=0;for(let e=0,t=s.length;e0)for(i.withSAO=!0,S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||j>0||U>0||H>0){if(o.enable(o.CULL_FACE),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):(o.blendEquation(o.FUNC_ADD),o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA)),i.backfaces=!1,a||o.depthMask(!1),(U>0||H>0)&&o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),H>0)for(S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||W>0){if(i.lastProgramId=null,e.highlightMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),W>0)for(S=0;S0)for(S=0;S0||K>0||Q>0){if(i.lastProgramId=null,e.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),o.enable(o.CULL_FACE),K>0)for(S=0;S0)for(S=0;S0||X>0){if(i.lastProgramId=null,e.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),X>0)for(S=0;S0)for(S=0;S0||q>0){if(i.lastProgramId=null,e.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),o.enable(o.CULL_FACE),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),q>0)for(S=0;S0)for(S=0;S0){const t=Math.floor(e/4),s=A.size[0],i=t%s-Math.floor(s/2),r=Math.floor(t/s)-Math.floor(s/2),o=Math.sqrt(Math.pow(i,2)+Math.pow(r,2));D.push({x:i,y:r,dist:o,isVertex:n&&a?E[e+3]>y.length/2:n,result:[E[e+0],E[e+1],E[e+2],E[e+3]],normal:[g[e+0],g[e+1],g[e+2],g[e+3]],id:[v[e+0],v[e+1],v[e+2],v[e+3]]})}let x=null,S=null,w=null,M=null;if(D.length>0){D.sort(((e,t)=>e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist)),M=D[0].isVertex?"vertex":"edge";const e=D[0].result,t=D[0].normal,s=D[0].id,i=y[e[3]],r=i.origin,o=i.coordinateScale;S=p.normalizeVec3([t[0]/p.MAX_INT,t[1]/p.MAX_INT,t[2]/p.MAX_INT]),x=[e[0]*o[0]+r[0],e[1]*o[1]+r[1],e[2]*o[2]+r[2]],w=l.items[s[0]+(s[1]<<8)+(s[2]<<16)+(s[3]<<24)]}if(null===_&&null==x)return null;let B=null;null!==x&&(B=e.camera.projectWorldPos(x));const F=w&&w.delegatePickedEntity?w.delegatePickedEntity():w;return c.reset(),c.snappedToEdge="edge"===M,c.snappedToVertex="vertex"===M,c.worldPos=x,c.worldNormal=S,c.entity=F,c.canvasPos=s,c.snappedCanvasPos=B||s,c}}(),this.addMarker=function(t){this._occlusionTester=this._occlusionTester||new Me(e,I),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){b(),this._occlusionTester.bindRenderBuf(),i.reset(),i.backfaces=!0,i.frontface=!0,o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.clearColor(0,0,0,0),o.enable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.disable(o.BLEND),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT);for(let e in h)if(h.hasOwnProperty(e)){const t=h[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 i=Math.max(-1,Math.min(1,40*-e.deltaY));t(i)},{passive:!0});{let e,t;const s=2;this.on("mousedown",(s=>{e=s[0],t=s[1]})),this.on("mouseup",(i=>{e>=i[0]-s&&e<=i[0]+s&&t>=i[1]-s&&t<=i[1]+s&&this.fire("mouseclicked",i,!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,i=0;for(;t.offsetParent;)s+=t.offsetLeft,i+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-s,this.mouseCanvasPos[1]=e.pageY-i}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 Xe=new t({});class Ze{constructor(e){this.id=Xe.addItem({});for(const t in e)e.hasOwnProperty(t)&&(this[t]=e[t])}destroy(){Xe.removeItem(this.id)}}class qe extends x{get type(){return"Viewport"}constructor(e,t={}){super(e,t),this._state=new Ze({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 Je extends x{get type(){return"Perspective"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Ze({matrix:p.mat4(),inverseMatrix:p.mat4(),transposedMatrix:p.mat4(),near:.1,far:1e4}),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 i=this._fov;("x"===s||"min"===s&&t<1||"max"===s&&t>1)&&(i/=t),i=Math.min(i,120),p.perspectiveMat4(i*(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:1e4;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&&(p.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(p.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,i,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return s[0]=(e[0]-n)/n,s[1]=(e[1]-a)/a,s[2]=t,s[3]=1,p.mulMat4v4(this.inverseMatrix,s,i),p.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,p.mulMat4v4(this.camera.inverseViewMatrix,i,r),r}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}class $e extends x{get type(){return"Ortho"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Ze({matrix:p.mat4(),inverseMatrix:p.mat4(),transposedMatrix:p.mat4(),near:.1,far:1e4}),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,i=s[2],r=s[3],o=i/r;let n,a,l,h;i>r?(n=-t,a=t,l=t/o,h=-t/o):(n=-t*o,a=t*o,l=t,h=-t),p.orthoMat4c(n,a,h,l,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:1e4;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&&(p.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(p.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,i,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return s[0]=(e[0]-n)/n,s[1]=(e[1]-a)/a,s[2]=t,s[3]=1,p.mulMat4v4(this.inverseMatrix,s,i),p.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,p.mulMat4v4(this.camera.inverseViewMatrix,i,r),r}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}class et extends x{get type(){return"Frustum"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Ze({matrix:p.mat4(),inverseMatrix:p.mat4(),transposedMatrix:p.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(){p.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&&(p.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(p.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,i,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return s[0]=(e[0]-n)/n,s[1]=(e[1]-a)/a,s[2]=t,s[3]=1,p.mulMat4v4(this.inverseMatrix,s,i),p.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,p.mulMat4v4(this.camera.inverseViewMatrix,i,r),r}destroy(){super.destroy(),this._state.destroy(),super.destroy()}}class tt extends x{get type(){return"CustomProjection"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new Ze({matrix:p.mat4(),inverseMatrix:p.mat4(),transposedMatrix:p.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&&(p.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(p.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,s,i,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return s[0]=(e[0]-n)/n,s[1]=(e[1]-a)/a,s[2]=t,s[3]=1,p.mulMat4v4(this.inverseMatrix,s,i),p.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,p.mulMat4v4(this.camera.inverseViewMatrix,i,r),r}destroy(){super.destroy(),this._state.destroy()}}const st=p.vec3(),it=p.vec3(),rt=p.vec3(),ot=p.vec3(),nt=p.vec3(),at=p.vec3(),lt=p.vec4(),ht=p.vec4(),ct=p.vec4(),ut=p.mat4(),At=p.mat4(),pt=p.vec3(),dt=p.vec3(),ft=p.vec3(),mt=p.vec3();class yt extends x{get type(){return"Camera"}constructor(e,t={}){super(e,t),this._state=new Ze({deviceMatrix:p.mat4(),hasDeviceMatrix:!1,matrix:p.mat4(),normalMatrix:p.mat4(),inverseMatrix:p.mat4()}),this._perspective=new Je(this),this._ortho=new $e(this),this._frustum=new et(this),this._customProjection=new tt(this),this._project=this._perspective,this._eye=p.vec3([0,0,10]),this._look=p.vec3([0,0,0]),this._up=p.vec3([0,1,0]),this._worldUp=p.vec3([0,1,0]),this._worldRight=p.vec3([1,0,0]),this._worldForward=p.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?(p.subVec3(this._eye,this._look,pt),p.normalizeVec3(pt,dt),p.mulVec3Scalar(dt,1e3,ft),p.addVec3(this._look,ft,mt),t=mt):t=this._eye,e.hasDeviceMatrix?(p.lookAtMat4v(t,this._look,this._up,At),p.mulMat4(e.deviceMatrix,At,e.matrix)):p.lookAtMat4v(t,this._look,this._up,e.matrix),p.inverseMat4(this._state.matrix,this._state.inverseMatrix),p.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=p.subVec3(this._eye,this._look,st);p.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,ut),t=p.transformPoint3(ut,t,it),this.eye=p.addVec3(this._look,t,rt),this.up=p.transformPoint3(ut,this._up,ot)}orbitPitch(e){if(this._constrainPitch&&(e=p.dotVec3(this._up,this._worldUp)/p.DEGTORAD)<1)return;let t=p.subVec3(this._eye,this._look,st);const s=p.cross3Vec3(p.normalizeVec3(t,it),p.normalizeVec3(this._up,rt));p.rotationMat4v(.0174532925*e,s,ut),t=p.transformPoint3(ut,t,ot),this.up=p.transformPoint3(ut,this._up,nt),this.eye=p.addVec3(t,this._look,at)}yaw(e){let t=p.subVec3(this._look,this._eye,st);p.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,ut),t=p.transformPoint3(ut,t,it),this.look=p.addVec3(t,this._eye,rt),this._gimbalLock&&(this.up=p.transformPoint3(ut,this._up,ot))}pitch(e){if(this._constrainPitch&&(e=p.dotVec3(this._up,this._worldUp)/p.DEGTORAD)<1)return;let t=p.subVec3(this._look,this._eye,st);const s=p.cross3Vec3(p.normalizeVec3(t,it),p.normalizeVec3(this._up,rt));p.rotationMat4v(.0174532925*e,s,ut),this.up=p.transformPoint3(ut,this._up,at),t=p.transformPoint3(ut,t,ot),this.look=p.addVec3(t,this._eye,nt)}pan(e){const t=p.subVec3(this._eye,this._look,st),s=[0,0,0];let i;if(0!==e[0]){const r=p.cross3Vec3(p.normalizeVec3(t,[]),p.normalizeVec3(this._up,it));i=p.mulVec3Scalar(r,e[0]),s[0]+=i[0],s[1]+=i[1],s[2]+=i[2]}0!==e[1]&&(i=p.mulVec3Scalar(p.normalizeVec3(this._up,rt),e[1]),s[0]+=i[0],s[1]+=i[1],s[2]+=i[2]),0!==e[2]&&(i=p.mulVec3Scalar(p.normalizeVec3(t,ot),e[2]),s[0]+=i[0],s[1]+=i[1],s[2]+=i[2]),this.eye=p.addVec3(this._eye,s,nt),this.look=p.addVec3(this._look,s,at)}zoom(e){const t=p.subVec3(this._eye,this._look,st),s=Math.abs(p.lenVec3(t,it)),i=Math.abs(s+e);if(i<.5)return;const r=p.normalizeVec3(t,rt);this.eye=p.addVec3(this._look,p.mulVec3Scalar(r,i),ot)}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=p.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 p.lenVec3(p.subVec3(this._look,this._eye,st))}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=lt,s=ht,i=ct;t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,p.mulMat4v4(this.viewMatrix,t,s),p.mulMat4v4(this.projMatrix,s,i),p.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1;const r=this.scene.canvas.canvas,o=r.offsetWidth/2,n=r.offsetHeight/2;return[i[0]*o+o,i[1]*n+n]}destroy(){super.destroy(),this._state.destroy()}}class Et extends x{get type(){return"Light"}get isLight(){return!0}constructor(e,t={}){super(e,t)}}class gt extends Et{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,i=this.scene.canvas;this._onCameraViewMatrix=s.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=s.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=i.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new Ze({type:"dir",dir:p.vec3([1,1,1]),color:p.vec3([.7,.7,.8]),intensity:1,space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(this._shadowViewMatrixDirty){this._shadowViewMatrix||(this._shadowViewMatrix=p.identityMat4());const e=this.scene.camera,t=this._state.dir,s=e.look,i=[s[0]-t[0],s[1]-t[1],s[2]-t[2]],r=[0,1,0];p.lookAtMat4v(i,s,r,this._shadowViewMatrix),this._shadowViewMatrixDirty=!1}return this._shadowViewMatrix},getShadowProjMatrix:()=>(this._shadowProjMatrixDirty&&(this._shadowProjMatrix||(this._shadowProjMatrix=p.identityMat4()),p.orthoMat4c(-40,40,-40,40,-40,80,this._shadowProjMatrix),this._shadowProjMatrixDirty=!1),this._shadowProjMatrix),getShadowRenderBuf:()=>(this._shadowRenderBuf||(this._shadowRenderBuf=new Qe(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 vt extends Et{get type(){return"AmbientLight"}constructor(e,t={}){super(e,t),this._state={type:"ambient",color:p.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 It extends x{get type(){return"Geometry"}get isGeometry(){return!0}constructor(e,t={}){super(e,t),d.memory.meshes++}destroy(){super.destroy(),d.memory.meshes--}}var _t=function(){const e=[],t=[],s=[],i=[],r=[];let o=0;const n=new Uint16Array(3),a=new Uint16Array(3),l=new Uint16Array(3),h=p.vec3(),c=p.vec3(),u=p.vec3(),A=p.vec3(),d=p.vec3(),f=p.vec3(),m=p.vec3();return function(y,E,g,v){!function(r,o){const n={};let a,l,h,c;const u=Math.pow(10,4);let A,p,d=0;for(A=0,p=r.length;A_)||(w=s[N.index1],M=s[N.index2],(!B&&w>65535||M>65535)&&(B=!0),I.push(w),I.push(M));return B?new Uint32Array(I):new Uint16Array(I)}}();const Tt=function(){const e=p.mat4(),t=p.mat4();return function(s,i){i=i||p.mat4();const r=s[0],o=s[1],n=s[2],a=s[3]-r,l=s[4]-o,h=s[5]-n,c=65535;return p.identityMat4(e),p.translationMat4v(s,e),p.identityMat4(t),p.scalingMat4v([a/c,l/c,h/c],t),p.mulMat4(e,t,i),i}}();var Pt=function(){const e=p.mat4(),t=p.mat4();return function(s,i,r){const o=new Uint16Array(s.length),n=new Float32Array([r[0]!==i[0]?65535/(r[0]-i[0]):0,r[1]!==i[1]?65535/(r[1]-i[1]):0,r[2]!==i[2]?65535/(r[2]-i[2]):0]);let a;for(a=0;a=0?1:-1),t=(1-Math.abs(r))*(o>=0?1:-1);r=e,o=t}return new Int8Array([Math[s](127.5*r+(r<0?-1:0)),Math[i](127.5*o+(o<0?-1:0))])}function Dt(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const i=1-Math.abs(t)-Math.abs(s);i<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const r=Math.sqrt(t*t+s*s+i*i);return[t/r,s/r,i/r]}function Ct(e,t,s){return e[t]*s[0]+e[t+1]*s[1]+e[t+2]*s[2]}const Nt={getPositionsBounds:function(e){const t=new Float32Array(3),s=new Float32Array(3);let i,r;for(i=0;i<3;i++)t[i]=Number.MAX_VALUE,s[i]=-Number.MAX_VALUE;for(i=0;in&&(r=s,n=o),s=Rt(e,a,"floor","ceil"),i=Dt(s),o=Ct(e,a,i),o>n&&(r=s,n=o),s=Rt(e,a,"ceil","ceil"),i=Dt(s),o=Ct(e,a,i),o>n&&(r=s,n=o),t[a]=r[0],t[a+1]=r[1];return t},decompressNormals:function(e,t){for(let s=0,i=0,r=e.length;s=0?1:-1),o=(1-Math.abs(r))*(o>=0?1:-1));const a=Math.sqrt(r*r+o*o+n*n);t[i+0]=r/a,t[i+1]=o/a,t[i+2]=n/a,i+=3}return t},decompressNormal:function(e,t){let s=e[0],i=e[1];s=(2*s+1)/255,i=(2*i+1)/255;const r=1-Math.abs(s)-Math.abs(i);r<0&&(s=(1-Math.abs(i))*(s>=0?1:-1),i=(1-Math.abs(s))*(i>=0?1:-1));const o=Math.sqrt(s*s+i*i+r*r);return t[0]=s/o,t[1]=i/o,t[2]=r/o,t}},Ot=d.memory,xt=p.AABB3();class St extends It{get type(){return"ReadableGeometry"}get isReadableGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Ze({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,i=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=i.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=i.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=i.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=i.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=i.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=i.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=i.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=i.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(this._state.compressGeometry){const e=Nt.getPositionsBounds(t.positions),i=Nt.compressPositions(t.positions,e.min,e.max);s.positions=i.quantized,s.positionsDecodeMatrix=i.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=Nt.getUVBounds(t.uv),i=Nt.compressUVs(t.uv,e.min,e.max);s.uv=i.quantized,s.uvDecodeMatrix=i.decodeMatrix}else s.uv=t.uv.constructor===Float32Array?t.uv:new Float32Array(t.uv);t.normals&&(this._state.compressGeometry?s.normals=Nt.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=_t(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=p.buildPickTriangles(e.positions,e.indices,e.compressGeometry),i=s.positions,r=s.colors;this._pickTrianglePositionsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new Oe(t,t.ARRAY_BUFFER,r,r.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),Nt.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=Nt.getPositionsBounds(e),i=Nt.compressPositions(e,s.min,s.max);e=i.quantized,t.positionsDecodeMatrix=i.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),Nt.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),Nt.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=p.AABB3()),p.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}get obb(){return this._obbDirty&&(this._obb||(this._obb=p.OBB3()),p.positions3ToAABB3(this._state.positions,xt,this._state.positionsDecodeMatrix),p.AABB3ToOBB3(xt,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 wt(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 i=e.zSize||1;i<0&&(console.error("negative zSize not allowed - will invert"),i*=-1);const r=e.center,o=r?r[0]:0,n=r?r[1]:0,a=r?r[2]:0,l=-t+o,h=-s+n,c=-i+a,u=t+o,A=s+n,p=i+a;return E.apply(e,{positions:[u,A,p,l,A,p,l,h,p,u,h,p,u,A,p,u,h,p,u,h,c,u,A,c,u,A,p,u,A,c,l,A,c,l,A,p,l,A,p,l,A,c,l,h,c,l,h,p,l,h,c,u,h,c,u,h,p,l,h,p,u,h,c,l,h,c,l,A,c,u,A,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]})}class Mt extends x{get type(){return"Material"}constructor(e,t={}){super(e,t),d.memory.materials++}destroy(){super.destroy(),d.memory.materials--}}const Bt={opaque:0,mask:1,blend:2},Ft=["opaque","mask","blend"];class Lt extends Mt{get type(){return"PhongMaterial"}constructor(e,t={}){super(e,t),this._state=new Ze({type:"PhongMaterial",ambient:p.vec3([1,1,1]),diffuse:p.vec3([1,1,1]),specular:p.vec3([1,1,1]),emissive:p.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=Bt[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 Ht extends Mt{get type(){return"EmphasisMaterial"}get presets(){return Ut}constructor(e,t={}){super(e,t),this._state=new Ze({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 Gt={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 kt extends Mt{get type(){return"EdgeMaterial"}get presets(){return Gt}constructor(e,t={}){super(e,t),this._state=new Ze({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=Gt[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(Gt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const Vt={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 x{constructor(e,t={}){super(e,t),this._units="meters",this._scale=1,this._origin=p.vec3([0,0,0]),this.units=t.units,this.scale=t.scale,this.origin=t.origin}get unitsInfo(){return Vt}set units(e){e||(e="meters");Vt[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=p.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=p.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 Qt extends x{constructor(e,t={}){super(e,t),this._supported=ve.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 Wt={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}};class zt extends Mt{get type(){return"PointsMaterial"}get presets(){return Wt}constructor(e,t={}){super(e,t),this._state=new Ze({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=Wt[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(Wt).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 Kt={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}};class Yt extends Mt{get type(){return"LinesMaterial"}get presets(){return Kt}constructor(e,t={}){super(e,t),this._state=new Ze({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=Kt[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Kt).join(", "))}get preset(){return this._preset}get hash(){return[""+this.lineWidth].join(";")}destroy(){super.destroy(),this._state.destroy()}}function Xt(e,t){const s={};let i,r;for(let o=0,n=t.length;o{this.glRedraw()})),this.canvas.on("webglContextFailed",(()=>{alert("xeokit failed to find WebGL!")})),this._renderer=new Ke(this,{transparent:i,alphaDepthMask:r}),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,i=t;ethis._numCachedSectionPlanes?e:this._numCachedSectionPlanes}},this._sectionPlanesState.setNumCachedSectionPlanes(t.numCachedSectionPlanes||0),this._lightsState=new function(){const e=p.vec4([0,0,0,0]),t=p.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];let s=null,i=null;this.getHash=function(){if(s)return s;const e=[],t=this.lights;let i;for(let s=0,r=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),i=null,s=null},this.removeLight=function(e){for(let t=0,r=this.lights.length;t{this._renderer.imageDirty()}))}_initDefaults(){}_addComponent(e){if(e.id&&this.components[e.id]&&(this.error("Component "+E.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=p.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 i=this.types[s];i&&(delete i[t],E.isEmptyObject(i)&&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)}_deRegisterVisibleObject(e){delete this.visibleObjects[e.id],this._numVisibleObjects--,this._visibleObjectIds=null}_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)}_deRegisterXRayedObject(e){delete this.xrayedObjects[e.id],this._numXRayedObjects--,this._xrayedObjectIds=null}_objectHighlightedUpdated(e){e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null}_deRegisterHighlightedObject(e){delete this.highlightedObjects[e.id],this._numHighlightedObjects--,this._highlightedObjectIds=null}_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)}_deRegisterSelectedObject(e){delete this.selectedObjects[e.id],this._numSelectedObjects--,this._selectedObjectIds=null}_objectColorizeUpdated(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}_deRegisterColorizedObject(e){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}_deRegisterOpacityObject(e){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}_deRegisterOffsetObject(e){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&&D.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,i=this._clearEachPass;let r,o;for(r=0;rr&&(r=e[3]),e[4]>o&&(o=e[4]),e[5]>n&&(n=e[5]),h=!0}h||(t=-100,s=-100,i=-100,r=100,o=100,n=100),this._aabb[0]=t,this._aabb[1]=s,this._aabb[2]=i,this._aabb[3]=r,this._aabb[4]=o,this._aabb[5]=n,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=Xt(this,s));const i=e.excludeEntities||e.exclude;return i&&(e.excludeEntityIds=Xt(this,i)),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 l=e.aabb;l[0]o&&(o=l[3]),l[4]>n&&(n=l[4]),l[5]>a&&(a=l[5]),t=!0}})),t){const e=p.AABB3();return e[0]=s,e[1]=i,e[2]=r,e[3]=o,e[4]=n,e[5]=a,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){E.isString(e)&&(e=[e]);let s=!1;for(let i=0,r=e.length;i{r>i&&(i=r,e(...s))}));return this._tickifiedFunctions[t]={tickSubId:n,wrapperFunc:o},o}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 qt=1e3,Jt=1001,$t=1002,es=1003,ts=1004,ss=1005,is=1006,rs=1007,os=1008,ns=1008,as=1023,ls=33776,hs=33777,cs=33778,us=33779,As=35840,ps=35842,ds=37492,fs=37496,ms=37808,ys=36492,Es=3e3,gs=3001,vs=function(e){"LambertMaterial"===e._material._state.type?(this.vertex=function(e){const t=e.scene,s=e.scene._sectionPlanesState,i=e.scene._lightsState,r=e._geometry._state,o=e._state.billboard,n=e._state.stationary,a=s.getNumAllocatedSectionPlanes()>0,l=!!r.compressGeometry,h=[];h.push("#version 300 es"),h.push("// Lambertian drawing vertex shader"),h.push("in vec3 position;"),h.push("uniform mat4 modelMatrix;"),h.push("uniform mat4 viewMatrix;"),h.push("uniform mat4 projMatrix;"),h.push("uniform vec4 colorize;"),h.push("uniform vec3 offset;"),l&&h.push("uniform mat4 positionsDecodeMatrix;");t.logarithmicDepthBufferEnabled&&(h.push("uniform float logDepthBufFC;"),h.push("out float vFragDepth;"),h.push("bool isPerspectiveMatrix(mat4 m) {"),h.push(" return (m[2][3] == - 1.0);"),h.push("}"),h.push("out float isPerspective;"));a&&h.push("out vec4 vWorldPosition;");if(h.push("uniform vec4 lightAmbient;"),h.push("uniform vec4 materialColor;"),h.push("uniform vec3 materialEmissive;"),r.normalsBuf){h.push("in vec3 normal;"),h.push("uniform mat4 modelNormalMatrix;"),h.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=i.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),h.push(" }"),h.push(" return normalize(v);"),h.push("}"))}h.push("out vec4 vColor;"),"points"===r.primitiveName&&h.push("uniform float pointSize;");"spherical"!==o&&"cylindrical"!==o||(h.push("void billboard(inout mat4 mat) {"),h.push(" mat[0][0] = 1.0;"),h.push(" mat[0][1] = 0.0;"),h.push(" mat[0][2] = 0.0;"),"spherical"===o&&(h.push(" mat[1][0] = 0.0;"),h.push(" mat[1][1] = 1.0;"),h.push(" mat[1][2] = 0.0;")),h.push(" mat[2][0] = 0.0;"),h.push(" mat[2][1] = 0.0;"),h.push(" mat[2][2] =1.0;"),h.push("}"));h.push("void main(void) {"),h.push("vec4 localPosition = vec4(position, 1.0); "),h.push("vec4 worldPosition;"),l&&h.push("localPosition = positionsDecodeMatrix * localPosition;");r.normalsBuf&&(l?h.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):h.push("vec4 localNormal = vec4(normal, 0.0); "),h.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),h.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));h.push("mat4 viewMatrix2 = viewMatrix;"),h.push("mat4 modelMatrix2 = modelMatrix;"),n&&h.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===o||"cylindrical"===o?(h.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),h.push("billboard(modelMatrix2);"),h.push("billboard(viewMatrix2);"),h.push("billboard(modelViewMatrix);"),r.normalsBuf&&(h.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),h.push("billboard(modelNormalMatrix2);"),h.push("billboard(viewNormalMatrix2);"),h.push("billboard(modelViewNormalMatrix);")),h.push("worldPosition = modelMatrix2 * localPosition;"),h.push("worldPosition.xyz = worldPosition.xyz + offset;"),h.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(h.push("worldPosition = modelMatrix2 * localPosition;"),h.push("worldPosition.xyz = worldPosition.xyz + offset;"),h.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r.normalsBuf&&h.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(h.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),h.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),h.push("float lambertian = 1.0;"),r.normalsBuf)for(let e=0,t=i.lights.length;e0,o=t.gammaOutput,n=[];n.push("#version 300 es"),n.push("// Lambertian 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"),t.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"));if(r){n.push("in vec4 vWorldPosition;"),n.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}"points"===i.primitiveName&&(n.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),n.push("float r = dot(cxy, cxy);"),n.push("if (r > 1.0) {"),n.push(" discard;"),n.push("}"));t.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");o?n.push("outColor = linearToGamma(vColor, gammaFactor);"):n.push("outColor = vColor;");return n.push("}"),n}(e)):(this.vertex=function(e){const t=e.scene;e._material;const s=e._state,i=t._sectionPlanesState,r=e._geometry._state,o=t._lightsState;let n;const a=s.billboard,l=s.background,h=s.stationary,c=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),u=Ts(e),A=i.getNumAllocatedSectionPlanes()>0,p=_s(e),d=!!r.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;"),A&&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;"));o.lightMaps.length>0&&f.push("out vec3 vWorldNormal;");if(u){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=o.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("}"))}c&&(f.push("in vec2 uv;"),f.push("out vec2 vUV;"),d&&f.push("uniform mat3 uvDecodeMatrix;"));r.colors&&(f.push("in vec4 color;"),f.push("out vec4 vColor;"));"points"===r.primitiveName&&f.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(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"===a&&(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(p){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=o.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=o.lights.length;e0,l=Ts(e),h=i.uvBuf,c="PhongMaterial"===n.type,u="MetallicMaterial"===n.type,A="SpecularMaterial"===n.type,p=_s(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;"));p&&(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(a){f.push("in vec4 vWorldPosition;"),f.push("uniform bool clippable;");for(var m=0;m0&&(f.push("uniform samplerCube lightMap;"),f.push("uniform mat4 viewNormalMatrix;")),o.reflectionMaps.length>0&&f.push("uniform samplerCube reflectionMap;"),(o.lightMaps.length>0||o.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("};"),c&&((o.lightMaps.length>0||o.reflectionMaps.length>0)&&(f.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.lightMaps.length>0&&(f.push(" vec3 irradiance = "+Is[o.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;")),o.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("}")),(u||A)&&(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("}"),o.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 = "+Is[o.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("}"),(o.lightMaps.length>0||o.reflectionMaps.length>0)&&(f.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.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;")),o.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;"),i.colors&&f.push("in vec4 vColor;");h&&(l&&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;");l&&(o.lightMaps.length>0&&f.push("in vec3 vWorldNormal;"),f.push("in vec3 vViewNormal;"));n.ambient&&f.push("uniform vec3 materialAmbient;");n.baseColor&&f.push("uniform vec3 materialBaseColor;");void 0!==n.alpha&&null!==n.alpha&&f.push("uniform vec4 materialAlphaModeCutoff;");n.emissive&&f.push("uniform vec3 materialEmissive;");n.diffuse&&f.push("uniform vec3 materialDiffuse;");void 0!==n.glossiness&&null!==n.glossiness&&f.push("uniform float materialGlossiness;");void 0!==n.shininess&&null!==n.shininess&&f.push("uniform float materialShininess;");n.specular&&f.push("uniform vec3 materialSpecular;");void 0!==n.metallic&&null!==n.metallic&&f.push("uniform float materialMetallic;");void 0!==n.roughness&&null!==n.roughness&&f.push("uniform float materialRoughness;");void 0!==n.specularF0&&null!==n.specularF0&&f.push("uniform float materialSpecularF0;");h&&s._ambientMap&&(f.push("uniform sampler2D ambientMap;"),s._ambientMap._state.matrix&&f.push("uniform mat4 ambientMapMatrix;"));h&&s._baseColorMap&&(f.push("uniform sampler2D baseColorMap;"),s._baseColorMap._state.matrix&&f.push("uniform mat4 baseColorMapMatrix;"));h&&s._diffuseMap&&(f.push("uniform sampler2D diffuseMap;"),s._diffuseMap._state.matrix&&f.push("uniform mat4 diffuseMapMatrix;"));h&&s._emissiveMap&&(f.push("uniform sampler2D emissiveMap;"),s._emissiveMap._state.matrix&&f.push("uniform mat4 emissiveMapMatrix;"));l&&h&&s._metallicMap&&(f.push("uniform sampler2D metallicMap;"),s._metallicMap._state.matrix&&f.push("uniform mat4 metallicMapMatrix;"));l&&h&&s._roughnessMap&&(f.push("uniform sampler2D roughnessMap;"),s._roughnessMap._state.matrix&&f.push("uniform mat4 roughnessMapMatrix;"));l&&h&&s._metallicRoughnessMap&&(f.push("uniform sampler2D metallicRoughnessMap;"),s._metallicRoughnessMap._state.matrix&&f.push("uniform mat4 metallicRoughnessMapMatrix;"));l&&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("}"));h&&s._occlusionMap&&(f.push("uniform sampler2D occlusionMap;"),s._occlusionMap._state.matrix&&f.push("uniform mat4 occlusionMapMatrix;"));h&&s._alphaMap&&(f.push("uniform sampler2D alphaMap;"),s._alphaMap._state.matrix&&f.push("uniform mat4 alphaMapMatrix;"));l&&h&&s._specularMap&&(f.push("uniform sampler2D specularMap;"),s._specularMap._state.matrix&&f.push("uniform mat4 specularMapMatrix;"));l&&h&&s._glossinessMap&&(f.push("uniform sampler2D glossinessMap;"),s._glossinessMap._state.matrix&&f.push("uniform mat4 glossinessMapMatrix;"));l&&h&&s._specularGlossinessMap&&(f.push("uniform sampler2D materialSpecularGlossinessMap;"),s._specularGlossinessMap._state.matrix&&f.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));l&&(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;"),l)for(let e=0,t=o.lights.length;e 0.0) { discard; }"),f.push("}")}"points"===i.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;"),n.ambient?f.push("vec3 ambientColor = materialAmbient;"):f.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");n.diffuse?f.push("vec3 diffuseColor = materialDiffuse;"):n.baseColor?f.push("vec3 diffuseColor = materialBaseColor;"):f.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");i.colors&&f.push("diffuseColor *= vColor.rgb;");n.emissive?f.push("vec3 emissiveColor = materialEmissive;"):f.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");n.specular?f.push("vec3 specular = materialSpecular;"):f.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==n.alpha?f.push("float alpha = materialAlphaModeCutoff[0];"):f.push("float alpha = 1.0;");i.colors&&f.push("alpha *= vColor.a;");void 0!==n.glossiness?f.push("float glossiness = materialGlossiness;"):f.push("float glossiness = 1.0;");void 0!==n.metallic?f.push("float metallic = materialMetallic;"):f.push("float metallic = 1.0;");void 0!==n.roughness?f.push("float roughness = materialRoughness;"):f.push("float roughness = 1.0;");void 0!==n.specularF0?f.push("float specularF0 = materialSpecularF0;"):f.push("float specularF0 = 1.0;");h&&(l&&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;"));h&&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 = "+Is[s._ambientMap._state.encoding]+"(ambientTexel);"),f.push("ambientColor *= ambientTexel.rgb;"));h&&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 = "+Is[s._diffuseMap._state.encoding]+"(diffuseTexel);"),f.push("diffuseColor *= diffuseTexel.rgb;"),f.push("alpha *= diffuseTexel.a;"));h&&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 = "+Is[s._baseColorMap._state.encoding]+"(baseColorTexel);"),f.push("diffuseColor *= baseColorTexel.rgb;"),f.push("alpha *= baseColorTexel.a;"));h&&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 = "+Is[s._emissiveMap._state.encoding]+"(emissiveTexel);"),f.push("emissiveColor = emissiveTexel.rgb;"));h&&s._alphaMap&&(s._alphaMap._state.matrix?f.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("alpha *= texture(alphaMap, textureCoord).r;"));h&&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(l&&(o.lights.length>0||o.lightMaps.length>0||o.reflectionMaps.length>0)){h&&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);"),h&&s._specularMap&&(s._specularMap._state.matrix?f.push("textureCoord = (specularMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("specular *= texture(specularMap, textureCoord).rgb;")),h&&s._glossinessMap&&(s._glossinessMap._state.matrix?f.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("glossiness *= texture(glossinessMap, textureCoord).r;")),h&&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;")),h&&s._metallicMap&&(s._metallicMap._state.matrix?f.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("metallic *= texture(metallicMap, textureCoord).r;")),h&&s._roughnessMap&&(s._roughnessMap._state.matrix?f.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):f.push("textureCoord = texturePos.xy;"),f.push("roughness *= texture(roughnessMap, textureCoord).r;")),h&&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;"),c&&(f.push("material.diffuseColor = diffuseColor;"),f.push("material.specularColor = specular;"),f.push("material.shine = materialShininess;")),A&&(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;")),u&&(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;"),o.lightMaps.length>0&&f.push("geometry.worldNormal = normalize(vWorldNormal);"),f.push("geometry.viewNormal = viewNormal;"),f.push("geometry.viewEyeDir = viewEyeDir;"),c&&(o.lightMaps.length>0||o.reflectionMaps.length>0)&&f.push("computePhongLightMapping(geometry, material, reflectedLight);"),(A||u)&&(o.lightMaps.length>0||o.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=o.lights.length;e0){const r=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0&&(this._uLightMap="lightMap"),r.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(c=0,u=o.sectionPlanes.length;c0&&r.lightMaps[0].texture&&this._uLightMap&&(a.bindTexture(this._uLightMap,r.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),r.reflectionMaps.length>0&&r.reflectionMaps[0].texture&&this._uReflectionMap&&(a.bindTexture(this._uReflectionMap,r.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),this._uGammaFactor&&i.uniform1f(this._uGammaFactor,s.gammaFactor),this._baseTextureUnit=e.textureUnit};class Cs{constructor(e){this.vertex=function(e){const t=e.scene,s=t._lightsState,i=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),r=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,o=!!e._geometry._state.compressGeometry,n=e._state.billboard,a=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;"),o&&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;"));r&&l.push("out vec4 vWorldPosition;");if(l.push("uniform vec4 lightAmbient;"),l.push("uniform vec4 fillColor;"),i){l.push("in vec3 normal;"),l.push("uniform mat4 modelNormalMatrix;"),l.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);"),l.push(" }"),l.push(" return normalize(v);"),l.push("}"))}l.push("out vec4 vColor;"),("spherical"===n||"cylindrical"===n)&&(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"===n&&(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;"),o&&l.push("localPosition = positionsDecodeMatrix * localPosition;");i&&(o?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;"),a&&l.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===n||"cylindrical"===n?(l.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),l.push("billboard(modelMatrix2);"),l.push("billboard(viewMatrix2);"),l.push("billboard(modelViewMatrix);"),i&&(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; "));i&&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;"),i)for(let e=0,t=s.lights.length;e0,o=[];o.push("#version 300 es"),o.push("// Lambertian 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"),t.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;"));i&&(o.push("uniform float gammaFactor;"),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("}"));if(r){o.push("in vec4 vWorldPosition;"),o.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),o.push("}")}"points"===e._geometry._state.primitiveName&&(o.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),o.push("float r = dot(cxy, cxy);"),o.push("if (r > 1.0) {"),o.push(" discard;"),o.push("}"));t.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");i?o.push("outColor = linearToGamma(vColor, gammaFactor);"):o.push("outColor = vColor;");return o.push("}"),o}(e)}}const Ns=new t({}),Os=p.vec3(),xs=function(e,t){this.id=Ns.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Cs(t),this._allocate(t)},Ss={};xs.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=Ss[t];return s||(s=new xs(t,e),Ss[t]=s,d.memory.programs++),s._useCount++,s},xs.prototype.put=function(){0==--this._useCount&&(Ns.removeItem(this.id),this._program&&this._program.destroy(),delete Ss[this._hash],d.memory.programs--)},xs.prototype.webglContextRestored=function(){this._program=null},xs.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const i=this._scene,r=i.camera,o=i.canvas.gl,n=0===s?t._xrayMaterial._state:1===s?t._highlightMaterial._state:t._selectedMaterial._state,a=t._state,l=t._geometry._state,h=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,h?e.getRTCViewMatrix(a.originHash,h):r.viewMatrix),o.uniformMatrix4fv(this._uViewNormalMatrix,!1,r.viewNormalMatrix),a.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),s=i._sectionPlanesState.sectionPlanes.length;if(e>0){const r=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,i=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Edges drawing vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform vec4 edgeColor;"),n.push("uniform vec3 offset;"),i&&n.push("uniform mat4 positionsDecodeMatrix;");t.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;"));s&&n.push("out vec4 vWorldPosition;");n.push("out vec4 vColor;"),("spherical"===r||"cylindrical"===r)&&(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),n.push("vec4 worldPosition;"),i&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"),n.push("billboard(modelViewMatrix);"),n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n.push("vColor = edgeColor;"),s&&n.push("vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = clipPos;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,s=e.scene._sectionPlanesState,i=e.scene.gammaOutput,r=s.getNumAllocatedSectionPlanes()>0,o=[];o.push("#version 300 es"),o.push("// Edges 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"),t.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;"));i&&(o.push("uniform float gammaFactor;"),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("}"));if(r){o.push("in vec4 vWorldPosition;"),o.push("uniform bool clippable;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),o.push("}")}t.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");i?o.push("outColor = linearToGamma(vColor, gammaFactor);"):o.push("outColor = vColor;");return o.push("}"),o}(e)}}const Ms=new t({}),Bs=p.vec3(),Fs=function(e,t){this.id=Ms.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new ws(t),this._allocate(t)},Ls={};Fs.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=Ls[t];return s||(s=new Fs(t,e),Ls[t]=s,d.memory.programs++),s._useCount++,s},Fs.prototype.put=function(){0==--this._useCount&&(Ms.removeItem(this.id),this._program&&this._program.destroy(),delete Ls[this._hash],d.memory.programs--)},Fs.prototype.webglContextRestored=function(){this._program=null},Fs.prototype.drawMesh=function(e,t,s){this._program||this._allocate(t);const i=this._scene,r=i.camera,o=i.canvas.gl;let n;const a=t._state,l=t._geometry,h=l._state,c=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,c?e.getRTCViewMatrix(a.originHash,c):r.viewMatrix),a.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),s=i._sectionPlanesState.sectionPlanes.length;if(e>0){const r=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,i=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Mesh picking vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("out vec4 vViewPosition;"),n.push("uniform vec3 offset;"),i&&n.push("uniform mat4 positionsDecodeMatrix;");s&&n.push("out vec4 vWorldPosition;");t.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;"));"spherical"!==r&&"cylindrical"!==r||(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));n.push("uniform vec2 pickClipPos;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy -= pickClipPos;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),i&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==r&&"cylindrical"!==r||(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"));n.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),s&&n.push(" vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,i=s.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Mesh 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"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(r.push("uniform vec4 pickColor;"),i){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push(" outColor = pickColor; "),r.push("}"),r}(e)}}const Hs=p.vec3(),Gs=function(e,t){this._hash=e,this._shaderSource=new Us(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},ks={};Gs.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let s=ks[t];if(!s){if(s=new Gs(t,e),s.errors)return console.log(s.errors.join("\n")),null;ks[t]=s,d.memory.programs++}return s._useCount++,s},Gs.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete ks[this._hash],d.memory.programs--)},Gs.prototype.webglContextRestored=function(){this._program=null},Gs.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,i=s.canvas.gl,r=t._state,o=t._material._state,n=t._geometry._state,a=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),i.uniformMatrix4fv(this._uViewMatrix,!1,a?e.getRTCPickViewMatrix(r.originHash,a):e.pickViewMatrix),r.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),r=s._sectionPlanesState.sectionPlanes.length;if(e>0){const o=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t>24&255,c=l>>16&255,u=l>>8&255,A=255&l;i.uniform4f(this._uPickColor,A/255,u/255,c/255,h/255),i.uniform2fv(this._uPickClipPos,e.pickClipPos),n.indicesBuf?(i.drawElements(n.primitive,n.indicesBuf.numItems,n.indicesBuf.itemType,0),e.drawElements++):n.positions&&i.drawArrays(i.TRIANGLES,0,n.positions.numItems)},Gs.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Ne(s,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uPositionsDecodeMatrix=i.getLocation("positionsDecodeMatrix"),this._uModelMatrix=i.getLocation("modelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0,i=!!e._geometry._state.compressGeometry,r=[];r.push("#version 300 es"),r.push("// Surface picking vertex shader"),r.push("in vec3 position;"),r.push("in vec4 color;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec3 offset;"),s&&(r.push("uniform bool clippable;"),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;"));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("out vec4 vColor;"),i&&r.push("uniform mat4 positionsDecodeMatrix;");r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),i&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push(" vec4 worldPosition = modelMatrix * localPosition; "),r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition;"),s&&r.push(" vWorldPosition = worldPosition;");r.push(" vColor = color;"),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,i=s.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Surface 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"),r.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(i){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }"),r.push("}")}t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push(" outColor = vColor;"),r.push("}"),r}(e)}}const js=p.vec3(),Qs=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Vs(t),this._allocate(t)},Ws={};Qs.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=Ws[t];if(!s){if(s=new Qs(t,e),s.errors)return console.log(s.errors.join("\n")),null;Ws[t]=s,d.memory.programs++}return s._useCount++,s},Qs.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ws[this._hash],d.memory.programs--)},Qs.prototype.webglContextRestored=function(){this._program=null},Qs.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,i=s.canvas.gl,r=t._state,o=t._material._state,n=t._geometry,a=t._geometry._state,l=t.origin,h=o.backfaces,c=o.frontface,u=s.camera.project,A=n._getPickTrianglePositions(),p=n._getPickTriangleColors();if(this._program.bind(),e.useProgram++,s.logarithmicDepthBufferEnabled){const e=2/(Math.log(u.far+1)/Math.LN2);i.uniform1f(this._uLogDepthBufFC,e)}if(i.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(r.originHash,l):e.pickViewMatrix),r.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),r=s._sectionPlanesState.sectionPlanes.length;if(e>0){const o=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,i=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Mesh occlusion vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform vec3 offset;"),i&&n.push("uniform mat4 positionsDecodeMatrix;");s&&n.push("out vec4 vWorldPosition;");t.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;"));"spherical"!==r&&"cylindrical"!==r||(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),n.push("vec4 worldPosition;"),i&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"),n.push("billboard(modelViewMatrix);"),n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));s&&n.push(" vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = clipPos;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,s=t._sectionPlanesState,i=s.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Mesh 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"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(i){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}r.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push("}"),r}(e)}}const Ks=p.vec3(),Ys=function(e,t){this._hash=e,this._shaderSource=new zs(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Xs={};Ys.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.occlusionHash].join(";");let s=Xs[t];if(!s){if(s=new Ys(t,e),s.errors)return console.log(s.errors.join("\n")),null;Xs[t]=s,d.memory.programs++}return s._useCount++,s},Ys.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Xs[this._hash],d.memory.programs--)},Ys.prototype.webglContextRestored=function(){this._program=null},Ys.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene,i=s.canvas.gl,r=t._material._state,o=t._state,n=t._geometry._state,a=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),r.id!==this._lastMaterialId){const t=r.backfaces;e.backfaces!==t&&(t?i.disable(i.CULL_FACE):i.enable(i.CULL_FACE),e.backfaces=t);const s=r.frontface;e.frontface!==s&&(s?i.frontFace(i.CCW):i.frontFace(i.CW),e.frontface=s),this._lastMaterialId=r.id}const l=s.camera;if(i.uniformMatrix4fv(this._uViewMatrix,!1,a?e.getRTCViewMatrix(o.originHash,a):l.viewMatrix),o.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),r=s._sectionPlanesState.sectionPlanes.length;if(e>0){const o=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,i=[];i.push("// Mesh shadow vertex shader"),i.push("in vec3 position;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 shadowViewMatrix;"),i.push("uniform mat4 shadowProjMatrix;"),i.push("uniform vec3 offset;"),s&&i.push("uniform mat4 positionsDecodeMatrix;");t&&i.push("out vec4 vWorldPosition;");i.push("void main(void) {"),i.push("vec4 localPosition = vec4(position, 1.0); "),i.push("vec4 worldPosition;"),s&&i.push("localPosition = positionsDecodeMatrix * localPosition;");i.push("worldPosition = modelMatrix * localPosition;"),i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&i.push("vWorldPosition = worldPosition;");return i.push(" gl_Position = shadowProjMatrix * viewPosition;"),i.push("}"),i}(e),this.fragment=function(e){const t=e.scene;t.canvas.gl;const s=t._sectionPlanesState,i=s.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("// Mesh shadow 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"),i){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}return r.push("outColor = encodeFloat(gl_FragCoord.z);"),r.push("}"),r}(e)}}const qs=function(e,t){this._hash=e,this._shaderSource=new Zs(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Js={};qs.get=function(e){const t=e.scene,s=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let i=Js[s];if(!i){if(i=new qs(s,e),i.errors)return console.log(i.errors.join("\n")),null;Js[s]=i,d.memory.programs++}return i._useCount++,i},qs.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Js[this._hash],d.memory.programs--)},qs.prototype.webglContextRestored=function(){this._program=null},qs.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const s=this._scene.canvas.gl,i=t._material._state,r=t._geometry._state;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?s.disable(s.CULL_FACE):s.enable(s.CULL_FACE),e.backfaces=t);const r=i.frontface;e.frontface!==r&&(r?s.frontFace(s.CCW):s.frontFace(s.CW),e.frontface=r),e.lineWidth!==i.lineWidth&&(s.lineWidth(i.lineWidth),e.lineWidth=i.lineWidth),this._uPointSize&&s.uniform1i(this._uPointSize,i.pointSize),this._lastMaterialId=i.id}if(s.uniformMatrix4fv(this._uModelMatrix,s.FALSE,t.worldMatrix),r.combineGeometry){const i=t.vertexBufs;i.id!==this._lastVertexBufsId&&(i.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(i.positionsBuf,i.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),this._lastVertexBufsId=i.id)}this._uClippable&&s.uniform1i(this._uClippable,t._state.clippable),s.uniform3fv(this._uOffset,t._state.offset),r.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&s.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,r.positionsDecodeMatrix),r.combineGeometry?r.indicesBufCombined&&(r.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(r.positionsBuf,r.compressGeometry?s.UNSIGNED_SHORT:s.FLOAT),e.bindArray++),r.indicesBuf&&(r.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=r.id),r.combineGeometry?r.indicesBufCombined&&(s.drawElements(r.primitive,r.indicesBufCombined.numItems,r.indicesBufCombined.itemType,0),e.drawElements++):r.indicesBuf?(s.drawElements(r.primitive,r.indicesBuf.numItems,r.indicesBuf.itemType,0),e.drawElements++):r.positions&&(s.drawArrays(s.TRIANGLES,0,r.positions.numItems),e.drawArrays++)},qs.prototype._allocate=function(e){const t=e.scene,s=t.canvas.gl;if(this._program=new Ne(s,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uPositionsDecodeMatrix=i.getLocation("positionsDecodeMatrix"),this._uModelMatrix=i.getLocation("modelMatrix"),this._uShadowViewMatrix=i.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=i.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(let e=0,s=t._sectionPlanesState.sectionPlanes.length;e0){let e,t,r,o,n;for(let a=0,l=this._uSectionPlanes.length;a0)for(let s=0;s0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this.glRedraw()}}const ui=function(){const e=p.vec3(),t=p.vec3(),s=p.vec3(),i=p.vec3(),r=p.vec3(),o=p.vec3(),n=p.vec4(),a=p.vec3(),l=p.vec3(),h=p.vec3(),c=p.vec3(),u=p.vec3(),A=p.vec3(),d=p.vec3(),f=p.vec3(),m=p.vec3(),y=p.vec4(),E=p.vec4(),g=p.vec4(),v=p.vec3(),I=p.vec3(),_=p.vec3(),T=p.vec3(),P=p.vec3(),b=p.vec3(),R=p.vec3(),D=p.vec3(),C=p.vec3(),N=p.vec3(),O=p.vec3();return function(x,S,w,M){var B=M.primIndex;if(null!=B&&B>-1){const H=x.geometry._state,G=x.scene,k=G.camera,j=G.canvas;if("triangles"===H.primitiveName){M.primitive="triangle";const G=B,Q=H.indices,W=H.positions;let z,K,Y;if(Q){var F=Q[G+0],L=Q[G+1],U=Q[G+2];o[0]=F,o[1]=L,o[2]=U,M.indices=o,z=3*F,K=3*L,Y=3*U}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],i[0]=W[K+0],i[1]=W[K+1],i[2]=W[K+2],r[0]=W[Y+0],r[1]=W[Y+1],r[2]=W[Y+2],H.compressGeometry){const e=H.positionsDecodeMatrix;e&&(Nt.decompressPosition(s,e,s),Nt.decompressPosition(i,e,i),Nt.decompressPosition(r,e,r))}M.canvasPos?p.canvasPosToLocalRay(j.canvas,x.origin?V(S,x.origin):S,w,x.worldMatrix,M.canvasPos,e,t):M.origin&&M.direction&&p.worldRayToLocalRay(x.worldMatrix,M.origin,M.direction,e,t),p.normalizeVec3(t),p.rayPlaneIntersect(e,t,s,i,r,n),M.localPos=n,M.position=n,y[0]=n[0],y[1]=n[1],y[2]=n[2],y[3]=1,p.transformVec4(x.worldMatrix,y,E),a[0]=E[0],a[1]=E[1],a[2]=E[2],M.canvasPos&&x.origin&&(a[0]+=x.origin[0],a[1]+=x.origin[1],a[2]+=x.origin[2]),M.worldPos=a,p.transformVec4(k.matrix,E,g),l[0]=g[0],l[1]=g[1],l[2]=g[2],M.viewPos=l,p.cartesianToBarycentric(n,s,i,r,h),M.bary=h;const X=H.normals;if(X){if(H.compressGeometry){const e=3*F,t=3*L,s=3*U;Nt.decompressNormal(X.subarray(e,e+2),c),Nt.decompressNormal(X.subarray(t,t+2),u),Nt.decompressNormal(X.subarray(s,s+2),A)}else c[0]=X[z],c[1]=X[z+1],c[2]=X[z+2],u[0]=X[K],u[1]=X[K+1],u[2]=X[K+2],A[0]=X[Y],A[1]=X[Y+1],A[2]=X[Y+2];const e=p.addVec3(p.addVec3(p.mulVec3Scalar(c,h[0],v),p.mulVec3Scalar(u,h[1],I),_),p.mulVec3Scalar(A,h[2],T),P);M.worldNormal=p.normalizeVec3(p.transformVec3(x.worldNormalMatrix,e,b))}const Z=H.uv;if(Z){if(d[0]=Z[2*F],d[1]=Z[2*F+1],f[0]=Z[2*L],f[1]=Z[2*L+1],m[0]=Z[2*U],m[1]=Z[2*U+1],H.compressGeometry){const e=H.uvDecodeMatrix;e&&(Nt.decompressUV(d,e,d),Nt.decompressUV(f,e,f),Nt.decompressUV(m,e,m))}M.uv=p.addVec3(p.addVec3(p.mulVec2Scalar(d,h[0],R),p.mulVec2Scalar(f,h[1],D),C),p.mulVec2Scalar(m,h[2],N),O)}}}}}();function Ai(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 i=e.height||1;i<0&&(console.error("negative height not allowed - will invert"),i*=-1);let r=e.radialSegments||32;r<0&&(console.error("negative radialSegments not allowed - will invert"),r*=-1),r<3&&(r=3);let o=e.heightSegments||1;o<0&&(console.error("negative heightSegments not allowed - will invert"),o*=-1),o<1&&(o=1);const n=!!e.openEnded;let a=e.center;const l=a?a[0]:0,h=a?a[1]:0,c=a?a[2]:0,u=i/2,A=i/o,p=2*Math.PI/r,d=1/r,f=(t-s)/o,m=[],y=[],g=[],v=[];let I,_,T,P,b,R,D,C,N,O,x;const S=(90-180*Math.atan(i/(s-t))/Math.PI)/90;for(I=0;I<=o;I++)for(b=t-I*f,R=u-I*A,_=0;_<=r;_++)T=Math.sin(_*p),P=Math.cos(_*p),y.push(b*T),y.push(S),y.push(b*P),g.push(_*d),g.push(1*I/o),m.push(b*T+l),m.push(R+h),m.push(b*P+c);for(I=0;I0){for(N=m.length/3,y.push(0),y.push(1),y.push(0),g.push(.5),g.push(.5),m.push(0+l),m.push(u+h),m.push(0+c),_=0;_<=r;_++)T=Math.sin(_*p),P=Math.cos(_*p),O=.5*Math.sin(_*p)+.5,x=.5*Math.cos(_*p)+.5,y.push(t*T),y.push(1),y.push(t*P),g.push(O),g.push(x),m.push(t*T+l),m.push(u+h),m.push(t*P+c);for(_=0;_0){for(N=m.length/3,y.push(0),y.push(-1),y.push(0),g.push(.5),g.push(.5),m.push(0+l),m.push(0-u+h),m.push(0+c),_=0;_<=r;_++)T=Math.sin(_*p),P=Math.cos(_*p),O=.5*Math.sin(_*p)+.5,x=.5*Math.cos(_*p)+.5,y.push(s*T),y.push(-1),y.push(s*P),g.push(O),g.push(x),m.push(s*T+l),m.push(0-u+h),m.push(s*P+c);for(_=0;_0!==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,i=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 o=bi(s,this.wrapS);o&&s.texParameteri(this.target,s.TEXTURE_WRAP_S,o);const n=bi(s,this.wrapT);if(n&&s.texParameteri(this.target,s.TEXTURE_WRAP_T,n),this.type===s.TEXTURE_3D||this.type===s.TEXTURE_2D_ARRAY){const e=bi(s,this.wrapR);e&&s.texParameteri(this.target,s.TEXTURE_WRAP_R,e),s.texParameteri(this.type,s.TEXTURE_WRAP_R,e)}r?(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,Ni(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,Ni(s,this.magFilter))):(s.texParameteri(this.target,s.TEXTURE_MIN_FILTER,bi(s,this.minFilter)),s.texParameteri(this.target,s.TEXTURE_MAG_FILTER,bi(s,this.magFilter)));const a=bi(s,this.format,this.encoding),l=bi(s,this.type),h=Ci(s,this.internalFormat,a,l,this.encoding,!1);s.texStorage2D(s.TEXTURE_2D,i,h,e[0].width,e[0].height);for(let t=0,i=e.length;t>t;return e+1}class wi extends x{get type(){return"Texture"}constructor(e,t={}){super(e,t),this._state=new Ze({texture:new Di({gl:this.scene.canvas.gl}),matrix:p.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=p.vec2([0,0]),this._scale=p.vec2([1,1]),this._rotate=p.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(e=e||ns)!==is&&e!==rs&&e!==ns&&e!==ss&&e!==ts&&(this.error("Unsupported value for 'minFilter' - supported values are LinearFilter, LinearMipMapNearestFilter, NearestMipMapNearestFilter, NearestMipMapLinearFilter and LinearMipMapLinearFilter. Defaulting to LinearMipMapLinearFilter."),e=ns),e}_checkMagFilter(e){return(e=e||is)!==is&&e!==es&&(this.error("Unsupported value for 'magFilter' - supported values are LinearFilter and NearestFilter. Defaulting to LinearFilter."),e=is),e}_checkWrapS(e){return(e=e||qt)!==Jt&&e!==$t&&e!==qt&&(this.error("Unsupported value for 'wrapS' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=qt),e}_checkWrapT(e){return(e=e||qt)!==Jt&&e!==$t&&e!==qt&&(this.error("Unsupported value for 'wrapT' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=qt),e}_checkFlipY(e){return!!e}_checkEncoding(e){return(e=e||Es)!==Es&&e!==gs&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=Es),e}_webglContextRestored(){this._state.texture=new Di({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=p.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(s=p.scalingMat4v([this._scale[0],this._scale[1],1]),t=t?p.mulMat4(t,s):s),0!==this._rotate&&(s=p.rotationMat4v(.0174532925*this._rotate,[0,0,1]),t=t?p.mulMat4(t,s):s),t&&(e.matrix=t),this._matrixDirty=!1}this.glRedraw()}set image(e){this._image=Oi(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=Oi(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 Mi=d.memory,Bi=p.AABB3();class Fi extends It{get type(){return"VBOGeometry"}get isVBOGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new Ze({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=p.OBB3();const s=this._state,i=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":s.primitive=i.POINTS,s.primitiveName=t.primitive;break;case"lines":s.primitive=i.LINES,s.primitiveName=t.primitive;break;case"line-loop":s.primitive=i.LINE_LOOP,s.primitiveName=t.primitive;break;case"line-strip":s.primitive=i.LINE_STRIP,s.primitiveName=t.primitive;break;case"triangles":s.primitive=i.TRIANGLES,s.primitiveName=t.primitive;break;case"triangle-strip":s.primitive=i.TRIANGLE_STRIP,s.primitiveName=t.primitive;break;case"triangle-fan":s.primitive=i.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=i.TRIANGLES,s.primitiveName=t.primitive}if(t.positions)if(t.indices){var r;if(t.positionsDecodeMatrix);else{const e=Nt.getPositionsBounds(t.positions),o=Nt.compressPositions(t.positions,e.min,e.max);r=o.quantized,s.positionsDecodeMatrix=o.decodeMatrix,s.positionsBuf=new Oe(i,i.ARRAY_BUFFER,r,r.length,3,i.STATIC_DRAW),Mi.positions+=s.positionsBuf.numItems,p.positions3ToAABB3(t.positions,this._aabb),p.positions3ToAABB3(r,Bi,s.positionsDecodeMatrix),p.AABB3ToOBB3(Bi,this._obb)}if(t.colors){const e=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors);s.colorsBuf=new Oe(i,i.ARRAY_BUFFER,e,e.length,4,i.STATIC_DRAW),Mi.colors+=s.colorsBuf.numItems}if(t.uv){const e=Nt.getUVBounds(t.uv),r=Nt.compressUVs(t.uv,e.min,e.max),o=r.quantized;s.uvDecodeMatrix=r.decodeMatrix,s.uvBuf=new Oe(i,i.ARRAY_BUFFER,o,o.length,2,i.STATIC_DRAW),Mi.uvs+=s.uvBuf.numItems}if(t.normals){const e=Nt.compressNormals(t.normals);let r=s.compressGeometry;s.normalsBuf=new Oe(i,i.ARRAY_BUFFER,e,e.length,3,i.STATIC_DRAW,r),Mi.normals+=s.normalsBuf.numItems}{const e=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices);s.indicesBuf=new Oe(i,i.ELEMENT_ARRAY_BUFFER,e,e.length,1,i.STATIC_DRAW),Mi.indices+=s.indicesBuf.numItems;const o=_t(r,e,s.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Oe(i,i.ELEMENT_ARRAY_BUFFER,o,o.length,1,i.STATIC_DRAW),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)}this._buildHash(),Mi.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(),Mi.meshes--}}var Li={};function Ui(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 i=e.xSegments||1;i<0&&(console.error("negative xSegments not allowed - will invert"),i*=-1),i<1&&(i=1);let r=e.xSegments||1;r<0&&(console.error("negative zSegments not allowed - will invert"),r*=-1),r<1&&(r=1);const o=e.center,n=o?o[0]:0,a=o?o[1]:0,l=o?o[2]:0,h=t/2,c=s/2,u=Math.floor(i)||1,A=Math.floor(r)||1,p=u+1,d=A+1,f=t/u,m=s/A,y=new Float32Array(p*d*3),g=new Float32Array(p*d*3),v=new Float32Array(p*d*2);let I,_,T,P,b,R,D,C=0,N=0;for(I=0;I65535?Uint32Array:Uint16Array)(u*A*6);for(I=0;I360&&(o=360);const n=e.center;let a=n?n[0]:0,l=n?n[1]:0;const h=n?n[2]:0,c=[],u=[],A=[],d=[];let f,m,y,g,v,I,_,T,P,b,R,D;for(T=0;T<=r;T++)for(_=0;_<=i;_++)f=_/i*o,m=.785398+T/r*Math.PI*2,a=t*Math.cos(f),l=t*Math.sin(f),y=(t+s*Math.cos(m))*Math.cos(f),g=(t+s*Math.cos(m))*Math.sin(f),v=s*Math.sin(m),c.push(y+a),c.push(g+l),c.push(v+h),A.push(1-_/i),A.push(T/r),I=p.normalizeVec3(p.subVec3([y,g,v],[a,l,h],[]),[]),u.push(I[0]),u.push(I[1]),u.push(I[2]);for(T=1;T<=r;T++)for(_=1;_<=i;_++)P=(i+1)*T+_-1,b=(i+1)*(T-1)+_-1,R=(i+1)*(T-1)+_,D=(i+1)*T+_,d.push(P),d.push(b),d.push(R),d.push(R),d.push(D),d.push(P);return E.apply(e,{positions:c,normals:u,uv:A,indices:d})}Li.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()},Li.save=function(e,t){var s="data:application/octet-stream;base64,"+btoa(Li.parse._buffToStr(e));window.location.href=s},Li.clone=function(e){return JSON.parse(JSON.stringify(e))},Li.bin={},Li.bin.f=new Float32Array(1),Li.bin.fb=new Uint8Array(Li.bin.f.buffer),Li.bin.rf=function(e,t){for(var s=Li.bin.f,i=Li.bin.fb,r=0;r<4;r++)i[r]=e[t+r];return s[0]},Li.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},Li.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},Li.bin.rASCII0=function(e,t){for(var s="";0!=e[t];)s+=String.fromCharCode(e[t++]);return s},Li.bin.wf=function(e,t,s){new Float32Array(e.buffer,t,1)[0]=s},Li.bin.wsl=function(e,t,s){e[t]=s,e[t+1]=s>>8},Li.bin.wil=function(e,t,s){e[t]=s,e[t+1]=s>>8,e[t+2]=s>>16,e[t+3]},Li.parse={},Li.parse._buffToStr=function(e){for(var t=new Uint8Array(e),s="",i=0;ir&&(r=l),ho&&(o=h),cn&&(n=c)}return{min:{x:t,y:s,z:i},max:{x:r,y:o,z:n}}};class Gi extends x{constructor(e,t={}){super(e,t),this._type=t.type||(t.src?t.src.split(".").pop():null)||"jpg",this._pos=p.vec3(t.pos||[0,0,0]),this._up=p.vec3(t.up||[0,1,0]),this._normal=p.vec3(t.normal||[0,0,1]),this._height=t.height||1,this._origin=p.vec3(),this._rtcPos=p.vec3(),this._imageSize=p.vec2(),this._texture=new wi(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 Pi(this,{matrix:p.inverseMat4(p.lookAtMat4v(this._pos,p.subVec3(this._pos,this._normal,p.mat4()),this._up,p.mat4())),children:[this._bitmapMesh=new ci(this,{scale:[1,1,1],rotation:[-90,0,0],collidable:t.collidable,pickable:t.pickable,opacity:t.opacity,clippable:t.clippable,geometry:new St(this,Ui({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new Lt(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 ki=p.OBB3(),Vi=p.OBB3(),ji=p.OBB3();class Qi{constructor(e,t,s,i,r,o,n=null,a=0){this.model=e,this.object=null,this.parent=null,this.transform=r,this.textureSet=o,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=t,this.obb=null,this._aabbLocal=null,this._aabbWorld=p.AABB3(),this._aabbWorldDirty=!1,this.layer=n,this.portionId=a,this._color=new Uint8Array([s[0],s[1],s[2],i]),this._colorize=new Uint8Array([s[0],s[1],s[2],i]),this._colorizing=!1,this._transparent=i<255,this.numTriangles=0,this.origin=null,this.entity=null,r&&r._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,i=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),i&&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,i){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,s,i)}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(p.AABB3ToOBB3(this._aabbLocal,ki),this.transform?(p.transformOBB3(this.transform.worldMatrix,ki,Vi),p.transformOBB3(this.model.worldMatrix,Vi,ji),p.OBB3ToAABB3(ji,this._aabbWorld)):(p.transformOBB3(this.model.worldMatrix,ki,Vi),p.OBB3ToAABB3(Vi,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 Wi=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 zi=0;const Ki={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},Yi=new Float32Array([1,1,1,1]),Xi=new Float32Array([0,0,0,1]),Zi=p.vec4(),qi=p.vec3(),Ji=p.vec3(),$i=p.mat4();class er{constructor(e,t=!1,{instancing:s=!1,edges:i=!1}={}){this._scene=e,this._withSAO=t,this._instancing=s,this._edges=i,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:i,layerIndex:r}=e,o=t._sectionPlanesState.getNumAllocatedSectionPlanes(),n=t._sectionPlanesState.sectionPlanes.length;if(o>0){const a=t._sectionPlanesState.sectionPlanes,l=r*n,h=i.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)%o,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)%o,e.bindTexture++),this._withSAO){const t=n.sao;if(t.possible){const s=a.drawingBufferWidth,i=a.drawingBufferHeight;Zi[0]=s,Zi[1]=i,Zi[2]=t.blendCutoff,Zi[3]=t.blendFactor,a.uniform4fv(this._uSAOParams,Zi),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%o,e.bindTexture++}}if(i){const e=this._edges?"edgeColor":"fillColor",t=this._edges?"edgeAlpha":"fillAlpha";if(s===Ki[(this._edges?"EDGES":"SILHOUETTE")+"_XRAYED"]){const s=n.xrayMaterial._state,i=s[e],r=s[t];a.uniform4f(this._uColor,i[0],i[1],i[2],r)}else if(s===Ki[(this._edges?"EDGES":"SILHOUETTE")+"_HIGHLIGHTED"]){const s=n.highlightMaterial._state,i=s[e],r=s[t];a.uniform4f(this._uColor,i[0],i[1],i[2],r)}else if(s===Ki[(this._edges?"EDGES":"SILHOUETTE")+"_SELECTED"]){const s=n.selectedMaterial._state,i=s[e],r=s[t];a.uniform4f(this._uColor,i[0],i[1],i[2],r)}else a.uniform4fv(this._uColor,this._edges?Xi:Yi)}this._draw({state:l,frameCtx:e,incrementDrawState:r}),a.bindVertexArray(null)}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null,d.memory.programs--}}class tr extends er{constructor(e,t,{edges:s=!1}={}){super(e,t,{instancing:!1,edges:s})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:i,incrementDrawState:r}=e;if(this._edges)t.drawElements(t.LINES,s.edgeIndicesBuf.numItems,s.edgeIndicesBuf.itemType,0);else{const e=i.pickElementsCount||s.indicesBuf.numItems,o=i.pickElementsOffset?i.pickElementsOffset*s.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,e,s.indicesBuf.itemType,o),r&&i.drawElements++}}}class sr extends tr{_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,i=t.getNumAllocatedSectionPlanes()>0;let r;const o=[];o.push("#version 300 es"),o.push("// Triangles batching draw vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in float flags;"),e.entityOffsetsEnabled&&o.push("in vec3 offset;"),this._addMatricesUniformBlockLines(o,!0),e.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;");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("}"),i&&(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 = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),o.push("vec3 viewNormal = normalize((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;");for(let e=0,t=s.lights.length;e0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching 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("}")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(i.push(" float viewportWidth = uSAOParams[0];"),i.push(" float viewportHeight = uSAOParams[1];"),i.push(" float blendCutoff = uSAOParams[2];"),i.push(" float blendFactor = uSAOParams[3];"),i.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),i.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),i.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):i.push(" outColor = vColor;"),i.push("}"),i}}class ir extends tr{_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,i=s.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching flat-shading 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("}")),i){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}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 ) );");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, color.a ));"),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,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Triangles batching silhouette 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"),e.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("outColor = vColor;"),o.push("}"),o}}class or extends tr{constructor(e){super(e,!1,{instancing:!1,edges:!0})}}class nr extends or{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("// EdgesEmphasisRenderer 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,i=[];if(i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class ar extends or{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!1})}_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry edges drawing 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class lr extends tr{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry 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"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vPickColor; "),i.push("}"),i}}class hr extends tr{_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,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching pick depth 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;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class cr extends tr{_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,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching pick normals 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(` outNormal = ivec4(vWorldNormal * float(${p.MAX_INT}), 1.0);`),i.push("}"),i}}class ur extends tr{_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 Ar extends tr{_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,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching depth fragment shader"),i.push("precision highp float;"),i.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),i.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),i.push("}"),i}}class pr extends tr{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}class dr extends tr{_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 i=0;i 0.0) { discard; }"),s.push(" }")}return s.push(" outColor = encodeFloat( gl_FragCoord.z); "),s.push("}"),s}}class fr extends tr{_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,i=t.getNumAllocatedSectionPlanes()>0,r=t.clippingCaps,o=[];return o.push("#version 300 es"),o.push("// Triangles batching quality draw vertex shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("precision highp usampler2D;"),o.push("precision highp isampler2D;"),o.push("precision highp sampler2D;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("precision mediump usampler2D;"),o.push("precision mediump isampler2D;"),o.push("precision mediump sampler2D;"),o.push("#endif"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in vec2 uv;"),o.push("in vec2 metallicRoughness;"),o.push("in float flags;"),e.entityOffsetsEnabled&&o.push("in vec3 offset;"),this._addMatricesUniformBlockLines(o,!0),o.push("uniform mat3 uvDecodeMatrix;"),e.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("vec3 octDecode(vec2 oct) {"),o.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),o.push(" if (v.z < 0.0) {"),o.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);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),o.push("out vec4 vViewPosition;"),o.push("out vec3 vViewNormal;"),o.push("out vec4 vColor;"),o.push("out vec2 vUV;"),o.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&o.push("out vec3 vWorldNormal;"),i&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;"),r&&o.push("out vec4 vClipPosition;")),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 = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),o.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),o.push("vFragDepth = 1.0 + clipPos.w;")),i&&(o.push("vWorldPosition = worldPosition;"),o.push("vFlags = flags;"),r&&o.push("vClipPosition = clipPos;")),o.push("vViewPosition = viewPosition;"),o.push("vViewNormal = viewNormal;"),o.push("vColor = color;"),o.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),o.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&o.push("vWorldNormal = worldNormal.xyz;"),o.push("gl_Position = clipPos;"),o.push("}"),o.push("}"),o}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,i=e._lightsState,r=s.getNumAllocatedSectionPlanes()>0,o=s.clippingCaps,n=[];n.push("#version 300 es"),n.push("// Triangles batching quality 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;")),n.push("uniform sampler2D uColorMap;"),n.push("uniform sampler2D uMetallicRoughMap;"),n.push("uniform sampler2D uEmissiveMap;"),n.push("uniform sampler2D uNormalMap;"),n.push("uniform sampler2D uAOMap;"),n.push("in vec4 vViewPosition;"),n.push("in vec3 vViewNormal;"),n.push("in vec4 vColor;"),n.push("in vec2 vUV;"),n.push("in vec2 vMetallicRoughness;"),i.lightMaps.length>0&&n.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(n,!0),i.reflectionMaps.length>0&&n.push("uniform samplerCube reflectionMap;"),i.lightMaps.length>0&&n.push("uniform samplerCube lightMap;"),n.push("uniform vec4 lightAmbient;");for(let e=0,t=i.lights.length;e0&&(n.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),n.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),n.push(" return envMapColor;"),n.push("}")),n.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),n.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),n.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),n.push("}"),n.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" return 1.0 / ( gl * gv );"),n.push("}"),n.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" return 0.5 / max( gv + gl, EPSILON );"),n.push("}"),n.push("float D_GGX(const in float alpha, const in float dotNH) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),n.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float alpha = ( roughness * roughness );"),n.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),n.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),n.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),n.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),n.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),n.push(" vec3 F = F_Schlick( specularColor, dotLH );"),n.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),n.push(" float D = D_GGX( alpha, dotNH );"),n.push(" return F * (G * D);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),n.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),n.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),n.push(" vec4 r = roughness * c0 + c1;"),n.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),n.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),n.push(" return specularColor * AB.x + AB.y;"),n.push("}"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&(n.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),i.lightMaps.length>0&&(n.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),n.push(" irradiance *= PI;"),n.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),i.reflectionMaps.length>0&&(n.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),n.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),n.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),n.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),n.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),n.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),n.push("}")),n.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),n.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),n.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),n.push("}"),n.push("out vec4 outColor;"),n.push("void main(void) {"),r){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),n.push(" discard;"),n.push(" }"),n.push(" if (dist > 0.0) { "),n.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" return;"),n.push("}")):(n.push(" if (dist > 0.0) { "),n.push(" discard;"),n.push(" }")),n.push("}")}n.push("IncidentLight light;"),n.push("Material material;"),n.push("Geometry geometry;"),n.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),n.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),n.push("float opacity = float(vColor.a) / 255.0;"),n.push("vec3 baseColor = rgb;"),n.push("float specularF0 = 1.0;"),n.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),n.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),n.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),n.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),n.push("baseColor *= colorTexel.rgb;"),n.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),n.push("metallic *= metalRoughTexel.b;"),n.push("roughness *= metalRoughTexel.g;"),n.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),n.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),n.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),n.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),n.push("geometry.position = vViewPosition.xyz;"),n.push("geometry.viewNormal = -normalize(viewNormal);"),n.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),i.lightMaps.length>0&&n.push("geometry.worldNormal = normalize(vWorldNormal);"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&n.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=i.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,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching pick flat normals 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;")),i.push("in vec4 vWorldPosition;"),s){i.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(` outNormal = ivec4(worldNormal * float(${p.MAX_INT}), 1.0);`),i.push("}"),i}}class yr extends tr{_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,i=e._sectionPlanesState,r=i.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Triangles batching color texture 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"),e.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("}"),t&&(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("}")),r){o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { "),o.push(" discard;"),o.push(" }"),o.push("}")}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 ) );");for(let e=0,t=s.lights.length;e0,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 i=0;i 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(${p.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 Pr=p.vec3(),br=p.vec3(),Rr=p.vec3(),Dr=p.vec3(),Cr=p.mat4();class Nr extends er{_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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=Pr;let m,y;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=br;if(l){const e=Rr;p.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,Cr),y=Dr,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(a.edgeIndicesBuf.bind(),n.drawElements(n.LINES,a.edgeIndicesBuf.numItems,a.edgeIndicesBuf.itemType,0),a.edgeIndicesBuf.unbind()):n.drawArrays(n.POINTS,0,a.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 i=0;i 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 Or{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._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=null),this._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=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._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),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new rr(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new lr(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new hr(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new Tr(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new Nr(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new sr(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new sr(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new ir(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new ir(this._scene,!0)),this._flatColorRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new yr(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new yr(this._scene,!0)),this._colorTextureRendererWithSAO}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new fr(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new fr(this._scene,!0)),this._pbrRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new rr(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Ar(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new pr(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new nr(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new ar(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new lr(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new cr(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new mr(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new hr(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new ur(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new dr(this._scene)),this._shadowRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Nr(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Tr(this._scene)),this._snapInitRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.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._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const xr={};let Sr=65536,wr=5e6;class Mr{constructor(){}set doublePrecisionEnabled(e){p.setDoublePrecisionEnabled(e)}get doublePrecisionEnabled(){return p.getDoublePrecisionEnabled()}set maxDataTextureHeight(e){(e=1024*Math.ceil(e/1024))>4096?e=4096:e<1024&&(e=1024),Sr=e}get maxDataTextureHeight(){return Sr}set maxGeometryBatchSize(e){e<1e5?e=1e5:e>5e6&&(e=5e6),wr=e}get maxGeometryBatchSize(){return wr}}const Br=new Mr;class Fr{constructor(){this.maxVerts=Br.maxGeometryBatchSize,this.maxIndices=3*Br.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]}}const Lr=p.mat4(),Ur=p.mat4();function Hr(e,t,s){const i=e.length,r=new Uint16Array(i),o=t[0],n=t[1],a=t[2],l=t[3]-o,h=t[4]-n,c=t[5]-a,u=65525,A=u/l,d=u/h,f=u/c,m=e=>e>=0?e:0;for(let t=0;t=0?1:-1),t=(1-Math.abs(i))*(r>=0?1:-1),i=e,r=t}return new Int8Array([Math[t](127.5*i+(i<0?-1:0)),Math[s](127.5*r+(r<0?-1:0))])}function Vr(e){let t=e[0],s=e[1];t/=t<0?127:128,s/=s<0?127:128;const i=1-Math.abs(t)-Math.abs(s);i<0&&(t=(1-Math.abs(s))*(t>=0?1:-1),s=(1-Math.abs(t))*(s>=0?1:-1));const r=Math.sqrt(t*t+s*s+i*i);return[t/r,s/r,i/r]}const jr=p.mat4(),Qr=p.mat4(),Wr=p.vec4([0,0,0,1]),zr=p.vec3(),Kr=p.vec3(),Yr=p.vec3(),Xr=p.vec3(),Zr=p.vec3(),qr=p.vec3(),Jr=p.vec3();class $r{constructor(e){console.info("Creating VBOBatchingTrianglesLayer"),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._renderers=function(e){const t=e.id;let s=xr[t];return s||(s=new Or(e),xr[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete xr[t],s._destroy()}))),s}(e.model.scene),this._buffer=new Fr(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Ze({origin:p.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=p.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=p.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=p.mat4(e.positionsDecodeMatrix)),e.uvDecodeMatrix?(this._state.uvDecodeMatrix=p.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){p.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)for(let e=0,t=o.length;e0){const e=jr;y?p.inverseMat4(p.transposeMat4(y,Qr),e):p.identityMat4(e,e),function(e,t,s,i,r){function o(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}let n,a,l,h,c,u,A=new Float32Array([0,0,0,0]),d=new Float32Array([0,0,0,0]);for(u=0;uc&&(l=n,c=h),n=kr(d,"floor","ceil"),a=Vr(n),h=o(d,a),h>c&&(l=n,c=h),n=kr(d,"ceil","ceil"),a=Vr(n),h=o(d,a),h>c&&(l=n,c=h),i[r+u+0]=l[0],i[r+u+1]=l[1],i[r+u+2]=0}(e,r,r.length,v.normals,v.normals.length)}if(l)for(let e=0,t=l.length;e0)for(let e=0,t=n.length;e0)for(let e=0,t=a.length;e0){const i=this._state.positionsDecodeMatrix?new Uint16Array(s.positions):Hr(s.positions,this._modelAABB,this._state.positionsDecodeMatrix=p.mat4());if(e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,i,i.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(let e=0,t=this._portions.length;e0){const i=new Int8Array(s.normals);let r=!0;e.normalsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.normals.length,3,t.STATIC_DRAW,r)}if(s.colors.length>0){const i=new Uint8Array(s.colors);let r=!1;e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.colors.length,4,t.DYNAMIC_DRAW,r)}if(s.uv.length>0)if(e.uvDecodeMatrix){let i=!1;e.uvBuf=new Oe(t,t.ARRAY_BUFFER,s.uv,s.uv.length,2,t.STATIC_DRAW,i)}else{const i=Nt.getUVBounds(s.uv),r=Nt.compressUVs(s.uv,i.min,i.max),o=r.quantized;let n=!1;e.uvDecodeMatrix=p.mat3(r.decodeMatrix),e.uvBuf=new Oe(t,t.ARRAY_BUFFER,o,o.length,2,t.STATIC_DRAW,n)}if(s.metallicRoughness.length>0){const i=new Uint8Array(s.metallicRoughness);let r=!1;e.metallicRoughnessBuf=new Oe(t,t.ARRAY_BUFFER,i,s.metallicRoughness.length,2,t.STATIC_DRAW,r)}if(s.positions.length>0){const i=s.positions.length/3,r=new Float32Array(i),o=!1;e.flagsBuf=new Oe(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(s.pickColors.length>0){const i=new Uint8Array(s.pickColors);let r=!1;e.pickColorsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.pickColors.length,4,t.STATIC_DRAW,r)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const i=new Float32Array(s.offsets);e.offsetsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const i=new Uint32Array(s.indices);e.indicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,i,s.indices.length,1,t.STATIC_DRAW)}if(s.edgeIndices.length>0){const i=new Uint32Array(s.edgeIndices);e.edgeIndicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,i,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&z&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Y&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(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&z?(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&J?(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&q?(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&$?(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&ee?(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&X?(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&K?(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&Y?(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,i=this._portions[s],r=4*i.vertsBaseIndex,o=4*i.numVerts,n=this._scratchMemory.getUInt8Array(o),a=t[0],l=t[1],h=t[2],c=t[3];for(let e=0;eE)&&(E=e,i.set(g),r&&p.triangleNormal(d,f,m,r),y=!0)}}return y&&r&&(p.transformVec3(this.model.worldNormalMatrix,r,r),p.normalizeVec3(r)),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 eo extends er{constructor(e,t,{edges:s=!1}={}){super(e,t,{instancing:!0,edges:s})}_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:i,incrementDrawState:r}=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),r&&i.drawElements++)}}class to extends eo{_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,i=t.getNumAllocatedSectionPlanes()>0;let r,o,n;const a=[];for(a.push("#version 300 es"),a.push("// Instancing geometry drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec2 normal;"),a.push("in vec4 color;"),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),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;"),r=0,o=s.lights.length;r= 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 = 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), 0.0);"),a.push("vec3 viewNormal = normalize(vec4(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;"),r=0,o=s.lights.length;r0,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry drawing 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("}")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(i.push(" float viewportWidth = uSAOParams[0];"),i.push(" float viewportHeight = uSAOParams[1];"),i.push(" float blendCutoff = uSAOParams[2];"),i.push(" float blendFactor = uSAOParams[3];"),i.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),i.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),i.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):i.push(" outColor = vColor;"),i.push("}"),i}}class so extends eo{_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 i,r;const o=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry flat-shading 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("}")),o){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("}")}for(n.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),n.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),n.push("float lambertian = 1.0;"),n.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),n.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),n.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),i=0,r=s.lights.length;i0,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,i=[];if(i.push("#version 300 es"),i.push("// Instancing fill 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class ro extends eo{constructor(e,t){super(e,t,{instancing:!0,edges:!0})}}class oo extends ro{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("// EdgesEmphasisRenderer 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 = worldMatrix * 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,i=[];if(i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class no extends ro{drawLayer(e,t,s){super.drawLayer(e,t,s,{colorUniform:!1})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=[];return s.push("#version 300 es"),s.push("// EdgesColorRenderer 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,i=[];if(i.push("#version 300 es"),i.push("// EdgesColorRenderer 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class ao extends eo{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry 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"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vPickColor; "),i.push("}"),i}}class lo extends eo{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry depth 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;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class ho extends eo{_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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(` outNormal = ivec4(vWorldNormal * float(${p.MAX_INT}), 1.0);`),i.push("}"),i}}class co extends eo{_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 uo extends eo{_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,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Instancing geometry depth drawing fragment shader"),o.push("precision highp float;"),o.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),o.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),o.push("}"),o}}class Ao extends eo{_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,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry depth drawing 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}class po extends eo{_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,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry depth drawing 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}const fo={3e3:"linearToLinear",3001:"sRGBToLinear"};class mo extends eo{_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,i=t.getNumAllocatedSectionPlanes()>0,r=t.clippingCaps,o=[];return o.push("#version 300 es"),o.push("// Instancing geometry quality drawing vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in vec2 uv;"),o.push("in vec2 metallicRoughness;"),o.push("in float flags;"),e.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),o.push("uniform mat3 uvDecodeMatrix;"),e.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("vec3 octDecode(vec2 oct) {"),o.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),o.push(" if (v.z < 0.0) {"),o.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);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),o.push("out vec4 vViewPosition;"),o.push("out vec3 vViewNormal;"),o.push("out vec4 vColor;"),o.push("out vec2 vUV;"),o.push("out vec2 vMetallicRoughness;"),s.lightMaps.length>0&&o.push("out vec3 vWorldNormal;"),i&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;"),r&&o.push("out vec4 vClipPosition;")),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);"),e.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), 1.0);"),o.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("vFragDepth = 1.0 + clipPos.w;"),o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i&&(o.push("vWorldPosition = worldPosition;"),o.push("vFlags = flags;"),r&&o.push("vClipPosition = clipPos;")),o.push("vViewPosition = viewPosition;"),o.push("vViewNormal = viewNormal;"),o.push("vColor = color;"),o.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),o.push("vMetallicRoughness = metallicRoughness;"),s.lightMaps.length>0&&o.push("vWorldNormal = worldNormal.xyz;"),o.push("gl_Position = clipPos;"),o.push("}"),o.push("}"),o}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,s=e._sectionPlanesState,i=e._lightsState,r=s.getNumAllocatedSectionPlanes()>0,o=s.clippingCaps,n=[];n.push("#version 300 es"),n.push("// Instancing geometry quality 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;")),n.push("uniform sampler2D uColorMap;"),n.push("uniform sampler2D uMetallicRoughMap;"),n.push("uniform sampler2D uEmissiveMap;"),n.push("uniform sampler2D uNormalMap;"),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("}")),i.reflectionMaps.length>0&&n.push("uniform samplerCube reflectionMap;"),i.lightMaps.length>0&&n.push("uniform samplerCube lightMap;"),n.push("uniform vec4 lightAmbient;");for(let e=0,t=i.lights.length;e0&&n.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(n,!0),n.push("#define PI 3.14159265359"),n.push("#define RECIPROCAL_PI 0.31830988618"),n.push("#define RECIPROCAL_PI2 0.15915494"),n.push("#define EPSILON 1e-6"),n.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),n.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),n.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),n.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),n.push(" return normalize(surf_norm );"),n.push(" }"),n.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),n.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),n.push(" vec2 st0 = dFdx( uv.st );"),n.push(" vec2 st1 = dFdy( uv.st );"),n.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),n.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),n.push(" vec3 N = normalize( surf_norm );"),n.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),n.push(" mat3 tsn = mat3( S, T, N );"),n.push(" return normalize( tsn * mapN );"),n.push("}"),n.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),n.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),n.push("}"),n.push("struct IncidentLight {"),n.push(" vec3 color;"),n.push(" vec3 direction;"),n.push("};"),n.push("struct ReflectedLight {"),n.push(" vec3 diffuse;"),n.push(" vec3 specular;"),n.push("};"),n.push("struct Geometry {"),n.push(" vec3 position;"),n.push(" vec3 viewNormal;"),n.push(" vec3 worldNormal;"),n.push(" vec3 viewEyeDir;"),n.push("};"),n.push("struct Material {"),n.push(" vec3 diffuseColor;"),n.push(" float specularRoughness;"),n.push(" vec3 specularColor;"),n.push(" float shine;"),n.push("};"),n.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),n.push(" float r = ggxRoughness + 0.0001;"),n.push(" return (2.0 / (r * r) - 2.0);"),n.push("}"),n.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),n.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),n.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),n.push("}"),i.reflectionMaps.length>0&&(n.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),n.push(" vec3 envMapColor = "+fo[i.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),n.push(" return envMapColor;"),n.push("}")),n.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),n.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),n.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),n.push("}"),n.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" return 1.0 / ( gl * gv );"),n.push("}"),n.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" return 0.5 / max( gv + gl, EPSILON );"),n.push("}"),n.push("float D_GGX(const in float alpha, const in float dotNH) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),n.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float alpha = ( roughness * roughness );"),n.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),n.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),n.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),n.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),n.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),n.push(" vec3 F = F_Schlick( specularColor, dotLH );"),n.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),n.push(" float D = D_GGX( alpha, dotNH );"),n.push(" return F * (G * D);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),n.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),n.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),n.push(" vec4 r = roughness * c0 + c1;"),n.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),n.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),n.push(" return specularColor * AB.x + AB.y;"),n.push("}"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&(n.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),i.lightMaps.length>0&&(n.push(" vec3 irradiance = "+fo[i.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),n.push(" irradiance *= PI;"),n.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),i.reflectionMaps.length>0&&(n.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),n.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),n.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),n.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),n.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),n.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),n.push("}")),n.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),n.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),n.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),n.push("}"),n.push("out vec4 outColor;"),n.push("void main(void) {"),r){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),n.push(" discard;"),n.push(" }"),n.push(" if (dist > 0.0) { "),n.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" return;"),n.push("}")):(n.push(" if (dist > 0.0) { "),n.push(" discard;"),n.push(" }")),n.push("}")}n.push("IncidentLight light;"),n.push("Material material;"),n.push("Geometry geometry;"),n.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),n.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),n.push("float opacity = float(vColor.a) / 255.0;"),n.push("vec3 baseColor = rgb;"),n.push("float specularF0 = 1.0;"),n.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),n.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),n.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),n.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),n.push("baseColor *= colorTexel.rgb;"),n.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),n.push("metallic *= metalRoughTexel.b;"),n.push("roughness *= metalRoughTexel.g;"),n.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),n.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),n.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),n.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),n.push("geometry.position = vViewPosition.xyz;"),n.push("geometry.viewNormal = -normalize(viewNormal);"),n.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),i.lightMaps.length>0&&n.push("geometry.worldNormal = normalize(vWorldNormal);"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&n.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=i.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,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals 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;")),i.push("in vec4 vWorldPosition;"),s){i.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(` outNormal = ivec4(worldNormal * float(${p.MAX_INT}), 1.0);`),i.push("}"),i}}class Eo extends eo{_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,i=e._lightsState;let r,o;const n=s.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry 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"),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("}")),n){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}for(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 ) );"),r=0,o=i.lights.length;r0,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(${p.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 bo=p.vec3(),Ro=p.vec3(),Do=p.vec3(),Co=p.vec3(),No=p.mat4();class Oo extends er{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=bo;let m,y;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=Ro;if(l){const e=p.transformPoint3(c,l,Do);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,No),y=Co,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(a.edgeIndicesBuf.bind(),n.drawElementsInstanced(n.LINES,a.edgeIndicesBuf.numItems,a.edgeIndicesBuf.itemType,0,a.numInstances),a.edgeIndicesBuf.unbind()):n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.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 xo{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._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=null),this._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=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._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new io(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new ao(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new lo(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new Po(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new Oo(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new to(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new to(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new so(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new so(this._scene,!0)),this._flatColorRendererWithSAO}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new mo(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new mo(this._scene,!0)),this._pbrRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new Eo(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new Eo(this._scene,!0)),this._colorTextureRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new io(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new uo(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Ao(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new oo(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new no(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ao(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new ho(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new yo(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new lo(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new co(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new po(this._scene)),this._shadowRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Po(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Oo(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.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._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const So={};const wo=new Uint8Array(4),Mo=new Float32Array(1),Bo=p.vec4([0,0,0,1]),Fo=new Float32Array(3),Lo=p.vec3(),Uo=p.vec3(),Ho=p.vec3(),Go=p.vec3(),ko=p.vec3(),Vo=p.vec3(),jo=p.vec3(),Qo=new Float32Array(4);class Wo{constructor(e){console.info("Creating VBOInstancingTrianglesLayer"),this.model=e.model,this.sortId="TrianglesInstancingLayer"+(e.solid?"-solid":"-surface")+(e.normals?"-normals":"-autoNormals"),this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=So[t];return s||(s=new xo(e),So[t]=s,s._compile(),s.eagerCreateRenders(),e.on("compile",(()=>{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete So[t],s._destroy()}))),s}(e.model.scene),this._aabb=p.collapseAABB3(),this._state=new Ze({numInstances:0,obb:p.OBB3(),origin:p.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=p.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){p.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;e.colorsBuf=new Oe(i,i.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,i.DYNAMIC_DRAW,t),this._colors=[]}if(this._metallicRoughness.length>0){const t=new Uint8Array(this._metallicRoughness);let s=!1;e.metallicRoughnessBuf=new Oe(i,i.ARRAY_BUFFER,t,this._metallicRoughness.length,2,i.STATIC_DRAW,s)}if(o>0){let t=!1;e.flagsBuf=new Oe(i,i.ARRAY_BUFFER,new Float32Array(o),o,1,i.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;e.offsetsBuf=new Oe(i,i.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,i.DYNAMIC_DRAW,t),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){const s=!1;e.positionsBuf=new Oe(i,i.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,i.STATIC_DRAW,s),e.positionsDecodeMatrix=p.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){const s=new Uint8Array(t.colorsCompressed),r=!1;e.colorsBuf=new Oe(i,i.ARRAY_BUFFER,s,s.length,4,i.STATIC_DRAW,r)}if(t.uvCompressed&&t.uvCompressed.length>0){const s=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new Oe(i,i.ARRAY_BUFFER,s,s.length,2,i.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new Oe(i,i.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,i.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new Oe(i,i.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,i.STATIC_DRAW)),this._modelMatrixCol0.length>0){const t=!1;e.modelMatrixCol0Buf=new Oe(i,i.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,i.STATIC_DRAW,t),e.modelMatrixCol1Buf=new Oe(i,i.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,i.STATIC_DRAW,t),e.modelMatrixCol2Buf=new Oe(i,i.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,i.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new Oe(i,i.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,i.STATIC_DRAW,t),e.modelNormalMatrixCol1Buf=new Oe(i,i.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,i.STATIC_DRAW,t),e.modelNormalMatrixCol2Buf=new Oe(i,i.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,i.STATIC_DRAW,t),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){const t=!1;e.pickColorsBuf=new Oe(i,i.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,i.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&z&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Y&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(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&z?(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&J?(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&q?(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&$?(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&ee?(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&X?(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&Y?(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&K?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";wo[0]=t[0],wo[1]=t[1],wo[2]=t[2],wo[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(wo,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 i=!!(t&z),r=!!(t&q),o=!!(t&J),n=!!(t&$),a=!!(t&ee),l=!!(t&Y),h=!!(t&K);let c,u;c=!i||h||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?Ki.NOT_RENDERED:s?Ki.COLOR_TRANSPARENT:Ki.COLOR_OPAQUE,u=!i||h?Ki.NOT_RENDERED:n?Ki.SILHOUETTE_SELECTED:o?Ki.SILHOUETTE_HIGHLIGHTED:r?Ki.SILHOUETTE_XRAYED:Ki.NOT_RENDERED;let A=0;A=!i||h?Ki.NOT_RENDERED:n?Ki.EDGES_SELECTED:o?Ki.EDGES_HIGHLIGHTED:r?Ki.EDGES_XRAYED:a?s?Ki.EDGES_COLOR_TRANSPARENT:Ki.EDGES_COLOR_OPAQUE:Ki.NOT_RENDERED;let p=0;p|=c,p|=u<<4,p|=A<<8,p|=(i&&!h&&l?Ki.PICK:Ki.NOT_RENDERED)<<12,p|=(t&X?1:0)<<16,Mo[0]=p,this._state.flagsBuf&&this._state.flagsBuf.setData(Mo,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Fo[0]=t[0],Fo[1]=t[1],Fo[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(Fo,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,i=s.geometry,r=this._portions[e];if(!r)return void this.model.error("portion not found: "+e);const o=i.quantizedPositions,n=s.origin,a=r.offset,l=n[0]+a[0],h=n[1]+a[1],c=n[2]+a[2],u=Bo,A=r.matrix,d=this.model.sceneModelMatrix,f=s.positionsDecodeMatrix;for(let e=0,s=o.length;eg)&&(g=e,i.set(v),r&&p.triangleNormal(f,m,y,r),E=!0)}}return E&&r&&(p.transformVec3(a.normalMatrix,r,r),p.transformVec3(this.model.worldNormalMatrix,r,r),p.normalizeVec3(r)),E}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 zo extends er{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:i,incrementDrawState:r}=e;t.drawElements(t.LINES,s.indicesBuf.numItems,s.indicesBuf.itemType,0),r&&i.drawElements++}}class Ko extends zo{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,i=[];if(i.push("#version 300 es"),i.push("// Lines batching color 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class Yo extends zo{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,i=[];if(i.push("#version 300 es"),i.push("// Lines batching silhouette 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = color;"),i.push("}"),i}}const Xo=p.vec3(),Zo=p.vec3(),qo=p.vec3(),Jo=p.vec3(),$o=p.mat4();class en extends er{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=Xo;let m,y;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=Zo;if(l){const e=qo;p.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,$o),y=Jo,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),a.indicesBuf.bind(),n.drawElements(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0),a.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 i=0;i 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(${p.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 tn=p.vec3(),sn=p.vec3(),rn=p.vec3(),on=p.vec3(),nn=p.mat4();class an extends er{_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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=tn;let m,y;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=sn;if(l){const e=rn;p.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,nn),y=on,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(a.indicesBuf.bind(),n.drawElements(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0),a.indicesBuf.unbind()):n.drawArrays(n.POINTS,0,a.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 i=0;i 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 ln{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._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ko(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Yo(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new en(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new an(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const hn={};class cn{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]}}class un{constructor(e){console.info("Creating VBOBatchingLinesLayer"),this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=hn[t];return s||(s=new ln(e),hn[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete hn[t],s._destroy()}))),s}(e.model.scene),this.model=e.model,this._buffer=new cn(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Ze({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:p.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=p.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=p.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=p.vec3(e.origin))}get aabb(){if(this.aabbDirty){p.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const i=new Uint16Array(s.positions);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.positions.length,3,t.STATIC_DRAW)}else{const i=Hr(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const i=new Uint8Array(s.colors);let r=!1;e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.colors.length,4,t.DYNAMIC_DRAW,r)}if(s.colors.length>0){const i=s.colors.length/4,r=new Float32Array(i);let o=!1;e.flagsBuf=new Oe(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const i=new Float32Array(s.offsets);e.offsetsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.offsets.length,3,t.DYNAMIC_DRAW)}if(s.indices.length>0){const i=new Uint32Array(s.indices);e.indicesBuf=new Oe(t,t.ELEMENT_ARRAY_BUFFER,i,s.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&z&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Y&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(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&z?(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&J?(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&q?(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&$?(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&ee?(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&X?(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&K?(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&Y?(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,i=4*this._portions[s],r=4*this._portions[s+1],o=this._scratchMemory.getUInt8Array(r),n=t[0],a=t[1],l=t[2],h=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,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Lines instancing color 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return this._withSAO?(o.push(" float viewportWidth = uSAOParams[0];"),o.push(" float viewportHeight = uSAOParams[1];"),o.push(" float blendCutoff = uSAOParams[2];"),o.push(" float blendFactor = uSAOParams[3];"),o.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),o.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),o.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):o.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("}"),o}}class dn extends An{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,i=[];if(i.push("#version 300 es"),i.push("// Lines instancing silhouette 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = color;"),i.push("}"),i}}const fn=p.vec3(),mn=p.vec3(),yn=p.vec3();p.vec3();const En=p.mat4();class gn extends er{constructor(e){super(e,!1,{instancing:!0})}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 i=t.model,r=i.scene,o=r.canvas.gl,n=r.camera,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||n.viewMatrix;this._vaoCache.has(t)?o.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=fn;let m;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=mn;if(l){const e=p.transformPoint3(c,l,yn);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,En),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,e.snapVectorA),o.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),o.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,f),o.uniform1i(this._uRenderPass,s),o.uniform1i(this._uPickInvisible,e.pickInvisible);let y=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,y+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,y+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,y+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),o.vertexAttribDivisor(this._aModelMatrixCol0.location,1),o.vertexAttribDivisor(this._aModelMatrixCol1.location,1),o.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags&&(this._aFlags.bindArrayBuffer(a.flagsBuf),o.vertexAttribDivisor(this._aFlags.location,1)),a.indicesBuf.bind(),o.drawElementsInstanced(o.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0,a.numInstances),a.indicesBuf.unbind(),o.vertexAttribDivisor(this._aModelMatrixCol0.location,0),o.vertexAttribDivisor(this._aModelMatrixCol1.location,0),o.vertexAttribDivisor(this._aModelMatrixCol2.location,0),this._aFlags&&o.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&o.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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("// 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 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("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const vn=p.vec3(),In=p.vec3(),_n=p.vec3();p.vec3();const Tn=p.mat4();class Pn extends er{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=vn;let m;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=In;if(l){const e=p.transformPoint3(c,l,_n);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,Tn),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let y=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,y+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,y+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,y+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(a.indicesBuf.bind(),n.drawElementsInstanced(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0,a.numInstances),a.indicesBuf.unbind()):n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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 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 bn{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._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._snapInitRenderer||(this._snapInitRenderer=new gn(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new Pn(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new pn(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new dn(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new gn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Pn(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Rn={};const Dn=new Uint8Array(4),Cn=new Float32Array(1),Nn=new Float32Array(3),On=new Float32Array(4);class xn{constructor(e){console.info("VBOInstancingLinesLayer"),this.model=e.model,this.material=e.material,this.sortId="LinesInstancingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=Rn[t];return s||(s=new bn(e),Rn[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete Rn[t],s._destroy()}))),s}(e.model.scene),this._aabb=p.collapseAABB3(),this._state=new Ze({obb:p.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=p.collapseAABB3(),this.aabbDirty=!0,e.origin&&(this._state.origin=p.vec3(e.origin)),this._finalized=!1}get aabb(){if(this.aabbDirty){p.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(r>0){let t=!1;this._state.flagsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(r),r,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(s.colorsCompressed&&s.colorsCompressed.length>0){const i=new Uint8Array(s.colorsCompressed),r=!1;t.colorsBuf=new Oe(e,e.ARRAY_BUFFER,i,i.length,4,e.STATIC_DRAW,r)}if(s.positionsCompressed&&s.positionsCompressed.length>0){const i=!1;t.positionsBuf=new Oe(e,e.ARRAY_BUFFER,s.positionsCompressed,s.positionsCompressed.length,3,e.STATIC_DRAW,i),t.positionsDecodeMatrix=p.mat4(s.positionsDecodeMatrix)}if(s.indices&&s.indices.length>0&&(t.indicesBuf=new Oe(e,e.ELEMENT_ARRAY_BUFFER,new Uint32Array(s.indices),s.indices.length,1,e.STATIC_DRAW),t.numIndices=s.indices.length),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&z&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Y&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(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&z?(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&J?(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&q?(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&$?(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&ee?(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&X?(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&Y?(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&K?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";Dn[0]=t[0],Dn[1]=t[1],Dn[2]=t[2],Dn[3]=t[3],this._state.colorsBuf.setData(Dn,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 i=!!(t&z),r=!!(t&q),o=!!(t&J),n=!!(t&$),a=!!(t&ee),l=!!(t&Y),h=!!(t&K);let c,u;c=!i||h||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?Ki.NOT_RENDERED:s?Ki.COLOR_TRANSPARENT:Ki.COLOR_OPAQUE,u=!i||h?Ki.NOT_RENDERED:n?Ki.SILHOUETTE_SELECTED:o?Ki.SILHOUETTE_HIGHLIGHTED:r?Ki.SILHOUETTE_XRAYED:Ki.NOT_RENDERED;let A=0;A=!i||h?Ki.NOT_RENDERED:n?Ki.EDGES_SELECTED:o?Ki.EDGES_HIGHLIGHTED:r?Ki.EDGES_XRAYED:a?s?Ki.EDGES_COLOR_TRANSPARENT:Ki.EDGES_COLOR_OPAQUE:Ki.NOT_RENDERED;let p=0;p|=c,p|=u<<4,p|=A<<8,p|=(i&&!h&&l?Ki.PICK:Ki.NOT_RENDERED)<<12,p|=(t&X?255:0)<<16,Cn[0]=p,this._state.flagsBuf.setData(Cn,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Nn[0]=t[0],Nn[1]=t[1],Nn[2]=t[2],this._state.offsetsBuf.setData(Nn,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;On[0]=t[0],On[1]=t[4],On[2]=t[8],On[3]=t[12],this._state.modelMatrixCol0Buf.setData(On,s),On[0]=t[1],On[1]=t[5],On[2]=t[9],On[3]=t[13],this._state.modelMatrixCol1Buf.setData(On,s),On[0]=t[2],On[1]=t[6],On[2]=t[10],On[3]=t[14],this._state.modelMatrixCol2Buf.setData(On,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ki.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ki.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ki.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ki.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ki.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesXRayed(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,Ki.PICK)}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,Ki.PICK)}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 Sn extends er{_draw(e){const{gl:t}=this._scene.canvas,{state:s,frameCtx:i,incrementDrawState:r}=e;t.drawArrays(t.POINTS,0,s.positionsBuf.numItems),r&&i.drawArrays++}}class wn extends Sn{_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,i=[];return i.push("#version 300 es"),i.push("// Points batching color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),s.filterIntensity&&i.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),s.filterIntensity&&(i.push("float intensity = float(color.a) / 255.0;"),i.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {")),i.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),s.filterIntensity&&i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batching color 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class Mn extends Sn{_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,i=[];return i.push("#version 300 es"),i.push("// Points batching silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec4 color;"),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Points batching silhouette vertex 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s 1.0) {"),o.push(" discard;"),o.push(" }")),r){for(o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("outColor = color;"),o.push("}"),o}}class Bn extends Sn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batching pick mesh vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("gl_PointSize += 10.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batching pick mesh vertex 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var r=0;r 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vPickColor; "),i.push("}"),i}}class Fn extends Sn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batched pick depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("gl_PointSize += 10.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batched pick depth 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class Ln extends Sn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batching occlusion vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push(" gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batching 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"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),i.push("}"),i}}const Un=p.vec3(),Hn=p.vec3(),Gn=p.vec3(),kn=p.vec3(),Vn=p.mat4();class jn extends er{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=Un;let m,y;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=Hn;if(l){const e=Gn;p.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,Vn),y=kn,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),n.drawArrays(n.POINTS,0,a.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,s=[];return s.push("#version 300 es"),s.push("// VBOBatchingPointsSnapInitRenderer 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("// VBOBatchingPointsSnapInitRenderer 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 i=0;i 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("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Qn=p.vec3(),Wn=p.vec3(),zn=p.vec3(),Kn=p.vec3(),Yn=p.mat4();class Xn extends er{_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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=Qn;let m,y;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=Wn;if(l){const e=zn;p.transformPoint3(c,l,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]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,Yn),y=Kn,y[0]=o.eye[0]-t[0],y[1]=o.eye[1]-t[1],y[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,y=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,y),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let E=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,E+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,E+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,E+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),n.drawArrays(n.POINTS,0,a.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("// VBOBatchingPointsSnapRenderer 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("// VBOBatchingPointsSnapRenderer 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 i=0;i 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 Zn{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),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new wn(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Mn(this._scene)),this._silhouetteRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Bn(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Fn(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Ln(this._scene)),this._occlusionRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new jn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Xn(this._scene)),this._snapRenderer}_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(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const qn={};class Jn{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 $n{constructor(e){console.info("Creating VBOBatchingPointsLayer"),this.model=e.model,this.sortId="PointsBatchingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=qn[t];return s||(s=new Zn(e),qn[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete qn[t],s._destroy()}))),s}(e.model.scene),this._buffer=new Jn(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new Ze({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,positionsDecodeMatrix:p.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=p.collapseAABB3(),this._portions=[],this._meshes=[],this._aabb=p.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=p.vec3(e.origin))}get aabb(){if(this.aabbDirty){p.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const i=new Uint16Array(s.positions);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.positions.length,3,t.STATIC_DRAW)}else{const i=Hr(new Float32Array(s.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.positions.length,3,t.STATIC_DRAW)}if(s.colors.length>0){const i=new Uint8Array(s.colors);let r=!1;e.colorsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.colors.length,4,t.STATIC_DRAW,r)}if(s.positions.length>0){const i=s.positions.length/3,r=new Float32Array(i);let o=!1;e.flagsBuf=new Oe(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(s.pickColors.length>0){const i=new Uint8Array(s.pickColors);let r=!1;e.pickColorsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.pickColors.length,4,t.STATIC_DRAW,r)}if(this.model.scene.entityOffsetsEnabled&&s.offsets.length>0){const i=new Float32Array(s.offsets);e.offsetsBuf=new Oe(t,t.ARRAY_BUFFER,i,s.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,s){t&z&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Y&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(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&z?(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&J?(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&q?(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&$?(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&X?(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&K?(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&Y?(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,i=4*this._portions[s],r=4*this._portions[s+1],o=this._scratchMemory.getUInt8Array(r),n=t[0],a=t[1],l=t[2];for(let e=0;e0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),s.filterIntensity&&i.push("uniform vec2 intensityRange;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),s.filterIntensity&&(i.push("float intensity = float(color.a) / 255.0;"),i.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {")),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),s.filterIntensity&&i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing color 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class sa extends ea{_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,i=[];return i.push("#version 300 es"),i.push("// Points instancing silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 color;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),i.push("uniform vec4 silhouetteColor;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing silhouette 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class ia extends ea{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing pick mesh vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick mesh 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vPickColor; "),i.push("}"),i}}class ra extends ea{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing pick depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push(" vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = remapClipPos(clipPos);"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick depth 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class oa extends ea{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing occlusion vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing occlusion vertex 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0;e 1.0) {"),i.push(" discard;"),i.push(" }")),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class na extends ea{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,s=e.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),s.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),s.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(s.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(s.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let s,i;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Points instancing depth vertex 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),s=0,i=t.getNumAllocatedSectionPlanes();s 1.0) {"),o.push(" discard;"),o.push(" }")),r){for(o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),s=0,i=t.getNumAllocatedSectionPlanes();s 0.0) { discard; }"),o.push("}")}return o.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("}"),o}}class aa extends ea{_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,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry depth drawing 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("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),s){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 1.0) {"),i.push(" discard;"),i.push(" }"),s){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}const la=p.vec3(),ha=p.vec3(),ca=p.vec3();p.vec3();const ua=p.mat4();class Aa extends er{constructor(e){super(e,!1,{instancing:!0})}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 i=t.model,r=i.scene,o=r.canvas.gl,n=r.camera,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||n.viewMatrix;this._vaoCache.has(t)?o.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=la;let m;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=ha;if(l){const e=p.transformPoint3(c,l,ca);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,ua),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,e.snapVectorA),o.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),o.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,f),o.uniform1i(this._uRenderPass,s),o.uniform1i(this._uPickInvisible,e.pickInvisible);let y=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,y+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,y+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,y+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),o.vertexAttribDivisor(this._aModelMatrixCol0.location,1),o.vertexAttribDivisor(this._aModelMatrixCol1.location,1),o.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags&&(this._aFlags.bindArrayBuffer(a.flagsBuf),o.vertexAttribDivisor(this._aFlags.location,1)),o.drawArraysInstanced(o.POINTS,0,a.positionsBuf.numItems,a.numInstances),o.vertexAttribDivisor(this._aModelMatrixCol0.location,0),o.vertexAttribDivisor(this._aModelMatrixCol1.location,0),o.vertexAttribDivisor(this._aModelMatrixCol2.location,0),this._aFlags&&o.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&o.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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("// 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 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("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),s.push("outPickColor = uvec4(vPickColor);"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const pa=p.vec3(),da=p.vec3(),fa=p.vec3();p.vec3();const ma=p.mat4();class ya extends er{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=t.aabb,d=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const f=pa;let m;if(f[0]=p.safeInv(A[3]-A[0])*p.MAX_INT,f[1]=p.safeInv(A[4]-A[1])*p.MAX_INT,f[2]=p.safeInv(A[5]-A[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(f[0]),e.snapPickCoordinateScale[1]=p.safeInv(f[1]),e.snapPickCoordinateScale[2]=p.safeInv(f[2]),l||0!==h[0]||0!==h[1]||0!==h[2]){const t=da;if(l){const e=p.transformPoint3(c,l,fa);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],m=V(d,t,ma),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=d,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,f),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible);let y=0;this._matricesUniformBlockBufferData.set(u,0),this._matricesUniformBlockBufferData.set(m,y+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,y+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,y+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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 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 Ea{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),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new ta(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new sa(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new na(this._scene)),this._depthRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ia(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new ra(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new oa(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new aa(this._scene)),this._shadowRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Aa(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new ya(this._scene)),this._snapRenderer}_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(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const ga={};const va=new Uint8Array(4),Ia=new Float32Array(1),_a=new Float32Array(3),Ta=new Float32Array(4);class Pa{constructor(e){console.info("VBOInstancingPointsLayer"),this.model=e.model,this.material=e.material,this.sortId="PointsInstancingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let s=ga[t];return s||(s=new Ea(e),ga[t]=s,s._compile(),e.on("compile",(()=>{s._compile()})),e.on("destroyed",(()=>{delete ga[t],s._destroy()}))),s}(e.model.scene),this._aabb=p.collapseAABB3(),this._state=new Ze({obb:p.OBB3(),numInstances:0,origin:e.origin?p.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=p.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1}get aabb(){if(this.aabbDirty){p.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let i=!1;s.flagsBuf=new Oe(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,i)}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(i.positionsCompressed&&i.positionsCompressed.length>0){const t=!1;s.positionsBuf=new Oe(e,e.ARRAY_BUFFER,i.positionsCompressed,i.positionsCompressed.length,3,e.STATIC_DRAW,t),s.positionsDecodeMatrix=p.mat4(i.positionsDecodeMatrix)}if(i.colorsCompressed&&i.colorsCompressed.length>0){const t=new Uint8Array(i.colorsCompressed),r=!1;s.colorsBuf=new Oe(e,e.ARRAY_BUFFER,t,t.length,4,e.STATIC_DRAW,r)}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&z&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Y&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(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&z?(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&J?(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&q?(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&$?(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&ee?(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&X?(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&Y?(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&K?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,s)}setColor(e,t){if(!this._finalized)throw"Not finalized";va[0]=t[0],va[1]=t[1],va[2]=t[2],this._state.colorsBuf.setData(va,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 i=!!(t&z),r=!!(t&q),o=!!(t&J),n=!!(t&$),a=!!(t&ee),l=!!(t&Y),h=!!(t&K);let c,u;c=!i||h||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?Ki.NOT_RENDERED:s?Ki.COLOR_TRANSPARENT:Ki.COLOR_OPAQUE,u=!i||h?Ki.NOT_RENDERED:n?Ki.SILHOUETTE_SELECTED:o?Ki.SILHOUETTE_HIGHLIGHTED:r?Ki.SILHOUETTE_XRAYED:Ki.NOT_RENDERED;let A=0;A=!i||h?Ki.NOT_RENDERED:n?Ki.EDGES_SELECTED:o?Ki.EDGES_HIGHLIGHTED:r?Ki.EDGES_XRAYED:a?s?Ki.EDGES_COLOR_TRANSPARENT:Ki.EDGES_COLOR_OPAQUE:Ki.NOT_RENDERED;let p=0;p|=c,p|=u<<4,p|=A<<8,p|=(i&&!h&&l?Ki.PICK:Ki.NOT_RENDERED)<<12,p|=(t&X?255:0)<<16,Ia[0]=p,this._state.flagsBuf.setData(Ia,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)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const s=4*e;Ta[0]=t[0],Ta[1]=t[4],Ta[2]=t[8],Ta[3]=t[12],this._state.modelMatrixCol0Buf.setData(Ta,s),Ta[0]=t[1],Ta[1]=t[5],Ta[2]=t[9],Ta[3]=t[13],this._state.modelMatrixCol1Buf.setData(Ta,s),Ta[0]=t[2],Ta[1]=t[6],Ta[2]=t[10],Ta[3]=t[14],this._state.modelMatrixCol2Buf.setData(Ta,s)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ki.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ki.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ki.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ki.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ki.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._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(t,this,Ki.COLOR_OPAQUE)}drawShadow(e,t){}drawPickMesh(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(t,this,Ki.PICK)}drawPickDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(t,this,Ki.PICK)}drawPickNormals(e,t){}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,Ki.PICK)}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,Ki.PICK)}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()}}const ba=p.vec3(),Ra=p.vec3(),Da=p.mat4();class Ca{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=o,d=r.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uPerObjectDecodeMatrix,this._uPerVertexPosition,this.uPerObjectColorAndFlags,this._uPerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=ba;if(m){const t=p.transformPoint3(u,h,Ra);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],f=V(d,e,Da)}else f=d;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const E=i._sectionPlanesState.getNumAllocatedSectionPlanes(),g=i._sectionPlanesState.sectionPlanes.length;if(E>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,r=o.renderFlags;for(let t=0;t0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,8),n.drawArrays(n.LINES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,16),n.drawArrays(n.LINES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,32),n.drawArrays(n.LINES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// LinesDataTextureColorRenderer"),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 uPerObjectDecodeMatrix;"),s.push("uniform highp sampler2D uPerObjectMatrix;"),s.push("uniform lowp usampler2D uPerObjectColorAndFlags;"),s.push("uniform mediump usampler2D uPerVertexPosition;"),s.push("uniform highp usampler2D uPerLineIndices;"),s.push("uniform mediump usampler2D uPerLineObject;"),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 lineIndex = gl_VertexID / 2;"),s.push(" int h_packed_object_id_index = (lineIndex >> 3) & 4095;"),s.push(" int v_packed_object_id_index = (lineIndex >> 3) >> 12;"),s.push(" int objectIndex = int(texelFetch(uPerLineObject, 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 (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, 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 (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),s.push(" ivec4 packedLineIndexBaseOffset = ivec4(texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),s.push(" int lineIndexBaseOffset = (packedLineIndexBaseOffset.r << 24) + (packedLineIndexBaseOffset.g << 16) + (packedLineIndexBaseOffset.b << 8) + packedLineIndexBaseOffset.a;"),s.push(" int h_index = (lineIndex - lineIndexBaseOffset) & 4095;"),s.push(" int v_index = (lineIndex - lineIndexBaseOffset) >> 12;"),s.push(" ivec3 vertexIndices = ivec3(texelFetch(uPerLineIndices, 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 (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push(" mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),s.push(" uvec4 flags = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),s.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),s.push(" vec3 position = vec3(texelFetch(uPerVertexPosition, ivec2(indexPositionH, indexPositionV), 0));"),s.push(" uvec4 color = texelFetch (uPerObjectColorAndFlags, 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,s=t.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// LinesDataTextureColorRenderer 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;")),s){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Na{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null)}eagerCreateRenders(){}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ca(this._scene,!1)),this._colorRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy()}}const Oa={};class xa{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perLineNumberPortionId8Bits=[],this.perLineNumberPortionId16Bits=[],this.perLineNumberPortionId32Bits=[]}}class Sa{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerLineIdPortionIds8Bits=null,this.texturePerLineIdPortionIds16Bits=null,this.texturePerLineIdPortionIds32Bits=null,this.texturePerLineIdIndices8Bits=null,this.texturePerLineIdIndices16Bits=null,this.texturePerLineIdIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerLineIdIndices8Bits,16:this.texturePerLineIdIndices16Bits,32:this.texturePerLineIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerLineIdPortionIds8Bits,16:this.texturePerLineIdPortionIds16Bits,32:this.texturePerLineIdPortionIds32Bits}}bindCommonTextures(e,t,s,i,r){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,s,2),this.texturePerObjectColorsAndFlags.bindTexture(e,i,3),this.texturePerObjectInstanceMatrices.bindTexture(e,r,4)}bindLineIndicesTextures(e,t,s,i){this.indicesPortionIdsPerBitnessTextures[i].bindTexture(e,t,5),this.indicesPerBitnessTextures[i].bindTexture(e,s,6)}}class wa{constructor(e,t,s,i,r=null){this._gl=e,this._texture=t,this._textureWidth=s,this._textureHeight=i,this._textureData=r}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 Ma={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalLines:0,totalLines8Bits:0,totalLines16Bits:0,totalLines32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(Ma,null,4));let e=0;Object.keys(Ma).forEach((t=>{t.startsWith("size")&&(e+=Ma[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/Ma.totalLines).toFixed(2)}`);let t={};Object.keys(Ma).forEach((s=>{s.startsWith("size")&&(t[s]=`${(Ma[s]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class Ba{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,i,r){const o=t.length;this.numPortions=o;const n=4096,a=Math.ceil(o/512);if(0===a)throw"texture height===0";const l=new Uint8Array(16384*a);Ma.sizeDataColorsAndFlags+=l.byteLength,Ma.numberOfTextures++;for(let e=0;e>24&255,i[e]>>16&255,i[e]>>8&255,255&i[e]],32*e+16),l.set([r[e]>>24&255,r[e]>>16&255,r[e]>>8&255,255&r[e]],32*e+20);const h=e.createTexture();return e.bindTexture(e.TEXTURE_2D,h),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,n,a),e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA_INTEGER,e.UNSIGNED_BYTE,l,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 wa(e,h,n,a,l)}generateTextureForObjectOffsets(e,t){const s=512,i=Math.ceil(t/s);if(0===i)throw"texture height===0";const r=new Float32Array(1536*i).fill(0);Ma.sizeDataTextureOffsets+=r.byteLength,Ma.numberOfTextures++;const o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,s,i),e.texSubImage2D(e.TEXTURE_2D,0,0,0,s,i,e.RGB,e.FLOAT,r,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 wa(e,o,s,i,r)}generateTextureForInstancingMatrices(e,t){const s=t.length;if(0===s)throw"num instance matrices===0";const i=2048,r=Math.ceil(s/512),o=new Float32Array(8192*r);Ma.numberOfTextures++;for(let e=0;e{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Oa[t],s._destroy()}))),s}(e.scene),this.model=e,this._buffer=new xa,this._dataTextureState=new Sa,this._dataTextureGenerator=new Ba,this._state=new Ze({origin:p.vec3(t.origin),textureState:this._dataTextureState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits: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._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._subPortions=[],this._portionToSubPortionsMap=[],this._bucketGeometries={},this._meshes=[],this._aabb=p.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){p.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&Ma.cannotCreatePortion.because10BitsObjectId++;let s=this._numPortions+t<=65536;const i=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[i]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let i=0,r=0;e.buckets.forEach((e=>{i+=e.positionsCompressed.length/3,r+=e.indices.length/2})),(this._state.numVertices+i>4096*La||t+r>4096*La)&&Ma.cannotCreatePortion.becauseTextureSize++,s&&=this._state.numVertices+i<=4096*La&&t+r<=4096*La}return s}createPortion(e,t){if(this._finalized)throw"Already finalized";const s=[];t.buckets.forEach(((e,i)=>{const r=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${i}`:`${t.id}#${i}`;let o=this._bucketGeometries[r];o||(o=this._createBucketGeometry(t,e),this._bucketGeometries[r]=o);const n=this._createSubPortion(t,o,e);s.push(n)}));const i=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(s),this.model.numPortions++,this._meshes.push(e),i}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/2/8)*2;Ma.overheadSizeAlignementIndices+=2*(e-t.indices.length);const s=new Uint32Array(e);s.fill(0),s.set(t.indices),t.indices=s}const s=t.positionsCompressed,i=t.indices,r=this._buffer;r.positionsCompressed.push(s);const o=r.lenPositionsCompressed/3,n=s.length/3;let a;r.lenPositionsCompressed+=s.length;let l=0;if(i){let e;l=i.length/2,n<=256?(e=r.indices8Bits,a=r.lenIndices8Bits/2,r.lenIndices8Bits+=i.length):n<=65536?(e=r.indices16Bits,a=r.lenIndices16Bits/2,r.lenIndices16Bits+=i.length):(e=r.indices32Bits,a=r.lenIndices32Bits/2,r.lenIndices32Bits+=i.length),e.push(i)}this._state.numVertices+=n,Ma.numberOfGeometries++;return{vertexBase:o,numVertices:n,numLines:l,indicesBase:a}}_createSubPortion(e,t){const s=e.color,i=e.colors,r=e.opacity,o=e.meshMatrix,n=e.pickColor,a=this._buffer,l=this._state;a.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),a.perObjectInstancePositioningMatrices.push(o||Va),a.perObjectSolid.push(!!e.solid),i?a.perObjectColors.push([255*i[0],255*i[1],255*i[2],255]):s&&a.perObjectColors.push([s[0],s[1],s[2],r]),a.perObjectPickColors.push(n),a.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?l.numIndices8Bits:t.numVertices<=65536?l.numIndices16Bits:l.numIndices32Bits,a.perObjectIndexBaseOffsets.push(e/2-t.indicesBase)}const h=this._subPortions.length;if(t.numLines>0){let e,s=2*t.numLines;t.numVertices<=256?(e=a.perLineNumberPortionId8Bits,l.numIndices8Bits+=s,Ma.totalLines8Bits+=t.numLines):t.numVertices<=65536?(e=a.perLineNumberPortionId16Bits,l.numIndices16Bits+=s,Ma.totalLines16Bits+=t.numLines):(e=a.perLineNumberPortionId32Bits,l.numIndices32Bits+=s,Ma.totalLines32Bits+=t.numLines),Ma.totalLines+=t.numLines;for(let s=0;s0&&(t.texturePerLineIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(s,i.indices8Bits,i.lenIndices8Bits)),i.lenIndices16Bits>0&&(t.texturePerLineIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(s,i.indices16Bits,i.lenIndices16Bits)),i.lenIndices32Bits>0&&(t.texturePerLineIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(s,i.indices32Bits,i.lenIndices32Bits)),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}))}initFlags(e,t,s){t&z&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&Y&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(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&z?(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&J?(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&q?(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&$?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,s)}setEdges(e,t,s){}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&X?(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&K?(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&Y?(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,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),i.texSubImage2D(i.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,i.RGBA_INTEGER,i.UNSIGNED_BYTE,Ha))}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s,i=!1){const r=this._portionToSubPortionsMap[e];for(let e=0,o=r.length;e=10&&this._beginDeferredFlags(),u.bindTexture(u.TEXTURE_2D,c.texturePerObjectColorsAndFlags._texture),u.texSubImage2D(u.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,u.RGBA_INTEGER,u.UNSIGNED_BYTE,Ha))}_setDeferredFlags(){}_setFlags2(e,t,s=!1){const i=this._portionToSubPortionsMap[e];for(let e=0,r=i.length;e=10&&this._beginDeferredFlags(),o.bindTexture(o.TEXTURE_2D,r.texturePerObjectColorsAndFlags._texture),o.texSubImage2D(o.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,o.RGBA_INTEGER,o.UNSIGNED_BYTE,Ha))}_setDeferredFlags2(){}setOffset(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectOffsets._texture),i.texSubImage2D(i.TEXTURE_2D,0,0,e,1,1,i.RGB,i.FLOAT,Ga))}setMatrix(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectInstanceMatrices._texture),i.texSubImage2D(i.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,i.RGBA,i.FLOAT,Ua))}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ki.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ki.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){}drawSilhouetteHighlighted(e,t){}drawSilhouetteSelected(e,t){}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawEdgesXRayed(e,t){}drawOcclusion(e,t){}drawShadow(e,t){}setPickMatrices(e,t){}drawPickMesh(e,t){}drawPickDepths(e,t){}drawSnapInit(e,t){}drawSnap(e,t){}drawPickNormals(e,t){}destroy(){if(this._destroyed)return;const e=this._state;this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}const Qa=p.vec3(),Wa=p.vec3(),za=p.vec3();p.vec3();const Ka=p.vec4(),Ya=p.mat4();class Xa{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=o;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=Qa;if(m){const t=p.transformPoint3(u,h,Wa);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=V(r.viewMatrix,e,Ya),f=za,f[0]=r.eye[0]-e[0],f[1]=r.eye[1]-e[1],f[2]=r.eye[2]-e[2]}else d=r.viewMatrix,f=r.eye;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,f),n.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const E=i._sectionPlanesState.getNumAllocatedSectionPlanes(),g=i._sectionPlanesState.sectionPlanes.length;if(E>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl,s=e._lightsState;if(this._program=new Ne(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uLightAmbient=i.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];const r=s.lights;let o;for(let e=0,t=r.length;e0;let r;const o=[];o.push("#version 300 es"),o.push("// TrianglesDataTextureColorRenderer vertex shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("precision highp usampler2D;"),o.push("precision highp isampler2D;"),o.push("precision highp sampler2D;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("precision mediump usampler2D;"),o.push("precision mediump isampler2D;"),o.push("precision mediump sampler2D;"),o.push("#endif"),o.push("uniform int renderPass;"),o.push("uniform mat4 sceneModelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),o.push("uniform highp sampler2D uTexturePerObjectMatrix;"),o.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),o.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),o.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),o.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),o.push("uniform vec3 uCameraEyeRtc;"),o.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("out float isPerspective;")),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e> 3) & 4095;"),o.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),o.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),o.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),o.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),o.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),o.push("if (int(flags.x) != renderPass) {"),o.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),o.push(" return;"),o.push("} else {"),o.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),o.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),o.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),o.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),o.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),o.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),o.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),o.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),o.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),o.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));"),o.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));"),o.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),o.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),o.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),o.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),o.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),o.push("if (color.a == 0u) {"),o.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),o.push(" return;"),o.push("};"),o.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),o.push("vec3 position;"),o.push("position = positions[gl_VertexID % 3];"),o.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),o.push("if (solid != 1u) {"),o.push("if (isPerspectiveMatrix(projMatrix)) {"),o.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),o.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),o.push("position = positions[2 - (gl_VertexID % 3)];"),o.push("viewNormal = -viewNormal;"),o.push("}"),o.push("} else {"),o.push("if (viewNormal.z < 0.0) {"),o.push("position = positions[2 - (gl_VertexID % 3)];"),o.push("viewNormal = -viewNormal;"),o.push("}"),o.push("}"),o.push("}"),o.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),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;");for(let e=0,t=s.lights.length;e0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesDataTextureColorRenderer 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("}")),s){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let e=0,s=t.getNumAllocatedSectionPlanes();e 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),this._withSAO?(i.push(" float viewportWidth = uSAOParams[0];"),i.push(" float viewportHeight = uSAOParams[1];"),i.push(" float blendCutoff = uSAOParams[2];"),i.push(" float blendFactor = uSAOParams[3];"),i.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),i.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),i.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):i.push(" outColor = vColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Za=new Float32Array([1,1,1]),qa=p.vec3(),Ja=p.vec3(),$a=p.vec3();p.vec3();const el=p.mat4();class tl{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=o,d=r.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f,m;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),h||0!==c[0]||0!==c[1]||0!==c[2]){const e=qa;if(h){const t=Ja;p.transformPoint3(u,h,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],f=V(d,e,el),m=$a,m[0]=r.eye[0]-e[0],m[1]=r.eye[1]-e[1],m[2]=r.eye[2]-e[2]}else f=d,m=r.eye;if(n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uWorldMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),s===Ki.SILHOUETTE_XRAYED){const e=i.xrayMaterial._state,t=e.fillColor,s=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Ki.SILHOUETTE_HIGHLIGHTED){const e=i.highlightMaterial._state,t=e.fillColor,s=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Ki.SILHOUETTE_SELECTED){const e=i.selectedMaterial._state,t=e.fillColor,s=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else n.uniform4fv(this._uColor,Za);if(i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const y=i._sectionPlanesState.getNumAllocatedSectionPlanes(),E=i._sectionPlanesState.sectionPlanes.length;if(y>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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 sl=new Float32Array([0,0,0,1]),il=p.vec3(),rl=p.vec3();p.vec3();const ol=p.mat4();class nl{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=i,d=o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=il;if(m){const t=p.transformPoint3(u,h,rl);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],f=V(d,e,ol)}else f=d;if(n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),s===Ki.EDGES_XRAYED){const e=r.xrayMaterial._state,t=e.edgeColor,s=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Ki.EDGES_HIGHLIGHTED){const e=r.highlightMaterial._state,t=e.edgeColor,s=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else if(s===Ki.EDGES_SELECTED){const e=r.selectedMaterial._state,t=e.edgeColor,s=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],s)}else n.uniform4fv(this._uColor,sl);const E=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(E>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,o=i.renderFlags;for(let t=0;t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(n.LINES,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(n.LINES,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(n.LINES,0,a.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// DTXTrianglesEdgesRenderer 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("// DTXTrianglesEdgesRenderer 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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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 al=p.vec3(),ll=p.vec3(),hl=p.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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=i,d=o.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=al;if(m){const t=p.transformPoint3(u,h,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]+=c[0],e[1]+=c[1],e[2]+=c[2],f=V(d,e,hl)}else f=d;n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);const E=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(E>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,o=i.renderFlags;for(let t=0;t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(n.LINES,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(n.LINES,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(n.LINES,0,a.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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=p.vec3(),Al=p.vec3(),pl=p.vec3(),dl=p.mat4();class fl{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=i;let d,f;l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=ul;if(m){const t=p.transformPoint3(u,h,Al);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=V(o.viewMatrix,e,dl),f=pl,f[0]=o.eye[0]-e[0],f[1]=o.eye[1]-e[1],f[2]=o.eye[2]-e[2]}else d=o.viewMatrix,f=o.eye;if(n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),n.uniform3fv(this._uCameraEyeRtc,f),n.uniform1i(this._uRenderPass,s),r.logarithmicDepthBufferEnabled){const e=2/(Math.log(o.project.far+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}const E=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(E>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,o=i.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=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("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 i=0;i 0.0);"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(i=0;i 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 ml=p.vec3(),yl=p.vec3(),El=p.vec3();p.vec3();const gl=p.mat4();class vl{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=i,d=e.pickViewMatrix||o.viewMatrix;let f,m;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),h||0!==c[0]||0!==c[1]||0!==c[2]){const t=ml;if(h){const e=yl;p.transformPoint3(u,h,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],f=V(d,t,gl),m=El,m[0]=o.eye[0]-t[0],m[1]=o.eye[1]-t[1],m[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=d,m=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniform1f(this._uPickZNear,e.pickZNear),n.uniform1f(this._uPickZFar,e.pickZFar),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),r.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const y=r._sectionPlanesState.getNumAllocatedSectionPlanes(),E=r._sectionPlanesState.sectionPlanes.length;if(y>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,o=i.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=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 i=0;i 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(i=0;i 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 Il=p.vec3(),_l=p.vec3(),Tl=p.vec3(),Pl=p.vec3();p.vec3();const bl=p.mat4();class Rl{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=i,d=t.aabb,f=e.pickViewMatrix||o.viewMatrix,m=Il;let y,E;m[0]=p.safeInv(d[3]-d[0])*p.MAX_INT,m[1]=p.safeInv(d[4]-d[1])*p.MAX_INT,m[2]=p.safeInv(d[5]-d[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(m[0]),e.snapPickCoordinateScale[1]=p.safeInv(m[1]),e.snapPickCoordinateScale[2]=p.safeInv(m[2]),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const g=0!==h[0]||0!==h[1]||0!==h[2],v=0!==c[0]||0!==c[1]||0!==c[2];if(g||v){const t=_l;if(g){const e=p.transformPoint3(u,h,Tl);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],y=V(f,t,bl),E=Pl,E[0]=o.eye[0]-t[0],E[1]=o.eye[1]-t[1],E[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,E=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,E),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,m),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,y),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const I=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(I>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*_,o=i.renderFlags;for(let t=0;t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(T,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(T,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(T,0,a.numEdgeIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var i=0;i 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 Dl=p.vec3(),Cl=p.vec3(),Nl=p.vec3(),Ol=p.vec3();p.vec3();const xl=p.mat4();class Sl{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=i,d=t.aabb,f=e.pickViewMatrix||o.viewMatrix,m=Dl;let y,E;m[0]=p.safeInv(d[3]-d[0])*p.MAX_INT,m[1]=p.safeInv(d[4]-d[1])*p.MAX_INT,m[2]=p.safeInv(d[5]-d[2])*p.MAX_INT,e.snapPickCoordinateScale[0]=p.safeInv(m[0]),e.snapPickCoordinateScale[1]=p.safeInv(m[1]),e.snapPickCoordinateScale[2]=p.safeInv(m[2]),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const g=0!==h[0]||0!==h[1]||0!==h[2],v=0!==c[0]||0!==c[1]||0!==c[2];if(g||v){const t=Cl;if(g){const e=Nl;p.transformPoint3(u,h,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],y=V(f,t,xl),E=Ol,E[0]=o.eye[0]-t[0],E[1]=o.eye[1]-t[1],E[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else y=f,E=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,E),n.uniform2fv(this._uVectorA,e.snapVectorA),n.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,m),n.uniform1i(this._uRenderPass,s),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,y),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const I=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(I>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*_,o=i.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,s=[];return s.push("#version 300 es"),s.push("// DTXTrianglesSnapInitRenderer 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("// DTXTrianglesSnapInitRenderer 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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var i=0;i 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(${p.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 wl=p.vec3(),Ml=p.vec3(),Bl=p.vec3();p.vec3();const Fl=p.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){const i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=i,d=e.pickViewMatrix||o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let f,m;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),h||0!==c[0]||0!==c[1]||0!==c[2]){const e=wl;if(h){const t=Ml;p.transformPoint3(u,h,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],f=V(d,e,Fl),m=Bl,m[0]=o.eye[0]-e[0],m[1]=o.eye[1]-e[1],m[2]=o.eye[2]-e[2]}else f=d,m=o.eye;n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uWorldMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);const y=r._sectionPlanesState.getNumAllocatedSectionPlanes(),E=r._sectionPlanesState.sectionPlanes.length;if(y>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*E,o=i.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=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 Ul=p.vec3(),Hl=p.vec3(),Gl=p.vec3();p.vec3();const kl=p.mat4();class Vl{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=o;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=Ul;if(m){const t=p.transformPoint3(u,h,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]+=c[0],e[1]+=c[1],e[2]+=c[2],d=V(r.viewMatrix,e,kl),f=Gl,f[0]=r.eye[0]-e[0],f[1]=r.eye[1]-e[1],f[2]=r.eye[2]-e[2]}else d=r.viewMatrix,f=r.eye;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,f),n.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const E=i._sectionPlanesState.getNumAllocatedSectionPlanes(),g=i._sectionPlanesState.sectionPlanes.length;if(E>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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 jl=p.vec3(),Ql=p.vec3(),Wl=p.vec3();p.vec3();const zl=p.mat4();class Kl{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 i=t.model,r=i.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=i,A=o.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 m=0!==l[0]||0!==l[1]||0!==l[2],y=0!==h[0]||0!==h[1]||0!==h[2];if(m||y){const e=jl;if(m){const t=Ql;p.transformPoint3(c,l,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]+=h[0],e[1]+=h[1],e[2]+=h[2],d=V(A,e,zl),f=Wl,f[0]=o.eye[0]-e[0],f[1]=o.eye[1]-e[1],f[2]=o.eye[2]-e[2]}else d=A,f=o.eye;n.uniform1i(this._uRenderPass,s),n.uniformMatrix4fv(this._uWorldMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),n.uniformMatrix4fv(this._uViewNormalMatrix,!1,o.viewNormalMatrix),n.uniformMatrix4fv(this._uWorldNormalMatrix,!1,i.worldNormalMatrix);const E=r._sectionPlanesState.getNumAllocatedSectionPlanes(),g=r._sectionPlanesState.sectionPlanes.length;if(E>0){const e=r._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,o=i.renderFlags;for(let t=0;t0,s=[];return s.push("// Batched geometry normals vertex shader"),e.logarithmicDepthBufferEnabled&&ve.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;"),ve.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&&(ve.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&&ve.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&&ve.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 i=0;i 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&ve.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 Yl=p.vec3(),Xl=p.vec3(),Zl=p.vec3();p.vec3(),p.vec4();const ql=p.mat4();class Jl{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 i=this._scene,r=i.camera,o=t.model,n=i.canvas.gl,a=t._state,l=a.textureState,h=t._state.origin,{position:c,rotationMatrix:u,rotationMatrixConjugate:A}=o;if(!this._program&&(this._allocate(),this.errors))return;let d,f;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==h[0]||0!==h[1]||0!==h[2],y=0!==c[0]||0!==c[1]||0!==c[2];if(m||y){const e=Yl;if(m){const t=p.transformPoint3(u,h,Xl);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=V(r.viewMatrix,e,ql),f=Zl,f[0]=r.eye[0]-e[0],f[1]=r.eye[1]-e[1],f[2]=r.eye[2]-e[2]}else d=r.viewMatrix,f=r.eye;if(n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,A),n.uniformMatrix4fv(this._uViewMatrix,!1,d),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,f),n.uniform1i(this._uRenderPass,s),i.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const E=i._sectionPlanesState.getNumAllocatedSectionPlanes(),g=i._sectionPlanesState.sectionPlanes.length;if(E>0){const e=i._sectionPlanesState.sectionPlanes,s=t.layerIndex*g,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Ne(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,i=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,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let t=0,i=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(${p.MAX_INT}), 1.0);`),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class $l{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._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=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 tl(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new fl(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new vl(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new Jl(this._scene)),this._snapRenderer||(this._snapRenderer=new Rl(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new Sl(this._scene)),this._snapRenderer||(this._snapRenderer=new Rl(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Xa(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Xa(this._scene,!0)),this._colorRendererWithSAO}get colorQualityRendererWithSAO(){return this._colorQualityRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new tl(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Vl(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Kl(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new nl(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new cl(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new fl(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Jl(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new Jl(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new vl(this._scene)),this._pickDepthRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Rl(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Sl(this._scene)),this._snapInitRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Ll(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._snapRenderer&&this._snapRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const eh={};class th{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 sh{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,i,r){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,s,2),this.texturePerObjectColorsAndFlags.bindTexture(e,i,3),this.texturePerObjectInstanceMatrices.bindTexture(e,r,4)}bindTriangleIndicesTextures(e,t,s,i){this.indicesPortionIdsPerBitnessTextures[i].bindTexture(e,t,5),this.indicesPerBitnessTextures[i].bindTexture(e,s,6)}bindEdgeIndicesTextures(e,t,s,i){this.edgeIndicesPortionIdsPerBitnessTextures[i].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[i].bindTexture(e,s,6)}}const ih={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(ih,null,4));let e=0;Object.keys(ih).forEach((t=>{t.startsWith("size")&&(e+=ih[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/ih.totalPolygons).toFixed(2)}`);let t={};Object.keys(ih).forEach((s=>{s.startsWith("size")&&(t[s]=`${(ih[s]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class rh{constructor(){}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)}createTextureForColorsAndFlags(e,t,s,i,r,o,n){const a=t.length;this.numPortions=a;const l=4096,h=Math.ceil(a/512);if(0===h)throw"texture height===0";const c=new Uint8Array(16384*h);ih.sizeDataColorsAndFlags+=c.byteLength,ih.numberOfTextures++;for(let e=0;e>24&255,i[e]>>16&255,i[e]>>8&255,255&i[e]],32*e+16),c.set([r[e]>>24&255,r[e]>>16&255,r[e]>>8&255,255&r[e]],32*e+20),c.set([o[e]>>24&255,o[e]>>16&255,o[e]>>8&255,255&o[e]],32*e+24),c.set([n[e]?1:0,0,0,0],32*e+28);const u=e.createTexture();return e.bindTexture(e.TEXTURE_2D,u),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,l,h),e.texSubImage2D(e.TEXTURE_2D,0,0,0,l,h,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 wa(e,u,l,h,c)}createTextureForObjectOffsets(e,t){const s=512,i=Math.ceil(t/s);if(0===i)throw"texture height===0";const r=new Float32Array(1536*i).fill(0);ih.sizeDataTextureOffsets+=r.byteLength,ih.numberOfTextures++;const o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,s,i),e.texSubImage2D(e.TEXTURE_2D,0,0,0,s,i,e.RGB,e.FLOAT,r,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 wa(e,o,s,i,r)}createTextureForInstancingMatrices(e,t){const s=t.length;if(0===s)throw"num instance matrices===0";const i=2048,r=Math.ceil(s/512),o=new Float32Array(8192*r);ih.numberOfTextures++;for(let e=0;e{s._compile(),s.eagerCreateRenders()})),e.on("destroyed",(()=>{delete eh[t],s._destroy()}))),s}(e.scene),this.model=e,this._buffer=new th,this._dtxState=new sh,this._dtxTextureFactory=new rh,this._state=new Ze({origin:p.vec3(t.origin),metallicRoughnessBuf:null,textureState:this._dtxState,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=p.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){p.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&ih.cannotCreatePortion.because10BitsObjectId++;let s=this._numPortions+t<=65536;const i=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[i]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let i=0,r=0;e.buckets.forEach((e=>{i+=e.positionsCompressed.length/3,r+=e.indices.length/3})),(this._state.numVertices+i>4096*nh||t+r>4096*nh)&&ih.cannotCreatePortion.becauseTextureSize++,s&&=this._state.numVertices+i<=4096*nh&&t+r<=4096*nh}return s}createPortion(e,t){if(this._finalized)throw"Already finalized";const s=[];t.buckets.forEach(((e,i)=>{const r=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${i}`:`${t.id}#${i}`;let o=this._bucketGeometries[r];o||(o=this._createBucketGeometry(t,e),this._bucketGeometries[r]=o);const n=this._createSubPortion(t,o,e);s.push(n)}));const i=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(s),this.model.numPortions++,this._meshes.push(e),i}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/3/8)*3;ih.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;ih.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,i=t.indices,r=t.edgeIndices,o=this._buffer;o.positionsCompressed.push(s);const n=o.lenPositionsCompressed/3,a=s.length/3;let l;o.lenPositionsCompressed+=s.length;let h,c=0;if(i){let e;c=i.length/3,a<=256?(e=o.indices8Bits,l=o.lenIndices8Bits/3,o.lenIndices8Bits+=i.length):a<=65536?(e=o.indices16Bits,l=o.lenIndices16Bits/3,o.lenIndices16Bits+=i.length):(e=o.indices32Bits,l=o.lenIndices32Bits/3,o.lenIndices32Bits+=i.length),e.push(i)}let u=0;if(r){let e;u=r.length/2,a<=256?(e=o.edgeIndices8Bits,h=o.lenEdgeIndices8Bits/2,o.lenEdgeIndices8Bits+=r.length):a<=65536?(e=o.edgeIndices16Bits,h=o.lenEdgeIndices16Bits/2,o.lenEdgeIndices16Bits+=r.length):(e=o.edgeIndices32Bits,h=o.lenEdgeIndices32Bits/2,o.lenEdgeIndices32Bits+=r.length),e.push(r)}this._state.numVertices+=a,ih.numberOfGeometries++;return{vertexBase:n,numVertices:a,numTriangles:c,numEdges:u,indicesBase:l,edgeIndicesBase:h}}_createSubPortion(e,t,s,i){const r=e.color;e.metallic,e.roughness;const o=e.colors,n=e.opacity,a=e.meshMatrix,l=e.pickColor,h=this._buffer,c=this._state;h.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),h.perObjectInstancePositioningMatrices.push(a||uh),h.perObjectSolid.push(!!e.solid),o?h.perObjectColors.push([255*o[0],255*o[1],255*o[2],255]):r&&h.perObjectColors.push([r[0],r[1],r[2],n]),h.perObjectPickColors.push(l),h.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?c.numIndices8Bits:t.numVertices<=65536?c.numIndices16Bits:c.numIndices32Bits,h.perObjectIndexBaseOffsets.push(e/3-t.indicesBase)}{let e;e=t.numVertices<=256?c.numEdgeIndices8Bits:t.numVertices<=65536?c.numEdgeIndices16Bits:c.numEdgeIndices32Bits,h.perObjectEdgeIndexBaseOffsets.push(e/2-t.edgeIndicesBase)}const u=this._subPortions.length;if(t.numTriangles>0){let e,s=3*t.numTriangles;t.numVertices<=256?(e=h.perTriangleNumberPortionId8Bits,c.numIndices8Bits+=s,ih.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(e=h.perTriangleNumberPortionId16Bits,c.numIndices16Bits+=s,ih.totalPolygons16Bits+=t.numTriangles):(e=h.perTriangleNumberPortionId32Bits,c.numIndices32Bits+=s,ih.totalPolygons32Bits+=t.numTriangles),ih.totalPolygons+=t.numTriangles;for(let s=0;s0){let e,s=2*t.numEdges;t.numVertices<=256?(e=h.perEdgeNumberPortionId8Bits,c.numEdgeIndices8Bits+=s,ih.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(e=h.perEdgeNumberPortionId16Bits,c.numEdgeIndices16Bits+=s,ih.totalEdges16Bits+=t.numEdges):(e=h.perEdgeNumberPortionId32Bits,c.numEdgeIndices32Bits+=s,ih.totalEdges32Bits+=t.numEdges),ih.totalEdges+=t.numEdges;for(let s=0;s0&&(t.texturePerEdgeIdPortionIds8Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(s,i.perEdgeNumberPortionId8Bits)),i.perEdgeNumberPortionId16Bits.length>0&&(t.texturePerEdgeIdPortionIds16Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(s,i.perEdgeNumberPortionId16Bits)),i.perEdgeNumberPortionId32Bits.length>0&&(t.texturePerEdgeIdPortionIds32Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(s,i.perEdgeNumberPortionId32Bits)),i.lenIndices8Bits>0&&(t.texturePerPolygonIdIndices8Bits=this._dtxTextureFactory.createTextureFor8BitIndices(s,i.indices8Bits,i.lenIndices8Bits)),i.lenIndices16Bits>0&&(t.texturePerPolygonIdIndices16Bits=this._dtxTextureFactory.createTextureFor16BitIndices(s,i.indices16Bits,i.lenIndices16Bits)),i.lenIndices32Bits>0&&(t.texturePerPolygonIdIndices32Bits=this._dtxTextureFactory.createTextureFor32BitIndices(s,i.indices32Bits,i.lenIndices32Bits)),i.lenEdgeIndices8Bits>0&&(t.texturePerPolygonIdEdgeIndices8Bits=this._dtxTextureFactory.createTextureFor8BitsEdgeIndices(s,i.edgeIndices8Bits,i.lenEdgeIndices8Bits)),i.lenEdgeIndices16Bits>0&&(t.texturePerPolygonIdEdgeIndices16Bits=this._dtxTextureFactory.createTextureFor16BitsEdgeIndices(s,i.edgeIndices16Bits,i.lenEdgeIndices16Bits)),i.lenEdgeIndices32Bits>0&&(t.texturePerPolygonIdEdgeIndices32Bits=this._dtxTextureFactory.createTextureFor32BitsEdgeIndices(s,i.edgeIndices32Bits,i.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&z&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&q&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&X&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&Y&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(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&z?(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&J?(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&q?(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&$?(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&ee?(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&X?(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._dtxState;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&K?(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&Y?(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,i=s.length;e=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),i.texSubImage2D(i.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,i.RGBA_INTEGER,i.UNSIGNED_BYTE,lh)}setTransparent(e,t,s){s?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,s)}_setFlags(e,t,s,i=!1){const r=this._portionToSubPortionsMap[e];for(let e=0,o=r.length;e=10&&this._beginDeferredFlags(),d.bindTexture(d.TEXTURE_2D,p.texturePerObjectColorsAndFlags._texture),d.texSubImage2D(d.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,d.RGBA_INTEGER,d.UNSIGNED_BYTE,lh))}_setDeferredFlags(){}_setFlags2(e,t,s=!1){const i=this._portionToSubPortionsMap[e];for(let e=0,r=i.length;e=10&&this._beginDeferredFlags(),o.bindTexture(o.TEXTURE_2D,r.texturePerObjectColorsAndFlags._texture),o.texSubImage2D(o.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,o.RGBA_INTEGER,o.UNSIGNED_BYTE,lh))}_setDeferredFlags2(){}setOffset(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectOffsets._texture),i.texSubImage2D(i.TEXTURE_2D,0,0,e,1,1,i.RGB,i.FLOAT,hh))}setMatrix(e,t){const s=this._portionToSubPortionsMap[e];for(let e=0,i=s.length;e=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,s.texturePerObjectInstanceMatrices._texture),i.texSubImage2D(i.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,i.RGBA,i.FLOAT,ah))}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._renderers.colorRendererWithSAO&&this._renderers.colorRendererWithSAO.drawLayer(t,this,Ki.COLOR_OPAQUE):this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ki.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._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ki.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._renderers.depthRenderer&&this._renderers.depthRenderer.drawLayer(t,this,Ki.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._renderers.normalsRenderer&&this._renderers.normalsRenderer.drawLayer(t,this,Ki.COLOR_OPAQUE))}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ki.SILHOUETTE_XRAYED))}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ki.SILHOUETTE_HIGHLIGHTED))}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ki.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._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(t,this,Ki.EDGES_COLOR_OPAQUE)}drawEdgesColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(t,this,Ki.EDGES_COLOR_TRANSPARENT)}drawEdgesHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,Ki.EDGES_HIGHLIGHTED)}drawEdgesSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,Ki.EDGES_SELECTED)}drawEdgesXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,Ki.EDGES_XRAYED)}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(t,this,Ki.COLOR_OPAQUE))}drawShadow(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.shadowRenderer&&this._renderers.shadowRenderer.drawLayer(t,this,Ki.COLOR_OPAQUE))}setPickMatrices(e,t){}drawPickMesh(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(t,this,Ki.PICK))}drawPickDepths(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(t,this,Ki.PICK))}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,Ki.PICK))}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,Ki.PICK))}drawPickNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickNormalsRenderer&&this._renderers.pickNormalsRenderer.drawLayer(t,this,Ki.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}}class ph{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 dh{constructor(e){this.id=e.id,this.texture=e.texture}destroy(){this.texture&&(this.texture.destroy(),this.texture=null)}}const fh={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={}}};const mh=new class{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(r),this.manager.itemEnd(e)}),0),r;if(void 0!==yh[e])return void yh[e].push({onLoad:t,onProgress:s,onError:i});yh[e]=[],yh[e].push({onLoad:t,onProgress:s,onError:i});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),n=this.mimeType,a=this.responseType;fetch(o).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=yh[e],i=t.body.getReader(),r=t.headers.get("Content-Length"),o=r?parseInt(r):0,n=0!==o;let a=0;const l=new ReadableStream({start(e){!function t(){i.read().then((({done:i,value:r})=>{if(i)e.close();else{a+=r.byteLength;const i=new ProgressEvent("progress",{lengthComputable:n,loaded:a,total:o});for(let e=0,t=s.length;e{switch(a){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,n)));case"json":return e.json();default:if(void 0===n)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(n),s=t&&t[1]?t[1].toLowerCase():void 0,i=new TextDecoder(s);return e.arrayBuffer().then((e=>i.decode(e)))}}})).then((t=>{fh.add(e,t);const s=yh[e];delete yh[e];for(let e=0,i=s.length;e{const s=yh[e];if(void 0===s)throw this.manager.itemError(e),t;delete yh[e];for(let e=0,i=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 gh{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 i=this._getIdleWorker();-1!==i?(this._initWorker(i),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}let vh=0;class Ih{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 gh,this._workerSourceURL="",s&&this._workerPool.setWorkerLimit(s);const i=e.capabilities;this._workerConfig={astcSupported:i.astcSupported,etc1Supported:i.etc1Supported,etc2Supported:i.etc2Supported,dxtSupported:i.dxtSupported,bptcSupported:i.bptcSupported,pvrtcSupported:i.pvrtcSupported},this._supportedFileTypes=["xkt2"]}_init(){if(!this._transcoderPending){const e=new Eh;e.setPath(this._transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),s=new Eh;s.setPath(this._transcoderPath),s.setResponseType("arraybuffer"),s.setWithCredentials(this.withCredentials);const i=s.loadAsync("basis_transcoder.wasm");this._transcoderPending=Promise.all([t,i]).then((([e,t])=>{const s=Ih.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(Ih.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(Ih.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Ih.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this._workerSourceURL=URL.createObjectURL(new Blob([i])),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}))})),vh>0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),vh++}return this._transcoderPending}transcode(e,t,s={}){return new Promise(((i,r)=>{const o=s;this._init().then((()=>this._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:o},e))).then((e=>{const s=e.data,{mipmaps:o,width:n,height:a,format:l,type:h,error:c,dfdTransferFn:u,dfdFlags:A}=s;if("error"===h)return r(c);t.setCompressedData({mipmaps:o,props:{format:l,minFilter:1===o.length?is:os,magFilter:1===o.length?is:os,encoding:2===u?gs:Es,premultiplyAlpha:!!(1&A)}}),i()}))}))}destroy(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),vh--}}Ih.BasisFormat={ETC1S:0,UASTC_4x4:1},Ih.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},Ih.EngineFormat={RGBAFormat:as,RGBA_ASTC_4x4_Format:ms,RGBA_BPTC_Format:ys,RGBA_ETC2_EAC_Format:fs,RGBA_PVRTC_4BPPV1_Format:ps,RGBA_S3TC_DXT5_Format:us,RGB_ETC1_Format:36196,RGB_ETC2_Format:ds,RGB_PVRTC_4BPPV1_Format:As,RGB_S3TC_DXT1_Format:ls},Ih.BasisWorker=function(){let e,t,s;const i=_EngineFormat,r=_TranscoderFormat,o=_BasisFormat;self.addEventListener("message",(function(n){const c=n.data;switch(c.type){case"init":e=c.config,u=c.transcoderBinary,t=new Promise((e=>{s={wasmBinary:u,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:n,hasAlpha:u,mipmaps:A,format:p,dfdTransferFn:d,dfdFlags:f}=function(t){const n=new s.KTX2File(new Uint8Array(t));function c(){n.close(),n.delete()}if(!n.isValid())throw c(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");const u=n.isUASTC()?o.UASTC_4x4:o.ETC1S,A=n.getWidth(),p=n.getHeight(),d=n.getLevels(),f=n.getHasAlpha(),m=n.getDFDTransferFunc(),y=n.getDFDFlags(),{transcoderFormat:E,engineFormat:g}=function(t,s,n,c){let u,A;const p=t===o.ETC1S?a:l;for(let i=0;i{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 i=this._eventSubs[e];i||(i=[],this._eventSubs[e]=i),i.push(t)}fire(e,t){const i=this._eventSubs[e];if(i)for(let e=0,s=i.length;e{const i=this._getNextId(),n=new s(i);for(let i=0,s=e.length;i0,A=this._getNextId(),h=i.getTitle||(()=>i.title||""),c=i.doAction||i.callback||(()=>{}),u=i.getEnabled||(()=>!0),d=i.getShown||(()=>!0),p=new o(A,h,c,u,d);if(p.parentMenu=n,a.items.push(p),l){const e=t(r);p.subMenu=e,e.parentItem=p}this._itemList.push(p),this._itemMap[p.id]=p}}return this._menuList.push(n),this._menuMap[n.id]=n,n};this._rootMenu=t(e)}_getNextId(){return"ContextMenu_"+this._id+"_"+this._nextId++}_createUI(){const e=t=>{this._createMenuUI(t);const i=t.groups;for(let t=0,s=i.length;t'),i.push("
    "),t)for(let e=0,s=t.length;e'+l+" [MORE]"):i.push('
  • '+l+"
  • ")}}i.push("
"),i.push("");const s=i.join("");document.body.insertAdjacentHTML("beforeend",s);const r=document.querySelector("."+e.id);e.menuElement=r,r.style["border-radius"]="4px",r.style.display="none",r.style["z-index"]=3e5,r.style.background="white",r.style.border="1px solid black",r.style["box-shadow"]="0 4px 5px 0 gray",r.oncontextmenu=e=>{e.preventDefault()};const o=this;let n=null;if(t)for(let e=0,i=t.length;e{e.preventDefault();const i=t.subMenu;if(!i)return void(n&&(o._hideMenu(n.id),n=null));if(n&&n.id!==i.id&&(o._hideMenu(n.id),n=null),!1===t.enabled)return;const s=t.itemElement,r=i.menuElement,a=s.getBoundingClientRect();r.getBoundingClientRect();a.right+200>window.innerWidth?o._showMenu(i.id,a.left-200,a.top-1):o._showMenu(i.id,a.right-5,a.top-1),n=i})),s||(t.itemElement.addEventListener("click",(e=>{e.preventDefault(),o._context&&!1!==t.enabled&&(t.doAction&&t.doAction(o._context),this._hideOnAction?o.hide():(o._updateItemsTitles(),o._updateItemsEnabledStatus()))})),t.itemElement.addEventListener("mouseenter",(e=>{e.preventDefault(),!1!==t.enabled&&t.doHover&&t.doHover(o._context)})))):console.error("ContextMenu item element not found: "+t.id)}}}_updateItemsTitles(){if(this._context)for(let e=0,t=this._itemList.length;ewindow.innerHeight&&(i=window.innerHeight-s),t+r>window.innerWidth&&(t=window.innerWidth-r),e.style.left=t+"px",e.style.top=i+"px"}_hideMenuElement(e){e.style.display="none"}}let a=!0,l=a?Float64Array:Float32Array;const A=new l(3),h=new l(16),c=new l(16),u=new l(4),d={setDoublePrecisionEnabled(e){a=e,l=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 i=t.indexOf("#");return i===e.length&&t.startsWith(e)?t.substring(i+1):t},globalizeObjectId:(e,t)=>e+"#"+t,safeInv(e){const t=1/e;return isNaN(t)||!isFinite(t)?1:t},vec2:e=>new l(e||2),vec3:e=>new l(e||3),vec4:e=>new l(e||4),mat3:e=>new l(e||9),mat3ToMat4:(e,t=new l(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 l(e||16),mat4ToMat3(e,t){},doublesToFloats(e,t,i){const s=new l(2);for(let r=0,o=e.length;r{const e=[];for(let t=0;t<256;t++)e[t]=(t<16?"0":"")+t.toString(16);return()=>{const t=4294967295*Math.random()|0,i=4294967295*Math.random()|0,s=4294967295*Math.random()|0,r=4294967295*Math.random()|0;return`${e[255&t]+e[t>>8&255]+e[t>>16&255]+e[t>>24&255]}-${e[255&i]}${e[i>>8&255]}-${e[i>>16&15|64]}${e[i>>24&255]}-${e[63&s|128]}${e[s>>8&255]}-${e[s>>16&255]}${e[s>>24&255]}${e[255&r]}${e[r>>8&255]}${e[r>>16&255]}${e[r>>24&255]}`}})(),clamp:(e,t,i)=>Math.max(t,Math.min(i,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,i)=>(i||(i=e),i[0]=e[0]+t[0],i[1]=e[1]+t[1],i[2]=e[2]+t[2],i[3]=e[3]+t[3],i),addVec4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]+t,i[1]=e[1]+t,i[2]=e[2]+t,i[3]=e[3]+t,i),addVec3:(e,t,i)=>(i||(i=e),i[0]=e[0]+t[0],i[1]=e[1]+t[1],i[2]=e[2]+t[2],i),addVec3Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]+t,i[1]=e[1]+t,i[2]=e[2]+t,i),subVec4:(e,t,i)=>(i||(i=e),i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],i[3]=e[3]-t[3],i),subVec3:(e,t,i)=>(i||(i=e),i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],i),subVec2:(e,t,i)=>(i||(i=e),i[0]=e[0]-t[0],i[1]=e[1]-t[1],i),geometricMeanVec2(...e){const t=new l(e[0]);for(let i=1;i(i||(i=e),i[0]=e[0]-t,i[1]=e[1]-t,i[2]=e[2]-t,i[3]=e[3]-t,i),subScalarVec4:(e,t,i)=>(i||(i=e),i[0]=t-e[0],i[1]=t-e[1],i[2]=t-e[2],i[3]=t-e[3],i),mulVec4:(e,t,i)=>(i||(i=e),i[0]=e[0]*t[0],i[1]=e[1]*t[1],i[2]=e[2]*t[2],i[3]=e[3]*t[3],i),mulVec4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]*t,i[1]=e[1]*t,i[2]=e[2]*t,i[3]=e[3]*t,i),mulVec3Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]*t,i[1]=e[1]*t,i[2]=e[2]*t,i),mulVec2Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]*t,i[1]=e[1]*t,i),divVec3:(e,t,i)=>(i||(i=e),i[0]=e[0]/t[0],i[1]=e[1]/t[1],i[2]=e[2]/t[2],i),divVec4:(e,t,i)=>(i||(i=e),i[0]=e[0]/t[0],i[1]=e[1]/t[1],i[2]=e[2]/t[2],i[3]=e[3]/t[3],i),divScalarVec3:(e,t,i)=>(i||(i=t),i[0]=e/t[0],i[1]=e/t[1],i[2]=e/t[2],i),divVec3Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]/t,i[1]=e[1]/t,i[2]=e[2]/t,i),divVec4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]/t,i[1]=e[1]/t,i[2]=e[2]/t,i[3]=e[3]/t,i),divScalarVec4:(e,t,i)=>(i||(i=t),i[0]=e/t[0],i[1]=e/t[1],i[2]=e/t[2],i[3]=e/t[3],i),dotVec4:(e,t)=>e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3],cross3Vec4(e,t){const i=e[0],s=e[1],r=e[2],o=t[0],n=t[1],a=t[2];return[s*a-r*n,r*o-i*a,i*n-s*o,0]},cross3Vec3(e,t,i){i||(i=e);const s=e[0],r=e[1],o=e[2],n=t[0],a=t[1],l=t[2];return i[0]=r*l-o*a,i[1]=o*n-s*l,i[2]=s*a-r*n,i},sqLenVec4:e=>d.dotVec4(e,e),lenVec4:e=>Math.sqrt(d.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=>d.dotVec3(e,e),sqLenVec2:e=>d.dotVec2(e,e),lenVec3:e=>Math.sqrt(d.sqLenVec3(e)),distVec3:(()=>{const e=new l(3);return(t,i)=>d.lenVec3(d.subVec3(t,i,e))})(),lenVec2:e=>Math.sqrt(d.sqLenVec2(e)),distVec2:(()=>{const e=new l(2);return(t,i)=>d.lenVec2(d.subVec2(t,i,e))})(),rcpVec3:(e,t)=>d.divScalarVec3(1,e,t),normalizeVec4(e,t){const i=1/d.lenVec4(e);return d.mulVec4Scalar(e,i,t)},normalizeVec3(e,t){const i=1/d.lenVec3(e);return d.mulVec3Scalar(e,i,t)},normalizeVec2(e,t){const i=1/d.lenVec2(e);return d.mulVec2Scalar(e,i,t)},angleVec3(e,t){let i=d.dotVec3(e,t)/Math.sqrt(d.sqLenVec3(e)*d.sqLenVec3(t));return i=i<-1?-1:i>1?1:i,Math.acos(i)},vec3FromMat4Scale:(()=>{const e=new l(3);return(t,i)=>(e[0]=t[0],e[1]=t[1],e[2]=t[2],i[0]=d.lenVec3(e),e[0]=t[4],e[1]=t[5],e[2]=t[6],i[1]=d.lenVec3(e),e[0]=t[8],e[1]=t[9],e[2]=t[10],i[2]=d.lenVec3(e),i)})(),vecToArray:(()=>{function e(e){return Math.round(1e5*e)/1e5}return t=>{for(let i=0,s=(t=Array.prototype.slice.call(t)).length;i({x:e[0],y:e[1],z:e[2]}),xyzObjectToArray:(e,t)=>((t=t||d.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:()=>d.m4s(0),setMat4ToOnes:()=>d.m4s(1),diagonalMat4v:e=>new l([e[0],0,0,0,0,e[1],0,0,0,0,e[2],0,0,0,0,e[3]]),diagonalMat4c:(e,t,i,s)=>d.diagonalMat4v([e,t,i,s]),diagonalMat4s:e=>d.diagonalMat4c(e,e,e,e),identityMat4:(e=new l(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 l(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,i)=>(i||(i=e),i[0]=e[0]+t[0],i[1]=e[1]+t[1],i[2]=e[2]+t[2],i[3]=e[3]+t[3],i[4]=e[4]+t[4],i[5]=e[5]+t[5],i[6]=e[6]+t[6],i[7]=e[7]+t[7],i[8]=e[8]+t[8],i[9]=e[9]+t[9],i[10]=e[10]+t[10],i[11]=e[11]+t[11],i[12]=e[12]+t[12],i[13]=e[13]+t[13],i[14]=e[14]+t[14],i[15]=e[15]+t[15],i),addMat4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]+t,i[1]=e[1]+t,i[2]=e[2]+t,i[3]=e[3]+t,i[4]=e[4]+t,i[5]=e[5]+t,i[6]=e[6]+t,i[7]=e[7]+t,i[8]=e[8]+t,i[9]=e[9]+t,i[10]=e[10]+t,i[11]=e[11]+t,i[12]=e[12]+t,i[13]=e[13]+t,i[14]=e[14]+t,i[15]=e[15]+t,i),addScalarMat4:(e,t,i)=>d.addMat4Scalar(t,e,i),subMat4:(e,t,i)=>(i||(i=e),i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],i[3]=e[3]-t[3],i[4]=e[4]-t[4],i[5]=e[5]-t[5],i[6]=e[6]-t[6],i[7]=e[7]-t[7],i[8]=e[8]-t[8],i[9]=e[9]-t[9],i[10]=e[10]-t[10],i[11]=e[11]-t[11],i[12]=e[12]-t[12],i[13]=e[13]-t[13],i[14]=e[14]-t[14],i[15]=e[15]-t[15],i),subMat4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]-t,i[1]=e[1]-t,i[2]=e[2]-t,i[3]=e[3]-t,i[4]=e[4]-t,i[5]=e[5]-t,i[6]=e[6]-t,i[7]=e[7]-t,i[8]=e[8]-t,i[9]=e[9]-t,i[10]=e[10]-t,i[11]=e[11]-t,i[12]=e[12]-t,i[13]=e[13]-t,i[14]=e[14]-t,i[15]=e[15]-t,i),subScalarMat4:(e,t,i)=>(i||(i=t),i[0]=e-t[0],i[1]=e-t[1],i[2]=e-t[2],i[3]=e-t[3],i[4]=e-t[4],i[5]=e-t[5],i[6]=e-t[6],i[7]=e-t[7],i[8]=e-t[8],i[9]=e-t[9],i[10]=e-t[10],i[11]=e-t[11],i[12]=e-t[12],i[13]=e-t[13],i[14]=e-t[14],i[15]=e-t[15],i),mulMat4(e,t,i){i||(i=e);const s=e[0],r=e[1],o=e[2],n=e[3],a=e[4],l=e[5],A=e[6],h=e[7],c=e[8],u=e[9],d=e[10],p=e[11],g=e[12],m=e[13],f=e[14],_=e[15],v=t[0],b=t[1],x=t[2],w=t[3],y=t[4],P=t[5],B=t[6],C=t[7],M=t[8],E=t[9],F=t[10],I=t[11],D=t[12],S=t[13],T=t[14],R=t[15];return i[0]=v*s+b*a+x*c+w*g,i[1]=v*r+b*l+x*u+w*m,i[2]=v*o+b*A+x*d+w*f,i[3]=v*n+b*h+x*p+w*_,i[4]=y*s+P*a+B*c+C*g,i[5]=y*r+P*l+B*u+C*m,i[6]=y*o+P*A+B*d+C*f,i[7]=y*n+P*h+B*p+C*_,i[8]=M*s+E*a+F*c+I*g,i[9]=M*r+E*l+F*u+I*m,i[10]=M*o+E*A+F*d+I*f,i[11]=M*n+E*h+F*p+I*_,i[12]=D*s+S*a+T*c+R*g,i[13]=D*r+S*l+T*u+R*m,i[14]=D*o+S*A+T*d+R*f,i[15]=D*n+S*h+T*p+R*_,i},mulMat3(e,t,i){i||(i=new l(9));const s=e[0],r=e[3],o=e[6],n=e[1],a=e[4],A=e[7],h=e[2],c=e[5],u=e[8],d=t[0],p=t[3],g=t[6],m=t[1],f=t[4],_=t[7],v=t[2],b=t[5],x=t[8];return i[0]=s*d+r*m+o*v,i[3]=s*p+r*f+o*b,i[6]=s*g+r*_+o*x,i[1]=n*d+a*m+A*v,i[4]=n*p+a*f+A*b,i[7]=n*g+a*_+A*x,i[2]=h*d+c*m+u*v,i[5]=h*p+c*f+u*b,i[8]=h*g+c*_+u*x,i},mulMat4Scalar:(e,t,i)=>(i||(i=e),i[0]=e[0]*t,i[1]=e[1]*t,i[2]=e[2]*t,i[3]=e[3]*t,i[4]=e[4]*t,i[5]=e[5]*t,i[6]=e[6]*t,i[7]=e[7]*t,i[8]=e[8]*t,i[9]=e[9]*t,i[10]=e[10]*t,i[11]=e[11]*t,i[12]=e[12]*t,i[13]=e[13]*t,i[14]=e[14]*t,i[15]=e[15]*t,i),mulMat4v4(e,t,i=d.vec4()){const s=t[0],r=t[1],o=t[2],n=t[3];return i[0]=e[0]*s+e[4]*r+e[8]*o+e[12]*n,i[1]=e[1]*s+e[5]*r+e[9]*o+e[13]*n,i[2]=e[2]*s+e[6]*r+e[10]*o+e[14]*n,i[3]=e[3]*s+e[7]*r+e[11]*o+e[15]*n,i},transposeMat4(e,t){const i=e[4],s=e[14],r=e[8],o=e[13],n=e[12],a=e[9];if(!t||e===t){const t=e[1],l=e[2],A=e[3],h=e[6],c=e[7],u=e[11];return e[1]=i,e[2]=r,e[3]=n,e[4]=t,e[6]=a,e[7]=o,e[8]=l,e[9]=h,e[11]=s,e[12]=A,e[13]=c,e[14]=u,e}return t[0]=e[0],t[1]=i,t[2]=r,t[3]=n,t[4]=e[1],t[5]=e[5],t[6]=a,t[7]=o,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=s,t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t},transposeMat3(e,t){if(t===e){const i=e[1],s=e[2],r=e[5];t[1]=e[3],t[2]=e[6],t[3]=i,t[5]=e[7],t[6]=s,t[7]=r}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],i=e[1],s=e[2],r=e[3],o=e[4],n=e[5],a=e[6],l=e[7],A=e[8],h=e[9],c=e[10],u=e[11],d=e[12],p=e[13],g=e[14],m=e[15];return d*h*a*r-A*p*a*r-d*n*c*r+o*p*c*r+A*n*g*r-o*h*g*r-d*h*s*l+A*p*s*l+d*i*c*l-t*p*c*l-A*i*g*l+t*h*g*l+d*n*s*u-o*p*s*u-d*i*a*u+t*p*a*u+o*i*g*u-t*n*g*u-A*n*s*m+o*h*s*m+A*i*a*m-t*h*a*m-o*i*c*m+t*n*c*m},inverseMat4(e,t){t||(t=e);const i=e[0],s=e[1],r=e[2],o=e[3],n=e[4],a=e[5],l=e[6],A=e[7],h=e[8],c=e[9],u=e[10],d=e[11],p=e[12],g=e[13],m=e[14],f=e[15],_=i*a-s*n,v=i*l-r*n,b=i*A-o*n,x=s*l-r*a,w=s*A-o*a,y=r*A-o*l,P=h*g-c*p,B=h*m-u*p,C=h*f-d*p,M=c*m-u*g,E=c*f-d*g,F=u*f-d*m,I=1/(_*F-v*E+b*M+x*C-w*B+y*P);return t[0]=(a*F-l*E+A*M)*I,t[1]=(-s*F+r*E-o*M)*I,t[2]=(g*y-m*w+f*x)*I,t[3]=(-c*y+u*w-d*x)*I,t[4]=(-n*F+l*C-A*B)*I,t[5]=(i*F-r*C+o*B)*I,t[6]=(-p*y+m*b-f*v)*I,t[7]=(h*y-u*b+d*v)*I,t[8]=(n*E-a*C+A*P)*I,t[9]=(-i*E+s*C-o*P)*I,t[10]=(p*w-g*b+f*_)*I,t[11]=(-h*w+c*b-d*_)*I,t[12]=(-n*M+a*B-l*P)*I,t[13]=(i*M-s*B+r*P)*I,t[14]=(-p*x+g*v-m*_)*I,t[15]=(h*x-c*v+u*_)*I,t},traceMat4:e=>e[0]+e[5]+e[10]+e[15],translationMat4v(e,t){const i=t||d.identityMat4();return i[12]=e[0],i[13]=e[1],i[14]=e[2],i},translationMat3v(e,t){const i=t||d.identityMat3();return i[6]=e[0],i[7]=e[1],i},translationMat4c:(()=>{const e=new l(3);return(t,i,s,r)=>(e[0]=t,e[1]=i,e[2]=s,d.translationMat4v(e,r))})(),translationMat4s:(e,t)=>d.translationMat4c(e,e,e,t),translateMat4v:(e,t)=>d.translateMat4c(e[0],e[1],e[2],t),translateMat4c(e,t,i,s){const r=s[3];s[0]+=r*e,s[1]+=r*t,s[2]+=r*i;const o=s[7];s[4]+=o*e,s[5]+=o*t,s[6]+=o*i;const n=s[11];s[8]+=n*e,s[9]+=n*t,s[10]+=n*i;const a=s[15];return s[12]+=a*e,s[13]+=a*t,s[14]+=a*i,s},setMat4Translation:(e,t,i)=>(i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i[6]=e[6],i[7]=e[7],i[8]=e[8],i[9]=e[9],i[10]=e[10],i[11]=e[11],i[12]=t[0],i[13]=t[1],i[14]=t[2],i[15]=e[15],i),rotationMat4v(e,t,i){const s=d.normalizeVec4([t[0],t[1],t[2],0],[]),r=Math.sin(e),o=Math.cos(e),n=1-o,a=s[0],l=s[1],A=s[2];let h,c,u,p,g,m;return h=a*l,c=l*A,u=A*a,p=a*r,g=l*r,m=A*r,(i=i||d.mat4())[0]=n*a*a+o,i[1]=n*h+m,i[2]=n*u-g,i[3]=0,i[4]=n*h-m,i[5]=n*l*l+o,i[6]=n*c+p,i[7]=0,i[8]=n*u+g,i[9]=n*c-p,i[10]=n*A*A+o,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i},rotationMat4c:(e,t,i,s,r)=>d.rotationMat4v(e,[t,i,s],r),scalingMat4v:(e,t=d.identityMat4())=>(t[0]=e[0],t[5]=e[1],t[10]=e[2],t),scalingMat3v:(e,t=d.identityMat3())=>(t[0]=e[0],t[4]=e[1],t),scalingMat4c:(()=>{const e=new l(3);return(t,i,s,r)=>(e[0]=t,e[1]=i,e[2]=s,d.scalingMat4v(e,r))})(),scaleMat4c:(e,t,i,s)=>(s[0]*=e,s[4]*=t,s[8]*=i,s[1]*=e,s[5]*=t,s[9]*=i,s[2]*=e,s[6]*=t,s[10]*=i,s[3]*=e,s[7]*=t,s[11]*=i,s),scaleMat4v(e,t){const i=e[0],s=e[1],r=e[2];return t[0]*=i,t[4]*=s,t[8]*=r,t[1]*=i,t[5]*=s,t[9]*=r,t[2]*=i,t[6]*=s,t[10]*=r,t[3]*=i,t[7]*=s,t[11]*=r,t},scalingMat4s:e=>d.scalingMat4c(e,e,e),rotationTranslationMat4(e,t,i=d.mat4()){const s=e[0],r=e[1],o=e[2],n=e[3],a=s+s,l=r+r,A=o+o,h=s*a,c=s*l,u=s*A,p=r*l,g=r*A,m=o*A,f=n*a,_=n*l,v=n*A;return i[0]=1-(p+m),i[1]=c+v,i[2]=u-_,i[3]=0,i[4]=c-v,i[5]=1-(h+m),i[6]=g+f,i[7]=0,i[8]=u+_,i[9]=g-f,i[10]=1-(h+p),i[11]=0,i[12]=t[0],i[13]=t[1],i[14]=t[2],i[15]=1,i},mat4ToEuler(e,t,i=d.vec4()){const s=d.clamp,r=e[0],o=e[4],n=e[8],a=e[1],l=e[5],A=e[9],h=e[2],c=e[6],u=e[10];return"XYZ"===t?(i[1]=Math.asin(s(n,-1,1)),Math.abs(n)<.99999?(i[0]=Math.atan2(-A,u),i[2]=Math.atan2(-o,r)):(i[0]=Math.atan2(c,l),i[2]=0)):"YXZ"===t?(i[0]=Math.asin(-s(A,-1,1)),Math.abs(A)<.99999?(i[1]=Math.atan2(n,u),i[2]=Math.atan2(a,l)):(i[1]=Math.atan2(-h,r),i[2]=0)):"ZXY"===t?(i[0]=Math.asin(s(c,-1,1)),Math.abs(c)<.99999?(i[1]=Math.atan2(-h,u),i[2]=Math.atan2(-o,l)):(i[1]=0,i[2]=Math.atan2(a,r))):"ZYX"===t?(i[1]=Math.asin(-s(h,-1,1)),Math.abs(h)<.99999?(i[0]=Math.atan2(c,u),i[2]=Math.atan2(a,r)):(i[0]=0,i[2]=Math.atan2(-o,l))):"YZX"===t?(i[2]=Math.asin(s(a,-1,1)),Math.abs(a)<.99999?(i[0]=Math.atan2(-A,l),i[1]=Math.atan2(-h,r)):(i[0]=0,i[1]=Math.atan2(n,u))):"XZY"===t&&(i[2]=Math.asin(-s(o,-1,1)),Math.abs(o)<.99999?(i[0]=Math.atan2(c,l),i[1]=Math.atan2(n,r)):(i[0]=Math.atan2(-A,u),i[1]=0)),i},composeMat4:(e,t,i,s=d.mat4())=>(d.quaternionToRotationMat4(t,s),d.scaleMat4v(i,s),d.translateMat4v(e,s),s),decomposeMat4:(()=>{const e=new l(3),t=new l(16);return function(i,s,r,o){e[0]=i[0],e[1]=i[1],e[2]=i[2];let n=d.lenVec3(e);e[0]=i[4],e[1]=i[5],e[2]=i[6];const a=d.lenVec3(e);e[8]=i[8],e[9]=i[9],e[10]=i[10];const l=d.lenVec3(e);d.determinantMat4(i)<0&&(n=-n),s[0]=i[12],s[1]=i[13],s[2]=i[14],t.set(i);const A=1/n,h=1/a,c=1/l;return t[0]*=A,t[1]*=A,t[2]*=A,t[4]*=h,t[5]*=h,t[6]*=h,t[8]*=c,t[9]*=c,t[10]*=c,d.mat4ToQuaternion(t,r),o[0]=n,o[1]=a,o[2]=l,this}})(),getColMat4(e,t){const i=4*t;return[e[i],e[i+1],e[i+2],e[i+3]]},setRowMat4(e,t,i){e[t]=i[0],e[t+4]=i[1],e[t+8]=i[2],e[t+12]=i[3]},lookAtMat4v(e,t,i,s){s||(s=d.mat4());const r=e[0],o=e[1],n=e[2],a=i[0],l=i[1],A=i[2],h=t[0],c=t[1],u=t[2];if(r===h&&o===c&&n===u)return d.identityMat4();let p,g,m,f,_,v,b,x,w,y;return p=r-h,g=o-c,m=n-u,y=1/Math.sqrt(p*p+g*g+m*m),p*=y,g*=y,m*=y,f=l*m-A*g,_=A*p-a*m,v=a*g-l*p,y=Math.sqrt(f*f+_*_+v*v),y?(y=1/y,f*=y,_*=y,v*=y):(f=0,_=0,v=0),b=g*v-m*_,x=m*f-p*v,w=p*_-g*f,y=Math.sqrt(b*b+x*x+w*w),y?(y=1/y,b*=y,x*=y,w*=y):(b=0,x=0,w=0),s[0]=f,s[1]=b,s[2]=p,s[3]=0,s[4]=_,s[5]=x,s[6]=g,s[7]=0,s[8]=v,s[9]=w,s[10]=m,s[11]=0,s[12]=-(f*r+_*o+v*n),s[13]=-(b*r+x*o+w*n),s[14]=-(p*r+g*o+m*n),s[15]=1,s},lookAtMat4c:(e,t,i,s,r,o,n,a,l)=>d.lookAtMat4v([e,t,i],[s,r,o],[n,a,l],[]),orthoMat4c(e,t,i,s,r,o,n){n||(n=d.mat4());const a=t-e,l=s-i,A=o-r;return n[0]=2/a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2/l,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=-2/A,n[11]=0,n[12]=-(e+t)/a,n[13]=-(s+i)/l,n[14]=-(o+r)/A,n[15]=1,n},frustumMat4v(e,t,i){i||(i=d.mat4());const s=[e[0],e[1],e[2],0],r=[t[0],t[1],t[2],0];d.addVec4(r,s,h),d.subVec4(r,s,c);const o=2*s[2],n=c[0],a=c[1],l=c[2];return i[0]=o/n,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o/a,i[6]=0,i[7]=0,i[8]=h[0]/n,i[9]=h[1]/a,i[10]=-h[2]/l,i[11]=-1,i[12]=0,i[13]=0,i[14]=-o*r[2]/l,i[15]=0,i},frustumMat4(e,t,i,s,r,o,n){n||(n=d.mat4());const a=t-e,l=s-i,A=o-r;return n[0]=2*r/a,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=2*r/l,n[6]=0,n[7]=0,n[8]=(t+e)/a,n[9]=(s+i)/l,n[10]=-(o+r)/A,n[11]=-1,n[12]=0,n[13]=0,n[14]=-o*r*2/A,n[15]=0,n},perspectiveMat4(e,t,i,s,r){const o=[],n=[];return o[2]=i,n[2]=s,n[1]=o[2]*Math.tan(e/2),o[1]=-n[1],n[0]=n[1]*t,o[0]=-n[0],d.frustumMat4v(o,n,r)},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,i=d.vec3()){const s=t[0],r=t[1],o=t[2];return i[0]=e[0]*s+e[4]*r+e[8]*o+e[12],i[1]=e[1]*s+e[5]*r+e[9]*o+e[13],i[2]=e[2]*s+e[6]*r+e[10]*o+e[14],i},transformPoint4:(e,t,i=d.vec4())=>(i[0]=e[0]*t[0]+e[4]*t[1]+e[8]*t[2]+e[12]*t[3],i[1]=e[1]*t[0]+e[5]*t[1]+e[9]*t[2]+e[13]*t[3],i[2]=e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]*t[3],i[3]=e[3]*t[0]+e[7]*t[1]+e[11]*t[2]+e[15]*t[3],i),transformPoints3(e,t,i){const s=i||[],r=t.length;let o,n,a,l;const A=e[0],h=e[1],c=e[2],u=e[3],d=e[4],p=e[5],g=e[6],m=e[7],f=e[8],_=e[9],v=e[10],b=e[11],x=e[12],w=e[13],y=e[14],P=e[15];let B;for(let e=0;e{const e=new l(16),t=new l(16),i=new l(16);return function(s,r,o,n){return this.transformVec3(this.mulMat4(this.inverseMat4(r,e),this.inverseMat4(o,t),i),s,n)}})(),lerpVec3(e,t,i,s,r,o){const n=o||d.vec3(),a=(e-t)/(i-t);return n[0]=s[0]+a*(r[0]-s[0]),n[1]=s[1]+a*(r[1]-s[1]),n[2]=s[2]+a*(r[2]-s[2]),n},lerpMat4(e,t,i,s,r,o){const n=o||d.mat4(),a=(e-t)/(i-t);return n[0]=s[0]+a*(r[0]-s[0]),n[1]=s[1]+a*(r[1]-s[1]),n[2]=s[2]+a*(r[2]-s[2]),n[3]=s[3]+a*(r[3]-s[3]),n[4]=s[4]+a*(r[4]-s[4]),n[5]=s[5]+a*(r[5]-s[5]),n[6]=s[6]+a*(r[6]-s[6]),n[7]=s[7]+a*(r[7]-s[7]),n[8]=s[8]+a*(r[8]-s[8]),n[9]=s[9]+a*(r[9]-s[9]),n[10]=s[10]+a*(r[10]-s[10]),n[11]=s[11]+a*(r[11]-s[11]),n[12]=s[12]+a*(r[12]-s[12]),n[13]=s[13]+a*(r[13]-s[13]),n[14]=s[14]+a*(r[14]-s[14]),n[15]=s[15]+a*(r[15]-s[15]),n},flatten(e){const t=[];let i,s,r,o,n;for(i=0,s=e.length;i(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e),eulerToQuaternion(e,t,i=d.vec4()){const s=e[0]*d.DEGTORAD/2,r=e[1]*d.DEGTORAD/2,o=e[2]*d.DEGTORAD/2,n=Math.cos(s),a=Math.cos(r),l=Math.cos(o),A=Math.sin(s),h=Math.sin(r),c=Math.sin(o);return"XYZ"===t?(i[0]=A*a*l+n*h*c,i[1]=n*h*l-A*a*c,i[2]=n*a*c+A*h*l,i[3]=n*a*l-A*h*c):"YXZ"===t?(i[0]=A*a*l+n*h*c,i[1]=n*h*l-A*a*c,i[2]=n*a*c-A*h*l,i[3]=n*a*l+A*h*c):"ZXY"===t?(i[0]=A*a*l-n*h*c,i[1]=n*h*l+A*a*c,i[2]=n*a*c+A*h*l,i[3]=n*a*l-A*h*c):"ZYX"===t?(i[0]=A*a*l-n*h*c,i[1]=n*h*l+A*a*c,i[2]=n*a*c-A*h*l,i[3]=n*a*l+A*h*c):"YZX"===t?(i[0]=A*a*l+n*h*c,i[1]=n*h*l+A*a*c,i[2]=n*a*c-A*h*l,i[3]=n*a*l-A*h*c):"XZY"===t&&(i[0]=A*a*l-n*h*c,i[1]=n*h*l-A*a*c,i[2]=n*a*c+A*h*l,i[3]=n*a*l+A*h*c),i},mat4ToQuaternion(e,t=d.vec4()){const i=e[0],s=e[4],r=e[8],o=e[1],n=e[5],a=e[9],l=e[2],A=e[6],h=e[10];let c;const u=i+n+h;return u>0?(c=.5/Math.sqrt(u+1),t[3]=.25/c,t[0]=(A-a)*c,t[1]=(r-l)*c,t[2]=(o-s)*c):i>n&&i>h?(c=2*Math.sqrt(1+i-n-h),t[3]=(A-a)/c,t[0]=.25*c,t[1]=(s+o)/c,t[2]=(r+l)/c):n>h?(c=2*Math.sqrt(1+n-i-h),t[3]=(r-l)/c,t[0]=(s+o)/c,t[1]=.25*c,t[2]=(a+A)/c):(c=2*Math.sqrt(1+h-i-n),t[3]=(o-s)/c,t[0]=(r+l)/c,t[1]=(a+A)/c,t[2]=.25*c),t},vec3PairToQuaternion(e,t,i=d.vec4()){const s=Math.sqrt(d.dotVec3(e,e)*d.dotVec3(t,t));let r=s+d.dotVec3(e,t);return r<1e-8*s?(r=0,Math.abs(e[0])>Math.abs(e[2])?(i[0]=-e[1],i[1]=e[0],i[2]=0):(i[0]=0,i[1]=-e[2],i[2]=e[1])):d.cross3Vec3(e,t,i),i[3]=r,d.normalizeQuaternion(i)},angleAxisToQuaternion(e,t=d.vec4()){const i=e[3]/2,s=Math.sin(i);return t[0]=s*e[0],t[1]=s*e[1],t[2]=s*e[2],t[3]=Math.cos(i),t},quaternionToEuler:(()=>{const e=new l(16);return(t,i,s)=>(s=s||d.vec3(),d.quaternionToRotationMat4(t,e),d.mat4ToEuler(e,i,s),s)})(),mulQuaternions(e,t,i=d.vec4()){const s=e[0],r=e[1],o=e[2],n=e[3],a=t[0],l=t[1],A=t[2],h=t[3];return i[0]=n*a+s*h+r*A-o*l,i[1]=n*l+r*h+o*a-s*A,i[2]=n*A+o*h+s*l-r*a,i[3]=n*h-s*a-r*l-o*A,i},vec3ApplyQuaternion(e,t,i=d.vec3()){const s=t[0],r=t[1],o=t[2],n=e[0],a=e[1],l=e[2],A=e[3],h=A*s+a*o-l*r,c=A*r+l*s-n*o,u=A*o+n*r-a*s,p=-n*s-a*r-l*o;return i[0]=h*A+p*-n+c*-l-u*-a,i[1]=c*A+p*-a+u*-n-h*-l,i[2]=u*A+p*-l+h*-a-c*-n,i},quaternionToMat4(e,t){t=d.identityMat4(t);const i=e[0],s=e[1],r=e[2],o=e[3],n=2*i,a=2*s,l=2*r,A=n*o,h=a*o,c=l*o,u=n*i,p=a*i,g=l*i,m=a*s,f=l*s,_=l*r;return t[0]=1-(m+_),t[1]=p+c,t[2]=g-h,t[4]=p-c,t[5]=1-(u+_),t[6]=f+A,t[8]=g+h,t[9]=f-A,t[10]=1-(u+m),t},quaternionToRotationMat4(e,t){const i=e[0],s=e[1],r=e[2],o=e[3],n=i+i,a=s+s,l=r+r,A=i*n,h=i*a,c=i*l,u=s*a,d=s*l,p=r*l,g=o*n,m=o*a,f=o*l;return t[0]=1-(u+p),t[4]=h-f,t[8]=c+m,t[1]=h+f,t[5]=1-(A+p),t[9]=d-g,t[2]=c-m,t[6]=d+g,t[10]=1-(A+u),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 i=d.lenVec4([e[0],e[1],e[2],e[3]]);return t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i,t[3]=e[3]/i,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)=>d.normalizeQuaternion(d.conjugateQuaternion(e,t)),quaternionToAngleAxis(e,t=d.vec4()){const i=(e=d.normalizeQuaternion(e,u))[3],s=2*Math.acos(i),r=Math.sqrt(1-i*i);return r<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r),t[3]=s,t},AABB3:e=>new l(e||6),AABB2:e=>new l(e||4),OBB3:e=>new l(e||32),OBB2:e=>new l(e||16),Sphere3:(e,t,i,s)=>new l([e,t,i,s]),transformOBB3(e,t,i=t){let s;const r=t.length;let o,n,a;const l=e[0],A=e[1],h=e[2],c=e[3],u=e[4],d=e[5],p=e[6],g=e[7],m=e[8],f=e[9],_=e[10],v=e[11],b=e[12],x=e[13],w=e[14],y=e[15];for(s=0;s{const e=new l(3),t=new l(3),i=new l(3);return s=>(e[0]=s[0],e[1]=s[1],e[2]=s[2],t[0]=s[3],t[1]=s[4],t[2]=s[5],d.subVec3(t,e,i),Math.abs(d.lenVec3(i)))})(),getAABB3DiagPoint:(()=>{const e=new l(3),t=new l(3),i=new l(3);return(s,r)=>{e[0]=s[0],e[1]=s[1],e[2]=s[2],t[0]=s[3],t[1]=s[4],t[2]=s[5];const o=d.subVec3(t,e,i),n=r[0]-s[0],a=s[3]-r[0],l=r[1]-s[1],A=s[4]-r[1],h=r[2]-s[2],c=s[5]-r[2];return o[0]+=n>a?n:a,o[1]+=l>A?l:A,o[2]+=h>c?h:c,Math.abs(d.lenVec3(o))}})(),getAABB3Area:e=>(e[3]-e[0])*(e[4]-e[1])*(e[5]-e[2]),getAABB3Center(e,t){const i=t||d.vec3();return i[0]=(e[0]+e[3])/2,i[1]=(e[1]+e[4])/2,i[2]=(e[2]+e[5])/2,i},getAABB2Center(e,t){const i=t||d.vec2();return i[0]=(e[2]+e[0])/2,i[1]=(e[3]+e[1])/2,i},collapseAABB3:(e=d.AABB3())=>(e[0]=d.MAX_DOUBLE,e[1]=d.MAX_DOUBLE,e[2]=d.MAX_DOUBLE,e[3]=d.MIN_DOUBLE,e[4]=d.MIN_DOUBLE,e[5]=d.MIN_DOUBLE,e),AABB3ToOBB3:(e,t=d.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 l(3);return(t,i,s)=>{i=i||d.AABB3();let r,o,n,a=d.MAX_DOUBLE,l=d.MAX_DOUBLE,A=d.MAX_DOUBLE,h=d.MIN_DOUBLE,c=d.MIN_DOUBLE,u=d.MIN_DOUBLE;for(let i=0,p=t.length;ih&&(h=r),o>c&&(c=o),n>u&&(u=n);return i[0]=a,i[1]=l,i[2]=A,i[3]=h,i[4]=c,i[5]=u,i}})(),OBB3ToAABB3(e,t=d.AABB3()){let i,s,r,o=d.MAX_DOUBLE,n=d.MAX_DOUBLE,a=d.MAX_DOUBLE,l=d.MIN_DOUBLE,A=d.MIN_DOUBLE,h=d.MIN_DOUBLE;for(let t=0,c=e.length;tl&&(l=i),s>A&&(A=s),r>h&&(h=r);return t[0]=o,t[1]=n,t[2]=a,t[3]=l,t[4]=A,t[5]=h,t},points3ToAABB3(e,t=d.AABB3()){let i,s,r,o=d.MAX_DOUBLE,n=d.MAX_DOUBLE,a=d.MAX_DOUBLE,l=d.MIN_DOUBLE,A=d.MIN_DOUBLE,h=d.MIN_DOUBLE;for(let t=0,c=e.length;tl&&(l=i),s>A&&(A=s),r>h&&(h=r);return t[0]=o,t[1]=n,t[2]=a,t[3]=l,t[4]=A,t[5]=h,t},points3ToSphere3:(()=>{const e=new l(3);return(t,i)=>{i=i||d.vec4();let s,r=0,o=0,n=0;const a=t.length;for(s=0;sA&&(A=l);return i[3]=A,i}})(),positions3ToSphere3:(()=>{const e=new l(3),t=new l(3);return(i,s)=>{s=s||d.vec4();let r,o=0,n=0,a=0;const l=i.length;let A=0;for(r=0;rA&&(A=c);return s[3]=A,s}})(),OBB3ToSphere3:(()=>{const e=new l(3),t=new l(3);return(i,s)=>{s=s||d.vec4();let r,o=0,n=0,a=0;const l=i.length,A=l/4;for(r=0;rc&&(c=h);return s[3]=c,s}})(),getSphere3Center:(e,t=d.vec3())=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t),getPositionsCenter(e,t=d.vec3()){let i=0,s=0,r=0;for(var o=0,n=e.length;o(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]i&&(e[0]=i),e[1]>s&&(e[1]=s),e[2]>r&&(e[2]=r),e[3](e[0]=d.MAX_DOUBLE,e[1]=d.MAX_DOUBLE,e[2]=d.MIN_DOUBLE,e[3]=d.MIN_DOUBLE,e),point3AABB3Intersect:(e,t)=>e[0]>t[0]||e[3]t[1]||e[4]t[2]||e[5]0?(s=e[0]*i[0],r=e[0]*i[3]):(s=e[0]*i[3],r=e[0]*i[0]),e[1]>0?(s+=e[1]*i[1],r+=e[1]*i[4]):(s+=e[1]*i[4],r+=e[1]*i[1]),e[2]>0?(s+=e[2]*i[2],r+=e[2]*i[5]):(s+=e[2]*i[5],r+=e[2]*i[2]);if(s<=-t&&r<=-t)return-1;return s>=-t&&r>=-t?1:0},OBB3ToAABB2(e,t=d.AABB2()){let i,s,r,o,n=d.MAX_DOUBLE,a=d.MAX_DOUBLE,l=d.MIN_DOUBLE,A=d.MIN_DOUBLE;for(let t=0,h=e.length;tl&&(l=i),s>A&&(A=s);return t[0]=n,t[1]=a,t[2]=l,t[3]=A,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)*(i-t)+2*e*(s-i),tangentQuadraticBezier3:(e,t,i,s,r)=>-3*t*(1-e)*(1-e)+3*i*(1-e)*(1-e)-6*e*i*(1-e)+6*e*s*(1-e)-3*e*e*s+3*e*e*r,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,i,s,r){const o=.5*(i-e),n=.5*(s-t),a=r*r;return(2*t-2*i+o+n)*(r*a)+(-3*t+3*i-2*o-n)*a+o*r+t},b2p0(e,t){const i=1-e;return i*i*t},b2p1:(e,t)=>2*(1-e)*e*t,b2p2:(e,t)=>e*e*t,b2(e,t,i,s){return this.b2p0(e,t)+this.b2p1(e,i)+this.b2p2(e,s)},b3p0(e,t){const i=1-e;return i*i*i*t},b3p1(e,t){const i=1-e;return 3*i*i*e*t},b3p2:(e,t)=>3*(1-e)*e*e*t,b3p3:(e,t)=>e*e*e*t,b3(e,t,i,s,r){return this.b3p0(e,t)+this.b3p1(e,i)+this.b3p2(e,s)+this.b3p3(e,r)},triangleNormal(e,t,i,s=d.vec3()){const r=t[0]-e[0],o=t[1]-e[1],n=t[2]-e[2],a=i[0]-e[0],l=i[1]-e[1],A=i[2]-e[2],h=o*A-n*l,c=n*a-r*A,u=r*l-o*a,p=Math.sqrt(h*h+c*c+u*u);return 0===p?(s[0]=0,s[1]=0,s[2]=0):(s[0]=h/p,s[1]=c/p,s[2]=u/p),s},rayTriangleIntersect:(()=>{const e=new l(3),t=new l(3),i=new l(3),s=new l(3),r=new l(3);return(o,n,a,l,A,h)=>{h=h||d.vec3();const c=d.subVec3(l,a,e),u=d.subVec3(A,a,t),p=d.cross3Vec3(n,u,i),g=d.dotVec3(c,p);if(g<1e-6)return null;const m=d.subVec3(o,a,s),f=d.dotVec3(m,p);if(f<0||f>g)return null;const _=d.cross3Vec3(m,c,r),v=d.dotVec3(n,_);if(v<0||f+v>g)return null;const b=d.dotVec3(u,_)/g;return h[0]=o[0]+b*n[0],h[1]=o[1]+b*n[1],h[2]=o[2]+b*n[2],h}})(),rayPlaneIntersect:(()=>{const e=new l(3),t=new l(3),i=new l(3),s=new l(3);return(r,o,n,a,l,A)=>{A=A||d.vec3(),o=d.normalizeVec3(o,e);const h=d.subVec3(a,n,t),c=d.subVec3(l,n,i),u=d.cross3Vec3(h,c,s);d.normalizeVec3(u,u);const p=-d.dotVec3(n,u),g=-(d.dotVec3(r,u)+p)/d.dotVec3(o,u);return A[0]=r[0]+g*o[0],A[1]=r[1]+g*o[1],A[2]=r[2]+g*o[2],A}})(),cartesianToBarycentric:(()=>{const e=new l(3),t=new l(3),i=new l(3);return(s,r,o,n,a)=>{const l=d.subVec3(n,r,e),A=d.subVec3(o,r,t),h=d.subVec3(s,r,i),c=d.dotVec3(l,l),u=d.dotVec3(l,A),p=d.dotVec3(l,h),g=d.dotVec3(A,A),m=d.dotVec3(A,h),f=c*g-u*u;if(0===f)return null;const _=1/f,v=(g*p-u*m)*_,b=(c*m-u*p)*_;return a[0]=1-v-b,a[1]=b,a[2]=v,a}})(),barycentricInsideTriangle(e){const t=e[1],i=e[2];return i>=0&&t>=0&&i+t<1},barycentricToCartesian(e,t,i,s,r=d.vec3()){const o=e[0],n=e[1],a=e[2];return r[0]=t[0]*o+i[0]*n+s[0]*a,r[1]=t[1]*o+i[1]*n+s[1]*a,r[2]=t[2]*o+i[2]*n+s[2]*a,r},mergeVertices(e,t,i,s){const r={},o=[],n=[],a=t?[]:null,l=i?[]:null,A=[];let h,c,u,d;const p=1e4;let g,m,f=0;for(g=0,m=e.length;g{const e=new l(3),t=new l(3),i=new l(3),s=new l(3),r=new l(3),o=new l(3);return(n,a,l)=>{let A,h;const c=new Array(n.length/3);let u,p,g,m,f,_,v;for(A=0,h=a.length;A{const e=new l(3),t=new l(3),i=new l(3),s=new l(3),r=new l(3),o=new l(3),n=new l(3);return(a,l,A)=>{const h=new Float32Array(a.length);for(let c=0;c>24&255,h=u>>16&255,A=u>>8&255,l=255&u,a=t[i],n=3*a,r[d++]=e[n],r[d++]=e[n+1],r[d++]=e[n+2],o[p++]=l,o[p++]=A,o[p++]=h,o[p++]=c,a=t[i+1],n=3*a,r[d++]=e[n],r[d++]=e[n+1],r[d++]=e[n+2],o[p++]=l,o[p++]=A,o[p++]=h,o[p++]=c,a=t[i+2],n=3*a,r[d++]=e[n],r[d++]=e[n+1],r[d++]=e[n+2],o[p++]=l,o[p++]=A,o[p++]=h,o[p++]=c,u++;return{positions:r,colors:o}},faceToVertexNormals(e,t,i={}){const s=i.smoothNormalsAngleThreshold||20,r={},o=[],n={};let a,l,A,h,c;const u=1e4;let p,g,m,f,_,v;for(g=0,f=e.length;g{const e=new l(4),t=new l(4);return(i,s,r,o,n)=>{e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=1,d.transformVec4(i,e,t),o[0]=t[0],o[1]=t[1],o[2]=t[2],e[0]=r[0],e[1]=r[1],e[2]=r[2],d.transformVec3(i,e,t),d.normalizeVec3(t),n[0]=t[0],n[1]=t[1],n[2]=t[2]}})(),canvasPosToWorldRay:(()=>{const e=new l(16),t=new l(16),i=new l(4),s=new l(4),r=new l(4),o=new l(4);return(n,a,l,A,h,c)=>{const u=d.mulMat4(l,a,e),p=d.inverseMat4(u,t),g=n.width,m=n.height,f=(A[0]-g/2)/(g/2),_=-(A[1]-m/2)/(m/2);i[0]=f,i[1]=_,i[2]=-1,i[3]=1,d.transformVec4(p,i,s),d.mulVec4Scalar(s,1/s[3]),r[0]=f,r[1]=_,r[2]=1,r[3]=1,d.transformVec4(p,r,o),d.mulVec4Scalar(o,1/o[3]),h[0]=o[0],h[1]=o[1],h[2]=o[2],d.subVec3(o,s,c),d.normalizeVec3(c)}})(),canvasPosToLocalRay:(()=>{const e=new l(3),t=new l(3);return(i,s,r,o,n,a,l)=>{d.canvasPosToWorldRay(i,s,r,n,e,t),d.worldRayToLocalRay(o,e,t,a,l)}})(),worldRayToLocalRay:(()=>{const e=new l(16),t=new l(4),i=new l(4);return(s,r,o,n,a)=>{const l=d.inverseMat4(s,e);t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=1,d.transformVec4(l,t,i),n[0]=i[0],n[1]=i[1],n[2]=i[2],d.transformVec3(l,o,a)}})(),buildKDTree:(()=>{const e=new Float32Array;function t(i,s,r,o){const n=new l(6),a={triangles:null,left:null,right:null,leaf:!1,splitDim:0,aabb:n};let A,h;for(n[0]=n[1]=n[2]=Number.POSITIVE_INFINITY,n[3]=n[4]=n[5]=Number.NEGATIVE_INFINITY,A=0,h=i.length;An[3]&&(n[3]=r[t]),r[t+1]n[4]&&(n[4]=r[t+1]),r[t+2]n[5]&&(n[5]=r[t+2])}}if(i.length<20||o>10)return a.triangles=i,a.leaf=!0,a;e[0]=n[3]-n[0],e[1]=n[4]-n[1],e[2]=n[5]-n[2];let u=0;e[1]>e[u]&&(u=1),e[2]>e[u]&&(u=2),a.splitDim=u;const d=(n[u]+n[u+3])/2,p=new Array(i.length);let g=0;const m=new Array(i.length);let f=0;for(A=0,h=i.length;A{const s=e.length/3,r=new Array(s);for(let e=0;e=0?1:-1),s=(1-Math.abs(i))*(s>=0?1:-1));const o=Math.sqrt(i*i+s*s+r*r);return t[0]=i/o,t[1]=s/o,t[2]=r/o,t},octDecodeVec2s(e,t){for(let i=0,s=0,r=e.length;i=0?1:-1),o=(1-Math.abs(r))*(o>=0?1:-1));const a=Math.sqrt(r*r+o*o+n*n);t[s+0]=r/a,t[s+1]=o/a,t[s+2]=n/a,s+=3}return t}};d.buildEdgeIndices=function(){const e=[],t=[],i=[],s=[],r=[];let o=0;const n=new Uint16Array(3),a=new Uint16Array(3),l=new Uint16Array(3),A=d.vec3(),h=d.vec3(),c=d.vec3(),u=d.vec3(),p=d.vec3(),g=d.vec3(),m=d.vec3();return function(f,_,v,b){!function(r,o){const n={};let a,l,A,h;const c=Math.pow(10,4);let u,d,p=0;for(u=0,d=r.length;uw)||(T=i[F.index1],R=i[F.index2],(!L&&T>65535||R>65535)&&(L=!0),x.push(T),x.push(R));return L?new Uint32Array(x):new Uint16Array(x)}}(),d.planeClipsPositions3=function(e,t,i,s=3){for(let r=0,o=i.length;r{};t=t||s,i=i||s;var r=new XMLHttpRequest;r.overrideMimeType("application/json"),r.open("GET",e,!0),r.addEventListener("load",(function(e){var s=e.target.response;if(200===this.status){var r;try{r=JSON.parse(s)}catch(e){i(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}t(r)}else if(0===this.status){console.warn("loadFile: HTTP Status 0 received.");try{t(JSON.parse(s))}catch(e){i(`utils.loadJSON(): Failed to parse JSON response - ${e}`)}}else i(e)}),!1),r.addEventListener("error",(function(e){i(e)}),!1),r.send(null)},loadArraybuffer:function(e,t,i){var s=e=>{};t=t||s,i=i||s;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),i=new Uint8Array(e);for(var n=0;n{t(e)}))}catch(e){M.scheduleTask((()=>{i(e)}))}}else{const s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onreadystatechange=function(){4===s.readyState&&(200===s.status?t(s.response):i("loadArrayBuffer error : "+s.response))},s.send(null)}},queryString:f,isArray:function(e){return e&&!e.propertyIsEnumerable("length")&&"object"==typeof e&&"number"==typeof e.length},isString:function(e){return"string"==typeof e||e instanceof String},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},isID:function(e){return _.isString(e)||_.isNumeric(e)},isSameComponent:function(e,t){return!(!e||!t)&&(_.isNumeric(e)||_.isString(e)?`${e}`:e.id)===(_.isNumeric(t)||_.isString(t)?`${t}`:t.id)},isFunction:function(e){return"function"==typeof e},isObject:function(e){const t={}.constructor;return!!e&&e.constructor===t},copy:function(e){return _.apply(e,{})},apply:function(e,t){for(const i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t},apply2:function(e,t){for(const i in e)e.hasOwnProperty(i)&&void 0!==e[i]&&null!==e[i]&&(t[i]=e[i]);return t},applyIf:function(e,t){for(const i in e)e.hasOwnProperty(i)&&(void 0!==t[i]&&null!==t[i]||(t[i]=e[i]));return t},isEmptyObject:function(e){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0},inQuotes:function(e){return _.isNumeric(e)?`${e}`:`'${e}'`},concat:function(e,t){const i=new e.constructor(e.length+t.length);return i.set(e),i.set(t,e.length),i},flattenParentChildHierarchy:function(e){var t=[];return function e(i){i.id=i.uuid,delete i.oid,t.push(i);var s=i.children;if(s)for(var r=0,o=s.length;r=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}},w={sceneId:null,time:null,startTime:null,prevTime:null,deltaTime:null},y=[];let P,B=0,C=0;const M=new function(){this.version="1.0.0",this.scenes={},this._superTypes={},this._addScene=function(e){if(e.id){if(M.scenes[e.id])return void console.error(`[ERROR] Scene ${_.inQuotes(e.id)} already exists`)}else e.id=b.addItem({});M.scenes[e.id]=e;const t=e.ticksPerOcclusionTest,i=e.ticksPerRender;v[e.id]={ticksPerOcclusionTest:t,ticksPerRender:i,renderCountdown:i},p.components.scenes++,e.once("destroyed",(()=>{b.removeItem(e.id),delete M.scenes[e.id],delete v[e.id],p.components.scenes--}))},this.clear=function(){let e;for(const t in M.scenes)M.scenes.hasOwnProperty(t)&&(e=M.scenes[t],"default.scene"===t?e.clear():(e.destroy(),delete M.scenes[e.id]))},this.scheduleTask=function(e,t=null){x.push(e),x.push(t)},this.runTasks=function(e=-1){let t,i,s=(new Date).getTime(),r=0;for(;x.length>0&&(e<0||s0&&P>0){var t=1e3/P;C+=t,y.push(t),y.length>=30&&(C-=y.shift()),p.frame.fps=Math.round(C/y.length)}for(let e in M.scenes)M.scenes[e].compile();I(e),B=e};new class{worker=null;constructor(e,t){const i=new Blob([`setInterval(() => postMessage(0), ${t});`]),s=URL.createObjectURL(i);this.worker=new Worker(s),this.worker.onmessage=e}stop(){this.worker.terminate()}}(E,100);const F=function(){let e=Date.now();if(P=e-B,B>0&&P>0){var t=1e3/P;C+=t,y.push(t),y.length>=30&&(C-=y.shift()),p.frame.fps=Math.round(C/y.length)}I(e),function(e){for(var t in w.time=e,M.scenes)if(M.scenes.hasOwnProperty(t)){var i=M.scenes[t];w.sceneId=t,w.startTime=i.startTime,w.deltaTime=null!=w.prevTime?w.time-w.prevTime:0,i.fire("tick",w,!0)}w.prevTime=e}(e),function(){const e=M.scenes,t=!1;let i,s,r,o,n;for(n in e)e.hasOwnProperty(n)&&(i=e[n],s=v[n],s||(s=v[n]={}),r=i.ticksPerOcclusionTest,s.ticksPerOcclusionTest!==r&&(s.ticksPerOcclusionTest=r,s.renderCountdown=r),--i.occlusionTestCountdown<=0&&(i.doOcclusionTest(),i.occlusionTestCountdown=r),o=i.ticksPerRender,s.ticksPerRender!==o&&(s.ticksPerRender=o,s.renderCountdown=o),0==--s.renderCountdown&&(i.render(t),s.renderCountdown=o))}(),void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(E):requestAnimationFrame(F)};function I(e){const t=M.runTasks(e+10),i=M.getNumTasks();p.frame.tasksRun=t,p.frame.tasksScheduled=i,p.frame.tasksBudget=10}F();class D{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 D))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,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],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--)}on(e,i,s){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new t),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let r=this._eventSubs[e];r?this._eventSubsNum[e]++:(r={},this._eventSubs[e]=r,this._eventSubsNum[e]=1);const o=this._subIdMap.addItem();r[o]={callback:i,scope:s||this},this._subIdEvents[o]=e;const n=this._events[e];return void 0!==n&&i.call(s||this,n),o}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&(delete i[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}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+" "+_.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 i=e.component;const s=e.sceneDefault,r=e.sceneSingleton,o=e.type,n=e.on,a=!1!==e.recompiles;if(i&&(_.isNumeric(i)||_.isString(i))){const e=i;if(i=this.scene.components[e],!i)return void this.error("Component not found: "+_.inQuotes(e))}if(!i)if(!0===r){const e=this.scene.types[o];for(const t in e)if(e.hasOwnProperty){i=e[t];break}if(!i)return this.error("Scene has no default component for '"+t+"'"),null}else if(!0===s&&(i=this.scene[t],!i))return this.error("Scene has no default component for '"+t+"'"),null;if(i){if(i.scene.id!==this.scene.id)return void this.error("Not in same scene: "+i.type+" "+_.inQuotes(i.id));if(o&&!i.isType(o))return void this.error("Expected a "+o+" type or subtype: "+i.type+" "+_.inQuotes(i.id))}this._attachments||(this._attachments={});const l=this._attached[t];let A,h,c;if(l){if(i&&l.id===i.id)return;const e=this._attachments[l.id];for(A=e.subs,h=0,c=A.length;h{delete this._ownedComponents[e.id]}),this)}_needUpdate(e){this._updateScheduled||(this._updateScheduled=!0,0===e?this._doUpdate():M.scheduleTask(this._doUpdate,this))}_doUpdate(){this._updateScheduled&&(this._updateScheduled=!1,this._update&&this._update())}scheduleTask(e){M.scheduleTask(e,null)}_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,i,s,r,o;if(this.fire("destroyed",this.destroyed=!0),this._attachments)for(e in this._attachments)if(this._attachments.hasOwnProperty(e)){for(t=this._attachments[e],i=t.component,s=t.subs,r=0,o=s.length;r=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}class U{constructor(){this.planes=[new L,new L,new L,new L,new L,new L]}}function k(e,t,i){const s=d.mulMat4(i,t,R),r=s[0],o=s[1],n=s[2],a=s[3],l=s[4],A=s[5],h=s[6],c=s[7],u=s[8],p=s[9],g=s[10],m=s[11],f=s[12],_=s[13],v=s[14],b=s[15];e.planes[0].set(a-r,c-l,m-u,b-f),e.planes[1].set(a+r,c+l,m+u,b+f),e.planes[2].set(a-o,c-A,m-p,b-_),e.planes[3].set(a+o,c+A,m+p,b+_),e.planes[4].set(a-n,c-h,m-g,b-v),e.planes[5].set(a+n,c+h,m+g,b+v)}function O(e,t){let i=U.INSIDE;const s=S,r=T;s[0]=t[0],s[1]=t[1],s[2]=t[2],r[0]=t[3],r[1]=t[4],r[2]=t[5];const o=[s,r];for(let t=0;t<6;++t){const s=e.planes[t];if(s.normal[0]*o[s.testVertex[0]][0]+s.normal[1]*o[s.testVertex[1]][1]+s.normal[2]*o[s.testVertex[2]][2]+s.offset<0)return U.OUTSIDE;s.normal[0]*o[1-s.testVertex[0]][0]+s.normal[1]*o[1-s.testVertex[1]][1]+s.normal[2]*o[1-s.testVertex[2]][2]+s.offset<0&&(i=U.INTERSECT)}return i}U.INSIDE=0,U.INTERSECT=1,U.OUTSIDE=2;class N extends D{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=d.vec2(),this._canvasMarqueeCorner2=d.vec2(),this._canvasMarquee=d.AABB2(),this._marqueeFrustum=new U,this._marqueeFrustumProjMat=d.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!==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)}getPickMode(){return this._pickMode}clear(){this.fire("clear",{})}pick(){this._updateMarquee(),this._buildMarqueeFrustum();const e=[],t=(i,s=U.INTERSECT)=>{if(s===U.INTERSECT&&(s=O(this._marqueeFrustum,i.aabb)),s!==U.OUTSIDE){if(i.entities){const t=i.entities;for(let i=0,s=t.length;i3||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,i=e.clientHeight,s=e.clientLeft,r=e.clientTop,o=2/t,n=2/i,a=e.clientHeight/e.clientWidth,l=(this._canvasMarquee[0]-s)*o-1,A=(this._canvasMarquee[2]-s)*o-1,h=-(this._canvasMarquee[3]-r)*n+1,c=-(this._canvasMarquee[1]-r)*n+1,u=this.viewer.scene.camera.frustum.near*(17*a);d.frustumMat4(l,A,h*a,c*a,u,1e4,this._marqueeFrustumProjMat),k(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)}}N.PICK_MODE_INTERSECTS=0,N.PICK_MODE_INSIDE=1;class Q{constructor(e,t,i){this.id=i&&i.id?i.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)}scheduleTask(e){M.scheduleTask(e,null)}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],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--)}on(e,i,s){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new t),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let r=this._eventSubs[e];r?this._eventSubsNum[e]++:(r={},this._eventSubs[e]=r,this._eventSubsNum[e]=1);const o=this._subIdMap.addItem();r[o]={callback:i,scope:s||this},this._subIdEvents[o]=e;const n=this._events[e];return void 0!==n&&i.call(s||this,n),o}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&(delete i[e],this._eventSubsNum[t]--),this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}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 V=d.vec3(),j=function(){const e=new Float64Array(16),t=new Float64Array(4),i=new Float64Array(4);return function(s,r,o){return o=o||e,t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=1,d.transformVec4(s,t,i),d.setMat4Translation(s,i,o),o.slice()}}();function H(e,t,i){const s=Float32Array.from([e[0]])[0],r=e[0]-s,o=Float32Array.from([e[1]])[0],n=e[1]-o,a=Float32Array.from([e[2]])[0],l=e[2]-a;t[0]=s,t[1]=o,t[2]=a,i[0]=r,i[1]=n,i[2]=l}function z(e,t,i,s=1e3){const r=d.getPositionsCenter(e,V),o=Math.round(r[0]/s)*s,n=Math.round(r[1]/s)*s,a=Math.round(r[2]/s)*s;i[0]=o,i[1]=n,i[2]=a;const l=0!==i[0]||0!==i[1]||0!==i[2];if(l)for(let i=0,s=e.length;i0?this.meshes[0]._colorize[3]/255:1}set opacity(e){if(0===this.meshes.length)return;const t=null!=e,i=this.meshes[0]._colorize[3];let s=255;if(t){if(e<0?e=0:e>1&&(e=1),s=Math.floor(255*e),i===s)return}else if(s=255,i===s)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&&(d.transformPoint3(this.scene.camera.viewMatrix,this._worldPos,this._viewPos),this._viewPosDirty=!1,this._canvasPosDirty=!0,this.fire("viewPos",this._viewPos)),this._canvasPosDirty){re.set(this._viewPos),re[3]=1,d.transformPoint4(this.scene.camera.projMatrix,re,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 se?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]),H(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 i=this._wire,s=i.style;s.border="solid "+this._thickness+"px "+this._color,s.position="absolute",s["z-index"]=void 0===t.zIndex?"2000001":t.zIndex,s.width="0px",s.height="0px",s.visibility="visible",s.top="0px",s.left="0px",s["-webkit-transform-origin"]="0 0",s["-moz-transform-origin"]="0 0",s["-ms-transform-origin"]="0 0",s["-o-transform-origin"]="0 0",s["transform-origin"]="0 0",s["-webkit-transform"]="rotate(0deg)",s["-moz-transform"]="rotate(0deg)",s["-ms-transform"]="rotate(0deg)",s["-o-transform"]="rotate(0deg)",s.transform="rotate(0deg)",s.opacity=1,s["pointer-events"]="none",t.onContextMenu,e.appendChild(i);var r=this._wireClickable,o=r.style;o.border="solid "+this._thicknessClickable+"px "+this._color,o.position="absolute",o["z-index"]=void 0===t.zIndex?"2000002":t.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",t.onContextMenu,e.appendChild(r),t.onMouseOver&&r.addEventListener("mouseover",(e=>{t.onMouseOver(e,this)})),t.onMouseLeave&&r.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&r.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&r.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&r.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&r.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&r.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,i=this._wire.style;i.width=Math.round(e)+"px",i.left=Math.round(this._x1)+"px",i.top=Math.round(this._y1)+"px",i["-webkit-transform"]="rotate("+t+"deg)",i["-moz-transform"]="rotate("+t+"deg)",i["-ms-transform"]="rotate("+t+"deg)",i["-o-transform"]="rotate("+t+"deg)",i.transform="rotate("+t+"deg)";var s=this._wireClickable.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)"}setStartAndEnd(e,t,i,s){this._x1=e,this._y1=t,this._x2=i,this._y2=s,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 le{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 i=this._dot,s=i.style;s["border-radius"]="25px",s.border="solid 2px white",s.background="lightgreen",s.position="absolute",s["z-index"]=void 0===t.zIndex?"40000005":t.zIndex,s.width="8px",s.height="8px",s.visibility=!1!==t.visible?"visible":"hidden",s.top="0px",s.left="0px",s["box-shadow"]="0 2px 5px 0 #182A3D;",s.opacity=1,s["pointer-events"]="none",t.onContextMenu,e.appendChild(i);var r=this._dotClickable,o=r.style;o["border-radius"]="35px",o.border="solid 10px white",o.position="absolute",o["z-index"]=void 0===t.zIndex?"40000007":t.zIndex+1,o.width="8px",o.height="8px",o.visibility="visible",o.top="0px",o.left="0px",o.opacity=0,o["pointer-events"]="none",t.onContextMenu,e.appendChild(r),r.addEventListener("click",(t=>{e.dispatchEvent(new MouseEvent("mouseover",t))})),t.onMouseOver&&r.addEventListener("mouseover",(i=>{t.onMouseOver(i,this),e.dispatchEvent(new MouseEvent("mouseover",i))})),t.onMouseLeave&&r.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this)})),t.onMouseWheel&&r.addEventListener("wheel",(e=>{t.onMouseWheel(e,this)})),t.onMouseDown&&r.addEventListener("mousedown",(e=>{t.onMouseDown(e,this)})),t.onMouseUp&&r.addEventListener("mouseup",(e=>{t.onMouseUp(e,this)})),t.onMouseMove&&r.addEventListener("mousemove",(e=>{t.onMouseMove(e,this)})),t.onContextMenu&&r.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 i=this._dot.style;i.left=Math.round(e)-4+"px",i.top=Math.round(t)-4+"px";var s=this._dotClickable.style;s.left=Math.round(e)-9+"px",s.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 Ae{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 i=this._label,s=i.style;s["border-radius"]="5px",s.color="white",s.padding="4px",s.border="solid 1px",s.background="lightgreen",s.position="absolute",s["z-index"]=void 0===t.zIndex?"5000005":t.zIndex,s.width="auto",s.height="auto",s.visibility="visible",s.top="0px",s.left="0px",s["pointer-events"]="all",s.opacity=1,t.onContextMenu,i.innerText="",e.appendChild(i),this.setPos(t.x||0,t.y||0),this.setFillColor(t.fillColor),this.setBorderColor(t.fillColor),this.setText(t.text),t.onMouseOver&&i.addEventListener("mouseover",(e=>{t.onMouseOver(e,this),e.preventDefault()})),t.onMouseLeave&&i.addEventListener("mouseleave",(e=>{t.onMouseLeave(e,this),e.preventDefault()})),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()}))}setPos(e,t){this._x=e,this._y=t;var i=this._label.style;i.left=Math.round(e)-20+"px",i.top=Math.round(t)-12+"px"}setPosOnWire(e,t,i,s){var r=e+.5*(i-e),o=t+.5*(s-t),n=this._label.style;n.left=Math.round(r)-20+"px",n.top=Math.round(o)-12+"px"}setPosBetweenWires(e,t,i,s,r,o){var n=(e+i+r)/3,a=(t+s+o)/3,l=this._label.style;l.left=Math.round(n)-20+"px",l.top=Math.round(a)-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 he=d.vec3(),ce=d.vec3();class ue extends D{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 i=this.plugin.viewer.scene;this._originMarker=new ne(i,t.origin),this._cornerMarker=new ne(i,t.corner),this._targetMarker=new ne(i,t.target),this._originWorld=d.vec3(),this._cornerWorld=d.vec3(),this._targetWorld=d.vec3(),this._wp=new Float64Array(12),this._vp=new Float64Array(12),this._pp=new Float64Array(12),this._cp=new Int16Array(6);const s=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,r=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,o=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,n=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))},a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},l=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},A=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))};this._originDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._cornerDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._targetDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._originWire=new ae(this._container,{color:this._color||"blue",thickness:1,zIndex:e.zIndex,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._targetWire=new ae(this._container,{color:this._color||"red",thickness:1,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),this._angleLabel=new Ae(this._container,{fillColor:this._color||"#00BBFF",prefix:"",text:"",zIndex:e.zIndex+2,onMouseOver:s,onMouseLeave:r,onMouseWheel:n,onMouseDown:a,onMouseUp:l,onMouseMove:A,onContextMenu:o}),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=i.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=i.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=i.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onSectionPlaneUpdated=i.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&&(d.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 u=-.3,p=this._originMarker.viewPos[2],g=this._cornerMarker.viewPos[2],m=this._targetMarker.viewPos[2];if(p>u||g>u||m>u)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);d.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var t=this._pp,i=this._cp,s=e.canvas.canvas.getBoundingClientRect();const f=this._container.getBoundingClientRect();for(var r=s.top-f.top,o=s.left-f.left,n=e.canvas.boundary,a=n[2],l=n[3],A=0,h=0,c=t.length;h{e.snappedToVertex||e.snappedToEdge?(s&&(s.visible=!0,s.canvasPos=e.canvasPos,s.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,s.snapped=!0),this.markerDiv.style.background="greenyellow",this.markerDiv.style.border="2px solid green"):(s&&(s.visible=!0,s.canvasPos=e.canvasPos,s.snappedCanvasPos=e.canvasPos,s.snapped=!1),this.markerDiv.style.background="pink",this.markerDiv.style.border="2px solid red");const i=e.snappedCanvasPos||e.canvasPos;switch(r=!0,o=e.entity,l.set(e.worldPos),A.set(i),this._mouseState){case 0:const s=t.getBoundingClientRect(),r=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop,n=s.left+r,a=s.top+o;this.markerDiv.style.left=n+i[0]-5+"px",this.markerDiv.style.top=a+i[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.left="-10000px",this.markerDiv.style.top="-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.left="-10000px",this.markerDiv.style.top="-10000px",t.style.cursor="pointer"}})),t.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(n=e.clientX,a=e.clientY)}),t.addEventListener("mouseup",this._onMouseUp=e=>{if(1===e.which&&!(e.clientX>n+20||e.clientXa+20||e.clientY{if(r=!1,s&&(s.visible=!0,s.pointerPos=e.canvasPos,s.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos,s.snapped=!1),this.markerDiv.style.left="-100px",this.markerDiv.style.top="-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 ge extends Q{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,i=e.corner,s=e.target,r=new ue(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},corner:{entity:i.entity,worldPos:i.worldPos},target:{entity:s.entity,worldPos:s.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[r.id]=r,r.on("destroyed",(()=>{delete this._measurements[r.id]})),r.clickable=!0,this.fire("measurementCreated",r),r}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,i]of Object.entries(this.measurements))i.labelShown=e}clear(){const e=Object.keys(this._measurements);for(var t=0,i=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,i=t.style;i.left=e.offsetLeft+.5*e.clientWidth-.5*t.clientWidth+"px",i.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 i=this._element;i&&(i.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 fe=["webgl2","experimental-webgl","webkit-3d","moz-webgl","moz-glweb20"];class _e extends D{constructor(e,t={}){super(e,t),this._backgroundColor=d.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 i=this;this.canvas.addEventListener("webglcontextlost",this._webglcontextlostListener=function(e){console.time("webglcontextrestored"),i.scene._webglContextLost(),i.fire("webglcontextlost"),e.preventDefault()},!1),this.canvas.addEventListener("webglcontextrestored",this._webglcontextrestoredListener=function(e){i._initWebGL(),i.gl&&(i.scene._webglContextRestored(i.gl),i.fire("webglcontextrestored",i.gl),e.preventDefault()),console.timeEnd("webglcontextrestored")},!1);let s=!0;new ResizeObserver((e=>{for(const t of e)t.contentBoxSize&&(s=!0)})).observe(this.canvas),this._tick=this.scene.on("tick",(()=>{s&&(s=!1,i.canvas.width=Math.round(i.canvas.clientWidth*i._resolutionScale),i.canvas.height=Math.round(i.canvas.clientHeight*i._resolutionScale),i.boundary[0]=i.canvas.offsetLeft,i.boundary[1]=i.canvas.offsetTop,i.boundary[2]=i.canvas.clientWidth,i.boundary[3]=i.canvas.clientHeight,i.fire("boundary",i.boundary))})),this._spinner=new me(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-"+d.createUUID(),t=document.getElementsByTagName("body")[0],i=document.createElement("div"),s=i.style;s.height="100%",s.width="100%",s.padding="0",s.margin="0",s.background="rgba(0,0,0,0);",s.float="left",s.left="0",s.top="0",s.position="absolute",s.opacity="1.0",s["z-index"]="-10000",i.innerHTML+='',t.appendChild(i),this.canvas=document.getElementById(e)}_getElementXY(e){let t=0,i=0;for(;e;)t+=e.offsetLeft-e.scrollLeft,i+=e.offsetTop-e.scrollTop,e=e.offsetParent;return{x:t,y:i}}_initWebGL(){if(!this.gl)for(let e=0;!this.gl&&e0?be.FS_MAX_FLOAT_PRECISION="highp":e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?be.FS_MAX_FLOAT_PRECISION="mediump":be.FS_MAX_FLOAT_PRECISION="lowp":be.FS_MAX_FLOAT_PRECISION="mediump",be.DEPTH_BUFFER_BITS=e.getParameter(e.DEPTH_BITS),be.MAX_TEXTURE_SIZE=e.getParameter(e.MAX_TEXTURE_SIZE),be.MAX_CUBE_MAP_SIZE=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),be.MAX_RENDERBUFFER_SIZE=e.getParameter(e.MAX_RENDERBUFFER_SIZE),be.MAX_TEXTURE_UNITS=e.getParameter(e.MAX_COMBINED_TEXTURE_IMAGE_UNITS),be.MAX_TEXTURE_IMAGE_UNITS=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),be.MAX_VERTEX_ATTRIBS=e.getParameter(e.MAX_VERTEX_ATTRIBS),be.MAX_VERTEX_UNIFORM_VECTORS=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),be.MAX_FRAGMENT_UNIFORM_VECTORS=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),be.MAX_VARYING_VECTORS=e.getParameter(e.MAX_VARYING_VECTORS),e.getSupportedExtensions().forEach((function(e){be.SUPPORTED_EXTENSIONS[e]=!0})))}class we{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 ye{constructor(e,t,i){if(this.allocated=!1,this.compiled=!1,this.handle=e.createShader(t),this.handle){if(this.allocated=!0,e.shaderSource(this.handle,i),e.compileShader(this.handle),this.compiled=e.getShaderParameter(this.handle,e.COMPILE_STATUS),!this.compiled&&!e.isContextLost()){const t=i.split("\n"),s=[];for(let e=0;e0&&"/"===i.charAt(s+1)&&(i=i.substring(0,s)),t.push(i);return t.join("\n")}function Ee(e){console.error(e.join("\n"))}class Fe{constructor(e,t){this.id=Ce.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 ye(e,e.VERTEX_SHADER,Me(this.source.vertex)),this._fragmentShader=new ye(e,e.FRAGMENT_SHADER,Me(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void Ee(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void Ee(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void Ee(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void Ee(this.errors);let t,i,s,r,o;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 Ee(this.errors);const n=e.getProgramParameter(this.handle,e.ACTIVE_UNIFORMS);for(i=0;ithis.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 De{constructor(e,t){this.scene=e,this.aabb=d.AABB3(),this.origin=d.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){i._setVisible(!1);continue}const n=i.canvasPos,a=n[0],l=n[1];a+10<0||l+10<0||a-10>s||l-10>r?i._setVisible(!1):!i.entity||i.entity.visible?i.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=i,this.pixels[o++]=a,this.pixels[o++]=l):i._setVisible(!0):i._setVisible(!1)}}_updateActiveSectionPlanes(){const e=this.scene._sectionPlanesState.sectionPlanes,t=e.length;if(t>0)for(let i=0;i{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 i=this._occlusionLayers[t];i||(i=new De(this._scene,e.origin),this._occlusionLayers[i.originHash]=i,this._occlusionLayersListDirty=!0),i.addMarker(e),this._markersToOcclusionLayersMap[e.id]=i,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 i=e.origin.join();if(i!==t.originHash){1===t.numMarkers?(t.destroy(),delete this._occlusionLayers[t.originHash],this._occlusionLayersListDirty=!0):t.removeMarker(e);let s=this._occlusionLayers[i];s||(s=new De(this._scene,e.origin),this._occlusionLayers[i]=t,this._occlusionLayersListDirty=!0),s.addMarker(e),this._markersToOcclusionLayersMap[e.id]=s}else t.markerWorldPosUpdated(e)}removeMarker(e){const t=e.origin.join();let i=this._occlusionLayers[t];i&&(1===i.numMarkers?(i.destroy(),delete this._occlusionLayers[i.originHash],this._occlusionLayersListDirty=!0):i.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,i=[];return i.push("#version 300 es"),i.push("// OcclusionTester vertex shader"),i.push("in vec3 position;"),i.push("uniform mat4 modelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&i.push("out vec4 vWorldPosition;"),i.push("void main(void) {"),i.push("vec4 worldPosition = vec4(position, 1.0); "),i.push(" vec4 viewPosition = viewMatrix * worldPosition;"),t&&i.push(" vWorldPosition = worldPosition;"),i.push(" vec4 clipPos = projMatrix * viewPosition;"),i.push(" gl_PointSize = 20.0;"),e.logarithmicDepthBufferEnabled?i.push("vFragDepth = 1.0 + clipPos.w;"):i.push("clipPos.z += -0.001;"),i.push(" gl_Position = clipPos;"),i.push("}"),i}_buildFragmentShaderSource(){const e=this._scene,t=e._sectionPlanesState,i=t.sectionPlanes.length>0,s=[];if(s.push("#version 300 es"),s.push("// OcclusionTester 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),s.push("}"),s}_buildProgram(){this._program&&this._program.destroy();const e=this._scene,t=e.canvas.gl,i=e._sectionPlanesState;if(this._program=new Fe(t,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,t=i.sectionPlanes.length;e0){const e=s.sectionPlanes;for(let s=0;s{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=d.mat4();return()=>(e&&d.inverseMat4(s.camera.projMatrix,t),t)})());const t=this._scene.canvas.gl,i=this._program,s=this._scene,r=s.sao,o=t.drawingBufferWidth,n=t.drawingBufferHeight,a=s.camera.project._state,l=a.near,A=a.far,h=a.matrix,c=this._getInverseProjectMat(),u=Math.random(),p="perspective"===s.camera.projection;Le[0]=o,Le[1]=n,t.viewport(0,0,o,n),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),i.bind(),t.uniform1f(this._uCameraNear,l),t.uniform1f(this._uCameraFar,A),t.uniformMatrix4fv(this._uCameraProjectionMatrix,!1,h),t.uniformMatrix4fv(this._uCameraInverseProjectionMatrix,!1,c),t.uniform1i(this._uPerspective,p),t.uniform1f(this._uScale,r.scale*(A/5)),t.uniform1f(this._uIntensity,r.intensity),t.uniform1f(this._uBias,r.bias),t.uniform1f(this._uKernelRadius,r.kernelRadius),t.uniform1f(this._uMinResolution,r.minResolution),t.uniform2fv(this._uViewport,Le),t.uniform1f(this._uRandomSeed,u);const g=e.getDepthTexture();i.bindTexture(this._uDepthTexture,g,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 i=this._scene.canvas.gl;if(this._program&&(this._program.destroy(),this._program=null),this._program=new Fe(i,{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 s=new Float32Array([1,1,0,1,0,0,1,0]),r=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),o=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Ie(i,i.ARRAY_BUFFER,r,r.length,3,i.STATIC_DRAW),this._uvBuf=new Ie(i,i.ARRAY_BUFFER,s,s.length,2,i.STATIC_DRAW),this._indicesBuf=new Ie(i,i.ELEMENT_ARRAY_BUFFER,o,o.length,1,i.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 ke=new Float32Array(He(17,[0,1])),Oe=new Float32Array(He(17,[1,0])),Ne=new Float32Array(function(e,t){const i=[];for(let s=0;s<=e;s++)i.push(je(s,t));return i}(17,4)),Qe=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 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]),i=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),s=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new Ie(e,e.ARRAY_BUFFER,i,i.length,3,e.STATIC_DRAW),this._uvBuf=new Ie(e,e.ARRAY_BUFFER,t,t.length,2,e.STATIC_DRAW),this._indicesBuf=new Ie(e,e.ELEMENT_ARRAY_BUFFER,s,s.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,i){if(this._programError)return;this._getInverseProjectMat||(this._getInverseProjectMat=(()=>{let e=!0;this._scene.camera.on("projMatrix",(function(){e=!0}));const t=d.mat4();return()=>(e&&d.inverseMat4(o.camera.projMatrix,t),t)})());const s=this._scene.canvas.gl,r=this._program,o=this._scene,n=s.drawingBufferWidth,a=s.drawingBufferHeight,l=o.camera.project._state,A=l.near,h=l.far;s.viewport(0,0,n,a),s.clearColor(0,0,0,1),s.enable(s.DEPTH_TEST),s.disable(s.BLEND),s.frontFace(s.CCW),s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),r.bind(),Qe[0]=n,Qe[1]=a,s.uniform2fv(this._uViewport,Qe),s.uniform1f(this._uCameraNear,A),s.uniform1f(this._uCameraFar,h),s.uniform1f(this._uDepthCutoff,.01),0===i?s.uniform2fv(this._uSampleOffsets,Oe):s.uniform2fv(this._uSampleOffsets,ke),s.uniform1fv(this._uSampleWeights,Ne);const c=e.getDepthTexture(),u=t.getTexture();r.bindTexture(this._uDepthTexture,c,0),r.bindTexture(this._uOcclusionTexture,u,1),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),s.drawElements(s.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}destroy(){this._program.destroy()}}function je(e,t){return Math.exp(-e*e/(t*t*2))/(Math.sqrt(2*Math.PI)*t)}function He(e,t){const i=[];for(let s=0;s<=e;s++)i.push(t[0]*s),i.push(t[1]*s);return i}class ze{constructor(e,t,i){i=i||{},this.gl=t,this.allocated=!1,this.canvas=e,this.buffer=null,this.bound=!1,this.size=i.size,this._hasDepthTexture=!!i.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,i=null){const s=this.gl,r=s.createTexture();return s.bindTexture(s.TEXTURE_2D,r),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),i?s.texStorage2D(s.TEXTURE_2D,1,i,e,t):s.texImage2D(s.TEXTURE_2D,0,s.RGBA,e,t,0,s.RGBA,s.UNSIGNED_BYTE,null),r}_touch(...e){let t,i;const s=this.gl;if(this.size?(t=this.size[0],i=this.size[1]):(t=s.drawingBufferWidth,i=s.drawingBufferHeight),this.buffer){if(this.buffer.width===t&&this.buffer.height===i)return;this.buffer.textures.forEach((e=>s.deleteTexture(e))),s.deleteFramebuffer(this.buffer.framebuf),s.deleteRenderbuffer(this.buffer.renderbuf)}const r=[];let o;e.length>0?r.push(...e.map((e=>this.createTexture(t,i,e)))):r.push(this.createTexture(t,i)),this._hasDepthTexture&&(o=s.createTexture(),s.bindTexture(s.TEXTURE_2D,o),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texImage2D(s.TEXTURE_2D,0,s.DEPTH_COMPONENT32F,t,i,0,s.DEPTH_COMPONENT,s.FLOAT,null));const n=s.createRenderbuffer();s.bindRenderbuffer(s.RENDERBUFFER,n),s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_COMPONENT32F,t,i);const a=s.createFramebuffer();s.bindFramebuffer(s.FRAMEBUFFER,a);for(let e=0;e0&&s.drawBuffers(r.map(((e,t)=>s.COLOR_ATTACHMENT0+t))),this._hasDepthTexture?s.framebufferTexture2D(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.TEXTURE_2D,o,0):s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,n),s.bindTexture(s.TEXTURE_2D,null),s.bindRenderbuffer(s.RENDERBUFFER,null),s.bindFramebuffer(s.FRAMEBUFFER,null),s.bindFramebuffer(s.FRAMEBUFFER,a),!s.isFramebuffer(a))throw"Invalid framebuffer";s.bindFramebuffer(s.FRAMEBUFFER,null);const l=s.checkFramebufferStatus(s.FRAMEBUFFER);switch(l){case s.FRAMEBUFFER_COMPLETE:break;case s.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case s.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case s.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case s.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+l}this.buffer={framebuf:a,renderbuf:n,texture:r[0],textures:r,depthTexture:o,width:t,height:i},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,i=null,s=null,r=Uint8Array,o=4,n=0){const a=e,l=this.buffer.height?this.buffer.height-t-1:this.gl.drawingBufferHeight-t,A=new r(o),h=this.gl;return h.readBuffer(h.COLOR_ATTACHMENT0+n),h.readPixels(a,l,1,1,i||h.RGBA,s||h.UNSIGNED_BYTE,A,0),A}readArray(e=null,t=null,i=Uint8Array,s=4,r=0){const o=new i(this.buffer.width*this.buffer.height*s),n=this.gl;return n.readBuffer(n.COLOR_ATTACHMENT0+r),n.readPixels(0,0,this.buffer.width,this.buffer.height,e||n.RGBA,t||n.UNSIGNED_BYTE,o,0),o}readImageAsCanvas(){const e=this.gl,t=this._getImageDataCache(),i=t.pixelData,s=t.canvas,r=t.imageData,o=t.context;e.readPixels(0,0,this.buffer.width,this.buffer.height,e.RGBA,e.UNSIGNED_BYTE,i);const n=this.buffer.width,a=this.buffer.height,l=a/2|0,A=4*n,h=new Uint8Array(4*n);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 Ge{constructor(e){this.scene=e,this._renderBuffersBasic={},this._renderBuffersScaled={}}getRenderBuffer(e,t){const i=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled;let s=i[e];return s||(s=new ze(this.scene.canvas.canvas,this.scene.canvas.gl,t),i[e]=s),s}destroy(){for(let e in this._renderBuffersBasic)this._renderBuffersBasic[e].destroy();for(let e in this._renderBuffersScaled)this._renderBuffersScaled[e].destroy()}}function We(e,t){if(void 0===e._cachedExtensions&&(e._cachedExtensions={}),void 0!==e._cachedExtensions[t])return e._cachedExtensions[t];let i;switch(t){case"WEBGL_depth_texture":i=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=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":i=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":i=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=e.getExtension(t)}return e._cachedExtensions[t]=i,i}const Ke=function(e,i){i=i||{};const s=new ve(e),r=e.canvas.canvas,o=e.canvas.gl,n=!!i.transparent,a=i.alphaDepthMask,l=new t({});let A={},h={},c=!0,u=!0,g=!0,m=!0,f=!0,_=!0,v=!0,b=!0;const x=new Ge(e);let w=!1;const y=new Ue(e),P=new Ve(e);function B(){c&&(!function(){for(let e in A)if(A.hasOwnProperty(e)){const t=A[e],i=t.drawableMap,s=t.drawableListPreCull;let r=0;for(let e in i)i.hasOwnProperty(e)&&(s[r++]=i[e]);s.length=r}}(),c=!1,u=!0),u&&(!function(){for(let e in A)if(A.hasOwnProperty(e)){const t=A[e];t.isStateSortable&&t.drawableListPreCull.sort(t.stateSortCompare)}}(),u=!1,g=!0),g&&function(){for(let e in A)if(A.hasOwnProperty(e)){const t=A[e],i=t.drawableListPreCull,s=t.drawableList;let r=0;for(let e=0,t=i.length;e0)for(s.withSAO=!0,S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||H>0||O>0||N>0){if(o.enable(o.CULL_FACE),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):(o.blendEquation(o.FUNC_ADD),o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA)),s.backfaces=!1,a||o.depthMask(!1),(O>0||N>0)&&o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),N>0)for(S=0;S0)for(S=0;S0)for(S=0;S0)for(S=0;S0||G>0){if(s.lastProgramId=null,e.highlightMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),G>0)for(S=0;S0)for(S=0;S0||K>0||z>0){if(s.lastProgramId=null,e.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),o.enable(o.CULL_FACE),K>0)for(S=0;S0)for(S=0;S0||Y>0){if(s.lastProgramId=null,e.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),Y>0)for(S=0;S0)for(S=0;S0||Z>0){if(s.lastProgramId=null,e.selectedMaterial.glowThrough&&o.clear(o.DEPTH_BUFFER_BIT),o.enable(o.CULL_FACE),o.enable(o.BLEND),n?(o.blendEquation(o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA),Z>0)for(S=0;S0)for(S=0;S0){const t=Math.floor(e/4),i=u.size[0],s=t%i-Math.floor(i/2),r=Math.floor(t/i)-Math.floor(i/2),o=Math.sqrt(Math.pow(s,2)+Math.pow(r,2));M.push({x:s,y:r,dist:o,isVertex:n&&a?_[e+3]>f.length/2:n,result:[_[e+0],_[e+1],_[e+2],_[e+3]],normal:[v[e+0],v[e+1],v[e+2],v[e+3]],id:[b[e+0],b[e+1],b[e+2],b[e+3]]})}let D=null,S=null,T=null,R=null;if(M.length>0){M.sort(((e,t)=>e.isVertex!==t.isVertex?e.isVertex?-1:1:e.dist-t.dist)),R=M[0].isVertex?"vertex":"edge";const e=M[0].result,t=M[0].normal,i=M[0].id,s=f[e[3]],r=s.origin,o=s.coordinateScale;S=d.normalizeVec3([t[0]/d.MAX_INT,t[1]/d.MAX_INT,t[2]/d.MAX_INT]),D=[e[0]*o[0]+r[0],e[1]*o[1]+r[1],e[2]*o[2]+r[2]],T=l.items[i[0]+(i[1]<<8)+(i[2]<<16)+(i[3]<<24)]}if(null===w&&null==D)return null;let L=null;null!==D&&(L=e.camera.projectWorldPos(D));const U=T&&T.delegatePickedEntity?T.delegatePickedEntity():T;return h.reset(),h.snappedToEdge="edge"===R,h.snappedToVertex="vertex"===R,h.worldPos=D,h.worldNormal=S,h.entity=U,h.canvasPos=i,h.snappedCanvasPos=L||i,h}}(),this.addMarker=function(t){this._occlusionTester=this._occlusionTester||new Re(e,x),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){B(),this._occlusionTester.bindRenderBuf(),s.reset(),s.backfaces=!0,s.frontface=!0,o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.clearColor(0,0,0,0),o.enable(o.DEPTH_TEST),o.disable(o.CULL_FACE),o.disable(o.BLEND),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT);for(let e in A)if(A.hasOwnProperty(e)){const t=A[e].drawableList;for(let e=0,i=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,i)=>{if(!this.enabled)return;const s=Math.max(-1,Math.min(1,40*-e.deltaY));t(s)},{passive:!0});{let e,t;const i=2;this.on("mousedown",(i=>{e=i[0],t=i[1]})),this.on("mouseup",(s=>{e>=s[0]-i&&e<=s[0]+i&&t>=s[1]-i&&t<=s[1]+i&&this.fire("mouseclicked",s,!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,i=0,s=0;for(;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,t=t.offsetParent;this.mouseCanvasPos[0]=e.pageX-i,this.mouseCanvasPos[1]=e.pageY-s}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 Ye=new t({});class qe{constructor(e){this.id=Ye.addItem({});for(const t in e)e.hasOwnProperty(t)&&(this[t]=e[t])}destroy(){Ye.removeItem(this.id)}}class Ze extends D{get type(){return"Viewport"}constructor(e,t={}){super(e,t),this._state=new qe({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],i=e[3];this._state.boundary=[0,0,t,i],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 Je extends D{get type(){return"Perspective"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new qe({matrix:d.mat4(),inverseMatrix:d.mat4(),transposedMatrix:d.mat4(),near:.1,far:1e4}),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],i=this._fovAxis;let s=this._fov;("x"===i||"min"===i&&t<1||"max"===i&&t>1)&&(s/=t),s=Math.min(s,120),d.perspectiveMat4(s*(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:1e4;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&&(d.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(d.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,i,s,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return i[0]=(e[0]-n)/n,i[1]=(e[1]-a)/a,i[2]=t,i[3]=1,d.mulMat4v4(this.inverseMatrix,i,s),d.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1,d.mulMat4v4(this.camera.inverseViewMatrix,s,r),r}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}class $e extends D{get type(){return"Ortho"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new qe({matrix:d.mat4(),inverseMatrix:d.mat4(),transposedMatrix:d.mat4(),near:.1,far:1e4}),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,i=e.canvas.boundary,s=i[2],r=i[3],o=s/r;let n,a,l,A;s>r?(n=-t,a=t,l=t/o,A=-t/o):(n=-t*o,a=t*o,l=t,A=-t),d.orthoMat4c(n,a,A,l,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:1e4;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&&(d.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(d.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,i,s,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return i[0]=(e[0]-n)/n,i[1]=(e[1]-a)/a,i[2]=t,i[3]=1,d.mulMat4v4(this.inverseMatrix,i,s),d.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1,d.mulMat4v4(this.camera.inverseViewMatrix,s,r),r}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}class et extends D{get type(){return"Frustum"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new qe({matrix:d.mat4(),inverseMatrix:d.mat4(),transposedMatrix:d.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(){d.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&&(d.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(d.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,i,s,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return i[0]=(e[0]-n)/n,i[1]=(e[1]-a)/a,i[2]=t,i[3]=1,d.mulMat4v4(this.inverseMatrix,i,s),d.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1,d.mulMat4v4(this.camera.inverseViewMatrix,s,r),r}destroy(){super.destroy(),this._state.destroy(),super.destroy()}}class tt extends D{get type(){return"CustomProjection"}constructor(e,t={}){super(e,t),this.camera=e,this._state=new qe({matrix:d.mat4(),inverseMatrix:d.mat4(),transposedMatrix:d.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&&(d.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(d.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(e,t,i,s,r){const o=this.scene.canvas.canvas,n=o.offsetWidth/2,a=o.offsetHeight/2;return i[0]=(e[0]-n)/n,i[1]=(e[1]-a)/a,i[2]=t,i[3]=1,d.mulMat4v4(this.inverseMatrix,i,s),d.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1,d.mulMat4v4(this.camera.inverseViewMatrix,s,r),r}destroy(){super.destroy(),this._state.destroy()}}const it=d.vec3(),st=d.vec3(),rt=d.vec3(),ot=d.vec3(),nt=d.vec3(),at=d.vec3(),lt=d.vec4(),At=d.vec4(),ht=d.vec4(),ct=d.mat4(),ut=d.mat4(),dt=d.vec3(),pt=d.vec3(),gt=d.vec3(),mt=d.vec3();class ft extends D{get type(){return"Camera"}constructor(e,t={}){super(e,t),this._state=new qe({deviceMatrix:d.mat4(),hasDeviceMatrix:!1,matrix:d.mat4(),normalMatrix:d.mat4(),inverseMatrix:d.mat4()}),this._perspective=new Je(this),this._ortho=new $e(this),this._frustum=new et(this),this._customProjection=new tt(this),this._project=this._perspective,this._eye=d.vec3([0,0,10]),this._look=d.vec3([0,0,0]),this._up=d.vec3([0,1,0]),this._worldUp=d.vec3([0,1,0]),this._worldRight=d.vec3([1,0,0]),this._worldForward=d.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?(d.subVec3(this._eye,this._look,dt),d.normalizeVec3(dt,pt),d.mulVec3Scalar(pt,1e3,gt),d.addVec3(this._look,gt,mt),t=mt):t=this._eye,e.hasDeviceMatrix?(d.lookAtMat4v(t,this._look,this._up,ut),d.mulMat4(e.deviceMatrix,ut,e.matrix)):d.lookAtMat4v(t,this._look,this._up,e.matrix),d.inverseMat4(this._state.matrix,this._state.inverseMatrix),d.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=d.subVec3(this._eye,this._look,it);d.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,ct),t=d.transformPoint3(ct,t,st),this.eye=d.addVec3(this._look,t,rt),this.up=d.transformPoint3(ct,this._up,ot)}orbitPitch(e){if(this._constrainPitch&&(e=d.dotVec3(this._up,this._worldUp)/d.DEGTORAD)<1)return;let t=d.subVec3(this._eye,this._look,it);const i=d.cross3Vec3(d.normalizeVec3(t,st),d.normalizeVec3(this._up,rt));d.rotationMat4v(.0174532925*e,i,ct),t=d.transformPoint3(ct,t,ot),this.up=d.transformPoint3(ct,this._up,nt),this.eye=d.addVec3(t,this._look,at)}yaw(e){let t=d.subVec3(this._look,this._eye,it);d.rotationMat4v(.0174532925*e,this._gimbalLock?this._worldUp:this._up,ct),t=d.transformPoint3(ct,t,st),this.look=d.addVec3(t,this._eye,rt),this._gimbalLock&&(this.up=d.transformPoint3(ct,this._up,ot))}pitch(e){if(this._constrainPitch&&(e=d.dotVec3(this._up,this._worldUp)/d.DEGTORAD)<1)return;let t=d.subVec3(this._look,this._eye,it);const i=d.cross3Vec3(d.normalizeVec3(t,st),d.normalizeVec3(this._up,rt));d.rotationMat4v(.0174532925*e,i,ct),this.up=d.transformPoint3(ct,this._up,at),t=d.transformPoint3(ct,t,ot),this.look=d.addVec3(t,this._eye,nt)}pan(e){const t=d.subVec3(this._eye,this._look,it),i=[0,0,0];let s;if(0!==e[0]){const r=d.cross3Vec3(d.normalizeVec3(t,[]),d.normalizeVec3(this._up,st));s=d.mulVec3Scalar(r,e[0]),i[0]+=s[0],i[1]+=s[1],i[2]+=s[2]}0!==e[1]&&(s=d.mulVec3Scalar(d.normalizeVec3(this._up,rt),e[1]),i[0]+=s[0],i[1]+=s[1],i[2]+=s[2]),0!==e[2]&&(s=d.mulVec3Scalar(d.normalizeVec3(t,ot),e[2]),i[0]+=s[0],i[1]+=s[1],i[2]+=s[2]),this.eye=d.addVec3(this._eye,i,nt),this.look=d.addVec3(this._look,i,at)}zoom(e){const t=d.subVec3(this._eye,this._look,it),i=Math.abs(d.lenVec3(t,st)),s=Math.abs(i+e);if(s<.5)return;const r=d.normalizeVec3(t,rt);this.eye=d.addVec3(this._look,d.mulVec3Scalar(r,s),ot)}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=d.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 d.lenVec3(d.subVec3(this._look,this._eye,it))}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=lt,i=At,s=ht;t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,d.mulMat4v4(this.viewMatrix,t,i),d.mulMat4v4(this.projMatrix,i,s),d.mulVec3Scalar(s,1/s[3]),s[3]=1,s[1]*=-1;const r=this.scene.canvas.canvas,o=r.offsetWidth/2,n=r.offsetHeight/2;return[s[0]*o+o,s[1]*n+n]}destroy(){super.destroy(),this._state.destroy()}}class _t extends D{get type(){return"Light"}get isLight(){return!0}constructor(e,t={}){super(e,t)}}class vt extends _t{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 i=this.scene.camera,s=this.scene.canvas;this._onCameraViewMatrix=i.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=i.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=s.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new qe({type:"dir",dir:d.vec3([1,1,1]),color:d.vec3([.7,.7,.8]),intensity:1,space:t.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(this._shadowViewMatrixDirty){this._shadowViewMatrix||(this._shadowViewMatrix=d.identityMat4());const e=this.scene.camera,t=this._state.dir,i=e.look,s=[i[0]-t[0],i[1]-t[1],i[2]-t[2]],r=[0,1,0];d.lookAtMat4v(s,i,r,this._shadowViewMatrix),this._shadowViewMatrixDirty=!1}return this._shadowViewMatrix},getShadowProjMatrix:()=>(this._shadowProjMatrixDirty&&(this._shadowProjMatrix||(this._shadowProjMatrix=d.identityMat4()),d.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 bt extends _t{get type(){return"AmbientLight"}constructor(e,t={}){super(e,t),this._state={type:"ambient",color:d.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 xt extends D{get type(){return"Geometry"}get isGeometry(){return!0}constructor(e,t={}){super(e,t),p.memory.meshes++}destroy(){super.destroy(),p.memory.meshes--}}var wt=function(){const e=[],t=[],i=[],s=[],r=[];let o=0;const n=new Uint16Array(3),a=new Uint16Array(3),l=new Uint16Array(3),A=d.vec3(),h=d.vec3(),c=d.vec3(),u=d.vec3(),p=d.vec3(),g=d.vec3(),m=d.vec3();return function(f,_,v,b){!function(r,o){const n={};let a,l,A,h;const c=Math.pow(10,4);let u,d,p=0;for(u=0,d=r.length;uw)||(T=i[F.index1],R=i[F.index2],(!L&&T>65535||R>65535)&&(L=!0),x.push(T),x.push(R));return L?new Uint32Array(x):new Uint16Array(x)}}();const yt=function(){const e=d.mat4(),t=d.mat4();return function(i,s){s=s||d.mat4();const r=i[0],o=i[1],n=i[2],a=i[3]-r,l=i[4]-o,A=i[5]-n,h=65535;return d.identityMat4(e),d.translationMat4v(i,e),d.identityMat4(t),d.scalingMat4v([a/h,l/h,A/h],t),d.mulMat4(e,t,s),s}}();var Pt=function(){const e=d.mat4(),t=d.mat4();return function(i,s,r){const o=new Uint16Array(i.length),n=new Float32Array([r[0]!==s[0]?65535/(r[0]-s[0]):0,r[1]!==s[1]?65535/(r[1]-s[1]):0,r[2]!==s[2]?65535/(r[2]-s[2]):0]);let a;for(a=0;a=0?1:-1),t=(1-Math.abs(r))*(o>=0?1:-1);r=e,o=t}return new Int8Array([Math[i](127.5*r+(r<0?-1:0)),Math[s](127.5*o+(o<0?-1:0))])}function Mt(e){let t=e[0],i=e[1];t/=t<0?127:128,i/=i<0?127:128;const s=1-Math.abs(t)-Math.abs(i);s<0&&(t=(1-Math.abs(i))*(t>=0?1:-1),i=(1-Math.abs(t))*(i>=0?1:-1));const r=Math.sqrt(t*t+i*i+s*s);return[t/r,i/r,s/r]}function Et(e,t,i){return e[t]*i[0]+e[t+1]*i[1]+e[t+2]*i[2]}const Ft={getPositionsBounds:function(e){const t=new Float32Array(3),i=new Float32Array(3);let s,r;for(s=0;s<3;s++)t[s]=Number.MAX_VALUE,i[s]=-Number.MAX_VALUE;for(s=0;sn&&(r=i,n=o),i=Ct(e,a,"floor","ceil"),s=Mt(i),o=Et(e,a,s),o>n&&(r=i,n=o),i=Ct(e,a,"ceil","ceil"),s=Mt(i),o=Et(e,a,s),o>n&&(r=i,n=o),t[a]=r[0],t[a+1]=r[1];return t},decompressNormals:function(e,t){for(let i=0,s=0,r=e.length;i=0?1:-1),o=(1-Math.abs(r))*(o>=0?1:-1));const a=Math.sqrt(r*r+o*o+n*n);t[s+0]=r/a,t[s+1]=o/a,t[s+2]=n/a,s+=3}return t},decompressNormal:function(e,t){let i=e[0],s=e[1];i=(2*i+1)/255,s=(2*s+1)/255;const r=1-Math.abs(i)-Math.abs(s);r<0&&(i=(1-Math.abs(s))*(i>=0?1:-1),s=(1-Math.abs(i))*(s>=0?1:-1));const o=Math.sqrt(i*i+s*s+r*r);return t[0]=i/o,t[1]=s/o,t[2]=r/o,t}},It=p.memory,Dt=d.AABB3();class St extends xt{get type(){return"ReadableGeometry"}get isReadableGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new qe({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 i=this._state,s=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":i.primitive=s.POINTS,i.primitiveName=t.primitive;break;case"lines":i.primitive=s.LINES,i.primitiveName=t.primitive;break;case"line-loop":i.primitive=s.LINE_LOOP,i.primitiveName=t.primitive;break;case"line-strip":i.primitive=s.LINE_STRIP,i.primitiveName=t.primitive;break;case"triangles":i.primitive=s.TRIANGLES,i.primitiveName=t.primitive;break;case"triangle-strip":i.primitive=s.TRIANGLE_STRIP,i.primitiveName=t.primitive;break;case"triangle-fan":i.primitive=s.TRIANGLE_FAN,i.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'."),i.primitive=s.TRIANGLES,i.primitiveName=t.primitive}if(t.positions)if(this._state.compressGeometry){const e=Ft.getPositionsBounds(t.positions),s=Ft.compressPositions(t.positions,e.min,e.max);i.positions=s.quantized,i.positionsDecodeMatrix=s.decodeMatrix}else i.positions=t.positions.constructor===Float32Array?t.positions:new Float32Array(t.positions);if(t.colors&&(i.colors=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors)),t.uv)if(this._state.compressGeometry){const e=Ft.getUVBounds(t.uv),s=Ft.compressUVs(t.uv,e.min,e.max);i.uv=s.quantized,i.uvDecodeMatrix=s.decodeMatrix}else i.uv=t.uv.constructor===Float32Array?t.uv:new Float32Array(t.uv);t.normals&&(this._state.compressGeometry?i.normals=Ft.compressNormals(t.normals):i.normals=t.normals.constructor===Float32Array?t.normals:new Float32Array(t.normals)),t.indices&&(i.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(),It.meshes++,this._buildVBOs()}_buildVBOs(){const e=this._state,t=this.scene.canvas.gl;if(e.indices&&(e.indicesBuf=new Ie(t,t.ELEMENT_ARRAY_BUFFER,e.indices,e.indices.length,1,t.STATIC_DRAW),It.indices+=e.indicesBuf.numItems),e.positions&&(e.positionsBuf=new Ie(t,t.ARRAY_BUFFER,e.positions,e.positions.length,3,t.STATIC_DRAW),It.positions+=e.positionsBuf.numItems),e.normals){let i=e.compressGeometry;e.normalsBuf=new Ie(t,t.ARRAY_BUFFER,e.normals,e.normals.length,3,t.STATIC_DRAW,i),It.normals+=e.normalsBuf.numItems}e.colors&&(e.colorsBuf=new Ie(t,t.ARRAY_BUFFER,e.colors,e.colors.length,4,t.STATIC_DRAW),It.colors+=e.colorsBuf.numItems),e.uv&&(e.uvBuf=new Ie(t,t.ARRAY_BUFFER,e.uv,e.uv.length,2,t.STATIC_DRAW),It.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,i=wt(e.positions,e.indices,e.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Ie(t,t.ELEMENT_ARRAY_BUFFER,i,i.length,1,t.STATIC_DRAW),It.indices+=this._edgeIndicesBuf.numItems}_buildPickTriangleVBOs(){const e=this._state;if(!e.positions||!e.indices)return;const t=this.scene.canvas.gl,i=d.buildPickTriangles(e.positions,e.indices,e.compressGeometry),s=i.positions,r=i.colors;this._pickTrianglePositionsBuf=new Ie(t,t.ARRAY_BUFFER,s,s.length,3,t.STATIC_DRAW),this._pickTriangleColorsBuf=new Ie(t,t.ARRAY_BUFFER,r,r.length,4,t.STATIC_DRAW,!0),It.positions+=this._pickTrianglePositionsBuf.numItems,It.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,i=t.positions;if(i)if(i.length===e.length){if(this._state.compressGeometry){const i=Ft.getPositionsBounds(e),s=Ft.compressPositions(e,i.min,i.max);e=s.quantized,t.positionsDecodeMatrix=s.decodeMatrix}i.set(e),t.positionsBuf&&t.positionsBuf.setData(i),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,i=t.normals;i?i.length===e.length?(i.set(e),t.normalsBuf&&t.normalsBuf.setData(i),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,i=t.uv;i?i.length===e.length?(i.set(e),t.uvBuf&&t.uvBuf.setData(i),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,i=t.colors;i?i.length===e.length?(i.set(e),t.colorsBuf&&t.colorsBuf.setData(i),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=d.AABB3()),d.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}get obb(){return this._obbDirty&&(this._obb||(this._obb=d.OBB3()),d.positions3ToAABB3(this._state.positions,Dt,this._state.positionsDecodeMatrix),d.AABB3ToOBB3(Dt,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(),It.meshes--}}function Tt(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let i=e.ySize||1;i<0&&(console.error("negative ySize not allowed - will invert"),i*=-1);let s=e.zSize||1;s<0&&(console.error("negative zSize not allowed - will invert"),s*=-1);const r=e.center,o=r?r[0]:0,n=r?r[1]:0,a=r?r[2]:0,l=-t+o,A=-i+n,h=-s+a,c=t+o,u=i+n,d=s+a;return _.apply(e,{positions:[c,u,d,l,u,d,l,A,d,c,A,d,c,u,d,c,A,d,c,A,h,c,u,h,c,u,d,c,u,h,l,u,h,l,u,d,l,u,d,l,u,h,l,A,h,l,A,d,l,A,h,c,A,h,c,A,d,l,A,d,c,A,h,l,A,h,l,u,h,c,u,h],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 Rt extends D{get type(){return"Material"}constructor(e,t={}){super(e,t),p.memory.materials++}destroy(){super.destroy(),p.memory.materials--}}const Lt={opaque:0,mask:1,blend:2},Ut=["opaque","mask","blend"];class kt extends Rt{get type(){return"PhongMaterial"}constructor(e,t={}){super(e,t),this._state=new qe({type:"PhongMaterial",ambient:d.vec3([1,1,1]),diffuse:d.vec3([1,1,1]),specular:d.vec3([1,1,1]),emissive:d.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=Lt[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 Ut[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 Ot={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 Nt extends Rt{get type(){return"EmphasisMaterial"}get presets(){return Ot}constructor(e,t={}){super(e,t),this._state=new qe({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=Ot[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(Ot).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const Qt={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 Rt{get type(){return"EdgeMaterial"}get presets(){return Qt}constructor(e,t={}){super(e,t),this._state=new qe({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=Qt[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(Qt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}const jt={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 Ht extends D{constructor(e,t={}){super(e,t),this._units="meters",this._scale=1,this._origin=d.vec3([0,0,0]),this.units=t.units,this.scale=t.scale,this.origin=t.origin}get unitsInfo(){return jt}set units(e){e||(e="meters");jt[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=d.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=d.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 D{constructor(e,t={}){super(e,t),this._supported=be.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 Gt={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}};class Wt extends Rt{get type(){return"PointsMaterial"}get presets(){return Gt}constructor(e,t={}){super(e,t),this._state=new qe({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=Gt[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(Gt).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 Kt={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}};class Xt extends Rt{get type(){return"LinesMaterial"}get presets(){return Kt}constructor(e,t={}){super(e,t),this._state=new qe({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=Kt[e];t?(this.lineWidth=t.lineWidth,this._preset=e):this.error("unsupported preset: '"+e+"' - supported values are "+Object.keys(Kt).join(", "))}get preset(){return this._preset}get hash(){return[""+this.lineWidth].join(";")}destroy(){super.destroy(),this._state.destroy()}}function Yt(e,t){const i={};let s,r;for(let o=0,n=t.length;o{this.glRedraw()})),this.canvas.on("webglContextFailed",(()=>{alert("xeokit failed to find WebGL!")})),this._renderer=new Ke(this,{transparent:s,alphaDepthMask:r}),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 i=[];for(let e=0,s=t;ethis._numCachedSectionPlanes?e:this._numCachedSectionPlanes}},this._sectionPlanesState.setNumCachedSectionPlanes(t.numCachedSectionPlanes||0),this._lightsState=new function(){const e=d.vec4([0,0,0,0]),t=d.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];let i=null,s=null;this.getHash=function(){if(i)return i;const e=[],t=this.lights;let s;for(let i=0,r=t.length;i0&&e.push("/lm"),this.reflectionMaps.length>0&&e.push("/rm"),e.push(";"),i=e.join(""),i},this.addLight=function(e){this.lights.push(e),s=null,i=null},this.removeLight=function(e){for(let t=0,r=this.lights.length;t{this._renderer.imageDirty()}))}_initDefaults(){}_addComponent(e){if(e.id&&this.components[e.id]&&(this.error("Component "+_.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=d.createUUID();this.components[e.id]=e;const t=e.type;let i=this.types[e.type];i||(i=this.types[t]={}),i[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,i=e.type;delete this.components[t];const s=this.types[i];s&&(delete s[t],_.isEmptyObject(s)&&delete this.types[i]),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)}_deRegisterVisibleObject(e){delete this.visibleObjects[e.id],this._numVisibleObjects--,this._visibleObjectIds=null}_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)}_deRegisterXRayedObject(e){delete this.xrayedObjects[e.id],this._numXRayedObjects--,this._xrayedObjectIds=null}_objectHighlightedUpdated(e){e.highlighted?(this.highlightedObjects[e.id]=e,this._numHighlightedObjects++):(delete this.highlightedObjects[e.id],this._numHighlightedObjects--),this._highlightedObjectIds=null}_deRegisterHighlightedObject(e){delete this.highlightedObjects[e.id],this._numHighlightedObjects--,this._highlightedObjectIds=null}_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)}_deRegisterSelectedObject(e){delete this.selectedObjects[e.id],this._numSelectedObjects--,this._selectedObjectIds=null}_objectColorizeUpdated(e,t){t?(this.colorizedObjects[e.id]=e,this._numColorizedObjects++):(delete this.colorizedObjects[e.id],this._numColorizedObjects--),this._colorizedObjectIds=null}_deRegisterColorizedObject(e){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}_deRegisterOpacityObject(e){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}_deRegisterOffsetObject(e){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 i=this.components[t];i._webglContextRestored&&i._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&&M.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 i=this._passes,s=this._clearEachPass;let r,o;for(r=0;rr&&(r=e[3]),e[4]>o&&(o=e[4]),e[5]>n&&(n=e[5]),A=!0}A||(t=-100,i=-100,s=-100,r=100,o=100,n=100),this._aabb[0]=t,this._aabb[1]=i,this._aabb[2]=s,this._aabb[3]=r,this._aabb[4]=o,this._aabb[5]=n,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 i=e.includeEntities||e.include;i&&(e.includeEntityIds=Yt(this,i));const s=e.excludeEntities||e.exclude;return s&&(e.excludeEntityIds=Yt(this,s)),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,i=e.length;t{if(e.collidable){const l=e.aabb;l[0]o&&(o=l[3]),l[4]>n&&(n=l[4]),l[5]>a&&(a=l[5]),t=!0}})),t){const e=d.AABB3();return e[0]=i,e[1]=s,e[2]=r,e[3]=o,e[4]=n,e[5]=a,e}return this.aabb}setObjectsVisible(e,t){return this.withObjects(e,(e=>{const i=e.visible!==t;return e.visible=t,i}))}setObjectsCollidable(e,t){return this.withObjects(e,(e=>{const i=e.collidable!==t;return e.collidable=t,i}))}setObjectsCulled(e,t){return this.withObjects(e,(e=>{const i=e.culled!==t;return e.culled=t,i}))}setObjectsSelected(e,t){return this.withObjects(e,(e=>{const i=e.selected!==t;return e.selected=t,i}))}setObjectsHighlighted(e,t){return this.withObjects(e,(e=>{const i=e.highlighted!==t;return e.highlighted=t,i}))}setObjectsXRayed(e,t){return this.withObjects(e,(e=>{const i=e.xrayed!==t;return e.xrayed=t,i}))}setObjectsEdges(e,t){return this.withObjects(e,(e=>{const i=e.edges!==t;return e.edges=t,i}))}setObjectsColorized(e,t){return this.withObjects(e,(e=>{e.colorize=t}))}setObjectsOpacity(e,t){return this.withObjects(e,(e=>{const i=e.opacity!==t;return e.opacity=t,i}))}setObjectsPickable(e,t){return this.withObjects(e,(e=>{const i=e.pickable!==t;return e.pickable=t,i}))}setObjectsOffset(e,t){this.withObjects(e,(e=>{e.offset=t}))}withObjects(e,t){_.isString(e)&&(e=[e]);let i=!1;for(let s=0,r=e.length;s{r>s&&(s=r,e(...i))}));return this._tickifiedFunctions[t]={tickSubId:n,wrapperFunc:o},o}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=1e3,Jt=1001,$t=1002,ei=1003,ti=1004,ii=1005,si=1006,ri=1007,oi=1008,ni=1008,ai=1023,li=33776,Ai=33777,hi=33778,ci=33779,ui=35840,di=35842,pi=37492,gi=37496,mi=37808,fi=36492,_i=3e3,vi=3001,bi=function(e){"LambertMaterial"===e._material._state.type?(this.vertex=function(e){const t=e.scene,i=e.scene._sectionPlanesState,s=e.scene._lightsState,r=e._geometry._state,o=e._state.billboard,n=e._state.stationary,a=i.getNumAllocatedSectionPlanes()>0,l=!!r.compressGeometry,A=[];A.push("#version 300 es"),A.push("// Lambertian drawing vertex shader"),A.push("in vec3 position;"),A.push("uniform mat4 modelMatrix;"),A.push("uniform mat4 viewMatrix;"),A.push("uniform mat4 projMatrix;"),A.push("uniform vec4 colorize;"),A.push("uniform vec3 offset;"),l&&A.push("uniform mat4 positionsDecodeMatrix;");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&&A.push("out vec4 vWorldPosition;");if(A.push("uniform vec4 lightAmbient;"),A.push("uniform vec4 materialColor;"),A.push("uniform vec3 materialEmissive;"),r.normalsBuf){A.push("in vec3 normal;"),A.push("uniform mat4 modelNormalMatrix;"),A.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);"),A.push(" }"),A.push(" return normalize(v);"),A.push("}"))}A.push("out vec4 vColor;"),"points"===r.primitiveName&&A.push("uniform float pointSize;");"spherical"!==o&&"cylindrical"!==o||(A.push("void billboard(inout mat4 mat) {"),A.push(" mat[0][0] = 1.0;"),A.push(" mat[0][1] = 0.0;"),A.push(" mat[0][2] = 0.0;"),"spherical"===o&&(A.push(" mat[1][0] = 0.0;"),A.push(" mat[1][1] = 1.0;"),A.push(" mat[1][2] = 0.0;")),A.push(" mat[2][0] = 0.0;"),A.push(" mat[2][1] = 0.0;"),A.push(" mat[2][2] =1.0;"),A.push("}"));A.push("void main(void) {"),A.push("vec4 localPosition = vec4(position, 1.0); "),A.push("vec4 worldPosition;"),l&&A.push("localPosition = positionsDecodeMatrix * localPosition;");r.normalsBuf&&(l?A.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):A.push("vec4 localNormal = vec4(normal, 0.0); "),A.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),A.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));A.push("mat4 viewMatrix2 = viewMatrix;"),A.push("mat4 modelMatrix2 = modelMatrix;"),n&&A.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===o||"cylindrical"===o?(A.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),A.push("billboard(modelMatrix2);"),A.push("billboard(viewMatrix2);"),A.push("billboard(modelViewMatrix);"),r.normalsBuf&&(A.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),A.push("billboard(modelNormalMatrix2);"),A.push("billboard(viewNormalMatrix2);"),A.push("billboard(modelViewNormalMatrix);")),A.push("worldPosition = modelMatrix2 * localPosition;"),A.push("worldPosition.xyz = worldPosition.xyz + offset;"),A.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(A.push("worldPosition = modelMatrix2 * localPosition;"),A.push("worldPosition.xyz = worldPosition.xyz + offset;"),A.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));r.normalsBuf&&A.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(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;"),r.normalsBuf)for(let e=0,t=s.lights.length;e0,o=t.gammaOutput,n=[];n.push("#version 300 es"),n.push("// Lambertian 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"),t.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"));if(r){n.push("in vec4 vWorldPosition;"),n.push("uniform bool clippable;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),n.push("}")}"points"===s.primitiveName&&(n.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),n.push("float r = dot(cxy, cxy);"),n.push("if (r > 1.0) {"),n.push(" discard;"),n.push("}"));t.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");o?n.push("outColor = linearToGamma(vColor, gammaFactor);"):n.push("outColor = vColor;");return n.push("}"),n}(e)):(this.vertex=function(e){const t=e.scene;e._material;const i=e._state,s=t._sectionPlanesState,r=e._geometry._state,o=t._lightsState;let n;const a=i.billboard,l=i.background,A=i.stationary,h=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),c=yi(e),u=s.getNumAllocatedSectionPlanes()>0,d=wi(e),p=!!r.compressGeometry,g=[];g.push("#version 300 es"),g.push("// Drawing vertex shader"),g.push("in vec3 position;"),p&&g.push("uniform mat4 positionsDecodeMatrix;");g.push("uniform mat4 modelMatrix;"),g.push("uniform mat4 viewMatrix;"),g.push("uniform mat4 projMatrix;"),g.push("out vec3 vViewPosition;"),g.push("uniform vec3 offset;"),u&&g.push("out vec4 vWorldPosition;");t.logarithmicDepthBufferEnabled&&(g.push("uniform float logDepthBufFC;"),g.push("out float vFragDepth;"),g.push("bool isPerspectiveMatrix(mat4 m) {"),g.push(" return (m[2][3] == - 1.0);"),g.push("}"),g.push("out float isPerspective;"));o.lightMaps.length>0&&g.push("out vec3 vWorldNormal;");if(c){g.push("in vec3 normal;"),g.push("uniform mat4 modelNormalMatrix;"),g.push("uniform mat4 viewNormalMatrix;"),g.push("out vec3 vViewNormal;");for(let e=0,t=o.lights.length;e= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),g.push(" }"),g.push(" return normalize(v);"),g.push("}"))}h&&(g.push("in vec2 uv;"),g.push("out vec2 vUV;"),p&&g.push("uniform mat3 uvDecodeMatrix;"));r.colors&&(g.push("in vec4 color;"),g.push("out vec4 vColor;"));"points"===r.primitiveName&&g.push("uniform float pointSize;");"spherical"!==a&&"cylindrical"!==a||(g.push("void billboard(inout mat4 mat) {"),g.push(" mat[0][0] = 1.0;"),g.push(" mat[0][1] = 0.0;"),g.push(" mat[0][2] = 0.0;"),"spherical"===a&&(g.push(" mat[1][0] = 0.0;"),g.push(" mat[1][1] = 1.0;"),g.push(" mat[1][2] = 0.0;")),g.push(" mat[2][0] = 0.0;"),g.push(" mat[2][1] = 0.0;"),g.push(" mat[2][2] =1.0;"),g.push("}"));if(d){g.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=o.lights.length;e0&&g.push("vWorldNormal = worldNormal;"),g.push("vViewNormal = normalize((viewNormalMatrix2 * vec4(worldNormal, 1.0)).xyz);"),g.push("vec3 tmpVec3;"),g.push("float lightDist;");for(let e=0,t=o.lights.length;e0,l=yi(e),A=s.uvBuf,h="PhongMaterial"===n.type,c="MetallicMaterial"===n.type,u="SpecularMaterial"===n.type,d=wi(e);t.gammaInput;const p=t.gammaOutput,g=[];g.push("#version 300 es"),g.push("// Drawing fragment shader"),g.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),g.push("precision highp float;"),g.push("precision highp int;"),g.push("#else"),g.push("precision mediump float;"),g.push("precision mediump int;"),g.push("#endif"),t.logarithmicDepthBufferEnabled&&(g.push("in float isPerspective;"),g.push("uniform float logDepthBufFC;"),g.push("in float vFragDepth;"));d&&(g.push("float unpackDepth (vec4 color) {"),g.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));"),g.push(" return dot(color, bitShift);"),g.push("}"));g.push("uniform float gammaFactor;"),g.push("vec4 linearToLinear( in vec4 value ) {"),g.push(" return value;"),g.push("}"),g.push("vec4 sRGBToLinear( in vec4 value ) {"),g.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 );"),g.push("}"),g.push("vec4 gammaToLinear( in vec4 value) {"),g.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),g.push("}"),p&&(g.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),g.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),g.push("}"));if(a){g.push("in vec4 vWorldPosition;"),g.push("uniform bool clippable;");for(var m=0;m0&&(g.push("uniform samplerCube lightMap;"),g.push("uniform mat4 viewNormalMatrix;")),o.reflectionMaps.length>0&&g.push("uniform samplerCube reflectionMap;"),(o.lightMaps.length>0||o.reflectionMaps.length>0)&&g.push("uniform mat4 viewMatrix;"),g.push("#define PI 3.14159265359"),g.push("#define RECIPROCAL_PI 0.31830988618"),g.push("#define RECIPROCAL_PI2 0.15915494"),g.push("#define EPSILON 1e-6"),g.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),g.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),g.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),g.push("}"),g.push("struct IncidentLight {"),g.push(" vec3 color;"),g.push(" vec3 direction;"),g.push("};"),g.push("struct ReflectedLight {"),g.push(" vec3 diffuse;"),g.push(" vec3 specular;"),g.push("};"),g.push("struct Geometry {"),g.push(" vec3 position;"),g.push(" vec3 viewNormal;"),g.push(" vec3 worldNormal;"),g.push(" vec3 viewEyeDir;"),g.push("};"),g.push("struct Material {"),g.push(" vec3 diffuseColor;"),g.push(" float specularRoughness;"),g.push(" vec3 specularColor;"),g.push(" float shine;"),g.push("};"),h&&((o.lightMaps.length>0||o.reflectionMaps.length>0)&&(g.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.lightMaps.length>0&&(g.push(" vec3 irradiance = "+xi[o.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),g.push(" irradiance *= PI;"),g.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),g.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),o.reflectionMaps.length>0&&(g.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),g.push(" vec3 radiance = texture(reflectionMap, reflectVec).rgb * 0.2;"),g.push(" radiance *= PI;"),g.push(" reflectedLight.specular += radiance;")),g.push("}")),g.push("void computePhongLighting(const in IncidentLight directLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),g.push(" float dotNL = saturate(dot(geometry.viewNormal, directLight.direction));"),g.push(" vec3 irradiance = dotNL * directLight.color * PI;"),g.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),g.push(" reflectedLight.specular += directLight.color * material.specularColor * pow(max(dot(reflect(-directLight.direction, -geometry.viewNormal), geometry.viewEyeDir), 0.0), material.shine);"),g.push("}")),(c||u)&&(g.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),g.push(" float r = ggxRoughness + 0.0001;"),g.push(" return (2.0 / (r * r) - 2.0);"),g.push("}"),g.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),g.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),g.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),g.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),g.push("}"),o.reflectionMaps.length>0&&(g.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),g.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),g.push(" vec3 envMapColor = "+xi[o.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),g.push(" return envMapColor;"),g.push("}")),g.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),g.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),g.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),g.push("}"),g.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),g.push(" float a2 = ( alpha * alpha );"),g.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),g.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),g.push(" return 1.0 / ( gl * gv );"),g.push("}"),g.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),g.push(" float a2 = ( alpha * alpha );"),g.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),g.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),g.push(" return 0.5 / max( gv + gl, EPSILON );"),g.push("}"),g.push("float D_GGX(const in float alpha, const in float dotNH) {"),g.push(" float a2 = ( alpha * alpha );"),g.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),g.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),g.push("}"),g.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),g.push(" float alpha = ( roughness * roughness );"),g.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),g.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),g.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),g.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),g.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),g.push(" vec3 F = F_Schlick( specularColor, dotLH );"),g.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),g.push(" float D = D_GGX( alpha, dotNH );"),g.push(" return F * (G * D);"),g.push("}"),g.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),g.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),g.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),g.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),g.push(" vec4 r = roughness * c0 + c1;"),g.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),g.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),g.push(" return specularColor * AB.x + AB.y;"),g.push("}"),(o.lightMaps.length>0||o.reflectionMaps.length>0)&&(g.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.lightMaps.length>0&&(g.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),g.push(" irradiance *= PI;"),g.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),g.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),o.reflectionMaps.length>0&&(g.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),g.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),g.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),g.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),g.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),g.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),g.push("}")),g.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),g.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),g.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),g.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),g.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),g.push("}")));g.push("in vec3 vViewPosition;"),s.colors&&g.push("in vec4 vColor;");A&&(l&&i._normalMap||i._ambientMap||i._baseColorMap||i._diffuseMap||i._emissiveMap||i._metallicMap||i._roughnessMap||i._metallicRoughnessMap||i._specularMap||i._glossinessMap||i._specularGlossinessMap||i._occlusionMap||i._alphaMap)&&g.push("in vec2 vUV;");l&&(o.lightMaps.length>0&&g.push("in vec3 vWorldNormal;"),g.push("in vec3 vViewNormal;"));n.ambient&&g.push("uniform vec3 materialAmbient;");n.baseColor&&g.push("uniform vec3 materialBaseColor;");void 0!==n.alpha&&null!==n.alpha&&g.push("uniform vec4 materialAlphaModeCutoff;");n.emissive&&g.push("uniform vec3 materialEmissive;");n.diffuse&&g.push("uniform vec3 materialDiffuse;");void 0!==n.glossiness&&null!==n.glossiness&&g.push("uniform float materialGlossiness;");void 0!==n.shininess&&null!==n.shininess&&g.push("uniform float materialShininess;");n.specular&&g.push("uniform vec3 materialSpecular;");void 0!==n.metallic&&null!==n.metallic&&g.push("uniform float materialMetallic;");void 0!==n.roughness&&null!==n.roughness&&g.push("uniform float materialRoughness;");void 0!==n.specularF0&&null!==n.specularF0&&g.push("uniform float materialSpecularF0;");A&&i._ambientMap&&(g.push("uniform sampler2D ambientMap;"),i._ambientMap._state.matrix&&g.push("uniform mat4 ambientMapMatrix;"));A&&i._baseColorMap&&(g.push("uniform sampler2D baseColorMap;"),i._baseColorMap._state.matrix&&g.push("uniform mat4 baseColorMapMatrix;"));A&&i._diffuseMap&&(g.push("uniform sampler2D diffuseMap;"),i._diffuseMap._state.matrix&&g.push("uniform mat4 diffuseMapMatrix;"));A&&i._emissiveMap&&(g.push("uniform sampler2D emissiveMap;"),i._emissiveMap._state.matrix&&g.push("uniform mat4 emissiveMapMatrix;"));l&&A&&i._metallicMap&&(g.push("uniform sampler2D metallicMap;"),i._metallicMap._state.matrix&&g.push("uniform mat4 metallicMapMatrix;"));l&&A&&i._roughnessMap&&(g.push("uniform sampler2D roughnessMap;"),i._roughnessMap._state.matrix&&g.push("uniform mat4 roughnessMapMatrix;"));l&&A&&i._metallicRoughnessMap&&(g.push("uniform sampler2D metallicRoughnessMap;"),i._metallicRoughnessMap._state.matrix&&g.push("uniform mat4 metallicRoughnessMapMatrix;"));l&&i._normalMap&&(g.push("uniform sampler2D normalMap;"),i._normalMap._state.matrix&&g.push("uniform mat4 normalMapMatrix;"),g.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),g.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),g.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),g.push(" vec2 st0 = dFdx( uv.st );"),g.push(" vec2 st1 = dFdy( uv.st );"),g.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),g.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),g.push(" vec3 N = normalize( surf_norm );"),g.push(" vec3 mapN = texture( normalMap, uv ).xyz * 2.0 - 1.0;"),g.push(" mat3 tsn = mat3( S, T, N );"),g.push(" return normalize( tsn * mapN );"),g.push("}"));A&&i._occlusionMap&&(g.push("uniform sampler2D occlusionMap;"),i._occlusionMap._state.matrix&&g.push("uniform mat4 occlusionMapMatrix;"));A&&i._alphaMap&&(g.push("uniform sampler2D alphaMap;"),i._alphaMap._state.matrix&&g.push("uniform mat4 alphaMapMatrix;"));l&&A&&i._specularMap&&(g.push("uniform sampler2D specularMap;"),i._specularMap._state.matrix&&g.push("uniform mat4 specularMapMatrix;"));l&&A&&i._glossinessMap&&(g.push("uniform sampler2D glossinessMap;"),i._glossinessMap._state.matrix&&g.push("uniform mat4 glossinessMapMatrix;"));l&&A&&i._specularGlossinessMap&&(g.push("uniform sampler2D materialSpecularGlossinessMap;"),i._specularGlossinessMap._state.matrix&&g.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));l&&(i._diffuseFresnel||i._specularFresnel||i._alphaFresnel||i._emissiveFresnel||i._reflectivityFresnel)&&(g.push("float fresnel(vec3 eyeDir, vec3 normal, float edgeBias, float centerBias, float power) {"),g.push(" float fr = abs(dot(eyeDir, normal));"),g.push(" float finalFr = clamp((fr - edgeBias) / (centerBias - edgeBias), 0.0, 1.0);"),g.push(" return pow(finalFr, power);"),g.push("}"),i._diffuseFresnel&&(g.push("uniform float diffuseFresnelCenterBias;"),g.push("uniform float diffuseFresnelEdgeBias;"),g.push("uniform float diffuseFresnelPower;"),g.push("uniform vec3 diffuseFresnelCenterColor;"),g.push("uniform vec3 diffuseFresnelEdgeColor;")),i._specularFresnel&&(g.push("uniform float specularFresnelCenterBias;"),g.push("uniform float specularFresnelEdgeBias;"),g.push("uniform float specularFresnelPower;"),g.push("uniform vec3 specularFresnelCenterColor;"),g.push("uniform vec3 specularFresnelEdgeColor;")),i._alphaFresnel&&(g.push("uniform float alphaFresnelCenterBias;"),g.push("uniform float alphaFresnelEdgeBias;"),g.push("uniform float alphaFresnelPower;"),g.push("uniform vec3 alphaFresnelCenterColor;"),g.push("uniform vec3 alphaFresnelEdgeColor;")),i._reflectivityFresnel&&(g.push("uniform float materialSpecularF0FresnelCenterBias;"),g.push("uniform float materialSpecularF0FresnelEdgeBias;"),g.push("uniform float materialSpecularF0FresnelPower;"),g.push("uniform vec3 materialSpecularF0FresnelCenterColor;"),g.push("uniform vec3 materialSpecularF0FresnelEdgeColor;")),i._emissiveFresnel&&(g.push("uniform float emissiveFresnelCenterBias;"),g.push("uniform float emissiveFresnelEdgeBias;"),g.push("uniform float emissiveFresnelPower;"),g.push("uniform vec3 emissiveFresnelCenterColor;"),g.push("uniform vec3 emissiveFresnelEdgeColor;")));if(g.push("uniform vec4 lightAmbient;"),l)for(let e=0,t=o.lights.length;e 0.0) { discard; }"),g.push("}")}"points"===s.primitiveName&&(g.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),g.push("float r = dot(cxy, cxy);"),g.push("if (r > 1.0) {"),g.push(" discard;"),g.push("}"));g.push("float occlusion = 1.0;"),n.ambient?g.push("vec3 ambientColor = materialAmbient;"):g.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");n.diffuse?g.push("vec3 diffuseColor = materialDiffuse;"):n.baseColor?g.push("vec3 diffuseColor = materialBaseColor;"):g.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");s.colors&&g.push("diffuseColor *= vColor.rgb;");n.emissive?g.push("vec3 emissiveColor = materialEmissive;"):g.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");n.specular?g.push("vec3 specular = materialSpecular;"):g.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==n.alpha?g.push("float alpha = materialAlphaModeCutoff[0];"):g.push("float alpha = 1.0;");s.colors&&g.push("alpha *= vColor.a;");void 0!==n.glossiness?g.push("float glossiness = materialGlossiness;"):g.push("float glossiness = 1.0;");void 0!==n.metallic?g.push("float metallic = materialMetallic;"):g.push("float metallic = 1.0;");void 0!==n.roughness?g.push("float roughness = materialRoughness;"):g.push("float roughness = 1.0;");void 0!==n.specularF0?g.push("float specularF0 = materialSpecularF0;"):g.push("float specularF0 = 1.0;");A&&(l&&i._normalMap||i._ambientMap||i._baseColorMap||i._diffuseMap||i._occlusionMap||i._emissiveMap||i._metallicMap||i._roughnessMap||i._metallicRoughnessMap||i._specularMap||i._glossinessMap||i._specularGlossinessMap||i._alphaMap)&&(g.push("vec4 texturePos = vec4(vUV.s, vUV.t, 1.0, 1.0);"),g.push("vec2 textureCoord;"));A&&i._ambientMap&&(i._ambientMap._state.matrix?g.push("textureCoord = (ambientMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 ambientTexel = texture(ambientMap, textureCoord).rgb;"),g.push("ambientTexel = "+xi[i._ambientMap._state.encoding]+"(ambientTexel);"),g.push("ambientColor *= ambientTexel.rgb;"));A&&i._diffuseMap&&(i._diffuseMap._state.matrix?g.push("textureCoord = (diffuseMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 diffuseTexel = texture(diffuseMap, textureCoord);"),g.push("diffuseTexel = "+xi[i._diffuseMap._state.encoding]+"(diffuseTexel);"),g.push("diffuseColor *= diffuseTexel.rgb;"),g.push("alpha *= diffuseTexel.a;"));A&&i._baseColorMap&&(i._baseColorMap._state.matrix?g.push("textureCoord = (baseColorMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 baseColorTexel = texture(baseColorMap, textureCoord);"),g.push("baseColorTexel = "+xi[i._baseColorMap._state.encoding]+"(baseColorTexel);"),g.push("diffuseColor *= baseColorTexel.rgb;"),g.push("alpha *= baseColorTexel.a;"));A&&i._emissiveMap&&(i._emissiveMap._state.matrix?g.push("textureCoord = (emissiveMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 emissiveTexel = texture(emissiveMap, textureCoord);"),g.push("emissiveTexel = "+xi[i._emissiveMap._state.encoding]+"(emissiveTexel);"),g.push("emissiveColor = emissiveTexel.rgb;"));A&&i._alphaMap&&(i._alphaMap._state.matrix?g.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("alpha *= texture(alphaMap, textureCoord).r;"));A&&i._occlusionMap&&(i._occlusionMap._state.matrix?g.push("textureCoord = (occlusionMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("occlusion *= texture(occlusionMap, textureCoord).r;"));if(l&&(o.lights.length>0||o.lightMaps.length>0||o.reflectionMaps.length>0)){A&&i._normalMap?(i._normalMap._state.matrix?g.push("textureCoord = (normalMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition, normalize(vViewNormal), textureCoord );")):g.push("vec3 viewNormal = normalize(vViewNormal);"),A&&i._specularMap&&(i._specularMap._state.matrix?g.push("textureCoord = (specularMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("specular *= texture(specularMap, textureCoord).rgb;")),A&&i._glossinessMap&&(i._glossinessMap._state.matrix?g.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("glossiness *= texture(glossinessMap, textureCoord).r;")),A&&i._specularGlossinessMap&&(i._specularGlossinessMap._state.matrix?g.push("textureCoord = (materialSpecularGlossinessMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec4 specGlossRGB = texture(materialSpecularGlossinessMap, textureCoord).rgba;"),g.push("specular *= specGlossRGB.rgb;"),g.push("glossiness *= specGlossRGB.a;")),A&&i._metallicMap&&(i._metallicMap._state.matrix?g.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("metallic *= texture(metallicMap, textureCoord).r;")),A&&i._roughnessMap&&(i._roughnessMap._state.matrix?g.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("roughness *= texture(roughnessMap, textureCoord).r;")),A&&i._metallicRoughnessMap&&(i._metallicRoughnessMap._state.matrix?g.push("textureCoord = (metallicRoughnessMapMatrix * texturePos).xy;"):g.push("textureCoord = texturePos.xy;"),g.push("vec3 metalRoughRGB = texture(metallicRoughnessMap, textureCoord).rgb;"),g.push("metallic *= metalRoughRGB.b;"),g.push("roughness *= metalRoughRGB.g;")),g.push("vec3 viewEyeDir = normalize(-vViewPosition);"),i._diffuseFresnel&&(g.push("float diffuseFresnel = fresnel(viewEyeDir, viewNormal, diffuseFresnelEdgeBias, diffuseFresnelCenterBias, diffuseFresnelPower);"),g.push("diffuseColor *= mix(diffuseFresnelEdgeColor, diffuseFresnelCenterColor, diffuseFresnel);")),i._specularFresnel&&(g.push("float specularFresnel = fresnel(viewEyeDir, viewNormal, specularFresnelEdgeBias, specularFresnelCenterBias, specularFresnelPower);"),g.push("specular *= mix(specularFresnelEdgeColor, specularFresnelCenterColor, specularFresnel);")),i._alphaFresnel&&(g.push("float alphaFresnel = fresnel(viewEyeDir, viewNormal, alphaFresnelEdgeBias, alphaFresnelCenterBias, alphaFresnelPower);"),g.push("alpha *= mix(alphaFresnelEdgeColor.r, alphaFresnelCenterColor.r, alphaFresnel);")),i._emissiveFresnel&&(g.push("float emissiveFresnel = fresnel(viewEyeDir, viewNormal, emissiveFresnelEdgeBias, emissiveFresnelCenterBias, emissiveFresnelPower);"),g.push("emissiveColor *= mix(emissiveFresnelEdgeColor, emissiveFresnelCenterColor, emissiveFresnel);")),g.push("if (materialAlphaModeCutoff[1] == 1.0 && alpha < materialAlphaModeCutoff[2]) {"),g.push(" discard;"),g.push("}"),g.push("IncidentLight light;"),g.push("Material material;"),g.push("Geometry geometry;"),g.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),g.push("vec3 viewLightDir;"),h&&(g.push("material.diffuseColor = diffuseColor;"),g.push("material.specularColor = specular;"),g.push("material.shine = materialShininess;")),u&&(g.push("float oneMinusSpecularStrength = 1.0 - max(max(specular.r, specular.g ),specular.b);"),g.push("material.diffuseColor = diffuseColor * oneMinusSpecularStrength;"),g.push("material.specularRoughness = clamp( 1.0 - glossiness, 0.04, 1.0 );"),g.push("material.specularColor = specular;")),c&&(g.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),g.push("material.diffuseColor = diffuseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),g.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),g.push("material.specularColor = mix(vec3(dielectricSpecular), diffuseColor, metallic);")),g.push("geometry.position = vViewPosition;"),o.lightMaps.length>0&&g.push("geometry.worldNormal = normalize(vWorldNormal);"),g.push("geometry.viewNormal = viewNormal;"),g.push("geometry.viewEyeDir = viewEyeDir;"),h&&(o.lightMaps.length>0||o.reflectionMaps.length>0)&&g.push("computePhongLightMapping(geometry, material, reflectedLight);"),(u||c)&&(o.lightMaps.length>0||o.reflectionMaps.length>0)&&g.push("computePBRLightMapping(geometry, material, reflectedLight);"),g.push("float shadow = 1.0;"),g.push("float shadowAcneRemover = 0.007;"),g.push("vec3 fragmentDepth;"),g.push("float texelSize = 1.0 / 1024.0;"),g.push("float amountInLight = 0.0;"),g.push("vec3 shadowCoord;"),g.push("vec4 rgbaDepth;"),g.push("float depth;");for(let e=0,t=o.lights.length;e0){const r=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0&&(this._uLightMap="lightMap"),r.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(h=0,c=o.sectionPlanes.length;h0&&r.lightMaps[0].texture&&this._uLightMap&&(a.bindTexture(this._uLightMap,r.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),r.reflectionMaps.length>0&&r.reflectionMaps[0].texture&&this._uReflectionMap&&(a.bindTexture(this._uReflectionMap,r.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%t,e.bindTexture++),this._uGammaFactor&&s.uniform1f(this._uGammaFactor,i.gammaFactor),this._baseTextureUnit=e.textureUnit};class Ei{constructor(e){this.vertex=function(e){const t=e.scene,i=t._lightsState,s=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),r=t._sectionPlanesState.getNumAllocatedSectionPlanes()>0,o=!!e._geometry._state.compressGeometry,n=e._state.billboard,a=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;"),o&&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;"));r&&l.push("out vec4 vWorldPosition;");if(l.push("uniform vec4 lightAmbient;"),l.push("uniform vec4 fillColor;"),s){l.push("in vec3 normal;"),l.push("uniform mat4 modelNormalMatrix;"),l.push("uniform mat4 viewNormalMatrix;");for(let e=0,t=i.lights.length;e= 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"===n||"cylindrical"===n)&&(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"===n&&(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;"),o&&l.push("localPosition = positionsDecodeMatrix * localPosition;");s&&(o?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;"),a&&l.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===n||"cylindrical"===n?(l.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),l.push("billboard(modelMatrix2);"),l.push("billboard(viewMatrix2);"),l.push("billboard(modelViewMatrix);"),s&&(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; "));s&&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;"),s)for(let e=0,t=i.lights.length;e0,o=[];o.push("#version 300 es"),o.push("// Lambertian 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"),t.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;"));s&&(o.push("uniform float gammaFactor;"),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("}"));if(r){o.push("in vec4 vWorldPosition;"),o.push("uniform bool clippable;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),o.push("}")}"points"===e._geometry._state.primitiveName&&(o.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),o.push("float r = dot(cxy, cxy);"),o.push("if (r > 1.0) {"),o.push(" discard;"),o.push("}"));t.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");s?o.push("outColor = linearToGamma(vColor, gammaFactor);"):o.push("outColor = vColor;");return o.push("}"),o}(e)}}const Fi=new t({}),Ii=d.vec3(),Di=function(e,t){this.id=Fi.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Ei(t),this._allocate(t)},Si={};Di.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 i=Si[t];return i||(i=new Di(t,e),Si[t]=i,p.memory.programs++),i._useCount++,i},Di.prototype.put=function(){0==--this._useCount&&(Fi.removeItem(this.id),this._program&&this._program.destroy(),delete Si[this._hash],p.memory.programs--)},Di.prototype.webglContextRestored=function(){this._program=null},Di.prototype.drawMesh=function(e,t,i){this._program||this._allocate(t);const s=this._scene,r=s.camera,o=s.canvas.gl,n=0===i?t._xrayMaterial._state:1===i?t._highlightMaterial._state:t._selectedMaterial._state,a=t._state,l=t._geometry._state,A=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,A?e.getRTCViewMatrix(a.originHash,A):r.viewMatrix),o.uniformMatrix4fv(this._uViewNormalMatrix,!1,r.viewNormalMatrix),a.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const r=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Edges drawing vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform vec4 edgeColor;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");t.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;"));i&&n.push("out vec4 vWorldPosition;");n.push("out vec4 vColor;"),("spherical"===r||"cylindrical"===r)&&(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));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("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"),n.push("billboard(modelViewMatrix);"),n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));n.push("vColor = edgeColor;"),i&&n.push("vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = clipPos;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,i=e.scene._sectionPlanesState,s=e.scene.gammaOutput,r=i.getNumAllocatedSectionPlanes()>0,o=[];o.push("#version 300 es"),o.push("// Edges 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"),t.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;"));s&&(o.push("uniform float gammaFactor;"),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("}"));if(r){o.push("in vec4 vWorldPosition;"),o.push("uniform bool clippable;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),o.push("}")}t.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");s?o.push("outColor = linearToGamma(vColor, gammaFactor);"):o.push("outColor = vColor;");return o.push("}"),o}(e)}}const Ri=new t({}),Li=d.vec3(),Ui=function(e,t){this.id=Ri.addItem({}),this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new Ti(t),this._allocate(t)},ki={};Ui.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 i=ki[t];return i||(i=new Ui(t,e),ki[t]=i,p.memory.programs++),i._useCount++,i},Ui.prototype.put=function(){0==--this._useCount&&(Ri.removeItem(this.id),this._program&&this._program.destroy(),delete ki[this._hash],p.memory.programs--)},Ui.prototype.webglContextRestored=function(){this._program=null},Ui.prototype.drawMesh=function(e,t,i){this._program||this._allocate(t);const s=this._scene,r=s.camera,o=s.canvas.gl;let n;const a=t._state,l=t._geometry,A=l._state,h=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),o.uniformMatrix4fv(this._uViewMatrix,!1,h?e.getRTCViewMatrix(a.originHash,h):r.viewMatrix),a.clippable){const e=s._sectionPlanesState.getNumAllocatedSectionPlanes(),i=s._sectionPlanesState.sectionPlanes.length;if(e>0){const r=s._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Mesh picking vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("out vec4 vViewPosition;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");i&&n.push("out vec4 vWorldPosition;");t.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;"));"spherical"!==r&&"cylindrical"!==r||(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));n.push("uniform vec2 pickClipPos;"),n.push("vec4 remapClipPos(vec4 clipPos) {"),n.push(" clipPos.xy /= clipPos.w;"),n.push(" clipPos.xy -= pickClipPos;"),n.push(" clipPos.xy *= clipPos.w;"),n.push(" return clipPos;"),n.push("}"),n.push("void main(void) {"),n.push("vec4 localPosition = vec4(position, 1.0); "),s&&n.push("localPosition = positionsDecodeMatrix * localPosition;");n.push("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==r&&"cylindrical"!==r||(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"));n.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),i&&n.push(" vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = remapClipPos(clipPos);"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,i=t._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Mesh 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"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(r.push("uniform vec4 pickColor;"),s){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push(" outColor = pickColor; "),r.push("}"),r}(e)}}const Ni=d.vec3(),Qi=function(e,t){this._hash=e,this._shaderSource=new Oi(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Vi={};Qi.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let i=Vi[t];if(!i){if(i=new Qi(t,e),i.errors)return console.log(i.errors.join("\n")),null;Vi[t]=i,p.memory.programs++}return i._useCount++,i},Qi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Vi[this._hash],p.memory.programs--)},Qi.prototype.webglContextRestored=function(){this._program=null},Qi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const i=this._scene,s=i.canvas.gl,r=t._state,o=t._material._state,n=t._geometry._state,a=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),s.uniformMatrix4fv(this._uViewMatrix,!1,a?e.getRTCPickViewMatrix(r.originHash,a):e.pickViewMatrix),r.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),r=i._sectionPlanesState.sectionPlanes.length;if(e>0){const o=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t>24&255,h=l>>16&255,c=l>>8&255,u=255&l;s.uniform4f(this._uPickColor,u/255,c/255,h/255,A/255),s.uniform2fv(this._uPickClipPos,e.pickClipPos),n.indicesBuf?(s.drawElements(n.primitive,n.indicesBuf.numItems,n.indicesBuf.itemType,0),e.drawElements++):n.positions&&s.drawArrays(s.TRIANGLES,0,n.positions.numItems)},Qi.prototype._allocate=function(e){const t=e.scene,i=t.canvas.gl;if(this._program=new Fe(i,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uPositionsDecodeMatrix=s.getLocation("positionsDecodeMatrix"),this._uModelMatrix=s.getLocation("modelMatrix"),this._uViewMatrix=s.getLocation("viewMatrix"),this._uProjMatrix=s.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=t._sectionPlanesState.sectionPlanes.length;e0,s=!!e._geometry._state.compressGeometry,r=[];r.push("#version 300 es"),r.push("// Surface picking vertex shader"),r.push("in vec3 position;"),r.push("in vec4 color;"),r.push("uniform mat4 modelMatrix;"),r.push("uniform mat4 viewMatrix;"),r.push("uniform mat4 projMatrix;"),r.push("uniform vec3 offset;"),i&&(r.push("uniform bool clippable;"),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;"));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("out vec4 vColor;"),s&&r.push("uniform mat4 positionsDecodeMatrix;");r.push("void main(void) {"),r.push("vec4 localPosition = vec4(position, 1.0); "),s&&r.push("localPosition = positionsDecodeMatrix * localPosition;");r.push(" vec4 worldPosition = modelMatrix * localPosition; "),r.push(" worldPosition.xyz = worldPosition.xyz + offset;"),r.push(" vec4 viewPosition = viewMatrix * worldPosition;"),i&&r.push(" vWorldPosition = worldPosition;");r.push(" vColor = color;"),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,i=t._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Surface 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"),r.push("in vec4 vColor;"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(s){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(let e=0;e 0.0) { discard; }"),r.push("}")}t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push(" outColor = vColor;"),r.push("}"),r}(e)}}const Hi=d.vec3(),zi=function(e,t){this._hash=e,this._scene=t.scene,this._useCount=0,this._shaderSource=new ji(t),this._allocate(t)},Gi={};zi.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.compressGeometry?"cp":"",e._state.hash].join(";");let i=Gi[t];if(!i){if(i=new zi(t,e),i.errors)return console.log(i.errors.join("\n")),null;Gi[t]=i,p.memory.programs++}return i._useCount++,i},zi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Gi[this._hash],p.memory.programs--)},zi.prototype.webglContextRestored=function(){this._program=null},zi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const i=this._scene,s=i.canvas.gl,r=t._state,o=t._material._state,n=t._geometry,a=t._geometry._state,l=t.origin,A=o.backfaces,h=o.frontface,c=i.camera.project,u=n._getPickTrianglePositions(),d=n._getPickTriangleColors();if(this._program.bind(),e.useProgram++,i.logarithmicDepthBufferEnabled){const e=2/(Math.log(c.far+1)/Math.LN2);s.uniform1f(this._uLogDepthBufFC,e)}if(s.uniformMatrix4fv(this._uViewMatrix,!1,l?e.getRTCPickViewMatrix(r.originHash,l):e.pickViewMatrix),r.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),r=i._sectionPlanesState.sectionPlanes.length;if(e>0){const o=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,s=!!e._geometry._state.compressGeometry,r=e._state.billboard,o=e._state.stationary,n=[];n.push("#version 300 es"),n.push("// Mesh occlusion vertex shader"),n.push("in vec3 position;"),n.push("uniform mat4 modelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform vec3 offset;"),s&&n.push("uniform mat4 positionsDecodeMatrix;");i&&n.push("out vec4 vWorldPosition;");t.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;"));"spherical"!==r&&"cylindrical"!==r||(n.push("void billboard(inout mat4 mat) {"),n.push(" mat[0][0] = 1.0;"),n.push(" mat[0][1] = 0.0;"),n.push(" mat[0][2] = 0.0;"),"spherical"===r&&(n.push(" mat[1][0] = 0.0;"),n.push(" mat[1][1] = 1.0;"),n.push(" mat[1][2] = 0.0;")),n.push(" mat[2][0] = 0.0;"),n.push(" mat[2][1] = 0.0;"),n.push(" mat[2][2] =1.0;"),n.push("}"));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("mat4 viewMatrix2 = viewMatrix;"),n.push("mat4 modelMatrix2 = modelMatrix;"),o&&n.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===r||"cylindrical"===r?(n.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),n.push("billboard(modelMatrix2);"),n.push("billboard(viewMatrix2);"),n.push("billboard(modelViewMatrix);"),n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(n.push("worldPosition = modelMatrix2 * localPosition;"),n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));i&&n.push(" vWorldPosition = worldPosition;");n.push("vec4 clipPos = projMatrix * viewPosition;"),t.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return n.push("gl_Position = clipPos;"),n.push("}"),n}(e),this.fragment=function(e){const t=e.scene,i=t._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];r.push("#version 300 es"),r.push("// Mesh 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"),t.logarithmicDepthBufferEnabled&&(r.push("in float isPerspective;"),r.push("uniform float logDepthBufFC;"),r.push("in float vFragDepth;"));if(s){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}r.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.logarithmicDepthBufferEnabled&&r.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return r.push("}"),r}(e)}}const Ki=d.vec3(),Xi=function(e,t){this._hash=e,this._shaderSource=new Wi(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Yi={};Xi.get=function(e){const t=[e.scene.canvas.canvas.id,e.scene._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.occlusionHash].join(";");let i=Yi[t];if(!i){if(i=new Xi(t,e),i.errors)return console.log(i.errors.join("\n")),null;Yi[t]=i,p.memory.programs++}return i._useCount++,i},Xi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Yi[this._hash],p.memory.programs--)},Xi.prototype.webglContextRestored=function(){this._program=null},Xi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const i=this._scene,s=i.canvas.gl,r=t._material._state,o=t._state,n=t._geometry._state,a=t.origin;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),r.id!==this._lastMaterialId){const t=r.backfaces;e.backfaces!==t&&(t?s.disable(s.CULL_FACE):s.enable(s.CULL_FACE),e.backfaces=t);const i=r.frontface;e.frontface!==i&&(i?s.frontFace(s.CCW):s.frontFace(s.CW),e.frontface=i),this._lastMaterialId=r.id}const l=i.camera;if(s.uniformMatrix4fv(this._uViewMatrix,!1,a?e.getRTCViewMatrix(o.originHash,a):l.viewMatrix),o.clippable){const e=i._sectionPlanesState.getNumAllocatedSectionPlanes(),r=i._sectionPlanesState.sectionPlanes.length;if(e>0){const o=i._sectionPlanesState.sectionPlanes,n=t.renderFlags;for(let t=0;t0,i=!!e._geometry._state.compressGeometry,s=[];s.push("// Mesh shadow vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),s.push("uniform vec3 offset;"),i&&s.push("uniform mat4 positionsDecodeMatrix;");t&&s.push("out vec4 vWorldPosition;");s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),s.push("vec4 worldPosition;"),i&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push("worldPosition = modelMatrix * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&s.push("vWorldPosition = worldPosition;");return s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s}(e),this.fragment=function(e){const t=e.scene;t.canvas.gl;const i=t._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("// Mesh shadow 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"),s){r.push("uniform bool clippable;"),r.push("in vec4 vWorldPosition;");for(var o=0;o 0.0) { discard; }"),r.push("}")}return r.push("outColor = encodeFloat(gl_FragCoord.z);"),r.push("}"),r}(e)}}const Zi=function(e,t){this._hash=e,this._shaderSource=new qi(t),this._scene=t.scene,this._useCount=0,this._allocate(t)},Ji={};Zi.get=function(e){const t=e.scene,i=[t.canvas.canvas.id,t._sectionPlanesState.getHash(),e._geometry._state.hash,e._state.hash].join(";");let s=Ji[i];if(!s){if(s=new Zi(i,e),s.errors)return console.log(s.errors.join("\n")),null;Ji[i]=s,p.memory.programs++}return s._useCount++,s},Zi.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ji[this._hash],p.memory.programs--)},Zi.prototype.webglContextRestored=function(){this._program=null},Zi.prototype.drawMesh=function(e,t){this._program||this._allocate(t);const i=this._scene.canvas.gl,s=t._material._state,r=t._geometry._state;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e)),s.id!==this._lastMaterialId){const t=s.backfaces;e.backfaces!==t&&(t?i.disable(i.CULL_FACE):i.enable(i.CULL_FACE),e.backfaces=t);const r=s.frontface;e.frontface!==r&&(r?i.frontFace(i.CCW):i.frontFace(i.CW),e.frontface=r),e.lineWidth!==s.lineWidth&&(i.lineWidth(s.lineWidth),e.lineWidth=s.lineWidth),this._uPointSize&&i.uniform1i(this._uPointSize,s.pointSize),this._lastMaterialId=s.id}if(i.uniformMatrix4fv(this._uModelMatrix,i.FALSE,t.worldMatrix),r.combineGeometry){const s=t.vertexBufs;s.id!==this._lastVertexBufsId&&(s.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(s.positionsBuf,s.compressGeometry?i.UNSIGNED_SHORT:i.FLOAT),e.bindArray++),this._lastVertexBufsId=s.id)}this._uClippable&&i.uniform1i(this._uClippable,t._state.clippable),i.uniform3fv(this._uOffset,t._state.offset),r.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&i.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,r.positionsDecodeMatrix),r.combineGeometry?r.indicesBufCombined&&(r.indicesBufCombined.bind(),e.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(r.positionsBuf,r.compressGeometry?i.UNSIGNED_SHORT:i.FLOAT),e.bindArray++),r.indicesBuf&&(r.indicesBuf.bind(),e.bindArray++)),this._lastGeometryId=r.id),r.combineGeometry?r.indicesBufCombined&&(i.drawElements(r.primitive,r.indicesBufCombined.numItems,r.indicesBufCombined.itemType,0),e.drawElements++):r.indicesBuf?(i.drawElements(r.primitive,r.indicesBuf.numItems,r.indicesBuf.itemType,0),e.drawElements++):r.positions&&(i.drawArrays(i.TRIANGLES,0,r.positions.numItems),e.drawArrays++)},Zi.prototype._allocate=function(e){const t=e.scene,i=t.canvas.gl;if(this._program=new Fe(i,this._shaderSource),this._scene=t,this._useCount=0,this._program.errors)return void(this.errors=this._program.errors);const s=this._program;this._uPositionsDecodeMatrix=s.getLocation("positionsDecodeMatrix"),this._uModelMatrix=s.getLocation("modelMatrix"),this._uShadowViewMatrix=s.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=s.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(let e=0,i=t._sectionPlanesState.sectionPlanes.length;e0){let e,t,r,o,n;for(let a=0,l=this._uSectionPlanes.length;a0)for(let i=0;i0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this.glRedraw()}}const cs=function(){const e=d.vec3(),t=d.vec3(),i=d.vec3(),s=d.vec3(),r=d.vec3(),o=d.vec3(),n=d.vec4(),a=d.vec3(),l=d.vec3(),A=d.vec3(),h=d.vec3(),c=d.vec3(),u=d.vec3(),p=d.vec3(),g=d.vec3(),m=d.vec3(),f=d.vec4(),_=d.vec4(),v=d.vec4(),b=d.vec3(),x=d.vec3(),w=d.vec3(),y=d.vec3(),P=d.vec3(),B=d.vec3(),C=d.vec3(),M=d.vec3(),E=d.vec3(),F=d.vec3(),I=d.vec3();return function(D,S,T,R){var L=R.primIndex;if(null!=L&&L>-1){const N=D.geometry._state,Q=D.scene,V=Q.camera,H=Q.canvas;if("triangles"===N.primitiveName){R.primitive="triangle";const Q=L,z=N.indices,G=N.positions;let W,K,X;if(z){var U=z[Q+0],k=z[Q+1],O=z[Q+2];o[0]=U,o[1]=k,o[2]=O,R.indices=o,W=3*U,K=3*k,X=3*O}else W=3*Q,K=W+3,X=K+3;if(i[0]=G[W+0],i[1]=G[W+1],i[2]=G[W+2],s[0]=G[K+0],s[1]=G[K+1],s[2]=G[K+2],r[0]=G[X+0],r[1]=G[X+1],r[2]=G[X+2],N.compressGeometry){const e=N.positionsDecodeMatrix;e&&(Ft.decompressPosition(i,e,i),Ft.decompressPosition(s,e,s),Ft.decompressPosition(r,e,r))}R.canvasPos?d.canvasPosToLocalRay(H.canvas,D.origin?j(S,D.origin):S,T,D.worldMatrix,R.canvasPos,e,t):R.origin&&R.direction&&d.worldRayToLocalRay(D.worldMatrix,R.origin,R.direction,e,t),d.normalizeVec3(t),d.rayPlaneIntersect(e,t,i,s,r,n),R.localPos=n,R.position=n,f[0]=n[0],f[1]=n[1],f[2]=n[2],f[3]=1,d.transformVec4(D.worldMatrix,f,_),a[0]=_[0],a[1]=_[1],a[2]=_[2],R.canvasPos&&D.origin&&(a[0]+=D.origin[0],a[1]+=D.origin[1],a[2]+=D.origin[2]),R.worldPos=a,d.transformVec4(V.matrix,_,v),l[0]=v[0],l[1]=v[1],l[2]=v[2],R.viewPos=l,d.cartesianToBarycentric(n,i,s,r,A),R.bary=A;const Y=N.normals;if(Y){if(N.compressGeometry){const e=3*U,t=3*k,i=3*O;Ft.decompressNormal(Y.subarray(e,e+2),h),Ft.decompressNormal(Y.subarray(t,t+2),c),Ft.decompressNormal(Y.subarray(i,i+2),u)}else h[0]=Y[W],h[1]=Y[W+1],h[2]=Y[W+2],c[0]=Y[K],c[1]=Y[K+1],c[2]=Y[K+2],u[0]=Y[X],u[1]=Y[X+1],u[2]=Y[X+2];const e=d.addVec3(d.addVec3(d.mulVec3Scalar(h,A[0],b),d.mulVec3Scalar(c,A[1],x),w),d.mulVec3Scalar(u,A[2],y),P);R.worldNormal=d.normalizeVec3(d.transformVec3(D.worldNormalMatrix,e,B))}const q=N.uv;if(q){if(p[0]=q[2*U],p[1]=q[2*U+1],g[0]=q[2*k],g[1]=q[2*k+1],m[0]=q[2*O],m[1]=q[2*O+1],N.compressGeometry){const e=N.uvDecodeMatrix;e&&(Ft.decompressUV(p,e,p),Ft.decompressUV(g,e,g),Ft.decompressUV(m,e,m))}R.uv=d.addVec3(d.addVec3(d.mulVec2Scalar(p,A[0],C),d.mulVec2Scalar(g,A[1],M),E),d.mulVec2Scalar(m,A[2],F),I)}}}}}();function us(e={}){let t=e.radiusTop||1;t<0&&(console.error("negative radiusTop not allowed - will invert"),t*=-1);let i=e.radiusBottom||1;i<0&&(console.error("negative radiusBottom not allowed - will invert"),i*=-1);let s=e.height||1;s<0&&(console.error("negative height not allowed - will invert"),s*=-1);let r=e.radialSegments||32;r<0&&(console.error("negative radialSegments not allowed - will invert"),r*=-1),r<3&&(r=3);let o=e.heightSegments||1;o<0&&(console.error("negative heightSegments not allowed - will invert"),o*=-1),o<1&&(o=1);const n=!!e.openEnded;let a=e.center;const l=a?a[0]:0,A=a?a[1]:0,h=a?a[2]:0,c=s/2,u=s/o,d=2*Math.PI/r,p=1/r,g=(t-i)/o,m=[],f=[],v=[],b=[];let x,w,y,P,B,C,M,E,F,I,D;const S=(90-180*Math.atan(s/(i-t))/Math.PI)/90;for(x=0;x<=o;x++)for(B=t-x*g,C=c-x*u,w=0;w<=r;w++)y=Math.sin(w*d),P=Math.cos(w*d),f.push(B*y),f.push(S),f.push(B*P),v.push(w*p),v.push(1*x/o),m.push(B*y+l),m.push(C+A),m.push(B*P+h);for(x=0;x0){for(F=m.length/3,f.push(0),f.push(1),f.push(0),v.push(.5),v.push(.5),m.push(0+l),m.push(c+A),m.push(0+h),w=0;w<=r;w++)y=Math.sin(w*d),P=Math.cos(w*d),I=.5*Math.sin(w*d)+.5,D=.5*Math.cos(w*d)+.5,f.push(t*y),f.push(1),f.push(t*P),v.push(I),v.push(D),m.push(t*y+l),m.push(c+A),m.push(t*P+h);for(w=0;w0){for(F=m.length/3,f.push(0),f.push(-1),f.push(0),v.push(.5),v.push(.5),m.push(0+l),m.push(0-c+A),m.push(0+h),w=0;w<=r;w++)y=Math.sin(w*d),P=Math.cos(w*d),I=.5*Math.sin(w*d)+.5,D=.5*Math.cos(w*d)+.5,f.push(i*y),f.push(-1),f.push(i*P),v.push(I),v.push(D),m.push(i*y+l),m.push(0-c+A),m.push(i*P+h);for(w=0;w0!==e))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this._children.length){const e=this._children.splice();let t;for(let i=0,s=e.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);const o=Bs(i,this.wrapS);o&&i.texParameteri(this.target,i.TEXTURE_WRAP_S,o);const n=Bs(i,this.wrapT);if(n&&i.texParameteri(this.target,i.TEXTURE_WRAP_T,n),this.type===i.TEXTURE_3D||this.type===i.TEXTURE_2D_ARRAY){const e=Bs(i,this.wrapR);e&&i.texParameteri(this.target,i.TEXTURE_WRAP_R,e),i.texParameteri(this.type,i.TEXTURE_WRAP_R,e)}r?(i.texParameteri(this.target,i.TEXTURE_MIN_FILTER,Fs(i,this.minFilter)),i.texParameteri(this.target,i.TEXTURE_MAG_FILTER,Fs(i,this.magFilter))):(i.texParameteri(this.target,i.TEXTURE_MIN_FILTER,Bs(i,this.minFilter)),i.texParameteri(this.target,i.TEXTURE_MAG_FILTER,Bs(i,this.magFilter)));const a=Bs(i,this.format,this.encoding),l=Bs(i,this.type),A=Es(i,this.internalFormat,a,l,this.encoding,!1);i.texStorage2D(i.TEXTURE_2D,s,A,e[0].width,e[0].height);for(let t=0,s=e.length;t>t;return e+1}class Ts extends D{get type(){return"Texture"}constructor(e,t={}){super(e,t),this._state=new qe({texture:new Ms({gl:this.scene.canvas.gl}),matrix:d.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=d.vec2([0,0]),this._scale=d.vec2([1,1]),this._rotate=d.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),p.memory.textures++}_checkMinFilter(e){return(e=e||ni)!==si&&e!==ri&&e!==ni&&e!==ii&&e!==ti&&(this.error("Unsupported value for 'minFilter' - supported values are LinearFilter, LinearMipMapNearestFilter, NearestMipMapNearestFilter, NearestMipMapLinearFilter and LinearMipMapLinearFilter. Defaulting to LinearMipMapLinearFilter."),e=ni),e}_checkMagFilter(e){return(e=e||si)!==si&&e!==ei&&(this.error("Unsupported value for 'magFilter' - supported values are LinearFilter and NearestFilter. Defaulting to LinearFilter."),e=si),e}_checkWrapS(e){return(e=e||Zt)!==Jt&&e!==$t&&e!==Zt&&(this.error("Unsupported value for 'wrapS' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=Zt),e}_checkWrapT(e){return(e=e||Zt)!==Jt&&e!==$t&&e!==Zt&&(this.error("Unsupported value for 'wrapT' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),e=Zt),e}_checkFlipY(e){return!!e}_checkEncoding(e){return(e=e||_i)!==_i&&e!==vi&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),e=_i),e}_webglContextRestored(){this._state.texture=new Ms({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,i;0===this._translate[0]&&0===this._translate[1]||(t=d.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(i=d.scalingMat4v([this._scale[0],this._scale[1],1]),t=t?d.mulMat4(t,i):i),0!==this._rotate&&(i=d.rotationMat4v(.0174532925*this._rotate,[0,0,1]),t=t?d.mulMat4(t,i):i),t&&(e.matrix=t),this._matrixDirty=!1}this.glRedraw()}set image(e){this._image=Is(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 i=new Image;i.onload=function(){i=Is(i),t._state.texture.setImage(i,t._state),t.scene.loading--,t.glRedraw(),t.scene.canvas.spinner.processes--},i.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(),p.memory.textures--}}const Rs=p.memory,Ls=d.AABB3();class Us extends xt{get type(){return"VBOGeometry"}get isVBOGeometry(){return!0}constructor(e,t={}){super(e,t),this._state=new qe({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=d.OBB3();const i=this._state,s=this.scene.canvas.gl;switch(t.primitive=t.primitive||"triangles",t.primitive){case"points":i.primitive=s.POINTS,i.primitiveName=t.primitive;break;case"lines":i.primitive=s.LINES,i.primitiveName=t.primitive;break;case"line-loop":i.primitive=s.LINE_LOOP,i.primitiveName=t.primitive;break;case"line-strip":i.primitive=s.LINE_STRIP,i.primitiveName=t.primitive;break;case"triangles":i.primitive=s.TRIANGLES,i.primitiveName=t.primitive;break;case"triangle-strip":i.primitive=s.TRIANGLE_STRIP,i.primitiveName=t.primitive;break;case"triangle-fan":i.primitive=s.TRIANGLE_FAN,i.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'."),i.primitive=s.TRIANGLES,i.primitiveName=t.primitive}if(t.positions)if(t.indices){var r;if(t.positionsDecodeMatrix);else{const e=Ft.getPositionsBounds(t.positions),o=Ft.compressPositions(t.positions,e.min,e.max);r=o.quantized,i.positionsDecodeMatrix=o.decodeMatrix,i.positionsBuf=new Ie(s,s.ARRAY_BUFFER,r,r.length,3,s.STATIC_DRAW),Rs.positions+=i.positionsBuf.numItems,d.positions3ToAABB3(t.positions,this._aabb),d.positions3ToAABB3(r,Ls,i.positionsDecodeMatrix),d.AABB3ToOBB3(Ls,this._obb)}if(t.colors){const e=t.colors.constructor===Float32Array?t.colors:new Float32Array(t.colors);i.colorsBuf=new Ie(s,s.ARRAY_BUFFER,e,e.length,4,s.STATIC_DRAW),Rs.colors+=i.colorsBuf.numItems}if(t.uv){const e=Ft.getUVBounds(t.uv),r=Ft.compressUVs(t.uv,e.min,e.max),o=r.quantized;i.uvDecodeMatrix=r.decodeMatrix,i.uvBuf=new Ie(s,s.ARRAY_BUFFER,o,o.length,2,s.STATIC_DRAW),Rs.uvs+=i.uvBuf.numItems}if(t.normals){const e=Ft.compressNormals(t.normals);let r=i.compressGeometry;i.normalsBuf=new Ie(s,s.ARRAY_BUFFER,e,e.length,3,s.STATIC_DRAW,r),Rs.normals+=i.normalsBuf.numItems}{const e=t.indices.constructor===Uint32Array||t.indices.constructor===Uint16Array?t.indices:new Uint32Array(t.indices);i.indicesBuf=new Ie(s,s.ELEMENT_ARRAY_BUFFER,e,e.length,1,s.STATIC_DRAW),Rs.indices+=i.indicesBuf.numItems;const o=wt(r,e,i.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new Ie(s,s.ELEMENT_ARRAY_BUFFER,o,o.length,1,s.STATIC_DRAW),"triangles"===this._state.primitiveName&&(this._numTriangles=t.indices.length/3)}this._buildHash(),Rs.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(),Rs.meshes--}}var ks={};function Os(e={}){let t=e.xSize||1;t<0&&(console.error("negative xSize not allowed - will invert"),t*=-1);let i=e.zSize||1;i<0&&(console.error("negative zSize not allowed - will invert"),i*=-1);let s=e.xSegments||1;s<0&&(console.error("negative xSegments not allowed - will invert"),s*=-1),s<1&&(s=1);let r=e.xSegments||1;r<0&&(console.error("negative zSegments not allowed - will invert"),r*=-1),r<1&&(r=1);const o=e.center,n=o?o[0]:0,a=o?o[1]:0,l=o?o[2]:0,A=t/2,h=i/2,c=Math.floor(s)||1,u=Math.floor(r)||1,d=c+1,p=u+1,g=t/c,m=i/u,f=new Float32Array(d*p*3),v=new Float32Array(d*p*3),b=new Float32Array(d*p*2);let x,w,y,P,B,C,M,E=0,F=0;for(x=0;x65535?Uint32Array:Uint16Array)(c*u*6);for(x=0;x360&&(o=360);const n=e.center;let a=n?n[0]:0,l=n?n[1]:0;const A=n?n[2]:0,h=[],c=[],u=[],p=[];let g,m,f,v,b,x,w,y,P,B,C,M;for(y=0;y<=r;y++)for(w=0;w<=s;w++)g=w/s*o,m=.785398+y/r*Math.PI*2,a=t*Math.cos(g),l=t*Math.sin(g),f=(t+i*Math.cos(m))*Math.cos(g),v=(t+i*Math.cos(m))*Math.sin(g),b=i*Math.sin(m),h.push(f+a),h.push(v+l),h.push(b+A),u.push(1-w/s),u.push(y/r),x=d.normalizeVec3(d.subVec3([f,v,b],[a,l,A],[]),[]),c.push(x[0]),c.push(x[1]),c.push(x[2]);for(y=1;y<=r;y++)for(w=1;w<=s;w++)P=(s+1)*y+w-1,B=(s+1)*(y-1)+w-1,C=(s+1)*(y-1)+w,M=(s+1)*y+w,p.push(P),p.push(B),p.push(C),p.push(C),p.push(M),p.push(P);return _.apply(e,{positions:h,normals:c,uv:u,indices:p})}ks.load=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=function(e){t(e.target.response)},i.send()},ks.save=function(e,t){var i="data:application/octet-stream;base64,"+btoa(ks.parse._buffToStr(e));window.location.href=i},ks.clone=function(e){return JSON.parse(JSON.stringify(e))},ks.bin={},ks.bin.f=new Float32Array(1),ks.bin.fb=new Uint8Array(ks.bin.f.buffer),ks.bin.rf=function(e,t){for(var i=ks.bin.f,s=ks.bin.fb,r=0;r<4;r++)s[r]=e[t+r];return i[0]},ks.bin.rsl=function(e,t){return e[t]|e[t+1]<<8},ks.bin.ril=function(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24},ks.bin.rASCII0=function(e,t){for(var i="";0!=e[t];)i+=String.fromCharCode(e[t++]);return i},ks.bin.wf=function(e,t,i){new Float32Array(e.buffer,t,1)[0]=i},ks.bin.wsl=function(e,t,i){e[t]=i,e[t+1]=i>>8},ks.bin.wil=function(e,t,i){e[t]=i,e[t+1]=i>>8,e[t+2]=i>>16,e[t+3]},ks.parse={},ks.parse._buffToStr=function(e){for(var t=new Uint8Array(e),i="",s=0;sr&&(r=l),Ao&&(o=A),hn&&(n=h)}return{min:{x:t,y:i,z:s},max:{x:r,y:o,z:n}}};class Qs extends D{constructor(e,t={}){super(e,t),this._type=t.type||(t.src?t.src.split(".").pop():null)||"jpg",this._pos=d.vec3(t.pos||[0,0,0]),this._up=d.vec3(t.up||[0,1,0]),this._normal=d.vec3(t.normal||[0,0,1]),this._height=t.height||1,this._origin=d.vec3(),this._rtcPos=d.vec3(),this._imageSize=d.vec2(),this._texture=new Ts(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 Ps(this,{matrix:d.inverseMat4(d.lookAtMat4v(this._pos,d.subVec3(this._pos,this._normal,d.mat4()),this._up,d.mat4())),children:[this._bitmapMesh=new hs(this,{scale:[1,1,1],rotation:[-90,0,0],collidable:t.collidable,pickable:t.pickable,opacity:t.opacity,clippable:t.clippable,geometry:new St(this,Os({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new kt(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 Vs=d.OBB3(),js=d.OBB3(),Hs=d.OBB3();class zs{constructor(e,t,i,s,r,o,n=null,a=0){this.model=e,this.object=null,this.parent=null,this.transform=r,this.textureSet=o,this._matrixDirty=!1,this._matrixUpdateScheduled=!1,this.id=t,this.obb=null,this._aabbLocal=null,this._aabbWorld=d.AABB3(),this._aabbWorldDirty=!1,this.layer=n,this.portionId=a,this._color=new Uint8Array([i[0],i[1],i[2],s]),this._colorize=new Uint8Array([i[0],i[1],i[2],s]),this._colorizing=!1,this._transparent=s<255,this.numTriangles=0,this.origin=null,this.entity=null,r&&r._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 i=e<255,s=this._transparent!==i;this._color[3]=e,this._colorize[3]=e,this._transparent=i,this._colorizing?this.layer.setColor(this.portionId,this._colorize):this.layer.setColor(this.portionId,this._color),s&&this.layer.setTransparent(this.portionId,t,i)}_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,i,s){return!!this.layer.precisionRayPickSurface&&this.layer.precisionRayPickSurface(this.portionId,e,t,i,s)}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(d.AABB3ToOBB3(this._aabbLocal,Vs),this.transform?(d.transformOBB3(this.transform.worldMatrix,Vs,js),d.transformOBB3(this.model.worldMatrix,js,Hs),d.OBB3ToAABB3(Hs,this._aabbWorld)):(d.transformOBB3(this.model.worldMatrix,Vs,js),d.OBB3ToAABB3(js,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 Gs=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 Ws=0;const Ks={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},Xs=new Float32Array([1,1,1,1]),Ys=new Float32Array([0,0,0,1]),qs=d.vec4(),Zs=d.vec3(),Js=d.vec3(),$s=d.mat4();class er{constructor(e,t=!1,{instancing:i=!1,edges:s=!1}={}){this._scene=e,this._withSAO=t,this._instancing=i,this._edges=s,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:i}=t.canvas,{model:s,layerIndex:r}=e,o=t._sectionPlanesState.getNumAllocatedSectionPlanes(),n=t._sectionPlanesState.sectionPlanes.length;if(o>0){const a=t._sectionPlanesState.sectionPlanes,l=r*n,A=s.renderFlags;for(let t=0;t0&&(this._uReflectionMap="reflectionMap"),i.lightMaps.length>0&&(this._uLightMap="lightMap"),this._uSectionPlanes=[];for(let t=0,i=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0&&p.reflectionMaps[0].texture&&this._uReflectionMap&&(this._program.bindTexture(this._uReflectionMap,p.reflectionMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%o,e.bindTexture++),p.lightMaps.length>0&&p.lightMaps[0].texture&&this._uLightMap&&(this._program.bindTexture(this._uLightMap,p.lightMaps[0].texture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%o,e.bindTexture++),this._withSAO){const t=n.sao;if(t.possible){const i=a.drawingBufferWidth,s=a.drawingBufferHeight;qs[0]=i,qs[1]=s,qs[2]=t.blendCutoff,qs[3]=t.blendFactor,a.uniform4fv(this._uSAOParams,qs),this._program.bindTexture(this._uOcclusionTexture,e.occlusionTexture,e.textureUnit),e.textureUnit=(e.textureUnit+1)%o,e.bindTexture++}}if(s){const e=this._edges?"edgeColor":"fillColor",t=this._edges?"edgeAlpha":"fillAlpha";if(i===Ks[(this._edges?"EDGES":"SILHOUETTE")+"_XRAYED"]){const i=n.xrayMaterial._state,s=i[e],r=i[t];a.uniform4f(this._uColor,s[0],s[1],s[2],r)}else if(i===Ks[(this._edges?"EDGES":"SILHOUETTE")+"_HIGHLIGHTED"]){const i=n.highlightMaterial._state,s=i[e],r=i[t];a.uniform4f(this._uColor,s[0],s[1],s[2],r)}else if(i===Ks[(this._edges?"EDGES":"SILHOUETTE")+"_SELECTED"]){const i=n.selectedMaterial._state,s=i[e],r=i[t];a.uniform4f(this._uColor,s[0],s[1],s[2],r)}else a.uniform4fv(this._uColor,this._edges?Ys:Xs)}this._draw({state:l,frameCtx:e,incrementDrawState:r}),a.bindVertexArray(null)}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null,p.memory.programs--}}class tr extends er{constructor(e,t,{edges:i=!1}={}){super(e,t,{instancing:!1,edges:i})}_draw(e){const{gl:t}=this._scene.canvas,{state:i,frameCtx:s,incrementDrawState:r}=e;if(this._edges)t.drawElements(t.LINES,i.edgeIndicesBuf.numItems,i.edgeIndicesBuf.itemType,0);else{const e=s.pickElementsCount||i.indicesBuf.numItems,o=s.pickElementsOffset?s.pickElementsOffset*i.indicesBuf.itemByteSize:0;t.drawElements(t.TRIANGLES,e,i.indicesBuf.itemType,o),r&&s.drawElements++}}}class ir extends tr{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState,s=t.getNumAllocatedSectionPlanes()>0;let r;const o=[];o.push("#version 300 es"),o.push("// Triangles batching draw vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in float flags;"),e.entityOffsetsEnabled&&o.push("in vec3 offset;"),this._addMatricesUniformBlockLines(o,!0),e.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;");for(let e=0,t=i.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 = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),o.push("vec3 viewNormal = normalize((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;");for(let e=0,t=i.lights.length;e0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching 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;")),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("}")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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;"),this._withSAO?(s.push(" float viewportWidth = uSAOParams[0];"),s.push(" float viewportHeight = uSAOParams[1];"),s.push(" float blendCutoff = uSAOParams[2];"),s.push(" float blendFactor = uSAOParams[3];"),s.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),s.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),s.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):s.push(" outColor = vColor;"),s.push("}"),s}}class sr extends tr{_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,i=[];return i.push("#version 300 es"),i.push("// Triangles batching flat-shading draw vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vViewPosition = viewPosition;"),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._lightsState,i=e._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,r=[];if(r.push("#version 300 es"),r.push("// Triangles batching flat-shading 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("}")),s){r.push("in vec4 vWorldPosition;"),r.push("in float vFlags;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),r.push(" if (clippable) {"),r.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { "),r.push(" discard;"),r.push(" }"),r.push("}")}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 ) );");for(let e=0,i=t.lights.length;e0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 color;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec4 silhouetteColor;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, color.a ));"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Triangles batching silhouette 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"),e.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("outColor = vColor;"),o.push("}"),o}}class or extends tr{constructor(e){super(e,!1,{instancing:!1,edges:!0})}}class nr extends or{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer vertex shader"),i.push("uniform int renderPass;"),i.push("uniform vec4 color;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeFlag = int(flags) >> 8 & 0xF;"),i.push("if (edgeFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vColor = vec4(color.r, color.g, color.b, color.a);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// EdgesEmphasisRenderer 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class ar extends or{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!1})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry edges drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeFlag = int(flags) >> 8 & 0xF;"),i.push("if (edgeFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.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);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry edges 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class lr extends tr{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry picking vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),this._addRemapClipPosLines(i),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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 = vPickColor; "),s.push("}"),s}}class Ar extends tr{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching pick depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),this._addRemapClipPosLines(i),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching 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;"),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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(" outColor = packDepth(zNormalizedDepth); "),s.push("}"),s}}class hr extends tr{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching pick normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec3 normal;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i,3),e.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("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec3 vWorldNormal;"),i.push("out vec4 outColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec3 worldNormal = octDecode(normal.xy); "),i.push(" vWorldNormal = worldNormal;"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching pick normals 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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(` outNormal = ivec4(vWorldNormal * float(${d.MAX_INT}), 1.0);`),s.push("}"),s}}class cr extends tr{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching occlusion vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching 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){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push(" }")}return i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),i.push("}"),i}}class ur extends tr{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec2 vHighPrecisionZW;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vHighPrecisionZW = gl_Position.zw;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching depth fragment shader"),s.push("precision highp float;"),s.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 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 fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),s.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),s.push("}"),s}}class dr extends tr{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec3 normal;"),i.push("in vec4 color;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i,!0),e.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("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec3 vViewNormal;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),i.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push(" vViewNormal = viewNormal;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 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 = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}}class pr extends tr{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry shadow vertex shader"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("uniform mat4 shadowViewMatrix;"),i.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(i),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 outColor;"),i.push("void main(void) {"),i.push(" int colorFlag = int(flags) & 0xF;"),i.push(" bool visible = (colorFlag > 0);"),i.push(" bool transparent = ((float(color.a) / 255.0) < 1.0);"),i.push(" if (!visible || transparent) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push(" vViewPosition = viewPosition;"),i.push(" gl_Position = shadowProjMatrix * viewPosition;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry 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"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" outColor = encodeFloat( gl_FragCoord.z); "),i.push("}"),i}}class gr extends tr{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState,s=t.getNumAllocatedSectionPlanes()>0,r=t.clippingCaps,o=[];return o.push("#version 300 es"),o.push("// Triangles batching quality draw vertex shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("precision highp usampler2D;"),o.push("precision highp isampler2D;"),o.push("precision highp sampler2D;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("precision mediump usampler2D;"),o.push("precision mediump isampler2D;"),o.push("precision mediump sampler2D;"),o.push("#endif"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in vec2 uv;"),o.push("in vec2 metallicRoughness;"),o.push("in float flags;"),e.entityOffsetsEnabled&&o.push("in vec3 offset;"),this._addMatricesUniformBlockLines(o,!0),o.push("uniform mat3 uvDecodeMatrix;"),e.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("vec3 octDecode(vec2 oct) {"),o.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),o.push(" if (v.z < 0.0) {"),o.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);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),o.push("out vec4 vViewPosition;"),o.push("out vec3 vViewNormal;"),o.push("out vec4 vColor;"),o.push("out vec2 vUV;"),o.push("out vec2 vMetallicRoughness;"),i.lightMaps.length>0&&o.push("out vec3 vWorldNormal;"),s&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;"),r&&o.push("out vec4 vClipPosition;")),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 = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),o.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),o.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),o.push("vFragDepth = 1.0 + clipPos.w;")),s&&(o.push("vWorldPosition = worldPosition;"),o.push("vFlags = flags;"),r&&o.push("vClipPosition = clipPos;")),o.push("vViewPosition = viewPosition;"),o.push("vViewNormal = viewNormal;"),o.push("vColor = color;"),o.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),o.push("vMetallicRoughness = metallicRoughness;"),i.lightMaps.length>0&&o.push("vWorldNormal = worldNormal.xyz;"),o.push("gl_Position = clipPos;"),o.push("}"),o.push("}"),o}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,i=e._sectionPlanesState,s=e._lightsState,r=i.getNumAllocatedSectionPlanes()>0,o=i.clippingCaps,n=[];n.push("#version 300 es"),n.push("// Triangles batching quality 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;")),n.push("uniform sampler2D uColorMap;"),n.push("uniform sampler2D uMetallicRoughMap;"),n.push("uniform sampler2D uEmissiveMap;"),n.push("uniform sampler2D uNormalMap;"),n.push("uniform sampler2D uAOMap;"),n.push("in vec4 vViewPosition;"),n.push("in vec3 vViewNormal;"),n.push("in vec4 vColor;"),n.push("in vec2 vUV;"),n.push("in vec2 vMetallicRoughness;"),s.lightMaps.length>0&&n.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(n,!0),s.reflectionMaps.length>0&&n.push("uniform samplerCube reflectionMap;"),s.lightMaps.length>0&&n.push("uniform samplerCube lightMap;"),n.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e0&&(n.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),n.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),n.push(" return envMapColor;"),n.push("}")),n.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),n.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),n.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),n.push("}"),n.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" return 1.0 / ( gl * gv );"),n.push("}"),n.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" return 0.5 / max( gv + gl, EPSILON );"),n.push("}"),n.push("float D_GGX(const in float alpha, const in float dotNH) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),n.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float alpha = ( roughness * roughness );"),n.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),n.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),n.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),n.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),n.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),n.push(" vec3 F = F_Schlick( specularColor, dotLH );"),n.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),n.push(" float D = D_GGX( alpha, dotNH );"),n.push(" return F * (G * D);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),n.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),n.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),n.push(" vec4 r = roughness * c0 + c1;"),n.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),n.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),n.push(" return specularColor * AB.x + AB.y;"),n.push("}"),(s.lightMaps.length>0||s.reflectionMaps.length>0)&&(n.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),s.lightMaps.length>0&&(n.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),n.push(" irradiance *= PI;"),n.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),s.reflectionMaps.length>0&&(n.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),n.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),n.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),n.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),n.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),n.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),n.push("}")),n.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),n.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),n.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),n.push("}"),n.push("out vec4 outColor;"),n.push("void main(void) {"),r){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),n.push(" discard;"),n.push(" }"),n.push(" if (dist > 0.0) { "),n.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" return;"),n.push("}")):(n.push(" if (dist > 0.0) { "),n.push(" discard;"),n.push(" }")),n.push("}")}n.push("IncidentLight light;"),n.push("Material material;"),n.push("Geometry geometry;"),n.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),n.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),n.push("float opacity = float(vColor.a) / 255.0;"),n.push("vec3 baseColor = rgb;"),n.push("float specularF0 = 1.0;"),n.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),n.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),n.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),n.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),n.push("baseColor *= colorTexel.rgb;"),n.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),n.push("metallic *= metalRoughTexel.b;"),n.push("roughness *= metalRoughTexel.g;"),n.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),n.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),n.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),n.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),n.push("geometry.position = vViewPosition.xyz;"),n.push("geometry.viewNormal = -normalize(viewNormal);"),n.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),s.lightMaps.length>0&&n.push("geometry.worldNormal = normalize(vWorldNormal);"),(s.lightMaps.length>0||s.reflectionMaps.length>0)&&n.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=s.lights.length;e0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching pick flat normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i,3),e.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("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching pick flat normals 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;"),i){s.push("in float vFlags;");for(var r=0;r> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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(" 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(${d.MAX_INT}), 1.0);`),s.push("}"),s}}class fr extends tr{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Triangles batching color texture vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in vec2 uv;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),this._addMatricesUniformBlockLines(i),i.push("uniform mat3 uvDecodeMatrix;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 vColor;"),i.push("out vec2 vUV;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vViewPosition = viewPosition;"),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),i.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,i=e._lightsState,s=e._sectionPlanesState,r=s.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Triangles batching color texture 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"),e.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("}"),t&&(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("}")),r){o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(let e=0,t=s.getNumAllocatedSectionPlanes();e 0.0) { "),o.push(" discard;"),o.push(" }"),o.push("}")}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 ) );");for(let e=0,t=i.lights.length;e0,i=[];return i.push("#version 300 es"),i.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// VBO SnapBatchingDepthBufInitRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(`outNormal = ivec4(worldNormal * float(${d.MAX_INT}), 1.0);`),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Pr=d.vec3(),Br=d.vec3(),Cr=d.vec3(),Mr=d.vec3(),Er=d.mat4();class Fr extends er{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=Pr;let m,f;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=Br;if(l){const e=Cr;d.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,Er),f=Mr,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(a.edgeIndicesBuf.bind(),n.drawElements(n.LINES,a.edgeIndicesBuf.numItems,a.edgeIndicesBuf.itemType,0),a.edgeIndicesBuf.unbind()):n.drawArrays(n.POINTS,0,a.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 i=[];return i.push("#version 300 es"),i.push("// SnapBatchingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapBatchingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Ir{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._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=null),this._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=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._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),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new rr(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new lr(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Ar(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new yr(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new Fr(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new ir(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new ir(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new sr(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new sr(this._scene,!0)),this._flatColorRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new fr(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new fr(this._scene,!0)),this._colorTextureRendererWithSAO}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new gr(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new gr(this._scene,!0)),this._pbrRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new rr(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new ur(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new dr(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new nr(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new ar(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new lr(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new hr(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new mr(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Ar(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new cr(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new pr(this._scene)),this._shadowRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Fr(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new yr(this._scene)),this._snapInitRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.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._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Dr={};let Sr=65536,Tr=5e6;class Rr{constructor(){}set doublePrecisionEnabled(e){d.setDoublePrecisionEnabled(e)}get doublePrecisionEnabled(){return d.getDoublePrecisionEnabled()}set maxDataTextureHeight(e){(e=1024*Math.ceil(e/1024))>4096?e=4096:e<1024&&(e=1024),Sr=e}get maxDataTextureHeight(){return Sr}set maxGeometryBatchSize(e){e<1e5?e=1e5:e>5e6&&(e=5e6),Tr=e}get maxGeometryBatchSize(){return Tr}}const Lr=new Rr;class Ur{constructor(){this.maxVerts=Lr.maxGeometryBatchSize,this.maxIndices=3*Lr.maxGeometryBatchSize,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]}}const kr=d.mat4(),Or=d.mat4();function Nr(e,t,i){const s=e.length,r=new Uint16Array(s),o=t[0],n=t[1],a=t[2],l=t[3]-o,A=t[4]-n,h=t[5]-a,c=65525,u=c/l,p=c/A,g=c/h,m=e=>e>=0?e:0;for(let t=0;t=0?1:-1),t=(1-Math.abs(s))*(r>=0?1:-1),s=e,r=t}return new Int8Array([Math[t](127.5*s+(s<0?-1:0)),Math[i](127.5*r+(r<0?-1:0))])}function jr(e){let t=e[0],i=e[1];t/=t<0?127:128,i/=i<0?127:128;const s=1-Math.abs(t)-Math.abs(i);s<0&&(t=(1-Math.abs(i))*(t>=0?1:-1),i=(1-Math.abs(t))*(i>=0?1:-1));const r=Math.sqrt(t*t+i*i+s*s);return[t/r,i/r,s/r]}const Hr=d.mat4(),zr=d.mat4(),Gr=d.vec4([0,0,0,1]),Wr=d.vec3(),Kr=d.vec3(),Xr=d.vec3(),Yr=d.vec3(),qr=d.vec3(),Zr=d.vec3(),Jr=d.vec3();class $r{constructor(e){console.info("Creating VBOBatchingTrianglesLayer"),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._renderers=function(e){const t=e.id;let i=Dr[t];return i||(i=new Ir(e),Dr[t]=i,i._compile(),i.eagerCreateRenders(),e.on("compile",(()=>{i._compile(),i.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Dr[t],i._destroy()}))),i}(e.model.scene),this._buffer=new Ur(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new qe({origin:d.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=d.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=d.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,e.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=d.mat4(e.positionsDecodeMatrix)),e.uvDecodeMatrix?(this._state.uvDecodeMatrix=d.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){d.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)for(let e=0,t=o.length;e0){const e=Hr;f?d.inverseMat4(d.transposeMat4(f,zr),e):d.identityMat4(e,e),function(e,t,i,s,r){function o(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}let n,a,l,A,h,c,u=new Float32Array([0,0,0,0]),p=new Float32Array([0,0,0,0]);for(c=0;ch&&(l=n,h=A),n=Vr(p,"floor","ceil"),a=jr(n),A=o(p,a),A>h&&(l=n,h=A),n=Vr(p,"ceil","ceil"),a=jr(n),A=o(p,a),A>h&&(l=n,h=A),s[r+c+0]=l[0],s[r+c+1]=l[1],s[r+c+2]=0}(e,r,r.length,b.normals,b.normals.length)}if(l)for(let e=0,t=l.length;e0)for(let e=0,t=n.length;e0)for(let e=0,t=a.length;e0){const s=this._state.positionsDecodeMatrix?new Uint16Array(i.positions):Nr(i.positions,this._modelAABB,this._state.positionsDecodeMatrix=d.mat4());if(e.positionsBuf=new Ie(t,t.ARRAY_BUFFER,s,s.length,3,t.STATIC_DRAW),this.model.scene.pickSurfacePrecisionEnabled)for(let e=0,t=this._portions.length;e0){const s=new Int8Array(i.normals);let r=!0;e.normalsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.normals.length,3,t.STATIC_DRAW,r)}if(i.colors.length>0){const s=new Uint8Array(i.colors);let r=!1;e.colorsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.colors.length,4,t.DYNAMIC_DRAW,r)}if(i.uv.length>0)if(e.uvDecodeMatrix){let s=!1;e.uvBuf=new Ie(t,t.ARRAY_BUFFER,i.uv,i.uv.length,2,t.STATIC_DRAW,s)}else{const s=Ft.getUVBounds(i.uv),r=Ft.compressUVs(i.uv,s.min,s.max),o=r.quantized;let n=!1;e.uvDecodeMatrix=d.mat3(r.decodeMatrix),e.uvBuf=new Ie(t,t.ARRAY_BUFFER,o,o.length,2,t.STATIC_DRAW,n)}if(i.metallicRoughness.length>0){const s=new Uint8Array(i.metallicRoughness);let r=!1;e.metallicRoughnessBuf=new Ie(t,t.ARRAY_BUFFER,s,i.metallicRoughness.length,2,t.STATIC_DRAW,r)}if(i.positions.length>0){const s=i.positions.length/3,r=new Float32Array(s),o=!1;e.flagsBuf=new Ie(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(i.pickColors.length>0){const s=new Uint8Array(i.pickColors);let r=!1;e.pickColorsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.pickColors.length,4,t.STATIC_DRAW,r)}if(this.model.scene.entityOffsetsEnabled&&i.offsets.length>0){const s=new Float32Array(i.offsets);e.offsetsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.offsets.length,3,t.DYNAMIC_DRAW)}if(i.indices.length>0){const s=new Uint32Array(i.indices);e.indicesBuf=new Ie(t,t.ELEMENT_ARRAY_BUFFER,s,i.indices.length,1,t.STATIC_DRAW)}if(i.edgeIndices.length>0){const s=new Uint32Array(i.edgeIndices);e.edgeIndicesBuf=new Ie(t,t.ELEMENT_ARRAY_BUFFER,s,i.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,i){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&X&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,i,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&ee?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Y?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&X?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";const i=e,s=this._portions[i],r=4*s.vertsBaseIndex,o=4*s.numVerts,n=this._scratchMemory.getUInt8Array(o),a=t[0],l=t[1],A=t[2],h=t[3];for(let e=0;e_)&&(_=e,s.set(v),r&&d.triangleNormal(p,g,m,r),f=!0)}}return f&&r&&(d.transformVec3(this.model.worldNormalMatrix,r,r),d.normalizeVec3(r)),f}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 eo extends er{constructor(e,t,{edges:i=!1}={}){super(e,t,{instancing:!0,edges:i})}_draw(e){const{gl:t}=this._scene.canvas,{state:i,frameCtx:s,incrementDrawState:r}=e;this._edges?t.drawElementsInstanced(t.LINES,i.edgeIndicesBuf.numItems,i.edgeIndicesBuf.itemType,0,i.numInstances):(t.drawElementsInstanced(t.TRIANGLES,i.indicesBuf.numItems,i.indicesBuf.itemType,0,i.numInstances),r&&s.drawElements++)}}class to extends eo{_getHash(){const e=this._scene;return[e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState,s=t.getNumAllocatedSectionPlanes()>0;let r,o,n;const a=[];for(a.push("#version 300 es"),a.push("// Instancing geometry drawing vertex shader"),a.push("uniform int renderPass;"),a.push("in vec3 position;"),a.push("in vec2 normal;"),a.push("in vec4 color;"),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),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;"),r=0,o=i.lights.length;r= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"),s&&(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 = 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), 0.0);"),a.push("vec3 viewNormal = normalize(vec4(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;"),r=0,o=i.lights.length;r0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry 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;")),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("}")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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;"),this._withSAO?(s.push(" float viewportWidth = uSAOParams[0];"),s.push(" float viewportHeight = uSAOParams[1];"),s.push(" float blendCutoff = uSAOParams[2];"),s.push(" float blendFactor = uSAOParams[3];"),s.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),s.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),s.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):s.push(" outColor = vColor;"),s.push("}"),s}}class io extends eo{_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,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry flat-shading drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vViewPosition = viewPosition;"),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState;let s,r;const o=t.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry flat-shading 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("}")),o){n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { "),n.push(" discard;"),n.push(" }"),n.push("}")}for(n.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),n.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),n.push("float lambertian = 1.0;"),n.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),n.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),n.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),s=0,r=i.lights.length;s0,i=[];return i.push("#version 300 es"),i.push("// Instancing silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 color;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec4 silhouetteColor;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing fill 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class ro extends eo{constructor(e,t){super(e,t,{instancing:!0,edges:!0})}}class oo extends ro{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer vertex shader"),i.push("uniform int renderPass;"),i.push("uniform vec4 color;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeFlag = int(flags) >> 8 & 0xF;"),i.push("if (edgeFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = worldMatrix * positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vColor = vec4(color.r, color.g, color.b, color.a);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// EdgesEmphasisRenderer 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class no extends ro{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!1})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// EdgesColorRenderer vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeFlag = int(flags) >> 8 & 0xF;"),i.push("if (edgeFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.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);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// EdgesColorRenderer 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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}}class ao extends eo{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry picking vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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 = vPickColor; "),s.push("}"),s}}class lo extends eo{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push(" vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry 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;"),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 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(" outColor = packDepth(zNormalizedDepth); "),s.push("}"),s}}class Ao extends eo{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec2 normal;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("in vec4 modelNormalMatrixCol0;"),i.push("in vec4 modelNormalMatrixCol1;"),i.push("in vec4 modelNormalMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i,3),e.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("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec3 vWorldNormal;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),i.push(" vec3 worldNormal = vec3(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2));"),i.push(" vWorldNormal = worldNormal;"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 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(` outNormal = ivec4(vWorldNormal * float(${d.MAX_INT}), 1.0);`),s.push("}"),s}}class ho extends eo{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// TrianglesInstancingOcclusionRenderer vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesInstancingOcclusionRenderer 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){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),i.push("}"),i}}class co extends eo{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry depth drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec2 vHighPrecisionZW;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vHighPrecisionZW = gl_Position.zw;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Instancing geometry depth drawing fragment shader"),o.push("precision highp float;"),o.push("precision highp int;"),e.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),o.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),o.push("}"),o}}class uo extends eo{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry normals drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec3 normal;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i,!0),e.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("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec3 vViewNormal;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),i.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push(" vViewNormal = viewNormal;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry depth 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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 = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}}class po extends eo{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry shadow drawing vertex shader"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform mat4 shadowViewMatrix;"),i.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(i),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("bool visible = (colorFlag > 0);"),i.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),i.push("if (!visible || transparent) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push(" gl_Position = shadowProjMatrix * viewPosition;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry depth 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}}const go={3e3:"linearToLinear",3001:"sRGBToLinear"};class mo extends eo{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState,i=e._lightsState,s=t.getNumAllocatedSectionPlanes()>0,r=t.clippingCaps,o=[];return o.push("#version 300 es"),o.push("// Instancing geometry quality drawing vertex shader"),o.push("uniform int renderPass;"),o.push("in vec3 position;"),o.push("in vec3 normal;"),o.push("in vec4 color;"),o.push("in vec2 uv;"),o.push("in vec2 metallicRoughness;"),o.push("in float flags;"),e.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),o.push("uniform mat3 uvDecodeMatrix;"),e.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("vec3 octDecode(vec2 oct) {"),o.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),o.push(" if (v.z < 0.0) {"),o.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);"),o.push(" }"),o.push(" return normalize(v);"),o.push("}"),o.push("out vec4 vViewPosition;"),o.push("out vec3 vViewNormal;"),o.push("out vec4 vColor;"),o.push("out vec2 vUV;"),o.push("out vec2 vMetallicRoughness;"),i.lightMaps.length>0&&o.push("out vec3 vWorldNormal;"),s&&(o.push("out vec4 vWorldPosition;"),o.push("out float vFlags;"),r&&o.push("out vec4 vClipPosition;")),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);"),e.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), 1.0);"),o.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("vFragDepth = 1.0 + clipPos.w;"),o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),s&&(o.push("vWorldPosition = worldPosition;"),o.push("vFlags = flags;"),r&&o.push("vClipPosition = clipPos;")),o.push("vViewPosition = viewPosition;"),o.push("vViewNormal = viewNormal;"),o.push("vColor = color;"),o.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),o.push("vMetallicRoughness = metallicRoughness;"),i.lightMaps.length>0&&o.push("vWorldNormal = worldNormal.xyz;"),o.push("gl_Position = clipPos;"),o.push("}"),o.push("}"),o}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,i=e._sectionPlanesState,s=e._lightsState,r=i.getNumAllocatedSectionPlanes()>0,o=i.clippingCaps,n=[];n.push("#version 300 es"),n.push("// Instancing geometry quality 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;")),n.push("uniform sampler2D uColorMap;"),n.push("uniform sampler2D uMetallicRoughMap;"),n.push("uniform sampler2D uEmissiveMap;"),n.push("uniform sampler2D uNormalMap;"),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.reflectionMaps.length>0&&n.push("uniform samplerCube reflectionMap;"),s.lightMaps.length>0&&n.push("uniform samplerCube lightMap;"),n.push("uniform vec4 lightAmbient;");for(let e=0,t=s.lights.length;e0&&n.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(n,!0),n.push("#define PI 3.14159265359"),n.push("#define RECIPROCAL_PI 0.31830988618"),n.push("#define RECIPROCAL_PI2 0.15915494"),n.push("#define EPSILON 1e-6"),n.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),n.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),n.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),n.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),n.push(" return normalize(surf_norm );"),n.push(" }"),n.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),n.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),n.push(" vec2 st0 = dFdx( uv.st );"),n.push(" vec2 st1 = dFdy( uv.st );"),n.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),n.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),n.push(" vec3 N = normalize( surf_norm );"),n.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),n.push(" mat3 tsn = mat3( S, T, N );"),n.push(" return normalize( tsn * mapN );"),n.push("}"),n.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),n.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),n.push("}"),n.push("struct IncidentLight {"),n.push(" vec3 color;"),n.push(" vec3 direction;"),n.push("};"),n.push("struct ReflectedLight {"),n.push(" vec3 diffuse;"),n.push(" vec3 specular;"),n.push("};"),n.push("struct Geometry {"),n.push(" vec3 position;"),n.push(" vec3 viewNormal;"),n.push(" vec3 worldNormal;"),n.push(" vec3 viewEyeDir;"),n.push("};"),n.push("struct Material {"),n.push(" vec3 diffuseColor;"),n.push(" float specularRoughness;"),n.push(" vec3 specularColor;"),n.push(" float shine;"),n.push("};"),n.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),n.push(" float r = ggxRoughness + 0.0001;"),n.push(" return (2.0 / (r * r) - 2.0);"),n.push("}"),n.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),n.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),n.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),n.push("}"),s.reflectionMaps.length>0&&(n.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),n.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),n.push(" vec3 envMapColor = "+go[s.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),n.push(" return envMapColor;"),n.push("}")),n.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),n.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),n.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),n.push("}"),n.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" return 1.0 / ( gl * gv );"),n.push("}"),n.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),n.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),n.push(" return 0.5 / max( gv + gl, EPSILON );"),n.push("}"),n.push("float D_GGX(const in float alpha, const in float dotNH) {"),n.push(" float a2 = ( alpha * alpha );"),n.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),n.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float alpha = ( roughness * roughness );"),n.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),n.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),n.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),n.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),n.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),n.push(" vec3 F = F_Schlick( specularColor, dotLH );"),n.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),n.push(" float D = D_GGX( alpha, dotNH );"),n.push(" return F * (G * D);"),n.push("}"),n.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),n.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),n.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),n.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),n.push(" vec4 r = roughness * c0 + c1;"),n.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),n.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),n.push(" return specularColor * AB.x + AB.y;"),n.push("}"),(s.lightMaps.length>0||s.reflectionMaps.length>0)&&(n.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),s.lightMaps.length>0&&(n.push(" vec3 irradiance = "+go[s.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),n.push(" irradiance *= PI;"),n.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),s.reflectionMaps.length>0&&(n.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),n.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),n.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),n.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),n.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),n.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),n.push("}")),n.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),n.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),n.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),n.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),n.push("}"),n.push("out vec4 outColor;"),n.push("void main(void) {"),r){n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e (0.002 * vClipPosition.w)) {"),n.push(" discard;"),n.push(" }"),n.push(" if (dist > 0.0) { "),n.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),e.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push(" return;"),n.push("}")):(n.push(" if (dist > 0.0) { "),n.push(" discard;"),n.push(" }")),n.push("}")}n.push("IncidentLight light;"),n.push("Material material;"),n.push("Geometry geometry;"),n.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),n.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),n.push("float opacity = float(vColor.a) / 255.0;"),n.push("vec3 baseColor = rgb;"),n.push("float specularF0 = 1.0;"),n.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),n.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),n.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),n.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),n.push("baseColor *= colorTexel.rgb;"),n.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),n.push("metallic *= metalRoughTexel.b;"),n.push("roughness *= metalRoughTexel.g;"),n.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),n.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),n.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),n.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),n.push("geometry.position = vViewPosition.xyz;"),n.push("geometry.viewNormal = -normalize(viewNormal);"),n.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),s.lightMaps.length>0&&n.push("geometry.worldNormal = normalize(vWorldNormal);"),(s.lightMaps.length>0||s.reflectionMaps.length>0)&&n.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let e=0,t=s.lights.length;e0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry normals vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i,3),e.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;")),t&&i.push("out float vFlags;"),i.push("out vec4 vWorldPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&i.push("vFlags = flags;"),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Batched geometry normals 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;"),i){s.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 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(" 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(${d.MAX_INT}), 1.0);`),s.push("}"),s}}class _o extends eo{_getHash(){const e=this._scene;return[e.gammaOutput,e._lightsState.getHash(),e._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry drawing vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in vec2 uv;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform mat3 uvDecodeMatrix;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("out vec4 vColor;"),i.push("out vec2 vUV;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vViewPosition = viewPosition;"),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),i.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e.gammaOutput,i=e._sectionPlanesState,s=e._lightsState;let r,o;const n=i.getNumAllocatedSectionPlanes()>0,a=[];if(a.push("#version 300 es"),a.push("// Instancing geometry 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"),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("}")),n){a.push("in vec4 vWorldPosition;"),a.push("in float vFlags;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),a.push(" if (clippable) {"),a.push(" float dist = 0.0;");for(let e=0,t=i.getNumAllocatedSectionPlanes();e 0.0) { "),a.push(" discard;"),a.push(" }"),a.push("}")}for(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 ) );"),r=0,o=s.lights.length;r0,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick depth 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(`outNormal = ivec4(worldNormal * float(${d.MAX_INT}), 1.0);`),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Bo=d.vec3(),Co=d.vec3(),Mo=d.vec3(),Eo=d.vec3(),Fo=d.mat4();class Io extends er{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=Bo;let m,f;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=Co;if(l){const e=d.transformPoint3(h,l,Mo);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,Fo),f=Eo,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(a.edgeIndicesBuf.bind(),n.drawElementsInstanced(n.LINES,a.edgeIndicesBuf.numItems,a.edgeIndicesBuf.itemType,0,a.numInstances),a.edgeIndicesBuf.unbind()):n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Do{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._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=null),this._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=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._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new so(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new ao(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new lo(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new Po(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new Io(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new to(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new to(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new io(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new io(this._scene,!0)),this._flatColorRendererWithSAO}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new mo(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new mo(this._scene,!0)),this._pbrRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new _o(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new _o(this._scene,!0)),this._colorTextureRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new so(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new co(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new uo(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new oo(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new no(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ao(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Ao(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new fo(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new lo(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new ho(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new po(this._scene)),this._shadowRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Po(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Io(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.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._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const So={};const To=new Uint8Array(4),Ro=new Float32Array(1),Lo=d.vec4([0,0,0,1]),Uo=new Float32Array(3),ko=d.vec3(),Oo=d.vec3(),No=d.vec3(),Qo=d.vec3(),Vo=d.vec3(),jo=d.vec3(),Ho=d.vec3(),zo=new Float32Array(4);class Go{constructor(e){console.info("Creating VBOInstancingTrianglesLayer"),this.model=e.model,this.sortId="TrianglesInstancingLayer"+(e.solid?"-solid":"-surface")+(e.normals?"-normals":"-autoNormals"),this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=So[t];return i||(i=new Do(e),So[t]=i,i._compile(),i.eagerCreateRenders(),e.on("compile",(()=>{i._compile(),i.eagerCreateRenders()})),e.on("destroyed",(()=>{delete So[t],i._destroy()}))),i}(e.model.scene),this._aabb=d.collapseAABB3(),this._state=new qe({numInstances:0,obb:d.OBB3(),origin:d.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=d.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){d.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;e.colorsBuf=new Ie(s,s.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,s.DYNAMIC_DRAW,t),this._colors=[]}if(this._metallicRoughness.length>0){const t=new Uint8Array(this._metallicRoughness);let i=!1;e.metallicRoughnessBuf=new Ie(s,s.ARRAY_BUFFER,t,this._metallicRoughness.length,2,s.STATIC_DRAW,i)}if(o>0){let t=!1;e.flagsBuf=new Ie(s,s.ARRAY_BUFFER,new Float32Array(o),o,1,s.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;e.offsetsBuf=new Ie(s,s.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,s.DYNAMIC_DRAW,t),this._offsets=[]}if(t.positionsCompressed&&t.positionsCompressed.length>0){const i=!1;e.positionsBuf=new Ie(s,s.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,s.STATIC_DRAW,i),e.positionsDecodeMatrix=d.mat4(t.positionsDecodeMatrix)}if(t.colorsCompressed&&t.colorsCompressed.length>0){const i=new Uint8Array(t.colorsCompressed),r=!1;e.colorsBuf=new Ie(s,s.ARRAY_BUFFER,i,i.length,4,s.STATIC_DRAW,r)}if(t.uvCompressed&&t.uvCompressed.length>0){const i=t.uvCompressed;e.uvDecodeMatrix=t.uvDecodeMatrix,e.uvBuf=new Ie(s,s.ARRAY_BUFFER,i,i.length,2,s.STATIC_DRAW,!1)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new Ie(s,s.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,s.STATIC_DRAW),e.numIndices=t.indices.length),"triangles"!==t.primitive&&"solid"!==t.primitive&&"surface"!==t.primitive||(e.edgeIndicesBuf=new Ie(s,s.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.edgeIndices),t.edgeIndices.length,1,s.STATIC_DRAW)),this._modelMatrixCol0.length>0){const t=!1;e.modelMatrixCol0Buf=new Ie(s,s.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,s.STATIC_DRAW,t),e.modelMatrixCol1Buf=new Ie(s,s.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,s.STATIC_DRAW,t),e.modelMatrixCol2Buf=new Ie(s,s.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,s.STATIC_DRAW,t),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],e.normalsBuf&&(e.modelNormalMatrixCol0Buf=new Ie(s,s.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,s.STATIC_DRAW,t),e.modelNormalMatrixCol1Buf=new Ie(s,s.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,s.STATIC_DRAW,t),e.modelNormalMatrixCol2Buf=new Ie(s,s.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,s.STATIC_DRAW,t),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){const t=!1;e.pickColorsBuf=new Ie(s,s.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,s.STATIC_DRAW,t),this._pickColors=[]}e.pbrSupported=!!(e.metallicRoughnessBuf&&e.uvBuf&&e.normalsBuf&&i&&i.colorTexture&&i.metallicRoughnessTexture),e.colorTextureSupported=!!e.uvBuf&&!!i&&!!i.colorTexture,this._state.geometry=null,this._finalized=!0}initFlags(e,t,i){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&X&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,i)}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&ee?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Y?(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,i){if(!this._finalized)throw"Not finalized";t&X?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";To[0]=t[0],To[1]=t[1],To[2]=t[2],To[3]=t[3],this._state.colorsBuf&&this._state.colorsBuf.setData(To,4*e)}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i){if(!this._finalized)throw"Not finalized";const s=!!(t&W),r=!!(t&Z),o=!!(t&J),n=!!(t&$),a=!!(t&ee),l=!!(t&X),A=!!(t&K);let h,c;h=!s||A||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?Ks.NOT_RENDERED:i?Ks.COLOR_TRANSPARENT:Ks.COLOR_OPAQUE,c=!s||A?Ks.NOT_RENDERED:n?Ks.SILHOUETTE_SELECTED:o?Ks.SILHOUETTE_HIGHLIGHTED:r?Ks.SILHOUETTE_XRAYED:Ks.NOT_RENDERED;let u=0;u=!s||A?Ks.NOT_RENDERED:n?Ks.EDGES_SELECTED:o?Ks.EDGES_HIGHLIGHTED:r?Ks.EDGES_XRAYED:a?i?Ks.EDGES_COLOR_TRANSPARENT:Ks.EDGES_COLOR_OPAQUE:Ks.NOT_RENDERED;let d=0;d|=h,d|=c<<4,d|=u<<8,d|=(s&&!A&&l?Ks.PICK:Ks.NOT_RENDERED)<<12,d|=(t&Y?1:0)<<16,Ro[0]=d,this._state.flagsBuf&&this._state.flagsBuf.setData(Ro,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Uo[0]=t[0],Uo[1]=t[1],Uo[2]=t[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(Uo,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}getEachVertex(e,t){if(!this.model.scene.pickSurfacePrecisionEnabled)return!1;const i=this._state,s=i.geometry,r=this._portions[e];if(!r)return void this.model.error("portion not found: "+e);const o=s.quantizedPositions,n=i.origin,a=r.offset,l=n[0]+a[0],A=n[1]+a[1],h=n[2]+a[2],c=Lo,u=r.matrix,p=this.model.sceneModelMatrix,g=i.positionsDecodeMatrix;for(let e=0,i=o.length;ev)&&(v=e,s.set(b),r&&d.triangleNormal(g,m,f,r),_=!0)}}return _&&r&&(d.transformVec3(a.normalMatrix,r,r),d.transformVec3(this.model.worldNormalMatrix,r,r),d.normalizeVec3(r)),_}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 Wo extends er{_draw(e){const{gl:t}=this._scene.canvas,{state:i,frameCtx:s,incrementDrawState:r}=e;t.drawElements(t.LINES,i.indicesBuf.numItems,i.indicesBuf.itemType,0),r&&s.drawElements++}}class Ko extends Wo{drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Lines batching color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),this._addMatricesUniformBlockLines(i),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Lines batching color 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("}"),s}}class Xo extends Wo{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Lines batching silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec4 color;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Lines batching silhouette 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outColor = color;"),s.push("}"),s}}const Yo=d.vec3(),qo=d.vec3(),Zo=d.vec3(),Jo=d.vec3(),$o=d.mat4();class en extends er{drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=Yo;let m,f;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=qo;if(l){const e=Zo;d.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,$o),f=Jo,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),a.indicesBuf.bind(),n.drawElements(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0),a.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,i=[];return i.push("#version 300 es"),i.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// VBO SnapBatchingDepthBufInitRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(`outNormal = ivec4(worldNormal * float(${d.MAX_INT}), 1.0);`),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const tn=d.vec3(),sn=d.vec3(),rn=d.vec3(),on=d.vec3(),nn=d.mat4();class an extends er{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=tn;let m,f;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=sn;if(l){const e=rn;d.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,nn),f=on,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),"edge"===e.snapMode?(a.indicesBuf.bind(),n.drawElements(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0),a.indicesBuf.unbind()):n.drawArrays(n.POINTS,0,a.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 i=[];return i.push("#version 300 es"),i.push("// SnapBatchingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapBatchingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class ln{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._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ko(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Xo(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new en(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new an(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const An={};class hn{constructor(e=5e6){e>5e6&&(e=5e6),this.maxVerts=e,this.maxIndices=3*e,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]}}class cn{constructor(e){console.info("Creating VBOBatchingLinesLayer"),this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=An[t];return i||(i=new ln(e),An[t]=i,i._compile(),e.on("compile",(()=>{i._compile()})),e.on("destroyed",(()=>{delete An[t],i._destroy()}))),i}(e.model.scene),this.model=e.model,this._buffer=new hn(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new qe({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:d.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=d.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=d.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=d.vec3(e.origin))}get aabb(){if(this.aabbDirty){d.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const s=new Uint16Array(i.positions);e.positionsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.positions.length,3,t.STATIC_DRAW)}else{const s=Nr(new Float32Array(i.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.positions.length,3,t.STATIC_DRAW)}if(i.colors.length>0){const s=new Uint8Array(i.colors);let r=!1;e.colorsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.colors.length,4,t.DYNAMIC_DRAW,r)}if(i.colors.length>0){const s=i.colors.length/4,r=new Float32Array(s);let o=!1;e.flagsBuf=new Ie(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(this.model.scene.entityOffsetsEnabled&&i.offsets.length>0){const s=new Float32Array(i.offsets);e.offsetsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.offsets.length,3,t.DYNAMIC_DRAW)}if(i.indices.length>0){const s=new Uint32Array(i.indices);e.indicesBuf=new Ie(t,t.ELEMENT_ARRAY_BUFFER,s,i.indices.length,1,t.STATIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,i){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&X&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,i,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&ee?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Y?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&X?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";const i=2*e,s=4*this._portions[i],r=4*this._portions[i+1],o=this._scratchMemory.getUInt8Array(r),n=t[0],a=t[1],l=t[2],A=t[3];for(let e=0;e0,i=[];return i.push("#version 300 es"),i.push("// Lines instancing color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),i.push("uniform vec4 lightAmbient;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Lines instancing color 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return this._withSAO?(o.push(" float viewportWidth = uSAOParams[0];"),o.push(" float viewportHeight = uSAOParams[1];"),o.push(" float blendCutoff = uSAOParams[2];"),o.push(" float blendFactor = uSAOParams[3];"),o.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),o.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),o.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):o.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("}"),o}}class pn extends un{drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Lines instancing silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),i.push("uniform vec4 color;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Lines instancing silhouette 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outColor = color;"),s.push("}"),s}}const gn=d.vec3(),mn=d.vec3(),fn=d.vec3();d.vec3();const _n=d.mat4();class vn extends er{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.canvas.gl,n=r.camera,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||n.viewMatrix;this._vaoCache.has(t)?o.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=gn;let m;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=mn;if(l){const e=d.transformPoint3(h,l,fn);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,_n),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,e.snapVectorA),o.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),o.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,g),o.uniform1i(this._uRenderPass,i),o.uniform1i(this._uPickInvisible,e.pickInvisible);let f=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,f+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,f+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,f+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),o.vertexAttribDivisor(this._aModelMatrixCol0.location,1),o.vertexAttribDivisor(this._aModelMatrixCol1.location,1),o.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags&&(this._aFlags.bindArrayBuffer(a.flagsBuf),o.vertexAttribDivisor(this._aFlags.location,1)),a.indicesBuf.bind(),o.drawElementsInstanced(o.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0,a.numInstances),a.indicesBuf.unbind(),o.vertexAttribDivisor(this._aModelMatrixCol0.location,0),o.vertexAttribDivisor(this._aModelMatrixCol1.location,0),o.vertexAttribDivisor(this._aModelMatrixCol2.location,0),this._aFlags&&o.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&o.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick depth 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const bn=d.vec3(),xn=d.vec3(),wn=d.vec3();d.vec3();const yn=d.mat4();class Pn extends er{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=bn;let m;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=xn;if(l){const e=d.transformPoint3(h,l,wn);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,yn),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let f=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,f+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,f+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,f+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),"edge"===e.snapMode?(a.indicesBuf.bind(),n.drawElementsInstanced(n.LINES,a.indicesBuf.numItems,a.indicesBuf.itemType,0,a.numInstances),a.indicesBuf.unbind()):n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Bn{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._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._snapInitRenderer||(this._snapInitRenderer=new vn(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new Pn(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new dn(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new pn(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new vn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Pn(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Cn={};const Mn=new Uint8Array(4),En=new Float32Array(1),Fn=new Float32Array(3),In=new Float32Array(4);class Dn{constructor(e){console.info("VBOInstancingLinesLayer"),this.model=e.model,this.material=e.material,this.sortId="LinesInstancingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=Cn[t];return i||(i=new Bn(e),Cn[t]=i,i._compile(),e.on("compile",(()=>{i._compile()})),e.on("destroyed",(()=>{delete Cn[t],i._destroy()}))),i}(e.model.scene),this._aabb=d.collapseAABB3(),this._state=new qe({obb:d.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=d.collapseAABB3(),this.aabbDirty=!0,e.origin&&(this._state.origin=d.vec3(e.origin)),this._finalized=!1}get aabb(){if(this.aabbDirty){d.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let t=!1;this._state.colorsBuf=new Ie(e,e.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,e.DYNAMIC_DRAW,t),this._colors=[]}if(r>0){let t=!1;this._state.flagsBuf=new Ie(e,e.ARRAY_BUFFER,new Float32Array(r),r,1,e.DYNAMIC_DRAW,t)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;this._state.offsetsBuf=new Ie(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(i.colorsCompressed&&i.colorsCompressed.length>0){const s=new Uint8Array(i.colorsCompressed),r=!1;t.colorsBuf=new Ie(e,e.ARRAY_BUFFER,s,s.length,4,e.STATIC_DRAW,r)}if(i.positionsCompressed&&i.positionsCompressed.length>0){const s=!1;t.positionsBuf=new Ie(e,e.ARRAY_BUFFER,i.positionsCompressed,i.positionsCompressed.length,3,e.STATIC_DRAW,s),t.positionsDecodeMatrix=d.mat4(i.positionsDecodeMatrix)}if(i.indices&&i.indices.length>0&&(t.indicesBuf=new Ie(e,e.ELEMENT_ARRAY_BUFFER,new Uint32Array(i.indices),i.indices.length,1,e.STATIC_DRAW),t.numIndices=i.indices.length),this._modelMatrixCol0.length>0){const t=!1;this._state.modelMatrixCol0Buf=new Ie(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol1Buf=new Ie(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),this._state.modelMatrixCol2Buf=new Ie(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,i){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&X&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,i)}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&ee?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Y?(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,i){if(!this._finalized)throw"Not finalized";t&X?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";Mn[0]=t[0],Mn[1]=t[1],Mn[2]=t[2],Mn[3]=t[3],this._state.colorsBuf.setData(Mn,4*e,4)}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i){if(!this._finalized)throw"Not finalized";const s=!!(t&W),r=!!(t&Z),o=!!(t&J),n=!!(t&$),a=!!(t&ee),l=!!(t&X),A=!!(t&K);let h,c;h=!s||A||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?Ks.NOT_RENDERED:i?Ks.COLOR_TRANSPARENT:Ks.COLOR_OPAQUE,c=!s||A?Ks.NOT_RENDERED:n?Ks.SILHOUETTE_SELECTED:o?Ks.SILHOUETTE_HIGHLIGHTED:r?Ks.SILHOUETTE_XRAYED:Ks.NOT_RENDERED;let u=0;u=!s||A?Ks.NOT_RENDERED:n?Ks.EDGES_SELECTED:o?Ks.EDGES_HIGHLIGHTED:r?Ks.EDGES_XRAYED:a?i?Ks.EDGES_COLOR_TRANSPARENT:Ks.EDGES_COLOR_OPAQUE:Ks.NOT_RENDERED;let d=0;d|=h,d|=c<<4,d|=u<<8,d|=(s&&!A&&l?Ks.PICK:Ks.NOT_RENDERED)<<12,d|=(t&Y?255:0)<<16,En[0]=d,this._state.flagsBuf.setData(En,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Fn[0]=t[0],Fn[1]=t[1],Fn[2]=t[2],this._state.offsetsBuf.setData(Fn,3*e,3)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const i=4*e;In[0]=t[0],In[1]=t[4],In[2]=t[8],In[3]=t[12],this._state.modelMatrixCol0Buf.setData(In,i),In[0]=t[1],In[1]=t[5],In[2]=t[9],In[3]=t[13],this._state.modelMatrixCol1Buf.setData(In,i),In[0]=t[2],In[1]=t[6],In[2]=t[10],In[3]=t[14],this._state.modelMatrixCol2Buf.setData(In,i)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ks.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ks.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ks.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ks.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ks.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesXRayed(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,Ks.PICK)}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,Ks.PICK)}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 Sn extends er{_draw(e){const{gl:t}=this._scene.canvas,{state:i,frameCtx:s,incrementDrawState:r}=e;t.drawArrays(t.POINTS,0,i.positionsBuf.numItems),r&&s.drawArrays++}}class Tn extends Sn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){super.drawLayer(e,t,i,{incrementDrawState:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial,s=[];return s.push("#version 300 es"),s.push("// Points 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),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),i.filterIntensity&&s.push("uniform vec2 intensityRange;"),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 {"),i.filterIntensity&&(s.push("float intensity = float(color.a) / 255.0;"),s.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),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, 1.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;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),i.filterIntensity&&s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points batching color 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("}"),s}}class Rn extends Sn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points 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;"),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Points batching silhouette vertex 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i 1.0) {"),o.push(" discard;"),o.push(" }")),r){for(o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("outColor = color;"),o.push("}"),o}}class Ln extends Sn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points batching pick mesh 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),this._addRemapClipPosLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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("gl_Position = remapClipPos(clipPos);"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("gl_PointSize += 10.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points batching pick mesh vertex 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(var r=0;r 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vPickColor; "),s.push("}"),s}}class Un extends Sn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points batched 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),this._addRemapClipPosLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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("gl_Position = remapClipPos(clipPos);"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("gl_PointSize += 10.0;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points batched 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform float pickZNear;"),s.push("uniform float pickZFar;"),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(var r=0;r 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),s.push(" outColor = packDepth(zNormalizedDepth); "),s.push("}"),s}}class kn extends Sn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points batching occlusion 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 float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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(" gl_Position = clipPos;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push(" }"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points 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"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push(" }")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),s.push("}"),s}}const On=d.vec3(),Nn=d.vec3(),Qn=d.vec3(),Vn=d.vec3(),jn=d.mat4();class Hn extends er{drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=On;let m,f;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=Nn;if(l){const e=Qn;d.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,jn),f=Vn,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),n.drawArrays(n.POINTS,0,a.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,i=[];return i.push("#version 300 es"),i.push("// VBOBatchingPointsSnapInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// VBOBatchingPointsSnapInitRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const zn=d.vec3(),Gn=d.vec3(),Wn=d.vec3(),Kn=d.vec3(),Xn=d.mat4();class Yn extends er{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=zn;let m,f;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=Gn;if(l){const e=Wn;d.transformPoint3(h,l,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]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,Xn),f=Kn,f[0]=o.eye[0]-t[0],f[1]=o.eye[1]-t[1],f[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,f=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,f),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let _=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,_+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,_+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,_+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),n.drawArrays(n.POINTS,0,a.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 i=[];return i.push("#version 300 es"),i.push("// VBOBatchingPointsSnapRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// VBOBatchingPointsSnapRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class qn{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),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Tn(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Rn(this._scene)),this._silhouetteRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Ln(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Un(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new kn(this._scene)),this._occlusionRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Hn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Yn(this._scene)),this._snapRenderer}_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(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Zn={};class Jn{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 $n{constructor(e){console.info("Creating VBOBatchingPointsLayer"),this.model=e.model,this.sortId="PointsBatchingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=Zn[t];return i||(i=new qn(e),Zn[t]=i,i._compile(),e.on("compile",(()=>{i._compile()})),e.on("destroyed",(()=>{delete Zn[t],i._destroy()}))),i}(e.model.scene),this._buffer=new Jn(e.maxGeometryBatchSize),this._scratchMemory=e.scratchMemory,this._state=new qe({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,positionsDecodeMatrix:d.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=d.collapseAABB3(),this._portions=[],this._meshes=[],this._aabb=d.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=d.vec3(e.origin))}get aabb(){if(this.aabbDirty){d.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0)if(this._preCompressedPositionsExpected){const s=new Uint16Array(i.positions);e.positionsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.positions.length,3,t.STATIC_DRAW)}else{const s=Nr(new Float32Array(i.positions),this._modelAABB,e.positionsDecodeMatrix);e.positionsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.positions.length,3,t.STATIC_DRAW)}if(i.colors.length>0){const s=new Uint8Array(i.colors);let r=!1;e.colorsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.colors.length,4,t.STATIC_DRAW,r)}if(i.positions.length>0){const s=i.positions.length/3,r=new Float32Array(s);let o=!1;e.flagsBuf=new Ie(t,t.ARRAY_BUFFER,r,r.length,1,t.DYNAMIC_DRAW,o)}if(i.pickColors.length>0){const s=new Uint8Array(i.pickColors);let r=!1;e.pickColorsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.pickColors.length,4,t.STATIC_DRAW,r)}if(this.model.scene.entityOffsetsEnabled&&i.offsets.length>0){const s=new Float32Array(i.offsets);e.offsetsBuf=new Ie(t,t.ARRAY_BUFFER,s,i.offsets.length,3,t.DYNAMIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(e,t,i){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&X&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,i)}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized"}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Y?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(e,t)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&X?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";const i=2*e,s=4*this._portions[i],r=4*this._portions[i+1],o=this._scratchMemory.getUInt8Array(r),n=t[0],a=t[1],l=t[2];for(let e=0;e0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points 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),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),i.filterIntensity&&s.push("uniform vec2 intensityRange;"),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 {"),i.filterIntensity&&(s.push("float intensity = float(color.a) / 255.0;"),s.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),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, 1.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;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),i.filterIntensity&&s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing color 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vColor;"),e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("}"),s}}class ia extends ea{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(e,t,i){super.drawLayer(e,t,i,{colorUniform:!0})}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points 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 float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;")),s.push("uniform vec4 silhouetteColor;"),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("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),s.push("gl_Position = clipPos;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing silhouette 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outColor = vColor;"),s.push("}"),s}}class sa extends ea{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points instancing pick mesh 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),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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;"),s.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing pick mesh 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("outColor = vPickColor; "),s.push("}"),s}}class ra extends ea{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points instancing 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("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),s.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(s),this._addRemapClipPosLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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;"),s.push("gl_Position = remapClipPos(clipPos);"),e.logarithmicDepthBufferEnabled&&s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("gl_Position = remapClipPos(clipPos);"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.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"),e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),s.push("uniform float pickZNear;"),s.push("uniform float pickZFar;"),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),s.push(" outColor = packDepth(zNormalizedDepth); "),s.push("}"),s}}class oa extends ea{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points instancing 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;"),s.push("in vec4 modelMatrixCol0;"),s.push("in vec4 modelMatrixCol1;"),s.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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("gl_Position = clipPos;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Points instancing occlusion vertex 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0;e 1.0) {"),s.push(" discard;"),s.push(" }")),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),s.push("}")}return s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push("}"),s}}class na extends ea{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=e.pointsMaterial._state,s=[];return s.push("#version 300 es"),s.push("// Points instancing 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;"),this._addMatricesUniformBlockLines(s),s.push("uniform float pointSize;"),i.perspectivePoints&&s.push("uniform float nearPlaneHeight;"),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 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("gl_Position = clipPos;"),i.perspectivePoints?(s.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),s.push("gl_PointSize = max(gl_PointSize, "+Math.floor(i.minPerspectivePointSize)+".0);"),s.push("gl_PointSize = min(gl_PointSize, "+Math.floor(i.maxPerspectivePointSize)+".0);")):s.push("gl_PointSize = pointSize;"),s.push("}"),s.push("}"),s}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState;let i,s;const r=t.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Points instancing depth vertex 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"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),r)for(o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;"),i=0,s=t.getNumAllocatedSectionPlanes();i 1.0) {"),o.push(" discard;"),o.push(" }")),r){for(o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;"),i=0,s=t.getNumAllocatedSectionPlanes();i 0.0) { discard; }"),o.push("}")}return o.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push("}"),o}}class aa extends ea{_buildVertexShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];return i.push("#version 300 es"),i.push("// Instancing geometry shadow drawing vertex shader"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform mat4 shadowViewMatrix;"),i.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("bool visible = (colorFlag > 0);"),i.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),i.push("if (!visible || transparent) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push(" gl_Position = shadowProjMatrix * viewPosition;"),i.push("}"),i.push("gl_PointSize = pointSize;"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Instancing geometry depth 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("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 1.0) {"),s.push(" discard;"),s.push(" }"),i){s.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0.0) { discard; }"),s.push("}")}return e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),s.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),s.push("}"),s}}const la=d.vec3(),Aa=d.vec3(),ha=d.vec3();d.vec3();const ca=d.mat4();class ua extends er{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.canvas.gl,n=r.camera,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||n.viewMatrix;this._vaoCache.has(t)?o.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=la;let m;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=Aa;if(l){const e=d.transformPoint3(h,l,ha);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,ca),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,e.snapVectorA),o.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),o.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,g),o.uniform1i(this._uRenderPass,i),o.uniform1i(this._uPickInvisible,e.pickInvisible);let f=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,f+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,f+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,f+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),o.vertexAttribDivisor(this._aModelMatrixCol0.location,1),o.vertexAttribDivisor(this._aModelMatrixCol1.location,1),o.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags&&(this._aFlags.bindArrayBuffer(a.flagsBuf),o.vertexAttribDivisor(this._aFlags.location,1)),o.drawArraysInstanced(o.POINTS,0,a.positionsBuf.numItems,a.numInstances),o.vertexAttribDivisor(this._aModelMatrixCol0.location,0),o.vertexAttribDivisor(this._aModelMatrixCol1.location,0),o.vertexAttribDivisor(this._aModelMatrixCol2.location,0),this._aFlags&&o.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&o.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthBufInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec4 pickColor;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("out float vFlags;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vWorldPosition = worldPosition;"),t&&i.push(" vFlags = flags;"),i.push("vPickColor = pickColor;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick depth 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),i.push("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const da=d.vec3(),pa=d.vec3(),ga=d.vec3();d.vec3();const ma=d.mat4();class fa extends er{constructor(e){super(e,!1,{instancing:!0})}drawLayer(e,t,i){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=t.aabb,p=e.pickViewMatrix||o.viewMatrix;this._vaoCache.has(t)?n.bindVertexArray(this._vaoCache.get(t)):this._vaoCache.set(t,this._makeVAO(a));const g=da;let m;if(g[0]=d.safeInv(u[3]-u[0])*d.MAX_INT,g[1]=d.safeInv(u[4]-u[1])*d.MAX_INT,g[2]=d.safeInv(u[5]-u[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(g[0]),e.snapPickCoordinateScale[1]=d.safeInv(g[1]),e.snapPickCoordinateScale[2]=d.safeInv(g[2]),l||0!==A[0]||0!==A[1]||0!==A[2]){const t=pa;if(l){const e=d.transformPoint3(h,l,ga);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=A[0],t[1]+=A[1],t[2]+=A[2],m=j(p,t,ma),e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else m=p,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,g),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible);let f=0;this._matricesUniformBlockBufferData.set(c,0),this._matricesUniformBlockBufferData.set(m,f+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,f+=16),this._matricesUniformBlockBufferData.set(a.positionsDecodeMatrix,f+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}this.setSectionPlanesStateUniforms(t),this._aModelMatrixCol0.bindArrayBuffer(a.modelMatrixCol0Buf),this._aModelMatrixCol1.bindArrayBuffer(a.modelMatrixCol1Buf),this._aModelMatrixCol2.bindArrayBuffer(a.modelMatrixCol2Buf),n.vertexAttribDivisor(this._aModelMatrixCol0.location,1),n.vertexAttribDivisor(this._aModelMatrixCol1.location,1),n.vertexAttribDivisor(this._aModelMatrixCol2.location,1),this._aFlags.bindArrayBuffer(a.flagsBuf),n.vertexAttribDivisor(this._aFlags.location,1),n.drawArraysInstanced(n.POINTS,0,a.positionsBuf.numItems,a.numInstances),n.vertexAttribDivisor(this._aModelMatrixCol0.location,0),n.vertexAttribDivisor(this._aModelMatrixCol1.location,0),n.vertexAttribDivisor(this._aModelMatrixCol2.location,0),n.vertexAttribDivisor(this._aFlags.location,0),this._aOffset&&n.vertexAttribDivisor(this._aOffset.location,0)}_allocate(){super._allocate();const e=this._program;this._uLogDepthBufFC=e.getLocation("logDepthBufFC"),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,i=[];return i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec2 snapVectorA;"),i.push("uniform vec2 snapInvVectorAB;"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),i.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// SnapInstancingDepthRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int layerNumber;"),i.push("uniform vec3 coordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let t=0;t> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push("}")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class _a{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),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new ta(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new ia(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new na(this._scene)),this._depthRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new sa(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new ra(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new oa(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new aa(this._scene)),this._shadowRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new ua(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new fa(this._scene)),this._snapRenderer}_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(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const va={};const ba=new Uint8Array(4),xa=new Float32Array(1),wa=new Float32Array(3),ya=new Float32Array(4);class Pa{constructor(e){console.info("VBOInstancingPointsLayer"),this.model=e.model,this.material=e.material,this.sortId="PointsInstancingLayer",this.layerIndex=e.layerIndex,this._renderers=function(e){const t=e.id;let i=va[t];return i||(i=new _a(e),va[t]=i,i._compile(),e.on("compile",(()=>{i._compile()})),e.on("destroyed",(()=>{delete va[t],i._destroy()}))),i}(e.model.scene),this._aabb=d.collapseAABB3(),this._state=new qe({obb:d.OBB3(),numInstances:0,origin:e.origin?d.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=d.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1}get aabb(){if(this.aabbDirty){d.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e0){let s=!1;i.flagsBuf=new Ie(e,e.ARRAY_BUFFER,new Float32Array(t),t,1,e.DYNAMIC_DRAW,s)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const t=!1;i.offsetsBuf=new Ie(e,e.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,e.DYNAMIC_DRAW,t),this._offsets=[]}if(s.positionsCompressed&&s.positionsCompressed.length>0){const t=!1;i.positionsBuf=new Ie(e,e.ARRAY_BUFFER,s.positionsCompressed,s.positionsCompressed.length,3,e.STATIC_DRAW,t),i.positionsDecodeMatrix=d.mat4(s.positionsDecodeMatrix)}if(s.colorsCompressed&&s.colorsCompressed.length>0){const t=new Uint8Array(s.colorsCompressed),r=!1;i.colorsBuf=new Ie(e,e.ARRAY_BUFFER,t,t.length,4,e.STATIC_DRAW,r)}if(this._modelMatrixCol0.length>0){const t=!1;i.modelMatrixCol0Buf=new Ie(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,e.STATIC_DRAW,t),i.modelMatrixCol1Buf=new Ie(e,e.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,e.STATIC_DRAW,t),i.modelMatrixCol2Buf=new Ie(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;i.pickColorsBuf=new Ie(e,e.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,e.STATIC_DRAW,t),this._pickColors=[]}i.geometry=null,this._finalized=!0}initFlags(e,t,i){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&X&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(e,t,i)}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&ee?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Y?(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,i){if(!this._finalized)throw"Not finalized";t&X?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setCulled(e,t,i){if(!this._finalized)throw"Not finalized";t&K?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){if(!this._finalized)throw"Not finalized";ba[0]=t[0],ba[1]=t[1],ba[2]=t[2],this._state.colorsBuf.setData(ba,3*e)}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i){if(!this._finalized)throw"Not finalized";const s=!!(t&W),r=!!(t&Z),o=!!(t&J),n=!!(t&$),a=!!(t&ee),l=!!(t&X),A=!!(t&K);let h,c;h=!s||A||r||o&&!this.model.scene.highlightMaterial.glowThrough||n&&!this.model.scene.selectedMaterial.glowThrough?Ks.NOT_RENDERED:i?Ks.COLOR_TRANSPARENT:Ks.COLOR_OPAQUE,c=!s||A?Ks.NOT_RENDERED:n?Ks.SILHOUETTE_SELECTED:o?Ks.SILHOUETTE_HIGHLIGHTED:r?Ks.SILHOUETTE_XRAYED:Ks.NOT_RENDERED;let u=0;u=!s||A?Ks.NOT_RENDERED:n?Ks.EDGES_SELECTED:o?Ks.EDGES_HIGHLIGHTED:r?Ks.EDGES_XRAYED:a?i?Ks.EDGES_COLOR_TRANSPARENT:Ks.EDGES_COLOR_OPAQUE:Ks.NOT_RENDERED;let d=0;d|=h,d|=c<<4,d|=u<<8,d|=(s&&!A&&l?Ks.PICK:Ks.NOT_RENDERED)<<12,d|=(t&Y?255:0)<<16,xa[0]=d,this._state.flagsBuf.setData(xa,e)}setOffset(e,t){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(wa[0]=t[0],wa[1]=t[1],wa[2]=t[2],this._state.offsetsBuf.setData(wa,3*e)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(e,t){if(!this._finalized)throw"Not finalized";const i=4*e;ya[0]=t[0],ya[1]=t[4],ya[2]=t[8],ya[3]=t[12],this._state.modelMatrixCol0Buf.setData(ya,i),ya[0]=t[1],ya[1]=t[5],ya[2]=t[9],ya[3]=t[13],this._state.modelMatrixCol1Buf.setData(ya,i),ya[0]=t[2],ya[1]=t[6],ya[2]=t[10],ya[3]=t[14],this._state.modelMatrixCol2Buf.setData(ya,i)}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ks.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ks.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ks.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ks.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ks.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._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(t,this,Ks.COLOR_OPAQUE)}drawShadow(e,t){}drawPickMesh(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(t,this,Ks.PICK)}drawPickDepths(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(t,this,Ks.PICK)}drawPickNormals(e,t){}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,Ks.PICK)}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,Ks.PICK)}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()}}const Ba=d.vec3(),Ca=d.vec3(),Ma=d.mat4();class Ea{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=o,p=r.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uPerObjectDecodeMatrix,this._uPerVertexPosition,this.uPerObjectColorAndFlags,this._uPerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=Ba;if(m){const t=d.transformPoint3(c,A,Ca);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],g=j(p,e,Ma)}else g=p;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform1i(this._uRenderPass,i),s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const _=s._sectionPlanesState.getNumAllocatedSectionPlanes(),v=s._sectionPlanesState.sectionPlanes.length;if(_>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,r=o.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,8),n.drawArrays(n.LINES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,16),n.drawArrays(n.LINES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,32),n.drawArrays(n.LINES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl;if(this._program=new Fe(t,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// LinesDataTextureColorRenderer"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled,i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uPerObjectDecodeMatrix;"),i.push("uniform highp sampler2D uPerObjectMatrix;"),i.push("uniform lowp usampler2D uPerObjectColorAndFlags;"),i.push("uniform mediump usampler2D uPerVertexPosition;"),i.push("uniform highp usampler2D uPerLineIndices;"),i.push("uniform mediump usampler2D uPerLineObject;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push(" int lineIndex = gl_VertexID / 2;"),i.push(" int h_packed_object_id_index = (lineIndex >> 3) & 4095;"),i.push(" int v_packed_object_id_index = (lineIndex >> 3) >> 12;"),i.push(" int objectIndex = int(texelFetch(uPerLineObject, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push(" ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push(" uvec4 flags = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push(" if (int(flags.x) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push(" } else {"),i.push(" ivec4 packedVertexBase = ivec4(texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push(" ivec4 packedLineIndexBaseOffset = ivec4(texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),i.push(" int lineIndexBaseOffset = (packedLineIndexBaseOffset.r << 24) + (packedLineIndexBaseOffset.g << 16) + (packedLineIndexBaseOffset.b << 8) + packedLineIndexBaseOffset.a;"),i.push(" int h_index = (lineIndex - lineIndexBaseOffset) & 4095;"),i.push(" int v_index = (lineIndex - lineIndexBaseOffset) >> 12;"),i.push(" ivec3 vertexIndices = ivec3(texelFetch(uPerLineIndices, ivec2(h_index, v_index), 0));"),i.push(" ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push(" int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),i.push(" int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),i.push(" mat4 objectInstanceMatrix = mat4 (texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),i.push(" mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),i.push(" uvec4 flags = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push(" vec3 position = vec3(texelFetch(uPerVertexPosition, ivec2(indexPositionH, indexPositionV), 0));"),i.push(" uvec4 color = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push(" if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push(" };"),i.push(" vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push(" vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push(" vFragDepth = 1.0 + clipPos.w;"),i.push(" isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push(" gl_Position = clipPos;"),i.push(" vec4 rgb = vec4(color.rgba);"),i.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);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// LinesDataTextureColorRenderer 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;")),i){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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 = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Fa{constructor(e){this._scene=e}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null)}eagerCreateRenders(){}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ea(this._scene,!1)),this._colorRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy()}}const Ia={};class Da{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perLineNumberPortionId8Bits=[],this.perLineNumberPortionId16Bits=[],this.perLineNumberPortionId32Bits=[]}}class Sa{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerLineIdPortionIds8Bits=null,this.texturePerLineIdPortionIds16Bits=null,this.texturePerLineIdPortionIds32Bits=null,this.texturePerLineIdIndices8Bits=null,this.texturePerLineIdIndices16Bits=null,this.texturePerLineIdIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerLineIdIndices8Bits,16:this.texturePerLineIdIndices16Bits,32:this.texturePerLineIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerLineIdPortionIds8Bits,16:this.texturePerLineIdPortionIds16Bits,32:this.texturePerLineIdPortionIds32Bits}}bindCommonTextures(e,t,i,s,r){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,i,2),this.texturePerObjectColorsAndFlags.bindTexture(e,s,3),this.texturePerObjectInstanceMatrices.bindTexture(e,r,4)}bindLineIndicesTextures(e,t,i,s){this.indicesPortionIdsPerBitnessTextures[s].bindTexture(e,t,5),this.indicesPerBitnessTextures[s].bindTexture(e,i,6)}}class Ta{constructor(e,t,i,s,r=null){this._gl=e,this._texture=t,this._textureWidth=i,this._textureHeight=s,this._textureData=r}bindTexture(e,t,i){return e.bindTexture(t,this,i)}bind(e){return this._gl.activeTexture(this._gl["TEXTURE"+e]),this._gl.bindTexture(this._gl.TEXTURE_2D,this._texture),!0}unbind(e){}}const Ra={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalLines:0,totalLines8Bits:0,totalLines16Bits:0,totalLines32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(Ra,null,4));let e=0;Object.keys(Ra).forEach((t=>{t.startsWith("size")&&(e+=Ra[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/Ra.totalLines).toFixed(2)}`);let t={};Object.keys(Ra).forEach((i=>{i.startsWith("size")&&(t[i]=`${(Ra[i]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class La{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,i,s,r){const o=t.length;this.numPortions=o;const n=4096,a=Math.ceil(o/512);if(0===a)throw"texture height===0";const l=new Uint8Array(16384*a);Ra.sizeDataColorsAndFlags+=l.byteLength,Ra.numberOfTextures++;for(let e=0;e>24&255,s[e]>>16&255,s[e]>>8&255,255&s[e]],32*e+16),l.set([r[e]>>24&255,r[e]>>16&255,r[e]>>8&255,255&r[e]],32*e+20);const A=e.createTexture();return e.bindTexture(e.TEXTURE_2D,A),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,n,a),e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA_INTEGER,e.UNSIGNED_BYTE,l,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 Ta(e,A,n,a,l)}generateTextureForObjectOffsets(e,t){const i=512,s=Math.ceil(t/i);if(0===s)throw"texture height===0";const r=new Float32Array(1536*s).fill(0);Ra.sizeDataTextureOffsets+=r.byteLength,Ra.numberOfTextures++;const o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,i,s),e.texSubImage2D(e.TEXTURE_2D,0,0,0,i,s,e.RGB,e.FLOAT,r,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 Ta(e,o,i,s,r)}generateTextureForInstancingMatrices(e,t){const i=t.length;if(0===i)throw"num instance matrices===0";const s=2048,r=Math.ceil(i/512),o=new Float32Array(8192*r);Ra.numberOfTextures++;for(let e=0;e{i._compile(),i.eagerCreateRenders()})),e.on("destroyed",(()=>{delete Ia[t],i._destroy()}))),i}(e.scene),this.model=e,this._buffer=new Da,this._dataTextureState=new Sa,this._dataTextureGenerator=new La,this._state=new qe({origin:d.vec3(t.origin),textureState:this._dataTextureState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits: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._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._subPortions=[],this._portionToSubPortionsMap=[],this._bucketGeometries={},this._meshes=[],this._aabb=d.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){d.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&Ra.cannotCreatePortion.because10BitsObjectId++;let i=this._numPortions+t<=65536;const s=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[s]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let s=0,r=0;e.buckets.forEach((e=>{s+=e.positionsCompressed.length/3,r+=e.indices.length/2})),(this._state.numVertices+s>4096*ka||t+r>4096*ka)&&Ra.cannotCreatePortion.becauseTextureSize++,i&&=this._state.numVertices+s<=4096*ka&&t+r<=4096*ka}return i}createPortion(e,t){if(this._finalized)throw"Already finalized";const i=[];t.buckets.forEach(((e,s)=>{const r=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${s}`:`${t.id}#${s}`;let o=this._bucketGeometries[r];o||(o=this._createBucketGeometry(t,e),this._bucketGeometries[r]=o);const n=this._createSubPortion(t,o,e);i.push(n)}));const s=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(i),this.model.numPortions++,this._meshes.push(e),s}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/2/8)*2;Ra.overheadSizeAlignementIndices+=2*(e-t.indices.length);const i=new Uint32Array(e);i.fill(0),i.set(t.indices),t.indices=i}const i=t.positionsCompressed,s=t.indices,r=this._buffer;r.positionsCompressed.push(i);const o=r.lenPositionsCompressed/3,n=i.length/3;let a;r.lenPositionsCompressed+=i.length;let l=0;if(s){let e;l=s.length/2,n<=256?(e=r.indices8Bits,a=r.lenIndices8Bits/2,r.lenIndices8Bits+=s.length):n<=65536?(e=r.indices16Bits,a=r.lenIndices16Bits/2,r.lenIndices16Bits+=s.length):(e=r.indices32Bits,a=r.lenIndices32Bits/2,r.lenIndices32Bits+=s.length),e.push(s)}this._state.numVertices+=n,Ra.numberOfGeometries++;return{vertexBase:o,numVertices:n,numLines:l,indicesBase:a}}_createSubPortion(e,t){const i=e.color,s=e.colors,r=e.opacity,o=e.meshMatrix,n=e.pickColor,a=this._buffer,l=this._state;a.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),a.perObjectInstancePositioningMatrices.push(o||ja),a.perObjectSolid.push(!!e.solid),s?a.perObjectColors.push([255*s[0],255*s[1],255*s[2],255]):i&&a.perObjectColors.push([i[0],i[1],i[2],r]),a.perObjectPickColors.push(n),a.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?l.numIndices8Bits:t.numVertices<=65536?l.numIndices16Bits:l.numIndices32Bits,a.perObjectIndexBaseOffsets.push(e/2-t.indicesBase)}const A=this._subPortions.length;if(t.numLines>0){let e,i=2*t.numLines;t.numVertices<=256?(e=a.perLineNumberPortionId8Bits,l.numIndices8Bits+=i,Ra.totalLines8Bits+=t.numLines):t.numVertices<=65536?(e=a.perLineNumberPortionId16Bits,l.numIndices16Bits+=i,Ra.totalLines16Bits+=t.numLines):(e=a.perLineNumberPortionId32Bits,l.numIndices32Bits+=i,Ra.totalLines32Bits+=t.numLines),Ra.totalLines+=t.numLines;for(let i=0;i0&&(t.texturePerLineIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(i,s.indices8Bits,s.lenIndices8Bits)),s.lenIndices16Bits>0&&(t.texturePerLineIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(i,s.indices16Bits,s.lenIndices16Bits)),s.lenIndices32Bits>0&&(t.texturePerLineIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(i,s.indices32Bits,s.lenIndices32Bits)),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}))}initFlags(e,t,i){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&X&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,i,true),this._setFlags2(e,t,true)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Y?(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,i){if(!this._finalized)throw"Not finalized";t&K?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&X?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),s.texSubImage2D(s.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,s.RGBA_INTEGER,s.UNSIGNED_BYTE,Na))}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i,s=!1){const r=this._portionToSubPortionsMap[e];for(let e=0,o=r.length;e=10&&this._beginDeferredFlags(),c.bindTexture(c.TEXTURE_2D,h.texturePerObjectColorsAndFlags._texture),c.texSubImage2D(c.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,c.RGBA_INTEGER,c.UNSIGNED_BYTE,Na))}_setDeferredFlags(){}_setFlags2(e,t,i=!1){const s=this._portionToSubPortionsMap[e];for(let e=0,r=s.length;e=10&&this._beginDeferredFlags(),o.bindTexture(o.TEXTURE_2D,r.texturePerObjectColorsAndFlags._texture),o.texSubImage2D(o.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,o.RGBA_INTEGER,o.UNSIGNED_BYTE,Na))}_setDeferredFlags2(){}setOffset(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectOffsets._texture),s.texSubImage2D(s.TEXTURE_2D,0,0,e,1,1,s.RGB,s.FLOAT,Qa))}setMatrix(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectInstanceMatrices._texture),s.texSubImage2D(s.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,s.RGBA,s.FLOAT,Oa))}drawColorOpaque(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ks.COLOR_OPAQUE)}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ks.COLOR_TRANSPARENT)}drawDepth(e,t){}drawNormals(e,t){}drawSilhouetteXRayed(e,t){}drawSilhouetteHighlighted(e,t){}drawSilhouetteSelected(e,t){}drawEdgesColorOpaque(e,t){}drawEdgesColorTransparent(e,t){}drawEdgesHighlighted(e,t){}drawEdgesSelected(e,t){}drawEdgesXRayed(e,t){}drawOcclusion(e,t){}drawShadow(e,t){}setPickMatrices(e,t){}drawPickMesh(e,t){}drawPickDepths(e,t){}drawSnapInit(e,t){}drawSnap(e,t){}drawPickNormals(e,t){}destroy(){if(this._destroyed)return;const e=this._state;this.model.scene.off(this._onSceneRendering),e.destroy(),this._destroyed=!0}}const za=d.vec3(),Ga=d.vec3(),Wa=d.vec3();d.vec3();const Ka=d.vec4(),Xa=d.mat4();class Ya{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=o;if(!this._program&&(this._allocate(),this.errors))return;let p,g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=za;if(m){const t=d.transformPoint3(c,A,Ga);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],p=j(r.viewMatrix,e,Xa),g=Wa,g[0]=r.eye[0]-e[0],g[1]=r.eye[1]-e[1],g[2]=r.eye[2]-e[2]}else p=r.viewMatrix,g=r.eye;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,g),n.uniform1i(this._uRenderPass,i),s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const _=s._sectionPlanesState.getNumAllocatedSectionPlanes(),v=s._sectionPlanesState.sectionPlanes.length;if(_>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,r=o.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.numIndices32Bits)),e.drawElements++}_allocate(){const e=this._scene,t=e.canvas.gl,i=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 s=this._program;this._uRenderPass=s.getLocation("renderPass"),this._uLightAmbient=s.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];const r=i.lights;let o;for(let e=0,t=r.length;e0;let r;const o=[];o.push("#version 300 es"),o.push("// TrianglesDataTextureColorRenderer vertex shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("precision highp usampler2D;"),o.push("precision highp isampler2D;"),o.push("precision highp sampler2D;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("precision mediump usampler2D;"),o.push("precision mediump isampler2D;"),o.push("precision mediump sampler2D;"),o.push("#endif"),o.push("uniform int renderPass;"),o.push("uniform mat4 sceneModelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),o.push("uniform highp sampler2D uTexturePerObjectMatrix;"),o.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),o.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),o.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),o.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),o.push("uniform vec3 uCameraEyeRtc;"),o.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("out float isPerspective;")),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("uniform vec4 lightAmbient;");for(let e=0,t=i.lights.length;e> 3) & 4095;"),o.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),o.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),o.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),o.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),o.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),o.push("if (int(flags.x) != renderPass) {"),o.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),o.push(" return;"),o.push("} else {"),o.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),o.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),o.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),o.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),o.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),o.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),o.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),o.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),o.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),o.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));"),o.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));"),o.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),o.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),o.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),o.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),o.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),o.push("if (color.a == 0u) {"),o.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),o.push(" return;"),o.push("};"),o.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),o.push("vec3 position;"),o.push("position = positions[gl_VertexID % 3];"),o.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),o.push("if (solid != 1u) {"),o.push("if (isPerspectiveMatrix(projMatrix)) {"),o.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),o.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),o.push("position = positions[2 - (gl_VertexID % 3)];"),o.push("viewNormal = -viewNormal;"),o.push("}"),o.push("} else {"),o.push("if (viewNormal.z < 0.0) {"),o.push("position = positions[2 - (gl_VertexID % 3)];"),o.push("viewNormal = -viewNormal;"),o.push("}"),o.push("}"),o.push("}"),o.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),o.push("vec4 viewPosition = viewMatrix * worldPosition; "),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;");for(let e=0,t=i.lights.length;e0,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"),e.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("}")),i){s.push("in vec4 vWorldPosition;"),s.push("flat in uint vFlags2;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 0u;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let e=0,i=t.getNumAllocatedSectionPlanes();e 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;"),this._withSAO?(s.push(" float viewportWidth = uSAOParams[0];"),s.push(" float viewportHeight = uSAOParams[1];"),s.push(" float blendCutoff = uSAOParams[2];"),s.push(" float blendFactor = uSAOParams[3];"),s.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),s.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),s.push(" outColor = vec4(vColor.rgb * ambient, 1.0);")):s.push(" outColor = vColor;"),s.push("}"),s}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const qa=new Float32Array([1,1,1]),Za=d.vec3(),Ja=d.vec3(),$a=d.vec3();d.vec3();const el=d.mat4();class tl{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=o,p=r.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let g,m;if(e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),A||0!==h[0]||0!==h[1]||0!==h[2]){const e=Za;if(A){const t=Ja;d.transformPoint3(c,A,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]+=h[0],e[1]+=h[1],e[2]+=h[2],g=j(p,e,el),m=$a,m[0]=r.eye[0]-e[0],m[1]=r.eye[1]-e[1],m[2]=r.eye[2]-e[2]}else g=p,m=r.eye;if(n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uWorldMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),i===Ks.SILHOUETTE_XRAYED){const e=s.xrayMaterial._state,t=e.fillColor,i=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else if(i===Ks.SILHOUETTE_HIGHLIGHTED){const e=s.highlightMaterial._state,t=e.fillColor,i=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else if(i===Ks.SILHOUETTE_SELECTED){const e=s.selectedMaterial._state,t=e.fillColor,i=e.fillAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else n.uniform4fv(this._uColor,qa);if(s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const f=s._sectionPlanesState.getNumAllocatedSectionPlanes(),_=s._sectionPlanesState.sectionPlanes.length;if(f>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*_,r=o.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uColor=i.getLocation("color"),this._uWorldMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Triangles dataTexture silhouette vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.y) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("} else {"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags2 = flags2.r;")),i.push("gl_Position = clipPos;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles dataTexture 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;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = color;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const il=new Float32Array([0,0,0,1]),sl=d.vec3(),rl=d.vec3();d.vec3();const ol=d.mat4();class nl{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=s,p=o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=sl;if(m){const t=d.transformPoint3(c,A,rl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],g=j(p,e,ol)}else g=p;if(n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),i===Ks.EDGES_XRAYED){const e=r.xrayMaterial._state,t=e.edgeColor,i=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else if(i===Ks.EDGES_HIGHLIGHTED){const e=r.highlightMaterial._state,t=e.edgeColor,i=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else if(i===Ks.EDGES_SELECTED){const e=r.selectedMaterial._state,t=e.edgeColor,i=e.edgeAlpha;n.uniform4f(this._uColor,t[0],t[1],t[2],i)}else n.uniform4fv(this._uColor,il);const _=r._sectionPlanesState.getNumAllocatedSectionPlanes(),v=r._sectionPlanesState.sectionPlanes.length;if(_>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,o=s.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(n.LINES,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(n.LINES,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(n.LINES,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uColor=i.getLocation("color"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uWorldMatrix=i.getLocation("worldMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// DTXTrianglesEdgesRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),i.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),i.push("uniform vec4 color;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeIndex = gl_VertexID / 2;"),i.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.z) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),i.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),i.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),i.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),i.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),i.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));"),i.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));"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),i.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));"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vColor = vec4(color.r, color.g, color.b, color.a);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// DTXTrianglesEdgesRenderer fragment shader"),e.logarithmicDepthBufferEnabled&&i.push("#extension GL_EXT_frag_depth : enable"),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;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const al=d.vec3(),ll=d.vec3(),Al=d.mat4();class hl{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=s,p=o.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=al;if(m){const t=d.transformPoint3(c,A,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]+=h[0],e[1]+=h[1],e[2]+=h[2],g=j(p,e,Al)}else g=p;n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);const _=r._sectionPlanesState.getNumAllocatedSectionPlanes(),v=r._sectionPlanesState.sectionPlanes.length;if(_>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,o=s.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(n.LINES,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(n.LINES,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(n.LINES,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// TrianglesDataTextureEdgesColorRenderer"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled,i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform highp sampler2D uObjectPerObjectOffsets;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),i.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),e.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;")),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int edgeIndex = gl_VertexID / 2;"),i.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.z) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),i.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),i.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),i.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),i.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),i.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));"),i.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));"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push("vec4 rgb = vec4(color.rgba);"),i.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);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesDataTextureEdgesColorRenderer"),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;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const cl=d.vec3(),ul=d.vec3(),dl=d.vec3(),pl=d.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,i){if(!this._program&&(this._allocate(t),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e));const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=s;let p,g;l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=cl;if(m){const t=d.transformPoint3(c,A,ul);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],p=j(o.viewMatrix,e,pl),g=dl,g[0]=o.eye[0]-e[0],g[1]=o.eye[1]-e[1],g[2]=o.eye[2]-e[2]}else p=o.viewMatrix,g=o.eye;if(n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),n.uniform3fv(this._uCameraEyeRtc,g),n.uniform1i(this._uRenderPass,i),r.logarithmicDepthBufferEnabled){const e=2/(Math.log(o.project.far+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}const _=r._sectionPlanesState.getNumAllocatedSectionPlanes(),v=r._sectionPlanesState.sectionPlanes.length;if(_>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,o=s.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uPickClipPos=i.getLocation("pickClipPos"),this._uDrawingBufferSize=i.getLocation("drawingBufferSize"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry picking vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform bool pickInvisible;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("uniform vec2 pickClipPos;"),i.push("uniform vec2 drawingBufferSize;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),t&&(i.push("smooth out vec4 vWorldPosition;"),i.push("flat out uvec4 vFlags2;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.w) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0)) / 255.0;"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("} else {"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry 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"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uvec4 vFlags2;");for(var s=0;s 0.0);"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(s=0;s 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outPickColor = vPickColor; "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ml=d.vec3(),fl=d.vec3(),_l=d.vec3();d.vec3();const vl=d.mat4();class bl{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=s,p=e.pickViewMatrix||o.viewMatrix;let g,m;if(this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram()),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),A||0!==h[0]||0!==h[1]||0!==h[2]){const t=ml;if(A){const e=fl;d.transformPoint3(c,A,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]+=h[0],t[1]+=h[1],t[2]+=h[2],g=j(p,t,vl),m=_l,m[0]=o.eye[0]-t[0],m[1]=o.eye[1]-t[1],m[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else g=p,m=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;if(n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniform1f(this._uPickZNear,e.pickZNear),n.uniform1f(this._uPickZFar,e.pickZFar),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),r.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const f=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(f>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*_,o=s.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uPickClipPos=i.getLocation("pickClipPos"),this._uDrawingBufferSize=i.getLocation("drawingBufferSize"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Triangles dataTexture pick depth vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform bool pickInvisible;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("uniform vec2 pickClipPos;"),i.push("uniform vec2 drawingBufferSize;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.w) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("} else {"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push("vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = remapClipPos(clipPos);"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles dataTexture pick depth 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;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(var s=0;s 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(s=0;s 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outPackedDepth = packDepth(zNormalizedDepth); "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const xl=d.vec3(),wl=d.vec3(),yl=d.vec3(),Pl=d.vec3();d.vec3();const Bl=d.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,i){if(!this._program&&(this._allocate(),this.errors))return;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=s,p=t.aabb,g=e.pickViewMatrix||o.viewMatrix,m=xl;let f,_;m[0]=d.safeInv(p[3]-p[0])*d.MAX_INT,m[1]=d.safeInv(p[4]-p[1])*d.MAX_INT,m[2]=d.safeInv(p[5]-p[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(m[0]),e.snapPickCoordinateScale[1]=d.safeInv(m[1]),e.snapPickCoordinateScale[2]=d.safeInv(m[2]),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==A[0]||0!==A[1]||0!==A[2],b=0!==h[0]||0!==h[1]||0!==h[2];if(v||b){const t=wl;if(v){const e=d.transformPoint3(c,A,yl);t[0]=e[0],t[1]=e[1],t[2]=e[2]}else t[0]=0,t[1]=0,t[2]=0;t[0]+=h[0],t[1]+=h[1],t[2]+=h[2],f=j(g,t,Bl),_=Pl,_[0]=o.eye[0]-t[0],_[1]=o.eye[1]-t[1],_[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=g,_=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,_),n.uniform2fv(this.uVectorA,e.snapVectorA),n.uniform2fv(this.uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,m),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const x=r._sectionPlanesState.getNumAllocatedSectionPlanes(),w=r._sectionPlanesState.sectionPlanes.length;if(x>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*w,o=s.renderFlags;for(let t=0;t0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),n.drawArrays(y,0,a.numEdgeIndices8Bits)),a.numEdgeIndices16Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),n.drawArrays(y,0,a.numEdgeIndices16Bits)),a.numEdgeIndices32Bits>0&&(l.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),n.drawArrays(y,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Batched geometry edges drawing vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),i.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 uSnapVectorA;"),i.push("uniform vec2 uSnapInvVectorAB;"),i.push("vec3 positions[3];"),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("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - uSnapVectorA.x) * uSnapInvVectorAB.x;"),i.push(" float y = (clipPos.y - uSnapVectorA.y) * uSnapInvVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("out vec4 vViewPosition;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int edgeIndex = gl_VertexID / 2;"),i.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("{"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),i.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),i.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),i.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),i.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),i.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));"),i.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));"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2.r;")),i.push("vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vViewPosition = clipPos;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push("gl_PointSize = 1.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles dataTexture pick depth 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int uLayerNumber;"),i.push("uniform vec3 uCoordinateScaler;"),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, uLayerNumber);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Ml=d.vec3(),El=d.vec3(),Fl=d.vec3(),Il=d.vec3();d.vec3();const Dl=d.mat4();class Sl{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,i){this._program||this._allocate(),e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram());const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=s,p=t.aabb,g=e.pickViewMatrix||o.viewMatrix,m=Ml;let f,_;m[0]=d.safeInv(p[3]-p[0])*d.MAX_INT,m[1]=d.safeInv(p[4]-p[1])*d.MAX_INT,m[2]=d.safeInv(p[5]-p[2])*d.MAX_INT,e.snapPickCoordinateScale[0]=d.safeInv(m[0]),e.snapPickCoordinateScale[1]=d.safeInv(m[1]),e.snapPickCoordinateScale[2]=d.safeInv(m[2]),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const v=0!==A[0]||0!==A[1]||0!==A[2],b=0!==h[0]||0!==h[1]||0!==h[2];if(v||b){const t=El;if(v){const e=Fl;d.transformPoint3(c,A,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]+=h[0],t[1]+=h[1],t[2]+=h[2],f=j(g,t,Dl),_=Il,_[0]=o.eye[0]-t[0],_[1]=o.eye[1]-t[1],_[2]=o.eye[2]-t[2],e.snapPickOrigin[0]=t[0],e.snapPickOrigin[1]=t[1],e.snapPickOrigin[2]=t[2]}else f=g,_=o.eye,e.snapPickOrigin[0]=0,e.snapPickOrigin[1]=0,e.snapPickOrigin[2]=0;n.uniform3fv(this._uCameraEyeRtc,_),n.uniform2fv(this._uVectorA,e.snapVectorA),n.uniform2fv(this._uInverseVectorAB,e.snapInvVectorAB),n.uniform1i(this._uLayerNumber,e.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,m),n.uniform1i(this._uRenderPass,i),n.uniform1i(this._uPickInvisible,e.pickInvisible),n.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,f),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);{const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const x=r._sectionPlanesState.getNumAllocatedSectionPlanes(),w=r._sectionPlanesState.sectionPlanes.length;if(x>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*w,o=s.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uSceneWorldModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// DTXTrianglesSnapInitRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("uniform vec2 uVectorAB;"),i.push("uniform vec2 uInverseVectorAB;"),i.push("vec3 positions[3];"),i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("vec2 remapClipPos(vec2 clipPos) {"),i.push(" float x = (clipPos.x - uVectorAB.x) * uInverseVectorAB.x;"),i.push(" float y = (clipPos.y - uVectorAB.y) * uInverseVectorAB.y;"),i.push(" return vec2(x, y);"),i.push("}"),i.push("flat out vec4 vPickColor;"),i.push("out vec4 vWorldPosition;"),t&&i.push("flat out uint vFlags2;"),i.push("out highp vec3 relativeToOriginPosition;"),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("{"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (solid != 1u) {"),i.push(" if (isPerspectiveMatrix(projMatrix)) {"),i.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push(" position = positions[2 - (gl_VertexID % 3)];"),i.push(" viewNormal = -viewNormal;"),i.push(" }"),i.push(" } else {"),i.push(" if (viewNormal.z < 0.0) {"),i.push(" position = positions[2 - (gl_VertexID % 3)];"),i.push(" viewNormal = -viewNormal;"),i.push(" }"),i.push(" }"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("relativeToOriginPosition = worldPosition.xyz;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vWorldPosition = worldPosition;"),t&&i.push("vFlags2 = flags2.r;"),i.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0));"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("float tmp = clipPos.w;"),i.push("clipPos.xyzw /= tmp;"),i.push("clipPos.xy = remapClipPos(clipPos.xy);"),i.push("clipPos.xyzw *= tmp;"),i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// DTXTrianglesSnapInitRenderer 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 float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;"),i.push("uniform int uLayerNumber;"),i.push("uniform vec3 uCoordinateScaler;"),i.push("in vec4 vWorldPosition;"),i.push("flat in vec4 vPickColor;"),t){i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),i.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);"),i.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(`outNormal = ivec4(worldNormal * float(${d.MAX_INT}), 1.0);`),i.push("outPickColor = uvec4(vPickColor);"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Tl=d.vec3(),Rl=d.vec3(),Ll=d.vec3();d.vec3();const Ul=d.mat4();class kl{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=s,p=e.pickViewMatrix||o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let g,m;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),A||0!==h[0]||0!==h[1]||0!==h[2]){const e=Tl;if(A){const t=Rl;d.transformPoint3(c,A,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]+=h[0],e[1]+=h[1],e[2]+=h[2],g=j(p,e,Ul),m=Ll,m[0]=o.eye[0]-e[0],m[1]=o.eye[1]-e[1],m[2]=o.eye[2]-e[2]}else g=p,m=o.eye;n.uniform3fv(this._uCameraEyeRtc,m),n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uWorldMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,g),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix);const f=r._sectionPlanesState.getNumAllocatedSectionPlanes(),_=r._sectionPlanesState.sectionPlanes.length;if(f>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*_,o=s.renderFlags;for(let t=0;t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uWorldMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// TrianglesDataTextureOcclusionRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.x) != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("if (solid != 1u) {"),i.push(" if (isPerspectiveMatrix(projMatrix)) {"),i.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push(" position = positions[2 - (gl_VertexID % 3)];"),i.push(" }"),i.push(" } else {"),i.push(" vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push(" if (viewNormal.z < 0.0) {"),i.push(" position = positions[2 - (gl_VertexID % 3)];"),i.push(" }"),i.push(" }"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vec4 clipPos = projMatrix * viewPosition;"),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags2 = flags2.r;")),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesDataTextureColorRenderer 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){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0;t 0.0);"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0;t 0.0) { discard; }"),i.push(" }")}return i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Ol=d.vec3(),Nl=d.vec3(),Ql=d.vec3();d.vec3();const Vl=d.mat4();class jl{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=o;if(!this._program&&(this._allocate(),this.errors))return;let p,g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=Ol;if(m){const t=d.transformPoint3(c,A,Nl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],p=j(r.viewMatrix,e,Vl),g=Ql,g[0]=r.eye[0]-e[0],g[1]=r.eye[1]-e[1],g[2]=r.eye[2]-e[2]}else p=r.viewMatrix,g=r.eye;if(n.uniformMatrix4fv(this._uSceneModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,g),n.uniform1i(this._uRenderPass,i),s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const _=s._sectionPlanesState.getNumAllocatedSectionPlanes(),v=s._sectionPlanesState.sectionPlanes.length;if(_>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,r=o.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPositionsDecodeMatrix=i.getLocation("objectDecodeAndInstanceMatrix"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// Triangles dataTexture draw vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out highp vec2 vHighPrecisionZW;"),t&&(i.push("out vec4 vWorldPosition;"),i.push("flat out uint vFlags2;")),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.x) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("} else {"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags2 = flags2.r;")),i.push("gl_Position = clipPos;"),i.push("vHighPrecisionZW = gl_Position.zw;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles dataTexture 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"),i.push("in highp vec2 vHighPrecisionZW;"),i.push("out vec4 outColor;"),e.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),i.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Hl=d.vec3(),zl=d.vec3(),Gl=d.vec3();d.vec3();const Wl=d.mat4();class Kl{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,i){const s=t.model,r=s.scene,o=r.camera,n=r.canvas.gl,a=t._state,l=t._state.origin,{position:A,rotationMatrix:h,rotationMatrixConjugate:c}=s,u=o.viewMatrix;if(!this._program&&(this._allocate(t),this.errors))return;let p,g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(t));const m=0!==l[0]||0!==l[1]||0!==l[2],f=0!==A[0]||0!==A[1]||0!==A[2];if(m||f){const e=Hl;if(m){const t=zl;d.transformPoint3(h,l,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]+=A[0],e[1]+=A[1],e[2]+=A[2],p=j(u,e,Wl),g=Gl,g[0]=o.eye[0]-e[0],g[1]=o.eye[1]-e[1],g[2]=o.eye[2]-e[2]}else p=u,g=o.eye;n.uniform1i(this._uRenderPass,i),n.uniformMatrix4fv(this._uWorldMatrix,!1,c),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,o.projMatrix),n.uniformMatrix4fv(this._uViewNormalMatrix,!1,o.viewNormalMatrix),n.uniformMatrix4fv(this._uWorldNormalMatrix,!1,s.worldNormalMatrix);const _=r._sectionPlanesState.getNumAllocatedSectionPlanes(),v=r._sectionPlanesState.sectionPlanes.length;if(_>0){const e=r._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,o=s.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0,i=[];return i.push("// Batched geometry normals vertex shader"),e.logarithmicDepthBufferEnabled&&be.SUPPORTED_EXTENSIONS.EXT_frag_depth&&i.push("#extension GL_EXT_frag_depth : enable"),i.push("uniform int renderPass;"),i.push("attribute vec3 position;"),e.entityOffsetsEnabled&&i.push("attribute vec3 offset;"),i.push("attribute vec3 normal;"),i.push("attribute vec4 color;"),i.push("attribute vec4 flags;"),i.push("attribute vec4 flags2;"),i.push("uniform mat4 worldMatrix;"),i.push("uniform mat4 worldNormalMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform mat4 viewNormalMatrix;"),i.push("uniform mat4 objectDecodeAndInstanceMatrix;"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),be.SUPPORTED_EXTENSIONS.EXT_frag_depth&&i.push("out float vFragDepth;"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("varying float isPerspective;")),i.push("vec3 octDecode(vec2 oct) {"),i.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),i.push(" if (v.z < 0.0) {"),i.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);"),i.push(" }"),i.push(" return normalize(v);"),i.push("}"),t&&(i.push("out vec4 vWorldPosition;"),i.push("out vec4 vFlags2;")),i.push("out vec3 vViewNormal;"),i.push("void main(void) {"),i.push("if (int(flags.x) != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),e.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),i.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),t&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags2 = flags2;")),i.push(" vViewNormal = viewNormal;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(be.SUPPORTED_EXTENSIONS.EXT_frag_depth?i.push("vFragDepth = 1.0 + clipPos.w;"):(i.push("clipPos.z = log2( max( 1e-6, clipPos.w + 1.0 ) ) * logDepthBufFC - 1.0;"),i.push("clipPos.z *= clipPos.w;")),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("gl_Position = clipPos;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals fragment shader"),e.logarithmicDepthBufferEnabled&&be.SUPPORTED_EXTENSIONS.EXT_frag_depth&&i.push("#extension GL_EXT_frag_depth : enable"),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&&be.SUPPORTED_EXTENSIONS.EXT_frag_depth&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in vec4 vFlags2;");for(let t=0;t 0.0);"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return e.logarithmicDepthBufferEnabled&&be.SUPPORTED_EXTENSIONS.EXT_frag_depth&&i.push(" gl_FragDepthEXT = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" gl_FragColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Xl=d.vec3(),Yl=d.vec3(),ql=d.vec3();d.vec3(),d.vec4();const Zl=d.mat4();class Jl{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,i){const s=this._scene,r=s.camera,o=t.model,n=s.canvas.gl,a=t._state,l=a.textureState,A=t._state.origin,{position:h,rotationMatrix:c,rotationMatrixConjugate:u}=o;if(!this._program&&(this._allocate(),this.errors))return;let p,g;e.lastProgramId!==this._program.id&&(e.lastProgramId=this._program.id,this._bindProgram(e,a)),l.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const m=0!==A[0]||0!==A[1]||0!==A[2],f=0!==h[0]||0!==h[1]||0!==h[2];if(m||f){const e=Xl;if(m){const t=d.transformPoint3(c,A,Yl);e[0]=t[0],e[1]=t[1],e[2]=t[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],p=j(r.viewMatrix,e,Zl),g=ql,g[0]=r.eye[0]-e[0],g[1]=r.eye[1]-e[1],g[2]=r.eye[2]-e[2]}else p=r.viewMatrix,g=r.eye;if(n.uniform2fv(this._uPickClipPos,e.pickClipPos),n.uniform2f(this._uDrawingBufferSize,n.drawingBufferWidth,n.drawingBufferHeight),n.uniformMatrix4fv(this._uSceneModelMatrix,!1,u),n.uniformMatrix4fv(this._uViewMatrix,!1,p),n.uniformMatrix4fv(this._uProjMatrix,!1,r.projMatrix),n.uniform3fv(this._uCameraEyeRtc,g),n.uniform1i(this._uRenderPass,i),s.logarithmicDepthBufferEnabled){const t=2/(Math.log(e.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,t)}const _=s._sectionPlanesState.getNumAllocatedSectionPlanes(),v=s._sectionPlanesState.sectionPlanes.length;if(_>0){const e=s._sectionPlanesState.sectionPlanes,i=t.layerIndex*v,r=o.renderFlags;for(let t=0;t<_;t++){const s=this._uSectionPlanes[t];if(s)if(t0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),n.drawArrays(n.TRIANGLES,0,a.numIndices8Bits)),a.numIndices16Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),n.drawArrays(n.TRIANGLES,0,a.numIndices16Bits)),a.numIndices32Bits>0&&(l.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),n.drawArrays(n.TRIANGLES,0,a.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 i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uPickInvisible=i.getLocation("pickInvisible"),this._uPickClipPos=i.getLocation("pickClipPos"),this._uDrawingBufferSize=i.getLocation("drawingBufferSize"),this._uSceneModelMatrix=i.getLocation("sceneModelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t0,i=[];return i.push("#version 300 es"),i.push("// trianglesDatatextureNormalsRenderer vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("precision highp usampler2D;"),i.push("precision highp isampler2D;"),i.push("precision highp sampler2D;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("precision mediump usampler2D;"),i.push("precision mediump isampler2D;"),i.push("precision mediump sampler2D;"),i.push("#endif"),i.push("uniform int renderPass;"),e.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("uniform mat4 sceneModelMatrix;"),i.push("uniform mat4 viewMatrix;"),i.push("uniform mat4 projMatrix;"),i.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),i.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),i.push("uniform highp sampler2D uTexturePerObjectMatrix;"),i.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),i.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),i.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),i.push("uniform vec3 uCameraEyeRtc;"),i.push("vec3 positions[3];"),e.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;"),i.push("out float isPerspective;")),i.push("uniform vec2 pickClipPos;"),i.push("uniform vec2 drawingBufferSize;"),i.push("vec4 remapClipPos(vec4 clipPos) {"),i.push(" clipPos.xy /= clipPos.w;"),i.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),i.push(" clipPos.xy *= clipPos.w;"),i.push(" return clipPos;"),i.push("}"),i.push("bool isPerspectiveMatrix(mat4 m) {"),i.push(" return (m[2][3] == - 1.0);"),i.push("}"),i.push("out vec4 vWorldPosition;"),t&&i.push("flat out uint vFlags2;"),i.push("void main(void) {"),i.push("int polygonIndex = gl_VertexID / 3;"),i.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),i.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),i.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),i.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),i.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),i.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),i.push("if (int(flags.w) != renderPass) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("} else {"),i.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),i.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),i.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),i.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),i.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),i.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),i.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),i.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),i.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),i.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));"),i.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));"),i.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),i.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),i.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),i.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),i.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),i.push("if (color.a == 0u) {"),i.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),i.push(" return;"),i.push("};"),i.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),i.push("vec3 position;"),i.push("position = positions[gl_VertexID % 3];"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (solid != 1u) {"),i.push("if (isPerspectiveMatrix(projMatrix)) {"),i.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),i.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("viewNormal = -viewNormal;"),i.push("}"),i.push("} else {"),i.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),i.push("if (viewNormal.z < 0.0) {"),i.push("position = positions[2 - (gl_VertexID % 3)];"),i.push("}"),i.push("}"),i.push("}"),i.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i.push("vWorldPosition = worldPosition;"),t&&i.push("vFlags2 = flags2.r;"),i.push("gl_Position = remapClipPos(clipPos);"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const e=this._scene,t=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesDataTexturePickNormalsRenderer 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;")),i.push("in vec4 vWorldPosition;"),t){i.push("flat in uint vFlags2;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let t=0,s=e._sectionPlanesState.getNumAllocatedSectionPlanes();t 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return e.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(` outNormal = ivec4(worldNormal * float(${d.MAX_INT}), 1.0);`),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class $l{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._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=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 tl(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new gl(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new bl(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new Jl(this._scene)),this._snapRenderer||(this._snapRenderer=new Cl(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new Sl(this._scene)),this._snapRenderer||(this._snapRenderer=new Cl(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ya(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new Ya(this._scene,!0)),this._colorRendererWithSAO}get colorQualityRendererWithSAO(){return this._colorQualityRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new tl(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new jl(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Kl(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new nl(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new hl(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new gl(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new Jl(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new Jl(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new bl(this._scene)),this._pickDepthRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Cl(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Sl(this._scene)),this._snapInitRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new kl(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._snapRenderer&&this._snapRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const eA={};class tA{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 iA{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,i,s,r){this.texturePerObjectPositionsDecodeMatrix.bindTexture(e,t,1),this.texturePerVertexIdCoordinates.bindTexture(e,i,2),this.texturePerObjectColorsAndFlags.bindTexture(e,s,3),this.texturePerObjectInstanceMatrices.bindTexture(e,r,4)}bindTriangleIndicesTextures(e,t,i,s){this.indicesPortionIdsPerBitnessTextures[s].bindTexture(e,t,5),this.indicesPerBitnessTextures[s].bindTexture(e,i,6)}bindEdgeIndicesTextures(e,t,i,s){this.edgeIndicesPortionIdsPerBitnessTextures[s].bindTexture(e,t,5),this.edgeIndicesPerBitnessTextures[s].bindTexture(e,i,6)}}const sA={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(sA,null,4));let e=0;Object.keys(sA).forEach((t=>{t.startsWith("size")&&(e+=sA[t])})),console.log(`Total size ${e} bytes (${(e/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(e/sA.totalPolygons).toFixed(2)}`);let t={};Object.keys(sA).forEach((i=>{i.startsWith("size")&&(t[i]=`${(sA[i]/e*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:t},null,4))};class rA{constructor(){}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)}createTextureForColorsAndFlags(e,t,i,s,r,o,n){const a=t.length;this.numPortions=a;const l=4096,A=Math.ceil(a/512);if(0===A)throw"texture height===0";const h=new Uint8Array(16384*A);sA.sizeDataColorsAndFlags+=h.byteLength,sA.numberOfTextures++;for(let e=0;e>24&255,s[e]>>16&255,s[e]>>8&255,255&s[e]],32*e+16),h.set([r[e]>>24&255,r[e]>>16&255,r[e]>>8&255,255&r[e]],32*e+20),h.set([o[e]>>24&255,o[e]>>16&255,o[e]>>8&255,255&o[e]],32*e+24),h.set([n[e]?1:0,0,0,0],32*e+28);const c=e.createTexture();return e.bindTexture(e.TEXTURE_2D,c),e.texStorage2D(e.TEXTURE_2D,1,e.RGBA8UI,l,A),e.texSubImage2D(e.TEXTURE_2D,0,0,0,l,A,e.RGBA_INTEGER,e.UNSIGNED_BYTE,h,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 Ta(e,c,l,A,h)}createTextureForObjectOffsets(e,t){const i=512,s=Math.ceil(t/i);if(0===s)throw"texture height===0";const r=new Float32Array(1536*s).fill(0);sA.sizeDataTextureOffsets+=r.byteLength,sA.numberOfTextures++;const o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texStorage2D(e.TEXTURE_2D,1,e.RGB32F,i,s),e.texSubImage2D(e.TEXTURE_2D,0,0,0,i,s,e.RGB,e.FLOAT,r,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 Ta(e,o,i,s,r)}createTextureForInstancingMatrices(e,t){const i=t.length;if(0===i)throw"num instance matrices===0";const s=2048,r=Math.ceil(i/512),o=new Float32Array(8192*r);sA.numberOfTextures++;for(let e=0;e{i._compile(),i.eagerCreateRenders()})),e.on("destroyed",(()=>{delete eA[t],i._destroy()}))),i}(e.scene),this.model=e,this._buffer=new tA,this._dtxState=new iA,this._dtxTextureFactory=new rA,this._state=new qe({origin:d.vec3(t.origin),metallicRoughnessBuf:null,textureState:this._dtxState,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=d.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this._finalized=!1}get aabb(){if(this.aabbDirty){d.collapseAABB3(this._aabb);for(let e=0,t=this._meshes.length;e65536&&sA.cannotCreatePortion.because10BitsObjectId++;let i=this._numPortions+t<=65536;const s=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#0`:`${e.id}#0`;if(!this._bucketGeometries[s]){const t=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let s=0,r=0;e.buckets.forEach((e=>{s+=e.positionsCompressed.length/3,r+=e.indices.length/3})),(this._state.numVertices+s>4096*nA||t+r>4096*nA)&&sA.cannotCreatePortion.becauseTextureSize++,i&&=this._state.numVertices+s<=4096*nA&&t+r<=4096*nA}return i}createPortion(e,t){if(this._finalized)throw"Already finalized";const i=[];t.buckets.forEach(((e,s)=>{const r=void 0!==t.geometryId&&null!==t.geometryId?`${t.geometryId}#${s}`:`${t.id}#${s}`;let o=this._bucketGeometries[r];o||(o=this._createBucketGeometry(t,e),this._bucketGeometries[r]=o);const n=this._createSubPortion(t,o,e);i.push(n)}));const s=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(i),this.model.numPortions++,this._meshes.push(e),s}_createBucketGeometry(e,t){if(t.indices){const e=8*Math.ceil(t.indices.length/3/8)*3;sA.overheadSizeAlignementIndices+=2*(e-t.indices.length);const i=new Uint32Array(e);i.fill(0),i.set(t.indices),t.indices=i}if(t.edgeIndices){const e=8*Math.ceil(t.edgeIndices.length/2/8)*2;sA.overheadSizeAlignementEdgeIndices+=2*(e-t.edgeIndices.length);const i=new Uint32Array(e);i.fill(0),i.set(t.edgeIndices),t.edgeIndices=i}const i=t.positionsCompressed,s=t.indices,r=t.edgeIndices,o=this._buffer;o.positionsCompressed.push(i);const n=o.lenPositionsCompressed/3,a=i.length/3;let l;o.lenPositionsCompressed+=i.length;let A,h=0;if(s){let e;h=s.length/3,a<=256?(e=o.indices8Bits,l=o.lenIndices8Bits/3,o.lenIndices8Bits+=s.length):a<=65536?(e=o.indices16Bits,l=o.lenIndices16Bits/3,o.lenIndices16Bits+=s.length):(e=o.indices32Bits,l=o.lenIndices32Bits/3,o.lenIndices32Bits+=s.length),e.push(s)}let c=0;if(r){let e;c=r.length/2,a<=256?(e=o.edgeIndices8Bits,A=o.lenEdgeIndices8Bits/2,o.lenEdgeIndices8Bits+=r.length):a<=65536?(e=o.edgeIndices16Bits,A=o.lenEdgeIndices16Bits/2,o.lenEdgeIndices16Bits+=r.length):(e=o.edgeIndices32Bits,A=o.lenEdgeIndices32Bits/2,o.lenEdgeIndices32Bits+=r.length),e.push(r)}this._state.numVertices+=a,sA.numberOfGeometries++;return{vertexBase:n,numVertices:a,numTriangles:h,numEdges:c,indicesBase:l,edgeIndicesBase:A}}_createSubPortion(e,t,i,s){const r=e.color;e.metallic,e.roughness;const o=e.colors,n=e.opacity,a=e.meshMatrix,l=e.pickColor,A=this._buffer,h=this._state;A.perObjectPositionsDecodeMatrices.push(e.positionsDecodeMatrix),A.perObjectInstancePositioningMatrices.push(a||cA),A.perObjectSolid.push(!!e.solid),o?A.perObjectColors.push([255*o[0],255*o[1],255*o[2],255]):r&&A.perObjectColors.push([r[0],r[1],r[2],n]),A.perObjectPickColors.push(l),A.perObjectVertexBases.push(t.vertexBase);{let e;e=t.numVertices<=256?h.numIndices8Bits:t.numVertices<=65536?h.numIndices16Bits:h.numIndices32Bits,A.perObjectIndexBaseOffsets.push(e/3-t.indicesBase)}{let e;e=t.numVertices<=256?h.numEdgeIndices8Bits:t.numVertices<=65536?h.numEdgeIndices16Bits:h.numEdgeIndices32Bits,A.perObjectEdgeIndexBaseOffsets.push(e/2-t.edgeIndicesBase)}const c=this._subPortions.length;if(t.numTriangles>0){let e,i=3*t.numTriangles;t.numVertices<=256?(e=A.perTriangleNumberPortionId8Bits,h.numIndices8Bits+=i,sA.totalPolygons8Bits+=t.numTriangles):t.numVertices<=65536?(e=A.perTriangleNumberPortionId16Bits,h.numIndices16Bits+=i,sA.totalPolygons16Bits+=t.numTriangles):(e=A.perTriangleNumberPortionId32Bits,h.numIndices32Bits+=i,sA.totalPolygons32Bits+=t.numTriangles),sA.totalPolygons+=t.numTriangles;for(let i=0;i0){let e,i=2*t.numEdges;t.numVertices<=256?(e=A.perEdgeNumberPortionId8Bits,h.numEdgeIndices8Bits+=i,sA.totalEdges8Bits+=t.numEdges):t.numVertices<=65536?(e=A.perEdgeNumberPortionId16Bits,h.numEdgeIndices16Bits+=i,sA.totalEdges16Bits+=t.numEdges):(e=A.perEdgeNumberPortionId32Bits,h.numEdgeIndices32Bits+=i,sA.totalEdges32Bits+=t.numEdges),sA.totalEdges+=t.numEdges;for(let i=0;i0&&(t.texturePerEdgeIdPortionIds8Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(i,s.perEdgeNumberPortionId8Bits)),s.perEdgeNumberPortionId16Bits.length>0&&(t.texturePerEdgeIdPortionIds16Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(i,s.perEdgeNumberPortionId16Bits)),s.perEdgeNumberPortionId32Bits.length>0&&(t.texturePerEdgeIdPortionIds32Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(i,s.perEdgeNumberPortionId32Bits)),s.lenIndices8Bits>0&&(t.texturePerPolygonIdIndices8Bits=this._dtxTextureFactory.createTextureFor8BitIndices(i,s.indices8Bits,s.lenIndices8Bits)),s.lenIndices16Bits>0&&(t.texturePerPolygonIdIndices16Bits=this._dtxTextureFactory.createTextureFor16BitIndices(i,s.indices16Bits,s.lenIndices16Bits)),s.lenIndices32Bits>0&&(t.texturePerPolygonIdIndices32Bits=this._dtxTextureFactory.createTextureFor32BitIndices(i,s.indices32Bits,s.lenIndices32Bits)),s.lenEdgeIndices8Bits>0&&(t.texturePerPolygonIdEdgeIndices8Bits=this._dtxTextureFactory.createTextureFor8BitsEdgeIndices(i,s.edgeIndices8Bits,s.lenEdgeIndices8Bits)),s.lenEdgeIndices16Bits>0&&(t.texturePerPolygonIdEdgeIndices16Bits=this._dtxTextureFactory.createTextureFor16BitsEdgeIndices(i,s.edgeIndices16Bits,s.lenEdgeIndices16Bits)),s.lenEdgeIndices32Bits>0&&(t.texturePerPolygonIdEdgeIndices32Bits=this._dtxTextureFactory.createTextureFor32BitsEdgeIndices(i,s.edgeIndices32Bits,s.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,i){t&W&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),t&J&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),t&Z&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),t&$&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),t&Y&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),t&ee&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),t&X&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),t&K&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),i&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(e,t,i,true),this._setFlags2(e,t,true)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(e,t,i){if(!this._finalized)throw"Not finalized";t&W?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(e,t,i)}setHighlighted(e,t,i){if(!this._finalized)throw"Not finalized";t&J?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(e,t,i)}setXRayed(e,t,i){if(!this._finalized)throw"Not finalized";t&Z?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(e,t,i)}setSelected(e,t,i){if(!this._finalized)throw"Not finalized";t&$?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(e,t,i)}setEdges(e,t,i){if(!this._finalized)throw"Not finalized";t&ee?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(e,t,i)}setClippable(e,t){if(!this._finalized)throw"Not finalized";t&Y?(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._dtxState;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,i){if(!this._finalized)throw"Not finalized";t&K?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[e].length,this.model.numCulledLayerPortions--),this._setFlags(e,t,i)}setCollidable(e,t){if(!this._finalized)throw"Not finalized"}setPickable(e,t,i){if(!this._finalized)throw"Not finalized";t&X?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(e,t,i)}setColor(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),console.info("_subPortionSetColor write through"),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectColorsAndFlags._texture),s.texSubImage2D(s.TEXTURE_2D,0,e%512*8,Math.floor(e/512),1,1,s.RGBA_INTEGER,s.UNSIGNED_BYTE,lA)}setTransparent(e,t,i){i?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(e,t,i)}_setFlags(e,t,i,s=!1){const r=this._portionToSubPortionsMap[e];for(let e=0,o=r.length;e=10&&this._beginDeferredFlags(),p.bindTexture(p.TEXTURE_2D,d.texturePerObjectColorsAndFlags._texture),p.texSubImage2D(p.TEXTURE_2D,0,e%512*8+2,Math.floor(e/512),1,1,p.RGBA_INTEGER,p.UNSIGNED_BYTE,lA))}_setDeferredFlags(){}_setFlags2(e,t,i=!1){const s=this._portionToSubPortionsMap[e];for(let e=0,r=s.length;e=10&&this._beginDeferredFlags(),o.bindTexture(o.TEXTURE_2D,r.texturePerObjectColorsAndFlags._texture),o.texSubImage2D(o.TEXTURE_2D,0,e%512*8+3,Math.floor(e/512),1,1,o.RGBA_INTEGER,o.UNSIGNED_BYTE,lA))}_setDeferredFlags2(){}setOffset(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectOffsets._texture),s.texSubImage2D(s.TEXTURE_2D,0,0,e,1,1,s.RGB,s.FLOAT,AA))}setMatrix(e,t){const i=this._portionToSubPortionsMap[e];for(let e=0,s=i.length;e=10&&this._beginDeferredFlags(),s.bindTexture(s.TEXTURE_2D,i.texturePerObjectInstanceMatrices._texture),s.texSubImage2D(s.TEXTURE_2D,0,e%512*4,Math.floor(e/512),4,1,s.RGBA,s.FLOAT,aA))}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._renderers.colorRendererWithSAO&&this._renderers.colorRendererWithSAO.drawLayer(t,this,Ks.COLOR_OPAQUE):this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ks.COLOR_OPAQUE))}_updateBackfaceCull(e,t){const i=this.model.backfaces||e.sectioned;if(t.backfaces!==i){const e=t.gl;i?e.disable(e.CULL_FACE):e.enable(e.CULL_FACE),t.backfaces=i}}drawColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(e,t),this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(t,this,Ks.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._renderers.depthRenderer&&this._renderers.depthRenderer.drawLayer(t,this,Ks.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._renderers.normalsRenderer&&this._renderers.normalsRenderer.drawLayer(t,this,Ks.COLOR_OPAQUE))}drawSilhouetteXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ks.SILHOUETTE_XRAYED))}drawSilhouetteHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ks.SILHOUETTE_HIGHLIGHTED))}drawSilhouetteSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(t,this,Ks.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._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(t,this,Ks.EDGES_COLOR_OPAQUE)}drawEdgesColorTransparent(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(t,this,Ks.EDGES_COLOR_TRANSPARENT)}drawEdgesHighlighted(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,Ks.EDGES_HIGHLIGHTED)}drawEdgesSelected(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,Ks.EDGES_SELECTED)}drawEdgesXRayed(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(t,this,Ks.EDGES_XRAYED)}drawOcclusion(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(t,this,Ks.COLOR_OPAQUE))}drawShadow(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.shadowRenderer&&this._renderers.shadowRenderer.drawLayer(t,this,Ks.COLOR_OPAQUE))}setPickMatrices(e,t){}drawPickMesh(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(t,this,Ks.PICK))}drawPickDepths(e,t){0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(t,this,Ks.PICK))}drawSnapInit(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(t,this,Ks.PICK))}drawSnap(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(t,this,Ks.PICK))}drawPickNormals(e,t){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(e,t),this._renderers.pickNormalsRenderer&&this._renderers.pickNormalsRenderer.drawLayer(t,this,Ks.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}}class dA{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 pA{constructor(e){this.id=e.id,this.texture=e.texture}destroy(){this.texture&&(this.texture.destroy(),this.texture=null)}}const gA={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={}}};const mA=new class{constructor(e,t,i){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=i}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,i=this.handlers.length;t{t&&t(r),this.manager.itemEnd(e)}),0),r;if(void 0!==fA[e])return void fA[e].push({onLoad:t,onProgress:i,onError:s});fA[e]=[],fA[e].push({onLoad:t,onProgress:i,onError:s});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),n=this.mimeType,a=this.responseType;fetch(o).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 i=fA[e],s=t.body.getReader(),r=t.headers.get("Content-Length"),o=r?parseInt(r):0,n=0!==o;let a=0;const l=new ReadableStream({start(e){!function t(){s.read().then((({done:s,value:r})=>{if(s)e.close();else{a+=r.byteLength;const s=new ProgressEvent("progress",{lengthComputable:n,loaded:a,total:o});for(let e=0,t=i.length;e{switch(a){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,n)));case"json":return e.json();default:if(void 0===n)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(n),i=t&&t[1]?t[1].toLowerCase():void 0,s=new TextDecoder(i);return e.arrayBuffer().then((e=>s.decode(e)))}}})).then((t=>{gA.add(e,t);const i=fA[e];delete fA[e];for(let e=0,s=i.length;e{const i=fA[e];if(void 0===i)throw this.manager.itemError(e),t;delete fA[e];for(let e=0,s=i.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 vA{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 s=this._getIdleWorker();-1!==s?(this._initWorker(s),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}let bA=0;class xA{constructor({viewer:e,transcoderPath:t,workerLimit:i}){this._transcoderPath=t||"https://cdn.jsdelivr.net/npm/@xeokit/xeokit-sdk/dist/basis/",this._transcoderBinary=null,this._transcoderPending=null,this._workerPool=new vA,this._workerSourceURL="",i&&this._workerPool.setWorkerLimit(i);const s=e.capabilities;this._workerConfig={astcSupported:s.astcSupported,etc1Supported:s.etc1Supported,etc2Supported:s.etc2Supported,dxtSupported:s.dxtSupported,bptcSupported:s.bptcSupported,pvrtcSupported:s.pvrtcSupported},this._supportedFileTypes=["xkt2"]}_init(){if(!this._transcoderPending){const e=new _A;e.setPath(this._transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),i=new _A;i.setPath(this._transcoderPath),i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials);const s=i.loadAsync("basis_transcoder.wasm");this._transcoderPending=Promise.all([t,s]).then((([e,t])=>{const i=xA.BasisWorker.toString(),s=["/* constants */","let _EngineFormat = "+JSON.stringify(xA.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(xA.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(xA.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",i.substring(i.indexOf("{")+1,i.lastIndexOf("}"))].join("\n");this._workerSourceURL=URL.createObjectURL(new Blob([s])),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}))})),bA>0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),bA++}return this._transcoderPending}transcode(e,t,i={}){return new Promise(((s,r)=>{const o=i;this._init().then((()=>this._workerPool.postMessage({type:"transcode",buffers:e,taskConfig:o},e))).then((e=>{const i=e.data,{mipmaps:o,width:n,height:a,format:l,type:A,error:h,dfdTransferFn:c,dfdFlags:u}=i;if("error"===A)return r(h);t.setCompressedData({mipmaps:o,props:{format:l,minFilter:1===o.length?si:oi,magFilter:1===o.length?si:oi,encoding:2===c?vi:_i,premultiplyAlpha:!!(1&u)}}),s()}))}))}destroy(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),bA--}}xA.BasisFormat={ETC1S:0,UASTC_4x4:1},xA.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},xA.EngineFormat={RGBAFormat:ai,RGBA_ASTC_4x4_Format:mi,RGBA_BPTC_Format:fi,RGBA_ETC2_EAC_Format:gi,RGBA_PVRTC_4BPPV1_Format:di,RGBA_S3TC_DXT5_Format:ci,RGB_ETC1_Format:36196,RGB_ETC2_Format:pi,RGB_PVRTC_4BPPV1_Format:ui,RGB_S3TC_DXT1_Format:li},xA.BasisWorker=function(){let e,t,i;const s=_EngineFormat,r=_TranscoderFormat,o=_BasisFormat;self.addEventListener("message",(function(n){const h=n.data;switch(h.type){case"init":e=h.config,c=h.transcoderBinary,t=new Promise((e=>{i={wasmBinary:c,onRuntimeInitialized:e},BASIS(i)})).then((()=>{i.initializeBasis(),void 0===i.KTX2File&&console.warn("KTX2TextureTranscoder: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:n,hasAlpha:c,mipmaps:u,format:d,dfdTransferFn:p,dfdFlags:g}=function(t){const n=new i.KTX2File(new Uint8Array(t));function h(){n.close(),n.delete()}if(!n.isValid())throw h(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");const c=n.isUASTC()?o.UASTC_4x4:o.ETC1S,u=n.getWidth(),d=n.getHeight(),p=n.getLevels(),g=n.getHasAlpha(),m=n.getDFDTransferFunc(),f=n.getDFDFlags(),{transcoderFormat:_,engineFormat:v}=function(t,i,n,h){let c,u;const d=t===o.ETC1S?a:l;for(let s=0;s=e)){bh=new Uint32Array(e);for(let t=0;t=e)){BA=new Uint32Array(e);for(let t=0;t>t;s.sort(Ch);const i=new Int32Array(e.length);for(let t=0,r=s.length;te[t+1]){let s=e[t];e[t]=e[t+1],e[t+1]=s}Nh=new Int32Array(e),t.sort(Oh);const s=new Int32Array(e.length);for(let i=0,r=t.length;it){let s=e;e=t,t=s}function s(s,i){return s!==e?e-s:i!==t?t-i:0}let i=0,r=(o.length>>1)-1;for(;i<=r;){const e=r+i>>1,t=s(o[2*e],o[2*e+1]);if(t>0)i=e+1;else{if(!(t<0))return e;r=e-1}}return-i-1}const a=new Int32Array(o.length/2);a.fill(0);const l=i.length/3;if(l>8*(1<A.maxNumPositions&&(A=u()),A.bucketNumber>8)return[e];let d;-1===h[l]&&(h[l]=A.numPositions++,A.positionsCompressed.push(i[3*l]),A.positionsCompressed.push(i[3*l+1]),A.positionsCompressed.push(i[3*l+2])),-1===h[c]&&(h[c]=A.numPositions++,A.positionsCompressed.push(i[3*c]),A.positionsCompressed.push(i[3*c+1]),A.positionsCompressed.push(i[3*c+2])),-1===h[p]&&(h[p]=A.numPositions++,A.positionsCompressed.push(i[3*p]),A.positionsCompressed.push(i[3*p+1]),A.positionsCompressed.push(i[3*p+2])),A.indices.push(h[l]),A.indices.push(h[c]),A.indices.push(h[p]),(d=n(l,c))>=0&&0===a[d]&&(a[d]=1,A.edgeIndices.push(h[o[2*d]]),A.edgeIndices.push(h[o[2*d+1]])),(d=n(l,p))>=0&&0===a[d]&&(a[d]=1,A.edgeIndices.push(h[o[2*d]]),A.edgeIndices.push(h[o[2*d+1]])),(d=n(c,p))>=0&&0===a[d]&&(a[d]=1,A.edgeIndices.push(h[o[2*d]]),A.edgeIndices.push(h[o[2*d+1]]))}const p=t/8*2,d=t/8,f=2*i.length+(r.length+o.length)*p;let m=0,y=-i.length/3;return c.forEach((e=>{m+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*d,y+=e.positionsCompressed.length/3})),m>f?[e]:(s&&function(e,t){const s={};let i=0;e.forEach((e=>{const t=e.indices,r=e.edgeIndices,o=e.positionsCompressed;for(let e=0,i=t.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{delete _h[t],s.destroy()}))),s}(this.scene.viewer),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this._aabb=p.collapseAABB3(),this._aabbDirty=!0,this._quantizationRanges={},this._vboInstancingLayers={},this._vboBatchingLayers={},this._dtxLayers={},this.layerList=[],this._entityList=[],this._geometries={},this._dtxBuckets={},this._textures={},this._textureSets={},this._transforms={},this._meshes={},this._entities={},this._scheduledMeshes={},this._meshesCfgsBeforeMeshCreation={},this.renderFlags=new $s,this.numGeometries=0,this.numPortions=0,this.numVisibleLayerPortions=0,this.numTransparentLayerPortions=0,this.numXRayedLayerPortions=0,this.numHighlightedLayerPortions=0,this.numSelectedLayerPortions=0,this.numEdgesLayerPortions=0,this.numPickableLayerPortions=0,this.numClippableLayerPortions=0,this.numCulledLayerPortions=0,this.numEntities=0,this._numTriangles=0,this._numLines=0,this._numPoints=0,this._edgeThreshold=t.edgeThreshold||10,this._origin=p.vec3(t.origin||[0,0,0]),this._position=p.vec3(t.position||[0,0,0]),this._rotation=p.vec3(t.rotation||[0,0,0]),this._quaternion=p.vec4(t.quaternion||[0,0,0,1]),this._conjugateQuaternion=p.vec4(t.quaternion||[0,0,0,1]),t.rotation&&p.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._scale=p.vec3(t.scale||[1,1,1]),this._worldRotationMatrix=p.mat4(),this._worldRotationMatrixConjugate=p.mat4(),this._matrix=p.mat4(),this._matrixDirty=!0,this._rebuildMatrices(),this._worldNormalMatrix=p.mat4(),p.inverseMat4(this._matrix,this._worldNormalMatrix),p.transposeMat4(this._worldNormalMatrix),(t.matrix||t.position||t.rotation||t.scale||t.quaternion)&&(this._viewMatrix=p.mat4(),this._viewNormalMatrix=p.mat4(),this._viewMatrixDirty=!0,this._matrixNonIdentity=!0),this._opacity=1,this._colorize=[1,1,1],this._saoEnabled=!1!==t.saoEnabled,this._pbrEnabled=!1!==t.pbrEnabled,this._colorTextureEnabled=!1!==t.colorTextureEnabled,this._isModel=t.isModel,this._isModel&&this.scene._registerModel(this),this._onCameraViewMatrix=this.scene.camera.on("matrix",(()=>{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 dh({id:Kh,texture:new Di({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new dh({id:Yh,texture:new Di({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),s=new dh({id:Xh,texture:new Di({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),i=new dh({id:Zh,texture:new Di({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),r=new dh({id:qh,texture:new Di({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=i,this._textures.defaultOcclusionTexture=r,this._textureSets.defaultTextureSet=new ph({id:Jh,model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:s,emissiveTexture:i,occlusionTexture:r})}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]),p.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]),p.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||zh),p.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),p.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),p.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),p.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&&(p.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),p.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),p.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),p.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,i=t.length;e{l.setImage(h,{minFilter:s,magFilter:i,wrapS:r,wrapT:o,wrapR:n,flipY:e.flipY,encoding:a}),this.glRedraw()},h.src=e.src;break;default:this._textureTranscoder?E.loadArraybuffer(e.src,(e=>{e.byteLength?this._textureTranscoder.transcode([e],l).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,l).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 dh({id:t,texture:l})}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,i,r,o,n;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(i=this._textures[e.metallicRoughnessTextureId],!i)return void this.error(`[createTextureSet] Texture not found: ${e.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`)}else i=this._textures.defaultMetalRoughTexture;if(void 0!==e.normalsTextureId&&null!==e.normalsTextureId){if(r=this._textures[e.normalsTextureId],!r)return void this.error(`[createTextureSet] Texture not found: ${e.normalsTextureId} - ensure that you create it first with createTexture()`)}else r=this._textures.defaultNormalsTexture;if(void 0!==e.emissiveTextureId&&null!==e.emissiveTextureId){if(o=this._textures[e.emissiveTextureId],!o)return void this.error(`[createTextureSet] Texture not found: ${e.emissiveTextureId} - ensure that you create it first with createTexture()`)}else o=this._textures.defaultEmissiveTexture;if(void 0!==e.occlusionTextureId&&null!==e.occlusionTextureId){if(n=this._textures[e.occlusionTextureId],!n)return void this.error(`[createTextureSet] Texture not found: ${e.occlusionTextureId} - ensure that you create it first with createTexture()`)}else n=this._textures.defaultOcclusionTexture;const a=new ph({id:t,model:this,colorTexture:s,metallicRoughnessTexture:i,normalsTexture:r,emissiveTexture:o,occlusionTexture:n});return this._textureSets[t]=a,a}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 Hh({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 this.error("[createMesh] SceneModel.createMesh() config missing: id"),!1;if(this._scheduledMeshes[e.id])return this.error(`[createMesh] SceneModel already has a mesh with this ID: ${e.id}`),!1;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 this.error(`Unsupported value for 'primitive': '${primitive}' ('geometryId' is absent) - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'.`),!1;if(!e.positions&&!e.positionsCompressed&&!e.buckets)return this.error("Param expected: 'positions', 'positionsCompressed' or `buckets` ('geometryId' is absent)"),!1;if(e.positions&&(e.positionsDecodeMatrix||e.positionsDecodeBoundary))return this.error("Illegal params: 'positions' not expected with 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(e.positionsCompressed&&!e.positionsDecodeMatrix&&!e.positionsDecodeBoundary)return this.error("Param expected: 'positionsCompressed' should be accompanied by 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(e.uvCompressed&&!e.uvDecodeMatrix)return this.error("Param expected: 'uvCompressed' should be accompanied by `uvDecodeMatrix` ('geometryId' is absent)"),!1;if(!(e.buckets||e.indices||"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive)){const t=(e.positions||e.positionsCompressed).length/3;e.indices=this._createDefaultIndices(t)}if(!e.buckets&&!e.indices&&"points"!==e.primitive)return e.indices=this._createDefaultIndices(numIndices),this.error(`Param expected: indices (required for '${e.primitive}' primitive type)`),!1;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'"),!1;const t=!(!this._dtxEnabled||"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive||e.textureSetId);if(e.origin=e.origin?p.addVec3(this._origin,e.origin,p.vec3()):this._origin,e.matrix)e.meshMatrix=e.matrix;else if(e.scale||e.rotation||e.position){const t=e.scale||Vh,s=e.position||jh,i=e.rotation||Qh;p.eulerToQuaternion(i,"XYZ",Wh),e.meshMatrix=p.composeMat4(s,Wh,t,p.mat4())}if(e.positionsDecodeBoundary&&(e.positionsDecodeMatrix=Gr(e.positionsDecodeBoundary,p.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])]):$h,e.opacity=void 0!==e.opacity&&null!==e.opacity?Math.floor(255*e.opacity):255,e.positions){const t=p.vec3(),s=[];Q(e.positions,s,t)&&(e.positions=s,e.origin=p.addVec3(e.origin,t,t))}if(e.positions){const t=p.collapseAABB3();e.positionsDecodeMatrix=p.mat4(),p.expandAABB3Points3(t,e.positions),e.positionsCompressed=Hr(e.positions,t,e.positionsDecodeMatrix),e.aabb=t}else if(e.positionsCompressed){const t=p.collapseAABB3();p.expandAABB3Points3(t,e.positionsCompressed),Nt.decompressAABB(t,e.positionsDecodeMatrix),e.aabb=t}if(e.buckets){const t=p.collapseAABB3();for(let s=0,i=e.buckets.length;s>24&255,r=s>>16&255,o=s>>8&255,n=255&s;switch(e.pickColor=new Uint8Array([n,o,r,i]),e.solid="solid"===e.primitive,t.origin=p.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),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,i=e.buckets.length;s>>0).toString(16)}_getVBOInstancingLayer(e){const t=this,s=e.origin,i=e.textureSetId||"-",r=e.geometryId,o=`${Math.round(s[0])}.${Math.round(s[1])}.${Math.round(s[2])}.${i}.${r}`;let n=this._vboInstancingLayers[o];if(n)return n;let a=e.textureSet;const l=e.geometry;for(;!n;)switch(l.primitive){case"triangles":case"surface":n=new Wo({model:t,textureSet:a,geometry:l,origin:s,layerIndex:0,solid:!1});break;case"solid":n=new Wo({model:t,textureSet:a,geometry:l,origin:s,layerIndex:0,solid:!0});break;case"lines":n=new xn({model:t,textureSet:a,geometry:l,origin:s,layerIndex:0});break;case"points":n=new Pa({model:t,textureSet:a,geometry:l,origin:s,layerIndex:0})}return this._vboInstancingLayers[o]=n,this.layerList.push(n),n}createEntity(e){if(void 0===e.id?e.id=p.createUUID():this.scene.components[e.id]&&(this.error(`Scene already has a Component with this ID: ${e.id} - will assign random ID`),e.id=p.createUUID()),void 0===e.meshIds)return void this.error("Config missing: meshIds");let t=0;this._visible&&!1!==e.visible&&(t|=z),this._pickable&&!1!==e.pickable&&(t|=Y),this._culled&&!1!==e.culled&&(t|=K),this._clippable&&!1!==e.clippable&&(t|=X),this._collidable&&!1!==e.collidable&&(t|=Z),this._edges&&!1!==e.edges&&(t|=ee),this._xrayed&&!1!==e.xrayed&&(t|=q),this._highlighted&&!1!==e.highlighted&&(t|=J),this._selected&&!1!==e.selected&&(t|=$),e.flags=t,this._createEntity(e)}_createEntity(e){let t=[];for(let s=0,i=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,i=t.visibleLayers.length;s65536?16:8)}else n=[{positionsCompressed:i,indices:r,edgeIndices:o}];return n}class sc extends x{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)||m.has(e.id)||f.has(e.id))).reduce(((e,s)=>{let i,r=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?(i=0===t.xrayMaterial.fillAlpha&&0!==t.xrayMaterial.edgeAlpha?.1:t.xrayMaterial.fillAlpha,i=Math.round(255*i).toString(16).padStart(2,"0"),r=i+r):d.has(s.id)&&(i=Math.round(255*s.opacity).toString(16).padStart(2,"0"),r=i+r),e[r]||(e[r]=[]);const o=s.id,n=s.originalSystemId,a={ifc_guid:n,originating_system:this.originatingSystem};return n!==o&&(a.authoring_tool_id=o),e[r].push(a),e}),{}),E=Object.entries(y).map((([e,t])=>({color:e,components:t})));o.components.coloring=E;const g=t.objectIds,v=t.visibleObjects,I=t.visibleObjectIds,_=g.filter((e=>!v[e])),T=t.selectedObjectIds;return e.defaultInvisible||I.length<_.length?(o.components.visibility.exceptions=this._createBCFComponents(I),o.components.visibility.default_visibility=!1):(o.components.visibility.exceptions=this._createBCFComponents(_),o.components.visibility.default_visibility=!0),o.components.selection=this._createBCFComponents(T),o.components.translucency=this._createBCFComponents(t.xrayedObjectIds),!1!==e.snapshot&&(o.snapshot={snapshot_type:"png",snapshot_data:this.viewer.getSnapshot({format:"png"})}),o}_createBCFComponents(e){const t=this.viewer.scene,s=[];for(let i=0,r=e.length;i0&&e.clipping_planes.forEach((function(e){let t=hc(e.location,ic),s=hc(e.direction,ic);h&&p.negateVec3(s),p.subVec3(t,l),r.yUp&&(t=uc(t),s=uc(s)),new di(i,{pos:t,dir:s})})),i.clearLines(),e.lines&&e.lines.length>0){const t=[],s=[];let r=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(r++),s.push(r++))})),new sc(i,{positions:t,indices:s,clippable:!1,collidable:!0})}if(i.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){const t=e.bitmap_type||"jpg",s=e.bitmap_data;let o=hc(e.location,rc),n=hc(e.normal,oc),a=hc(e.up,nc),l=e.height||1;t&&s&&o&&n&&a&&(r.yUp&&(o=uc(o),n=uc(n),a=uc(a)),new Gi(i,{src:s,type:t,pos:o,normal:n,up:a,clippable:!1,collidable:!0,height:l}))})),a&&(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((e=>this._withBCFComponent(t,e,(e=>e.visible=!1))))):(i.setObjectsVisible(i.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!0)))));const r=e.components.visibility.view_setup_hints;r&&(!1===r.spaces_visible&&i.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==r.spaces_translucent&&i.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcSpace"),!0),r.space_boundaries_visible,!1===r.openings_visible&&i.setObjectsVisible(s.metaScene.getObjectIDsByType("IfcOpening"),!0),r.space_boundaries_translucent,void 0!==r.openings_translucent&&i.setObjectsXRayed(s.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(i.setObjectsSelected(i.selectedObjectIds,!1),e.components.selection.forEach((e=>this._withBCFComponent(t,e,(e=>e.selected=!0))))),e.components.translucency&&(i.setObjectsXRayed(i.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,i=0,r=!1;8===s.length&&(i=parseInt(s.substring(0,2),16)/256,i<=1&&i>=.95&&(i=1),s=s.substring(2),r=!0);const o=[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=o,r&&(e.opacity=i)}))))}))}if(e.perspective_camera||e.orthogonal_camera){let a,h,c,u;if(e.perspective_camera?(a=hc(e.perspective_camera.camera_view_point,ic),h=hc(e.perspective_camera.camera_direction,ic),c=hc(e.perspective_camera.camera_up_vector,ic),r.perspective.fov=e.perspective_camera.field_of_view,u="perspective"):(a=hc(e.orthogonal_camera.camera_view_point,ic),h=hc(e.orthogonal_camera.camera_direction,ic),c=hc(e.orthogonal_camera.camera_up_vector,ic),r.ortho.scale=e.orthogonal_camera.view_to_world_scale,u="ortho"),p.subVec3(a,l),r.yUp&&(a=uc(a),h=uc(h),c=uc(c)),o){const e=i.pick({pickSurface:!0,origin:a,direction:h});h=e?e.worldPos:p.addVec3(a,h,ic)}else h=p.addVec3(a,h,ic);n?(r.eye=a,r.look=h,r.up=c,r.projection=u):s.cameraFlight.flyTo({eye:a,look:h,up:c,duration:t.duration,projection:u})}}_withBCFComponent(e,t,s){const i=this.viewer,r=i.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){const o=t.authoring_tool_id,n=r.objects[o];if(n)return void s(n);if(e.updateCompositeObjects){if(i.metaScene.metaObjects[o])return void r.withObjects(i.metaScene.getObjectIDsInSubtree(o),s)}}if(t.ifc_guid){const o=t.ifc_guid,n=r.objects[o];if(n)return void s(n);if(e.updateCompositeObjects){if(i.metaScene.metaObjects[o])return void r.withObjects(i.metaScene.getObjectIDsInSubtree(o),s)}Object.keys(r.models).forEach((t=>{const n=p.globalizeObjectId(t,o),a=r.objects[n];if(a)s(a);else if(e.updateCompositeObjects){i.metaScene.metaObjects[n]&&r.withObjects(i.metaScene.getObjectIDsInSubtree(n),s)}}))}}destroy(){super.destroy()}}function lc(e){return{x:e[0],y:e[1],z:e[2]}}function hc(e,t){return(t=new Float64Array(3))[0]=e.x,t[1]=e.y,t[2]=e.z,t}function cc(e){return new Float64Array([e[0],-e[2],e[1]])}function uc(e){return new Float64Array([e[0],e[2],-e[1]])}const Ac=p.vec3(),pc=(e,t,s,i)=>{var r=e-s,o=t-i;return Math.sqrt(r*r+o*o)};class dc extends x{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 ne(s,t.origin),this._targetMarker=new ne(s,t.target),this._originWorld=p.vec3(),this._targetWorld=p.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 i=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,r=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,o=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},n=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))},l=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,h=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._targetDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._lengthWire=new ae(this._container,{color:this._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._xAxisWire=new ae(this._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._yAxisWire=new ae(this._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._zAxisWire=new ae(this._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._lengthLabel=new he(this._container,{fillColor:this._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._xAxisLabel=new he(this._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._yAxisLabel=new he(this._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._zAxisLabel=new he(this._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:i,onMouseLeave:r,onMouseWheel:h,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),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._labelsOnWires=!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,this.labelsOnWires=t.labelsOnWires}_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&&(p.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){p.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var i=this._pp,r=this._cp,o=e.canvas.canvas.getBoundingClientRect();const t=this._container.getBoundingClientRect();var n=o.top-t.top,a=o.left-t.left,l=e.canvas.boundary,h=l[2],c=l[3],u=0;const s=this.plugin.viewer.scene.metrics,f=s.scale,m=s.units,y=s.unitsInfo[m].abbrev;for(var A=0,d=i.length;A{const t=e.snappedCanvasPos||e.canvasPos;if(r=!0,o.set(e.worldPos),n.set(e.canvasPos),0===this._mouseState){const s=i.getBoundingClientRect(),r=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop,n=s.left+r,a=s.top+o;this._markerDiv.style.left=n+t[0]-5+"px",this._markerDiv.style.top=a+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"),h=e.entity}else this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px";i.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=o.slice(),this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px")})),i.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(a=e.clientX,l=e.clientY)}),i.addEventListener("mouseup",this._onMouseUp=t=>{1===t.which&&(t.clientX>a+20||t.clientXl+20||t.clientY{this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos),r=!1,this._markerDiv.style.left="-100px",this._markerDiv.style.top="-100px",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=!1,this._currentDistanceMeasurement.targetVisible=!1,this._currentDistanceMeasurement.axisVisible=!1),i.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 yc extends G{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.defaultLabelsOnWires=!1!==t.defaultLabelsOnWires,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 mc(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,i=new dc(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,labelsOnWires:!1!==e.labelsOnWires&&!1!==this.defaultLabelsOnWires,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("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,i||(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,i=!0)};this._onCanvasBoundary=e.scene.canvas.on("boundary",r),this._onCameraMatrix=e.scene.camera.on("matrix",r),this._onSceneTick=e.scene.on("tick",(t=>{i&&(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),i=!1))}));let o=!1;this._onSceneMouseDown=e.scene.input.on("mousedown",(()=>{o=!0})),this._onSceneMouseUp=e.scene.input.on("mouseup",(()=>{o=!1})),this._onSceneMouseMove=e.scene.input.on("mousemove",(()=>{o&&r()}))}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 gc{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 i=vc(e,s);return i?t?Ic(i,t):i:null}translatePlurals(e,t,s){const i=this._messages[this._locale];if(!i)return null;let r=vc(e,i);return r=0===(t=parseInt(""+t,10))?r.zero:t>1?r.other:r.one,r?(r=Ic(r,[t]),s&&(r=Ic(r,s)),r):null}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==s&&(this._events[e]=t||!0);const i=this._eventSubs[e];if(i)for(const e in i)if(i.hasOwnProperty(e)){i[e].callback(t)}}on(e,s){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new t),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});let i=this._eventSubs[e];i||(i={},this._eventSubs[e]=i);const r=this._eventSubIDMap.addItem();i[r]={callback:s},this._eventSubEvents[r]=e;const o=this._events[e];return void 0!==o&&s(o),r}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 vc(e,t){if(t[e])return t[e];const s=e.split(".");let i=t;for(let e=0,t=s.length;i&&e=1;e>1&&(e=1);const s=this.easing?Dc._ease(e,0,1,1):e,i=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?(p.subVec3(i.eye,i.look,Rc),i.eye=p.lerpVec3(s,0,1,this._eye1,this._eye2,Pc),i.look=p.subVec3(Pc,Rc,Tc)):this._flyingLook&&(i.look=p.lerpVec3(s,0,1,this._look1,this._look2,Tc),i.up=p.lerpVec3(s,0,1,this._up1,this._up2,bc)):this._flyingEyeLookUp&&(i.eye=p.lerpVec3(s,0,1,this._eye1,this._eye2,Pc),i.look=p.lerpVec3(s,0,1,this._look1,this._look2,Tc),i.up=p.lerpVec3(s,0,1,this._up1,this._up2,bc)),this._projection2){const t="ortho"===this._projection2?Dc._easeOutExpo(e,0,1,1):Dc._easeInCubic(e,0,1,1);i.customProjection.matrix=p.lerpMat4(t,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();D.scheduleTask(this._update,this)}static _ease(e,t,s,i){return-s*(e/=i)*(e-2)+t}static _easeInCubic(e,t,s,i){return s*(e/=i)*e*e+t}static _easeOutExpo(e,t,s,i){return s*(1-Math.pow(2,-10*e/i))+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 x{get type(){return"CameraPathAnimation"}constructor(e,t={}){super(e,t),this._cameraFlightAnimation=new Dc(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 i=performance.now(),r=this._lastTime?.001*(i-this._lastTime):0;if(this._lastTime=i,0!==r)switch(this.state){case Cc.SCRUBBING:return;case Cc.PLAYING:if(this._t+=this._playingRate*r,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*r*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,i){return-s*(e/=i)*(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 i=s.frames[e];i?(this.state=Cc.SCRUBBING,this._cameraFlightAnimation.flyTo(i,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,p.vec3(),p.vec3(),p.vec3(),p.vec3([0,-1,0]),p.vec4([0,0,0,1]);const Nc=p.vec3();class Oc{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?E.apply(s,{}):null;const i=!s||s.visible,r=!s||s.edges,o=!s||s.xrayed,n=!s||s.highlighted,a=!s||s.selected,l=!s||s.clippable,h=!s||s.pickable,c=!s||s.colorize,u=!s||s.opacity,A=t.metaObjects,p=e.objects;for(let e=0,t=A.length;e{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=p.vec3();p.decomposeMat4(p.inverseMat4(this._scene.viewer.camera.viewMatrix,p.mat4()),t,p.vec4(),p.vec3());const s=p.distVec3(t,e);let i=Math.tan(Math.PI/500)*s*this._pivotSphereSize;"ortho"==this._scene.camera.projection&&(i/=this._scene.camera.ortho.scale/2),j(e,this._rtcCenter,this._rtcPos),this._pivotSphereGeometry=new Fi(this._scene,pi({radius:i})),this._pivotSphere=new ci(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){p.transformPoint3(e.viewMatrix,this.getPivotPos(),this._pivotViewPos),this._pivotViewPos[3]=1,p.transformPoint4(e.projMatrix,this._pivotViewPos,this._pivotProjPos);const s=t.boundary,i=s[2],r=s[3];this._pivotCanvasPos[0]=Math.floor((1+this._pivotProjPos[0]/this._pivotProjPos[3])*i/2),this._pivotCanvasPos[1]=Math.floor((1-this._pivotProjPos[1]/this._pivotProjPos[3])*r/2);let o=t._lastBoundingClientRect;if(!o||t._canvasSizeChanged){const e=t.canvas;o=t._lastBoundingClientRect=e.getBoundingClientRect()}this._pivotElement&&(this._pivotElement.style.left=Math.floor(o.left+this._pivotCanvasPos[0])-this._pivotElement.clientWidth/2+window.scrollX+"px",this._pivotElement.style.top=Math.floor(o.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),p.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 Lt(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=p.lookAtMat4v(e.eye,e.look,e.worldUp);p.transformPoint3(t,this.getPivotPos(),this._cameraOffset);const s=this.getPivotPos();this._cameraOffset[2]+=p.distVec3(e.eye,s),t=p.inverseMat4(t);const i=p.transformVec3(t,this._cameraOffset),r=p.vec3();if(p.subVec3(e.eye,s,r),p.addVec3(r,i),e.zUp){const e=r[1];r[1]=r[2],r[2]=e}this._radius=p.lenVec3(r),this._polar=Math.acos(r[1]/this._radius),this._azimuth=Math.atan2(r[0],r[2]),this._pivoting=!0}_cameraLookingDownwards(){const e=this._scene.camera,t=p.normalizeVec3(p.subVec3(e.look,e.eye,Gc)),s=p.cross3Vec3(t,e.worldUp,kc);return p.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(p.distVec3(this._scene.center,t.eye)),i=t.project.transposedMatrix,r=i.subarray(8,12),o=i.subarray(12),n=[0,0,-1,1],a=p.dotVec4(n,r)/p.dotVec4(n,o),l=jc;t.project.unproject(e,a,Qc,Wc,l);const h=p.normalizeVec3(p.subVec3(l,t.eye,Gc)),c=p.addVec3(t.eye,p.mulVec3Scalar(h,s,kc),Vc);this.setPivotPos(c)}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 i=-e;const r=-t;1===s.worldUp[2]&&(i=-i),this._azimuth+=.01*-i,this._polar+=.01*r,this._polar=p.clamp(this._polar,.001,Math.PI-.001);const o=[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=o[1];o[1]=o[2],o[2]=e}const n=p.lenVec3(p.subVec3(s.look,s.eye,p.vec3())),a=this.getPivotPos();p.addVec3(o,a);let l=p.lookAtMat4v(o,a,s.worldUp);l=p.inverseMat4(l);const h=p.transformVec3(l,this._cameraOffset);l[12]-=h[0],l[13]-=h[1],l[14]-=h[2];const c=[l[8],l[9],l[10]];s.eye=[l[12],l[13],l[14]],p.subVec3(s.eye,p.mulVec3Scalar(c,n),s.look),s.up=[l[4],l[5],l[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 Kc{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=p.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 _e;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 Yc=p.vec2();class Xc{constructor(e,t,s,i,r){this._scene=e;const o=t.pickController;let n,a,l,h=0,c=0,u=0,A=0,d=!1;const f=p.vec3();let m=!0;const y=this._scene.canvas.canvas,E=[];function g(e=!0){y.style.cursor="move",h=i.pointerCanvasPos[0],c=i.pointerCanvasPos[1],u=i.pointerCanvasPos[0],A=i.pointerCanvasPos[1],e&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),o.picked&&o.pickedSurface&&o.pickResult&&o.pickResult.worldPos?(d=!0,f.set(o.pickResult.worldPos)):d=!1)}document.addEventListener("keydown",this._documentKeyDownHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const i=t.keyCode;E[i]=!0}),document.addEventListener("keyup",this._documentKeyUpHandler=t=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;const i=t.keyCode;E[i]=!1}),y.addEventListener("mousedown",this._mouseDownHandler=t=>{if(s.active&&s.pointerEnabled)switch(t.which){case 1:E[e.input.KEY_SHIFT]||s.planView?(n=!0,g()):(n=!0,g(!1));break;case 2:a=!0,g();break;case 3:l=!0,s.panRightClick&&g()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=()=>{if(!s.active||!s.pointerEnabled)return;if(!n&&!a&&!l)return;const t=e.canvas.boundary,o=t[2],u=t[3],A=i.pointerCanvasPos[0],m=i.pointerCanvasPos[1];if(E[e.input.KEY_SHIFT]||s.planView||!s.panRightClick&&a||s.panRightClick&&l){const t=A-h,s=m-c,i=e.camera;if("perspective"===i.projection){const o=Math.abs(d?p.lenVec3(p.subVec3(f,e.camera.eye,[])):e.camera.eyeLookDist)*Math.tan(i.perspective.fov/2*Math.PI/180);r.panDeltaX+=1.5*t*o/u,r.panDeltaY+=1.5*s*o/u}else r.panDeltaX+=.5*i.ortho.scale*(t/u),r.panDeltaY+=.5*i.ortho.scale*(s/u)}else!n||a||l||s.planView||(s.firstPerson?(r.rotateDeltaY-=(A-h)/o*s.dragRotationRate/2,r.rotateDeltaX+=(m-c)/u*(s.dragRotationRate/4)):(r.rotateDeltaY-=(A-h)/o*(1.5*s.dragRotationRate),r.rotateDeltaX+=(m-c)/u*(1.5*s.dragRotationRate)));h=A,c=m}),y.addEventListener("mousemove",this._canvasMouseMoveHandler=e=>{s.active&&s.pointerEnabled&&i.mouseover&&(m=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{if(s.active&&s.pointerEnabled)switch(e.which){case 1:case 2:case 3:n=!1,a=!1,l=!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,i=0,r=0,o=0,n=0;for(;s.offsetParent;)i+=s.offsetLeft,r+=s.offsetTop,o+=s.scrollLeft,n+=s.scrollTop,s=s.offsetParent;t[0]=e.pageX+o-i,t[1]=e.pageY+n-r}else e=window.event,t[0]=e.x,t[1]=e.y}(e,Yc);const s=Yc[0],i=Yc[1];Math.abs(s-u)<3&&Math.abs(i-A)<3&&t.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:Yc,event:e},!0)}y.style.removeProperty("cursor")}}),y.addEventListener("mouseenter",this._mouseEnterHandler=()=>{s.active&&s.pointerEnabled});const v=1/60;let I=null;y.addEventListener("wheel",this._mouseWheelHandler=e=>{if(!s.active||!s.pointerEnabled)return;const t=performance.now()/1e3;var o=null!==I?t-I:0;I=t,o>.05&&(o=.05),o{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!i.mouseover)return;const n=r._isKeyDownForAction(r.AXIS_VIEW_RIGHT),a=r._isKeyDownForAction(r.AXIS_VIEW_BACK),l=r._isKeyDownForAction(r.AXIS_VIEW_LEFT),h=r._isKeyDownForAction(r.AXIS_VIEW_FRONT),c=r._isKeyDownForAction(r.AXIS_VIEW_TOP),u=r._isKeyDownForAction(r.AXIS_VIEW_BOTTOM);if(!(n||a||l||h||c||u))return;const A=e.aabb,d=p.getAABB3Diag(A);p.getAABB3Center(A,Zc);const f=Math.abs(d/Math.tan(t.cameraFlight.fitFOV*p.DEGTORAD)),m=1.1*d;tu.orthoScale=m,n?(tu.eye.set(p.addVec3(Zc,p.mulVec3Scalar(o.worldRight,f,qc),eu)),tu.look.set(Zc),tu.up.set(o.worldUp)):a?(tu.eye.set(p.addVec3(Zc,p.mulVec3Scalar(o.worldForward,f,qc),eu)),tu.look.set(Zc),tu.up.set(o.worldUp)):l?(tu.eye.set(p.addVec3(Zc,p.mulVec3Scalar(o.worldRight,-f,qc),eu)),tu.look.set(Zc),tu.up.set(o.worldUp)):h?(tu.eye.set(p.addVec3(Zc,p.mulVec3Scalar(o.worldForward,-f,qc),eu)),tu.look.set(Zc),tu.up.set(o.worldUp)):c?(tu.eye.set(p.addVec3(Zc,p.mulVec3Scalar(o.worldUp,f,qc),eu)),tu.look.set(Zc),tu.up.set(p.normalizeVec3(p.mulVec3Scalar(o.worldForward,1,Jc),$c))):u&&(tu.eye.set(p.addVec3(Zc,p.mulVec3Scalar(o.worldUp,-f,qc),eu)),tu.look.set(Zc),tu.up.set(p.normalizeVec3(p.mulVec3Scalar(o.worldForward,-1,Jc)))),!s.firstPerson&&s.followPointer&&t.pivotController.setPivotPos(Zc),t.cameraFlight.duration>0?t.cameraFlight.flyTo(tu,(()=>{t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot()})):(t.cameraFlight.jumpTo(tu),t.pivotController.getPivoting()&&s.followPointer&&t.pivotController.showPivot())}))}reset(){}destroy(){this._scene.input.off(this._onSceneKeyDown)}}class iu{constructor(e,t,s,i,r){this._scene=e;const o=t.pickController,n=t.pivotController,a=t.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;let l=!1,h=!1;const c=this._scene.canvas.canvas,u=s=>{let i;s&&s.worldPos&&(i=s.worldPos);const r=s&&s.entity?s.entity.aabb:e.aabb;if(i){const s=e.camera;p.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:r})}else t.cameraFlight.flyTo({aabb:r})},A=e.tickify(this._canvasMouseMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(l||h)return;const r=a.hasSubs("hover"),n=a.hasSubs("hoverEnter"),c=a.hasSubs("hoverOut"),u=a.hasSubs("hoverOff"),A=a.hasSubs("hoverSurface"),p=a.hasSubs("hoverSnapOrSurface");if(r||n||c||u||A||p)if(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=A,o.scheduleSnapOrPick=p,o.update(),o.pickResult){if(o.pickResult.entity){const t=o.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&a.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),a.fire("hoverEnter",o.pickResult,!0),this._lastPickedEntityId=t)}a.fire("hover",o.pickResult,!0),(o.pickResult.worldPos||o.pickResult.snappedWorldPos)&&a.fire("hoverSurface",o.pickResult,!0)}else void 0!==this._lastPickedEntityId&&(a.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),a.fire("hoverOff",{canvasPos:o.pickCursorPos},!0)});c.addEventListener("mousemove",A),c.addEventListener("mousedown",this._canvasMouseDownHandler=t=>{1===t.which&&(l=!0),3===t.which&&(h=!0);if(1===t.which&&s.active&&s.pointerEnabled&&(i.mouseDownClientX=t.clientX,i.mouseDownClientY=t.clientY,i.mouseDownCursorX=i.pointerCanvasPos[0],i.mouseDownCursorY=i.pointerCanvasPos[1],!s.firstPerson&&s.followPointer&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),1===t.which))){const t=o.pickResult;t&&t.worldPos?(n.setPivotPos(t.worldPos),n.startPivot()):(s.smartPivot?n.setCanvasPivotPos(i.pointerCanvasPos):n.setPivotPos(e.camera.look),n.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{1===e.which&&(l=!1),3===e.which&&(h=!1),n.getPivoting()&&n.endPivot()}),c.addEventListener("mouseup",this._canvasMouseUpHandler=r=>{if(!s.active||!s.pointerEnabled)return;if(!(1===r.which))return;if(n.hidePivot(),Math.abs(r.clientX-i.mouseDownClientX)>3||Math.abs(r.clientY-i.mouseDownClientY)>3)return;const l=a.hasSubs("picked"),h=a.hasSubs("pickedNothing"),c=a.hasSubs("pickedSurface"),A=a.hasSubs("doublePicked"),d=a.hasSubs("doublePickedSurface"),f=a.hasSubs("doublePickedNothing");if(!(s.doublePickFlyTo||A||d||f))return(l||h||c)&&(o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=c,o.update(),o.pickResult?(a.fire("picked",o.pickResult,!0),o.pickedSurface&&a.fire("pickedSurface",o.pickResult,!0)):a.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0)),void(this._clicks=0);if(this._clicks++,1===this._clicks){o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=s.doublePickFlyTo,o.schedulePickSurface=c,o.update();const e=o.pickResult,r=o.pickedSurface;this._timeout=setTimeout((()=>{e?(a.fire("picked",e,!0),r&&(a.fire("pickedSurface",e,!0),!s.firstPerson&&s.followPointer&&(t.pivotController.setPivotPos(e.worldPos),t.pivotController.startPivot()&&t.pivotController.showPivot()))):a.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0),this._clicks=0}),s.doubleClickTimeFrame)}else{if(null!==this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),o.pickCursorPos=i.pointerCanvasPos,o.schedulePickEntity=s.doublePickFlyTo||A||d,o.schedulePickSurface=o.schedulePickEntity&&d,o.update(),o.pickResult){if(a.fire("doublePicked",o.pickResult,!0),o.pickedSurface&&a.fire("doublePickedSurface",o.pickResult,!0),s.doublePickFlyTo&&(u(o.pickResult),!s.firstPerson&&s.followPointer)){const e=o.pickResult.entity.aabb,s=p.getAABB3Center(e);t.pivotController.setPivotPos(s),t.pivotController.startPivot()&&t.pivotController.showPivot()}}else if(a.fire("doublePickedNothing",{canvasPos:i.pointerCanvasPos},!0),s.doublePickFlyTo&&(u(),!s.firstPerson&&s.followPointer)){const s=e.aabb,i=p.getAABB3Center(s);t.pivotController.setPivotPos(i),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 ru{constructor(e,t,s,i,r){this._scene=e;const o=e.input,n=[],a=e.canvas.canvas;let l=!0;this._onSceneMouseMove=o.on("mousemove",(()=>{l=!0})),this._onSceneKeyDown=o.on("keydown",(t=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&i.mouseover&&(n[t]=!0,t===o.KEY_SHIFT&&(a.style.cursor="move"))})),this._onSceneKeyUp=o.on("keyup",(i=>{s.active&&s.pointerEnabled&&e.input.keyboardEnabled&&(n[i]=!1,i===o.KEY_SHIFT&&(a.style.cursor=null),t.pivotController.getPivoting()&&t.pivotController.endPivot())})),this._onTick=e.on("tick",(a=>{if(!s.active||!s.pointerEnabled||!e.input.keyboardEnabled)return;if(!i.mouseover)return;const h=t.cameraControl,c=a.deltaTime/1e3;if(!s.planView){const e=h._isKeyDownForAction(h.ROTATE_Y_POS,n),i=h._isKeyDownForAction(h.ROTATE_Y_NEG,n),o=h._isKeyDownForAction(h.ROTATE_X_POS,n),a=h._isKeyDownForAction(h.ROTATE_X_NEG,n),l=c*s.keyboardRotationRate;(e||i||o||a)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),e?r.rotateDeltaY+=l:i&&(r.rotateDeltaY-=l),o?r.rotateDeltaX+=l:a&&(r.rotateDeltaX-=l),!s.firstPerson&&s.followPointer&&t.pivotController.startPivot())}if(!n[o.KEY_CTRL]&&!n[o.KEY_ALT]){const e=h._isKeyDownForAction(h.DOLLY_BACKWARDS,n),o=h._isKeyDownForAction(h.DOLLY_FORWARDS,n);if(e||o){const n=c*s.keyboardDollyRate;!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),o?r.dollyDelta-=n:e&&(r.dollyDelta+=n),l&&(i.followPointerDirty=!0,l=!1)}}const u=h._isKeyDownForAction(h.PAN_FORWARDS,n),A=h._isKeyDownForAction(h.PAN_BACKWARDS,n),p=h._isKeyDownForAction(h.PAN_LEFT,n),d=h._isKeyDownForAction(h.PAN_RIGHT,n),f=h._isKeyDownForAction(h.PAN_UP,n),m=h._isKeyDownForAction(h.PAN_DOWN,n),y=(n[o.KEY_ALT]?.3:1)*c*s.keyboardPanRate;(u||A||p||d||f||m)&&(!s.firstPerson&&s.followPointer&&t.pivotController.startPivot(),m?r.panDeltaY+=y:f&&(r.panDeltaY+=-y),d?r.panDeltaX+=-y:p&&(r.panDeltaX+=y),A?r.panDeltaZ+=y:u&&(r.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 ou=.001,nu=p.vec3();class au{constructor(e,t,s,i,r){this._scene=e;const o=e.camera,n=t.pickController,a=t.pivotController,l=t.panController;let h=1,c=1,u=null;this._onTick=e.on("tick",(()=>{if(!s.active||!s.pointerEnabled)return;let t="default";if(Math.abs(r.dollyDelta){i.mouseover=!0}),o.addEventListener("mouseleave",this._mouseLeaveHandler=()=>{i.mouseover=!1,o.style.cursor=null}),document.addEventListener("mousemove",this._mouseMoveHandler=e=>{hu(e,o,i.pointerCanvasPos)}),o.addEventListener("mousedown",this._mouseDownHandler=e=>{s.active&&s.pointerEnabled&&(hu(e,o,i.pointerCanvasPos),i.mouseover=!0)}),o.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 hu(e,t,s){if(e){const{left:i,top:r}=t.getBoundingClientRect();s[0]=e.clientX-i-window.scrollX,s[1]=e.clientY-r-window.scrollY}else e=window.event,s[0]=e.x,s[1]=e.y;return s}const cu=function(e,t){if(e){let s=e.target,i=0,r=0;for(;s.offsetParent;)i+=s.offsetLeft,r+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-i,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t};class uu{constructor(e,t,s,i,r){this._scene=e;const o=t.pickController,n=t.pivotController,a=p.vec2(),l=p.vec2(),h=p.vec2(),c=p.vec2(),u=[],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 r=t.touches,l=t.changedTouches;for(i.touchStartTime=Date.now(),1===r.length&&1===l.length&&(cu(r[0],a),s.followPointer&&(o.pickCursorPos=a,o.schedulePickSurface=!0,o.update(),s.planView||(o.picked&&o.pickedSurface&&o.pickResult&&o.pickResult.worldPos?(n.setPivotPos(o.pickResult.worldPos),!s.firstPerson&&n.startPivot()&&n.showPivot()):(s.smartPivot?n.setCanvasPivotPos(i.pointerCanvasPos):n.setPivotPos(e.camera.look),!s.firstPerson&&n.startPivot()&&n.showPivot()))));u.length{n.getPivoting()&&n.endPivot()}),A.addEventListener("touchmove",this._canvasTouchMoveHandler=t=>{if(!s.active||!s.pointerEnabled)return;if(t.stopPropagation(),t.preventDefault(),f)return;f=!0;const n=e.canvas.boundary,a=n[2],A=n[3],m=t.touches;if(t.touches.length===d){if(1===d){cu(m[0],l),p.subVec2(l,u[0],c);const t=c[0],o=c[1];if(null!==i.longTouchTimeout&&(Math.abs(t)>s.longTapRadius||Math.abs(o)>s.longTapRadius)&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null),s.planView){const i=e.camera;if("perspective"===i.projection){const n=Math.abs(e.camera.eyeLookDist)*Math.tan(i.perspective.fov/2*Math.PI/180);r.panDeltaX+=t*n/A*s.touchPanRate,r.panDeltaY+=o*n/A*s.touchPanRate}else r.panDeltaX+=.5*i.ortho.scale*(t/A)*s.touchPanRate,r.panDeltaY+=.5*i.ortho.scale*(o/A)*s.touchPanRate}else r.rotateDeltaY-=t/a*(1*s.dragRotationRate),r.rotateDeltaX+=o/A*(1.5*s.dragRotationRate)}else if(2===d){const t=m[0],n=m[1];cu(t,l),cu(n,h);const a=p.geometricMeanVec2(u[0],u[1]),c=p.geometricMeanVec2(l,h),d=p.vec2();p.subVec2(a,c,d);const f=d[0],y=d[1],E=e.camera,g=p.distVec2([t.pageX,t.pageY],[n.pageX,n.pageY]),v=(p.distVec2(u[0],u[1])-g)*s.touchDollyRate;if(r.dollyDelta=v,Math.abs(v)<1)if("perspective"===E.projection){const t=o.pickResult?o.pickResult.worldPos:e.center,i=Math.abs(p.lenVec3(p.subVec3(t,e.camera.eye,[])))*Math.tan(E.perspective.fov/2*Math.PI/180);r.panDeltaX-=f*i/A*s.touchPanRate,r.panDeltaY-=y*i/A*s.touchPanRate}else r.panDeltaX-=.5*E.ortho.scale*(f/A)*s.touchPanRate,r.panDeltaY-=.5*E.ortho.scale*(y/A)*s.touchPanRate;i.pointerCanvasPos=c}for(let e=0;e{let i;s&&s.worldPos&&(i=s.worldPos);const r=s?s.entity.aabb:e.aabb;if(i){const s=e.camera;p.subVec3(s.eye,s.look,[]),t.cameraFlight.flyTo({aabb:r})}else t.cameraFlight.flyTo({aabb:r})};A.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{if(!s.active||!s.pointerEnabled)return;null!==i.longTouchTimeout&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null);const r=e.touches,o=e.changedTouches;if(a=Date.now(),1===r.length&&1===o.length){c=a,Au(r[0],h);const o=h[0],n=h[1],l=r[0].pageX,u=r[0].pageY;i.longTouchTimeout=setTimeout((()=>{t.cameraControl.fire("rightClick",{pagePos:[Math.round(l),Math.round(u)],canvasPos:[Math.round(o),Math.round(n)],event:e},!0),i.longTouchTimeout=null}),s.longTapTimeout)}else c=-1;for(;l.length{if(!s.active||!s.pointerEnabled)return;const t=Date.now(),r=e.touches,a=e.changedTouches,A=n.hasSubs("pickedSurface");null!==i.longTouchTimeout&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null),0===r.length&&1===a.length&&c>-1&&t-c<150&&(u>-1&&c-u<325?(Au(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=A,o.update(),o.pickResult?(o.pickResult.touchInput=!0,n.fire("doublePicked",o.pickResult),o.pickedSurface&&n.fire("doublePickedSurface",o.pickResult),s.doublePickFlyTo&&d(o.pickResult)):(n.fire("doublePickedNothing"),s.doublePickFlyTo&&d()),u=-1):p.distVec2(l[0],h)<4&&(Au(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=A,o.update(),o.pickResult?(o.pickResult.touchInput=!0,n.fire("picked",o.pickResult),o.pickedSurface&&n.fire("pickedSurface",o.pickResult)):n.fire("pickedNothing"),u=t),c=-1),l.length=r.length;for(let e=0,t=r.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:p.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:p.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 Kc(this,this._configs),pivotController:new zc(s,this._configs),panController:new Hc(s),cameraFlight:new Dc(this,{duration:.5})},this._handlers=[new lu(this.scene,this._controllers,this._configs,this._states,this._updates),new uu(this.scene,this._controllers,this._configs,this._states,this._updates),new Xc(this.scene,this._controllers,this._configs,this._states,this._updates),new su(this.scene,this._controllers,this._configs,this._states,this._updates),new iu(this.scene,this._controllers,this._configs,this._states,this._updates),new pu(this.scene,this._controllers,this._configs,this._states,this._updates),new ru(this.scene,this._controllers,this._configs,this._states,this._updates)],this._cameraUpdater=new au(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",E.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,i=s.length;e0?vu(t):null,n=s&&s.length>0?vu(s):null,a=e=>{if(!e)return;var t=!0;(n&&n[e.type]||o&&!o[e.type])&&(t=!1),t&&i.push(e.id);const s=e.children;if(s)for(var r=0,l=s.length;r>t;i.sort(EA);const s=new Int32Array(e.length);for(let t=0,r=i.length;te[t+1]){let i=e[t];e[t]=e[t+1],e[t+1]=i}FA=new Int32Array(e),t.sort(IA);const i=new Int32Array(e.length);for(let s=0,r=t.length;st){let i=e;e=t,t=i}function i(i,s){return i!==e?e-i:s!==t?t-s:0}let s=0,r=(o.length>>1)-1;for(;s<=r;){const e=r+s>>1,t=i(o[2*e],o[2*e+1]);if(t>0)s=e+1;else{if(!(t<0))return e;r=e-1}}return-s-1}const a=new Int32Array(o.length/2);a.fill(0);const l=s.length/3;if(l>8*(1<u.maxNumPositions&&(u=c()),u.bucketNumber>8)return[e];let p;-1===A[l]&&(A[l]=u.numPositions++,u.positionsCompressed.push(s[3*l]),u.positionsCompressed.push(s[3*l+1]),u.positionsCompressed.push(s[3*l+2])),-1===A[h]&&(A[h]=u.numPositions++,u.positionsCompressed.push(s[3*h]),u.positionsCompressed.push(s[3*h+1]),u.positionsCompressed.push(s[3*h+2])),-1===A[d]&&(A[d]=u.numPositions++,u.positionsCompressed.push(s[3*d]),u.positionsCompressed.push(s[3*d+1]),u.positionsCompressed.push(s[3*d+2])),u.indices.push(A[l]),u.indices.push(A[h]),u.indices.push(A[d]),(p=n(l,h))>=0&&0===a[p]&&(a[p]=1,u.edgeIndices.push(A[o[2*p]]),u.edgeIndices.push(A[o[2*p+1]])),(p=n(l,d))>=0&&0===a[p]&&(a[p]=1,u.edgeIndices.push(A[o[2*p]]),u.edgeIndices.push(A[o[2*p+1]])),(p=n(h,d))>=0&&0===a[p]&&(a[p]=1,u.edgeIndices.push(A[o[2*p]]),u.edgeIndices.push(A[o[2*p+1]]))}const d=t/8*2,p=t/8,g=2*s.length+(r.length+o.length)*d;let m=0,f=-s.length/3;return h.forEach((e=>{m+=2*e.positionsCompressed.length+(e.indices.length+e.edgeIndices.length)*p,f+=e.positionsCompressed.length/3})),m>g?[e]:(i&&function(e,t){const i={};let s=0;e.forEach((e=>{const t=e.indices,r=e.edgeIndices,o=e.positionsCompressed;for(let e=0,s=t.length;e0){const e=t._meshes;for(let t=0,i=e.length;t0){const e=this._meshes;for(let t=0,i=e.length;t{delete wA[t],i.destroy()}))),i}(this.scene.viewer),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this._aabb=d.collapseAABB3(),this._aabbDirty=!0,this._quantizationRanges={},this._vboInstancingLayers={},this._vboBatchingLayers={},this._dtxLayers={},this.layerList=[],this._entityList=[],this._geometries={},this._dtxBuckets={},this._textures={},this._textureSets={},this._transforms={},this._meshes={},this._entities={},this._scheduledMeshes={},this._meshesCfgsBeforeMeshCreation={},this.renderFlags=new $i,this.numGeometries=0,this.numPortions=0,this.numVisibleLayerPortions=0,this.numTransparentLayerPortions=0,this.numXRayedLayerPortions=0,this.numHighlightedLayerPortions=0,this.numSelectedLayerPortions=0,this.numEdgesLayerPortions=0,this.numPickableLayerPortions=0,this.numClippableLayerPortions=0,this.numCulledLayerPortions=0,this.numEntities=0,this._numTriangles=0,this._numLines=0,this._numPoints=0,this._edgeThreshold=t.edgeThreshold||10,this._origin=d.vec3(t.origin||[0,0,0]),this._position=d.vec3(t.position||[0,0,0]),this._rotation=d.vec3(t.rotation||[0,0,0]),this._quaternion=d.vec4(t.quaternion||[0,0,0,1]),this._conjugateQuaternion=d.vec4(t.quaternion||[0,0,0,1]),t.rotation&&d.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._scale=d.vec3(t.scale||[1,1,1]),this._worldRotationMatrix=d.mat4(),this._worldRotationMatrixConjugate=d.mat4(),this._matrix=d.mat4(),this._matrixDirty=!0,this._rebuildMatrices(),this._worldNormalMatrix=d.mat4(),d.inverseMat4(this._matrix,this._worldNormalMatrix),d.transposeMat4(this._worldNormalMatrix),(t.matrix||t.position||t.rotation||t.scale||t.quaternion)&&(this._viewMatrix=d.mat4(),this._viewNormalMatrix=d.mat4(),this._viewMatrixDirty=!0,this._matrixNonIdentity=!0),this._opacity=1,this._colorize=[1,1,1],this._saoEnabled=!1!==t.saoEnabled,this._pbrEnabled=!1!==t.pbrEnabled,this._colorTextureEnabled=!1!==t.colorTextureEnabled,this._isModel=t.isModel,this._isModel&&this.scene._registerModel(this),this._onCameraViewMatrix=this.scene.camera.on("matrix",(()=>{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 pA({id:KA,texture:new Ms({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),t=new pA({id:XA,texture:new Ms({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),i=new pA({id:YA,texture:new Ms({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),s=new pA({id:qA,texture:new Ms({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),r=new pA({id:ZA,texture:new Ms({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})});this._textures.defaultColorTexture=e,this._textures.defaultMetalRoughTexture=t,this._textures.defaultNormalsTexture=i,this._textures.defaultEmissiveTexture=s,this._textures.defaultOcclusionTexture=r,this._textureSets.defaultTextureSet=new dA({id:JA,model:this,colorTexture:e,metallicRoughnessTexture:t,normalsTexture:i,emissiveTexture:s,occlusionTexture:r})}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]),d.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]),d.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||WA),d.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),d.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),d.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),d.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&&(d.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),d.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),d.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),d.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,i=this._entityList.length;t0}set xrayed(e){e=!!e,this._xrayed=e;for(let t=0,i=this._entityList.length;t0}set highlighted(e){e=!!e,this._highlighted=e;for(let t=0,i=this._entityList.length;t0}set selected(e){e=!!e,this._selected=e;for(let t=0,i=this._entityList.length;t0}set edges(e){e=!!e,this._edges=e;for(let t=0,i=this._entityList.length;t0}set pickable(e){e=!1!==e,this._pickable=e;for(let t=0,i=this._entityList.length;t0)e.colorsCompressed=new Uint8Array(e.colorsCompressed);else if(e.colors&&e.colors.length>0){const t=e.colors,i=new Uint8Array(t.length);for(let e=0,s=t.length;e{l.setImage(A,{minFilter:i,magFilter:s,wrapS:r,wrapT:o,wrapR:n,flipY:e.flipY,encoding:a}),this.glRedraw()},A.src=e.src;break;default:this._textureTranscoder?_.loadArraybuffer(e.src,(e=>{e.byteLength?this._textureTranscoder.transcode([e],l).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,l).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 pA({id:t,texture:l})}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 i,s,r,o,n;if(void 0!==e.colorTextureId&&null!==e.colorTextureId){if(i=this._textures[e.colorTextureId],!i)return void this.error(`[createTextureSet] Texture not found: ${e.colorTextureId} - ensure that you create it first with createTexture()`)}else i=this._textures.defaultColorTexture;if(void 0!==e.metallicRoughnessTextureId&&null!==e.metallicRoughnessTextureId){if(s=this._textures[e.metallicRoughnessTextureId],!s)return void this.error(`[createTextureSet] Texture not found: ${e.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`)}else s=this._textures.defaultMetalRoughTexture;if(void 0!==e.normalsTextureId&&null!==e.normalsTextureId){if(r=this._textures[e.normalsTextureId],!r)return void this.error(`[createTextureSet] Texture not found: ${e.normalsTextureId} - ensure that you create it first with createTexture()`)}else r=this._textures.defaultNormalsTexture;if(void 0!==e.emissiveTextureId&&null!==e.emissiveTextureId){if(o=this._textures[e.emissiveTextureId],!o)return void this.error(`[createTextureSet] Texture not found: ${e.emissiveTextureId} - ensure that you create it first with createTexture()`)}else o=this._textures.defaultEmissiveTexture;if(void 0!==e.occlusionTextureId&&null!==e.occlusionTextureId){if(n=this._textures[e.occlusionTextureId],!n)return void this.error(`[createTextureSet] Texture not found: ${e.occlusionTextureId} - ensure that you create it first with createTexture()`)}else n=this._textures.defaultOcclusionTexture;const a=new dA({id:t,model:this,colorTexture:i,metallicRoughnessTexture:s,normalsTexture:r,emissiveTexture:o,occlusionTexture:n});return this._textureSets[t]=a,a}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 i=new NA({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[i.id]=i,i}createMesh(e){if(void 0===e.id||null===e.id)return this.error("[createMesh] SceneModel.createMesh() config missing: id"),!1;if(this._scheduledMeshes[e.id])return this.error(`[createMesh] SceneModel already has a mesh with this ID: ${e.id}`),!1;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 this.error(`Unsupported value for 'primitive': '${primitive}' ('geometryId' is absent) - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'.`),!1;if(!e.positions&&!e.positionsCompressed&&!e.buckets)return this.error("Param expected: 'positions', 'positionsCompressed' or `buckets` ('geometryId' is absent)"),!1;if(e.positions&&(e.positionsDecodeMatrix||e.positionsDecodeBoundary))return this.error("Illegal params: 'positions' not expected with 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(e.positionsCompressed&&!e.positionsDecodeMatrix&&!e.positionsDecodeBoundary)return this.error("Param expected: 'positionsCompressed' should be accompanied by 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(e.uvCompressed&&!e.uvDecodeMatrix)return this.error("Param expected: 'uvCompressed' should be accompanied by `uvDecodeMatrix` ('geometryId' is absent)"),!1;if(!(e.buckets||e.indices||"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive)){const t=(e.positions||e.positionsCompressed).length/3;e.indices=this._createDefaultIndices(t)}if(!e.buckets&&!e.indices&&"points"!==e.primitive)return e.indices=this._createDefaultIndices(numIndices),this.error(`Param expected: indices (required for '${e.primitive}' primitive type)`),!1;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'"),!1;const t=!(!this._dtxEnabled||"triangles"!==e.primitive&&"solid"!==e.primitive&&"surface"!==e.primitive||e.textureSetId);if(e.origin=e.origin?d.addVec3(this._origin,e.origin,d.vec3()):this._origin,e.matrix)e.meshMatrix=e.matrix;else if(e.scale||e.rotation||e.position){const t=e.scale||jA,i=e.position||HA,s=e.rotation||zA;d.eulerToQuaternion(s,"XYZ",GA),e.meshMatrix=d.composeMat4(i,GA,t,d.mat4())}if(e.positionsDecodeBoundary&&(e.positionsDecodeMatrix=Qr(e.positionsDecodeBoundary,d.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])]):$A,e.opacity=void 0!==e.opacity&&null!==e.opacity?Math.floor(255*e.opacity):255,e.positions){const t=d.vec3(),i=[];z(e.positions,i,t)&&(e.positions=i,e.origin=d.addVec3(e.origin,t,t))}if(e.positions){const t=d.collapseAABB3();e.positionsDecodeMatrix=d.mat4(),d.expandAABB3Points3(t,e.positions),e.positionsCompressed=Nr(e.positions,t,e.positionsDecodeMatrix),e.aabb=t}else if(e.positionsCompressed){const t=d.collapseAABB3();d.expandAABB3Points3(t,e.positionsCompressed),Ft.decompressAABB(t,e.positionsDecodeMatrix),e.aabb=t}if(e.buckets){const t=d.collapseAABB3();for(let i=0,s=e.buckets.length;i>24&255,r=i>>16&255,o=i>>8&255,n=255&i;switch(e.pickColor=new Uint8Array([n,o,r,s]),e.solid="solid"===e.primitive,t.origin=d.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),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 i=0,s=e.buckets.length;i>>0).toString(16)}_getVBOInstancingLayer(e){const t=this,i=e.origin,s=e.textureSetId||"-",r=e.geometryId,o=`${Math.round(i[0])}.${Math.round(i[1])}.${Math.round(i[2])}.${s}.${r}`;let n=this._vboInstancingLayers[o];if(n)return n;let a=e.textureSet;const l=e.geometry;for(;!n;)switch(l.primitive){case"triangles":case"surface":n=new Go({model:t,textureSet:a,geometry:l,origin:i,layerIndex:0,solid:!1});break;case"solid":n=new Go({model:t,textureSet:a,geometry:l,origin:i,layerIndex:0,solid:!0});break;case"lines":n=new Dn({model:t,textureSet:a,geometry:l,origin:i,layerIndex:0});break;case"points":n=new Pa({model:t,textureSet:a,geometry:l,origin:i,layerIndex:0})}return this._vboInstancingLayers[o]=n,this.layerList.push(n),n}createEntity(e){if(void 0===e.id?e.id=d.createUUID():this.scene.components[e.id]&&(this.error(`Scene already has a Component with this ID: ${e.id} - will assign random ID`),e.id=d.createUUID()),void 0===e.meshIds)return void this.error("Config missing: meshIds");let t=0;this._visible&&!1!==e.visible&&(t|=W),this._pickable&&!1!==e.pickable&&(t|=X),this._culled&&!1!==e.culled&&(t|=K),this._clippable&&!1!==e.clippable&&(t|=Y),this._collidable&&!1!==e.collidable&&(t|=q),this._edges&&!1!==e.edges&&(t|=ee),this._xrayed&&!1!==e.xrayed&&(t|=Z),this._highlighted&&!1!==e.highlighted&&(t|=J),this._selected&&!1!==e.selected&&(t|=$),e.flags=t,this._createEntity(e)}_createEntity(e){let t=[];for(let i=0,s=e.meshIds.length;ie.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,i=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 i=0,s=t.visibleLayers.length;i65536?16:8)}else n=[{positionsCompressed:s,indices:r,edgeIndices:o}];return n}class ih extends D{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;ep.has(e.id)||m.has(e.id)||g.has(e.id))).reduce(((e,i)=>{let s,r=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}(i.colorize);i.xrayed?(s=0===t.xrayMaterial.fillAlpha&&0!==t.xrayMaterial.edgeAlpha?.1:t.xrayMaterial.fillAlpha,s=Math.round(255*s).toString(16).padStart(2,"0"),r=s+r):p.has(i.id)&&(s=Math.round(255*i.opacity).toString(16).padStart(2,"0"),r=s+r),e[r]||(e[r]=[]);const o=i.id,n=i.originalSystemId,a={ifc_guid:n,originating_system:this.originatingSystem};return n!==o&&(a.authoring_tool_id=o),e[r].push(a),e}),{}),_=Object.entries(f).map((([e,t])=>({color:e,components:t})));o.components.coloring=_;const v=t.objectIds,b=t.visibleObjects,x=t.visibleObjectIds,w=v.filter((e=>!b[e])),y=t.selectedObjectIds;return e.defaultInvisible||x.length0&&e.clipping_planes.forEach((function(e){let t=Ah(e.location,sh),i=Ah(e.direction,sh);A&&d.negateVec3(i),d.subVec3(t,l),r.yUp&&(t=ch(t),i=ch(i)),new ps(s,{pos:t,dir:i})})),s.clearLines(),e.lines&&e.lines.length>0){const t=[],i=[];let r=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),i.push(r++),i.push(r++))})),new ih(s,{positions:t,indices:i,clippable:!1,collidable:!0})}if(s.clearBitmaps(),e.bitmaps&&e.bitmaps.length>0&&e.bitmaps.forEach((function(e){const t=e.bitmap_type||"jpg",i=e.bitmap_data;let o=Ah(e.location,rh),n=Ah(e.normal,oh),a=Ah(e.up,nh),l=e.height||1;t&&i&&o&&n&&a&&(r.yUp&&(o=ch(o),n=ch(n),a=ch(a)),new Qs(s,{src:i,type:t,pos:o,normal:n,up:a,clippable:!1,collidable:!0,height:l}))})),a&&(s.setObjectsXRayed(s.xrayedObjectIds,!1),s.setObjectsHighlighted(s.highlightedObjectIds,!1),s.setObjectsSelected(s.selectedObjectIds,!1)),e.components){if(e.components.visibility){e.components.visibility.default_visibility?(s.setObjectsVisible(s.objectIds,!0),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!1))))):(s.setObjectsVisible(s.objectIds,!1),e.components.visibility.exceptions&&e.components.visibility.exceptions.forEach((e=>this._withBCFComponent(t,e,(e=>e.visible=!0)))));const r=e.components.visibility.view_setup_hints;r&&(!1===r.spaces_visible&&s.setObjectsVisible(i.metaScene.getObjectIDsByType("IfcSpace"),!0),void 0!==r.spaces_translucent&&s.setObjectsXRayed(i.metaScene.getObjectIDsByType("IfcSpace"),!0),r.space_boundaries_visible,!1===r.openings_visible&&s.setObjectsVisible(i.metaScene.getObjectIDsByType("IfcOpening"),!0),r.space_boundaries_translucent,void 0!==r.openings_translucent&&s.setObjectsXRayed(i.metaScene.getObjectIDsByType("IfcOpening"),!0))}e.components.selection&&(s.setObjectsSelected(s.selectedObjectIds,!1),e.components.selection.forEach((e=>this._withBCFComponent(t,e,(e=>e.selected=!0))))),e.components.translucency&&(s.setObjectsXRayed(s.xrayedObjectIds,!1),e.components.translucency.forEach((e=>this._withBCFComponent(t,e,(e=>e.xrayed=!0))))),e.components.coloring&&e.components.coloring.forEach((e=>{let i=e.color,s=0,r=!1;8===i.length&&(s=parseInt(i.substring(0,2),16)/256,s<=1&&s>=.95&&(s=1),i=i.substring(2),r=!0);const o=[parseInt(i.substring(0,2),16)/256,parseInt(i.substring(2,4),16)/256,parseInt(i.substring(4,6),16)/256];e.components.map((e=>this._withBCFComponent(t,e,(e=>{e.colorize=o,r&&(e.opacity=s)}))))}))}if(e.perspective_camera||e.orthogonal_camera){let a,A,h,c;if(e.perspective_camera?(a=Ah(e.perspective_camera.camera_view_point,sh),A=Ah(e.perspective_camera.camera_direction,sh),h=Ah(e.perspective_camera.camera_up_vector,sh),r.perspective.fov=e.perspective_camera.field_of_view,c="perspective"):(a=Ah(e.orthogonal_camera.camera_view_point,sh),A=Ah(e.orthogonal_camera.camera_direction,sh),h=Ah(e.orthogonal_camera.camera_up_vector,sh),r.ortho.scale=e.orthogonal_camera.view_to_world_scale,c="ortho"),d.subVec3(a,l),r.yUp&&(a=ch(a),A=ch(A),h=ch(h)),o){const e=s.pick({pickSurface:!0,origin:a,direction:A});A=e?e.worldPos:d.addVec3(a,A,sh)}else A=d.addVec3(a,A,sh);n?(r.eye=a,r.look=A,r.up=h,r.projection=c):i.cameraFlight.flyTo({eye:a,look:A,up:h,duration:t.duration,projection:c})}}_withBCFComponent(e,t,i){const s=this.viewer,r=s.scene;if(t.authoring_tool_id&&t.originating_system===this.originatingSystem){const o=t.authoring_tool_id,n=r.objects[o];if(n)return void i(n);if(e.updateCompositeObjects){if(s.metaScene.metaObjects[o])return void r.withObjects(s.metaScene.getObjectIDsInSubtree(o),i)}}if(t.ifc_guid){const o=t.ifc_guid,n=r.objects[o];if(n)return void i(n);if(e.updateCompositeObjects){if(s.metaScene.metaObjects[o])return void r.withObjects(s.metaScene.getObjectIDsInSubtree(o),i)}Object.keys(r.models).forEach((t=>{const n=d.globalizeObjectId(t,o),a=r.objects[n];if(a)i(a);else if(e.updateCompositeObjects){s.metaScene.metaObjects[n]&&r.withObjects(s.metaScene.getObjectIDsInSubtree(n),i)}}))}}destroy(){super.destroy()}}function lh(e){return{x:e[0],y:e[1],z:e[2]}}function Ah(e,t){return(t=new Float64Array(3))[0]=e.x,t[1]=e.y,t[2]=e.z,t}function hh(e){return new Float64Array([e[0],-e[2],e[1]])}function ch(e){return new Float64Array([e[0],e[2],-e[1]])}const uh=d.vec3(),dh=(e,t,i,s)=>{var r=e-i,o=t-s;return Math.sqrt(r*r+o*o)};class ph extends D{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 i=this.plugin.viewer.scene;this._originMarker=new ne(i,t.origin),this._targetMarker=new ne(i,t.target),this._originWorld=d.vec3(),this._targetWorld=d.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 s=t.onMouseOver?e=>{t.onMouseOver(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseover",e))}:null,r=t.onMouseLeave?e=>{t.onMouseLeave(e,this),this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseleave",e))}:null,o=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousedown",e))},n=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mouseup",e))},a=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new MouseEvent("mousemove",e))},l=t.onContextMenu?e=>{t.onContextMenu(e,this)}:null,A=e=>{this.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent("wheel",e))};this._originDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._targetDot=new le(this._container,{fillColor:this._color,zIndex:void 0!==e.zIndex?e.zIndex+2:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._lengthWire=new ae(this._container,{color:this._color,thickness:2,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._xAxisWire=new ae(this._container,{color:"#FF0000",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._yAxisWire=new ae(this._container,{color:"green",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._zAxisWire=new ae(this._container,{color:"blue",thickness:1,thicknessClickable:6,zIndex:void 0!==e.zIndex?e.zIndex+1:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._lengthLabel=new Ae(this._container,{fillColor:this._color,prefix:"",text:"",zIndex:void 0!==e.zIndex?e.zIndex+4:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._xAxisLabel=new Ae(this._container,{fillColor:"red",prefix:"X",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._yAxisLabel=new Ae(this._container,{fillColor:"green",prefix:"Y",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),this._zAxisLabel=new Ae(this._container,{fillColor:"blue",prefix:"Z",text:"",zIndex:void 0!==e.zIndex?e.zIndex+3:void 0,onMouseOver:s,onMouseLeave:r,onMouseWheel:A,onMouseDown:o,onMouseUp:n,onMouseMove:a,onContextMenu:l}),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._labelsOnWires=!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=i.camera.on("viewMatrix",(()=>{this._vpDirty=!0,this._needUpdate(0)})),this._onProjMatrix=i.camera.on("projMatrix",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onCanvasBoundary=i.canvas.on("boundary",(()=>{this._cpDirty=!0,this._needUpdate(0)})),this._onMetricsUnits=i.metrics.on("units",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsScale=i.metrics.on("scale",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onMetricsOrigin=i.metrics.on("origin",(()=>{this._cpDirty=!0,this._needUpdate()})),this._onSectionPlaneUpdated=i.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,this.labelsOnWires=t.labelsOnWires}_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&&(d.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],i=this._targetMarker.viewPos[2];if(t>-.3||i>-.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){d.transformPositions4(e.camera.project.matrix,this._vp,this._pp);var s=this._pp,r=this._cp,o=e.canvas.canvas.getBoundingClientRect();const t=this._container.getBoundingClientRect();var n=o.top-t.top,a=o.left-t.left,l=e.canvas.boundary,A=l[2],h=l[3],c=0;const i=this.plugin.viewer.scene.metrics,g=i.scale,m=i.units,f=i.unitsInfo[m].abbrev;for(var u=0,p=s.length;u{const t=e.snappedCanvasPos||e.canvasPos;if(r=!0,o.set(e.worldPos),n.set(e.canvasPos),0===this._mouseState){const i=s.getBoundingClientRect(),r=window.pageXOffset||document.documentElement.scrollLeft,o=window.pageYOffset||document.documentElement.scrollTop,n=i.left+r,a=i.top+o;this._markerDiv.style.left=n+t[0]-5+"px",this._markerDiv.style.top=a+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"),A=e.entity}else this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px";s.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=o.slice(),this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px")})),s.addEventListener("mousedown",this._onMouseDown=e=>{1===e.which&&(a=e.clientX,l=e.clientY)}),s.addEventListener("mouseup",this._onMouseUp=t=>{1===t.which&&(t.clientX>a+20||t.clientXl+20||t.clientY{this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=e.canvasPos,this.pointerLens.snappedCanvasPos=e.snappedCanvasPos||e.canvasPos),r=!1,this._markerDiv.style.left="-100px",this._markerDiv.style.top="-100px",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=!1,this._currentDistanceMeasurement.targetVisible=!1,this._currentDistanceMeasurement.axisVisible=!1),s.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 fh extends Q{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.defaultLabelsOnWires=!1!==t.defaultLabelsOnWires,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 mh(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,i=e.target,s=new ph(this,{id:e.id,plugin:this,container:this._container,origin:{entity:t.entity,worldPos:t.worldPos},target:{entity:i.entity,worldPos:i.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,labelsOnWires:!1!==e.labelsOnWires&&!1!==this.defaultLabelsOnWires,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[s.id]=s,s.on("destroyed",(()=>{delete this._measurements[s.id]})),this.fire("measurementCreated",s),s}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,i]of Object.entries(this.measurements))i.labelShown=e}setAxisVisible(e){for(const[t,i]of Object.entries(this.measurements))i.axisVisible=e;this.defaultAxisVisible=e}getAxisVisible(){return this.defaultAxisVisible}clear(){const e=Object.keys(this._measurements);for(var t=0,i=e.length;t{i=1e3*this._delayBeforeRestoreSeconds,s||(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,s=!0)};this._onCanvasBoundary=e.scene.canvas.on("boundary",r),this._onCameraMatrix=e.scene.camera.on("matrix",r),this._onSceneTick=e.scene.on("tick",(t=>{s&&(i-=t.deltaTime,(!this._delayBeforeRestore||i<=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),s=!1))}));let o=!1;this._onSceneMouseDown=e.scene.input.on("mousedown",(()=>{o=!0})),this._onSceneMouseUp=e.scene.input.on("mouseup",(()=>{o=!1})),this._onSceneMouseMove=e.scene.input.on("mousemove",(()=>{o&&r()}))}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 vh{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 i=this._messages[this._locale];if(!i)return null;const s=bh(e,i);return s?t?xh(s,t):s:null}translatePlurals(e,t,i){const s=this._messages[this._locale];if(!s)return null;let r=bh(e,s);return r=0===(t=parseInt(""+t,10))?r.zero:t>1?r.other:r.one,r?(r=xh(r,[t]),i&&(r=xh(r,i)),r):null}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];if(s)for(const e in s)if(s.hasOwnProperty(e)){s[e].callback(t)}}on(e,i){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new t),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});let s=this._eventSubs[e];s||(s={},this._eventSubs[e]=s);const r=this._eventSubIDMap.addItem();s[r]={callback:i},this._eventSubEvents[r]=e;const o=this._events[e];return void 0!==o&&i(o),r}off(e){if(null==e)return;if(!this._eventSubEvents)return;const t=this._eventSubEvents[e];if(t){delete this._eventSubEvents[e];const i=this._eventSubs[t];i&&delete i[e],this._eventSubIDMap.removeItem(e)}}}function bh(e,t){if(t[e])return t[e];const i=e.split(".");let s=t;for(let e=0,t=i.length;s&&e=1;e>1&&(e=1);const i=this.easing?Mh._ease(e,0,1,1):e,s=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?(d.subVec3(s.eye,s.look,Ch),s.eye=d.lerpVec3(i,0,1,this._eye1,this._eye2,Ph),s.look=d.subVec3(Ph,Ch,yh)):this._flyingLook&&(s.look=d.lerpVec3(i,0,1,this._look1,this._look2,yh),s.up=d.lerpVec3(i,0,1,this._up1,this._up2,Bh)):this._flyingEyeLookUp&&(s.eye=d.lerpVec3(i,0,1,this._eye1,this._eye2,Ph),s.look=d.lerpVec3(i,0,1,this._look1,this._look2,yh),s.up=d.lerpVec3(i,0,1,this._up1,this._up2,Bh)),this._projection2){const t="ortho"===this._projection2?Mh._easeOutExpo(e,0,1,1):Mh._easeInCubic(e,0,1,1);s.customProjection.matrix=d.lerpMat4(t,0,1,this._projMatrix1,this._projMatrix2)}else s.ortho.scale=this._orthoScale1+e*(this._orthoScale2-this._orthoScale1);if(t)return s.ortho.scale=this._orthoScale2,void this.stop();M.scheduleTask(this._update,this)}static _ease(e,t,i,s){return-i*(e/=s)*(e-2)+t}static _easeInCubic(e,t,i,s){return i*(e/=s)*e*e+t}static _easeOutExpo(e,t,i,s){return i*(1-Math.pow(2,-10*e/s))+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 Eh extends D{get type(){return"CameraPathAnimation"}constructor(e,t={}){super(e,t),this._cameraFlightAnimation=new Mh(this),this._t=0,this.state=Eh.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,i;const s=performance.now(),r=this._lastTime?.001*(s-this._lastTime):0;if(this._lastTime=s,0!==r)switch(this.state){case Eh.SCRUBBING:return;case Eh.PLAYING:if(this._t+=this._playingRate*r,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=Eh.SCRUBBING,this._t=this._cameraPath.frames[t-1].t,void this.fire("stopped");e.loadFrame(this._t);break;case Eh.PLAYING_TO:i=this._t+this._playingRate*r*this._playingDir,(this._playingDir<0&&i<=this._playingToT||this._playingDir>0&&i>=this._playingToT)&&(i=this._playingToT,this.state=Eh.SCRUBBING,this.fire("stopped")),this._t=i,e.loadFrame(this._t)}}_ease(e,t,i,s){return-i*(e/=s)*(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=Eh.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=Eh.PLAYING_TO)}playToFrame(e){const t=this._cameraPath;if(!t)return;const i=t.frames[e];i?this.playToT(i.t):this.error("playToFrame - frame index out of range: "+e)}flyToFrame(e,t){const i=this._cameraPath;if(!i)return;const s=i.frames[e];s?(this.state=Eh.SCRUBBING,this._cameraFlightAnimation.flyTo(s,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=Eh.SCRUBBING)}scrubToFrame(e){const t=this._cameraPath;if(!t)return;if(!this.scene.camera)return;t.frames[e]?(t.loadFrame(this._t),this.state=Eh.SCRUBBING):this.error("playToFrame - frame index out of range: "+e)}stop(){this.state=Eh.SCRUBBING,this.fire("stopped")}destroy(){super.destroy(),this.scene.off(this._tick)}}Eh.STOPPED=0,Eh.SCRUBBING=1,Eh.PLAYING=2,Eh.PLAYING_TO=3,d.vec3(),d.vec3(),d.vec3(),d.vec3([0,-1,0]),d.vec4([0,0,0,1]);const Fh=d.vec3();class Ih{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,i){this.numObjects=0,this._mask=i?_.apply(i,{}):null;const s=!i||i.visible,r=!i||i.edges,o=!i||i.xrayed,n=!i||i.highlighted,a=!i||i.selected,l=!i||i.clippable,A=!i||i.pickable,h=!i||i.colorize,c=!i||i.opacity,u=t.metaObjects,d=e.objects;for(let e=0,t=u.length;e{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=d.vec3();d.decomposeMat4(d.inverseMat4(this._scene.viewer.camera.viewMatrix,d.mat4()),t,d.vec4(),d.vec3());const i=d.distVec3(t,e);let s=Math.tan(Math.PI/500)*i*this._pivotSphereSize;"ortho"==this._scene.camera.projection&&(s/=this._scene.camera.ortho.scale/2),H(e,this._rtcCenter,this._rtcPos),this._pivotSphereGeometry=new Us(this._scene,ds({radius:s})),this._pivotSphere=new hs(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){d.transformPoint3(e.viewMatrix,this.getPivotPos(),this._pivotViewPos),this._pivotViewPos[3]=1,d.transformPoint4(e.projMatrix,this._pivotViewPos,this._pivotProjPos);const i=t.boundary,s=i[2],r=i[3];this._pivotCanvasPos[0]=Math.floor((1+this._pivotProjPos[0]/this._pivotProjPos[3])*s/2),this._pivotCanvasPos[1]=Math.floor((1-this._pivotProjPos[1]/this._pivotProjPos[3])*r/2);let o=t._lastBoundingClientRect;if(!o||t._canvasSizeChanged){const e=t.canvas;o=t._lastBoundingClientRect=e.getBoundingClientRect()}this._pivotElement&&(this._pivotElement.style.left=Math.floor(o.left+this._pivotCanvasPos[0])-this._pivotElement.clientWidth/2+window.scrollX+"px",this._pivotElement.style.top=Math.floor(o.top+this._pivotCanvasPos[1])-this._pivotElement.clientHeight/2+window.scrollY+"px"),this._cameraDirty=!1}}updatePivotSphere(){this._pivoting&&this._pivotSphere&&(H(this.getPivotPos(),this._rtcCenter,this._rtcPos),d.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 kt(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=d.lookAtMat4v(e.eye,e.look,e.worldUp);d.transformPoint3(t,this.getPivotPos(),this._cameraOffset);const i=this.getPivotPos();this._cameraOffset[2]+=d.distVec3(e.eye,i),t=d.inverseMat4(t);const s=d.transformVec3(t,this._cameraOffset),r=d.vec3();if(d.subVec3(e.eye,i,r),d.addVec3(r,s),e.zUp){const e=r[1];r[1]=r[2],r[2]=e}this._radius=d.lenVec3(r),this._polar=Math.acos(r[1]/this._radius),this._azimuth=Math.atan2(r[0],r[2]),this._pivoting=!0}_cameraLookingDownwards(){const e=this._scene.camera,t=d.normalizeVec3(d.subVec3(e.look,e.eye,Qh)),i=d.cross3Vec3(t,e.worldUp,Vh);return d.sqLenVec3(i)<=1e-4}getPivoting(){return this._pivoting}setPivotPos(e){this._pivotWorldPos.set(e),this._pivotPosSet=!0}setCanvasPivotPos(e){const t=this._scene.camera,i=Math.abs(d.distVec3(this._scene.center,t.eye)),s=t.project.transposedMatrix,r=s.subarray(8,12),o=s.subarray(12),n=[0,0,-1,1],a=d.dotVec4(n,r)/d.dotVec4(n,o),l=Hh;t.project.unproject(e,a,zh,Gh,l);const A=d.normalizeVec3(d.subVec3(l,t.eye,Qh)),h=d.addVec3(t.eye,d.mulVec3Scalar(A,i,Vh),jh);this.setPivotPos(h)}getPivotPos(){return this._pivotPosSet?this._pivotWorldPos:this._scene.camera.look}continuePivot(e,t){if(!this._pivoting)return;if(0===e&&0===t)return;const i=this._scene.camera;var s=-e;const r=-t;1===i.worldUp[2]&&(s=-s),this._azimuth+=.01*-s,this._polar+=.01*r,this._polar=d.clamp(this._polar,.001,Math.PI-.001);const o=[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===i.worldUp[2]){const e=o[1];o[1]=o[2],o[2]=e}const n=d.lenVec3(d.subVec3(i.look,i.eye,d.vec3())),a=this.getPivotPos();d.addVec3(o,a);let l=d.lookAtMat4v(o,a,i.worldUp);l=d.inverseMat4(l);const A=d.transformVec3(l,this._cameraOffset);l[12]-=A[0],l[13]-=A[1],l[14]-=A[2];const h=[l[8],l[9],l[10]];i.eye=[l[12],l[13],l[14]],d.subVec3(i.eye,d.mulVec3Scalar(h,n),i.look),i.up=[l[4],l[5],l[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 Kh{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=d.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 we;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 Xh=d.vec2();class Yh{constructor(e,t,i,s,r){this._scene=e;const o=t.pickController;let n,a,l,A=0,h=0,c=0,u=0,p=!1;const g=d.vec3();let m=!0;const f=this._scene.canvas.canvas,_=[];function v(e=!0){f.style.cursor="move",A=s.pointerCanvasPos[0],h=s.pointerCanvasPos[1],c=s.pointerCanvasPos[0],u=s.pointerCanvasPos[1],e&&(o.pickCursorPos=s.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),o.picked&&o.pickedSurface&&o.pickResult&&o.pickResult.worldPos?(p=!0,g.set(o.pickResult.worldPos)):p=!1)}document.addEventListener("keydown",this._documentKeyDownHandler=t=>{if(!i.active||!i.pointerEnabled||!e.input.keyboardEnabled)return;const s=t.keyCode;_[s]=!0}),document.addEventListener("keyup",this._documentKeyUpHandler=t=>{if(!i.active||!i.pointerEnabled||!e.input.keyboardEnabled)return;const s=t.keyCode;_[s]=!1}),f.addEventListener("mousedown",this._mouseDownHandler=t=>{if(i.active&&i.pointerEnabled)switch(t.which){case 1:_[e.input.KEY_SHIFT]||i.planView?(n=!0,v()):(n=!0,v(!1));break;case 2:a=!0,v();break;case 3:l=!0,i.panRightClick&&v()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=()=>{if(!i.active||!i.pointerEnabled)return;if(!n&&!a&&!l)return;const t=e.canvas.boundary,o=t[2],c=t[3],u=s.pointerCanvasPos[0],m=s.pointerCanvasPos[1];if(_[e.input.KEY_SHIFT]||i.planView||!i.panRightClick&&a||i.panRightClick&&l){const t=u-A,i=m-h,s=e.camera;if("perspective"===s.projection){const o=Math.abs(p?d.lenVec3(d.subVec3(g,e.camera.eye,[])):e.camera.eyeLookDist)*Math.tan(s.perspective.fov/2*Math.PI/180);r.panDeltaX+=1.5*t*o/c,r.panDeltaY+=1.5*i*o/c}else r.panDeltaX+=.5*s.ortho.scale*(t/c),r.panDeltaY+=.5*s.ortho.scale*(i/c)}else!n||a||l||i.planView||(i.firstPerson?(r.rotateDeltaY-=(u-A)/o*i.dragRotationRate/2,r.rotateDeltaX+=(m-h)/c*(i.dragRotationRate/4)):(r.rotateDeltaY-=(u-A)/o*(1.5*i.dragRotationRate),r.rotateDeltaX+=(m-h)/c*(1.5*i.dragRotationRate)));A=u,h=m}),f.addEventListener("mousemove",this._canvasMouseMoveHandler=e=>{i.active&&i.pointerEnabled&&s.mouseover&&(m=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{if(i.active&&i.pointerEnabled)switch(e.which){case 1:case 2:case 3:n=!1,a=!1,l=!1}}),f.addEventListener("mouseup",this._mouseUpHandler=e=>{if(i.active&&i.pointerEnabled){if(3===e.which){!function(e,t){if(e){let i=e.target,s=0,r=0,o=0,n=0;for(;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,o+=i.scrollLeft,n+=i.scrollTop,i=i.offsetParent;t[0]=e.pageX+o-s,t[1]=e.pageY+n-r}else e=window.event,t[0]=e.x,t[1]=e.y}(e,Xh);const i=Xh[0],s=Xh[1];Math.abs(i-c)<3&&Math.abs(s-u)<3&&t.cameraControl.fire("rightClick",{pagePos:[Math.round(e.pageX),Math.round(e.pageY)],canvasPos:Xh,event:e},!0)}f.style.removeProperty("cursor")}}),f.addEventListener("mouseenter",this._mouseEnterHandler=()=>{i.active&&i.pointerEnabled});const b=1/60;let x=null;f.addEventListener("wheel",this._mouseWheelHandler=e=>{if(!i.active||!i.pointerEnabled)return;const t=performance.now()/1e3;var o=null!==x?t-x:0;x=t,o>.05&&(o=.05),o{if(!i.active||!i.pointerEnabled||!e.input.keyboardEnabled)return;if(!s.mouseover)return;const n=r._isKeyDownForAction(r.AXIS_VIEW_RIGHT),a=r._isKeyDownForAction(r.AXIS_VIEW_BACK),l=r._isKeyDownForAction(r.AXIS_VIEW_LEFT),A=r._isKeyDownForAction(r.AXIS_VIEW_FRONT),h=r._isKeyDownForAction(r.AXIS_VIEW_TOP),c=r._isKeyDownForAction(r.AXIS_VIEW_BOTTOM);if(!(n||a||l||A||h||c))return;const u=e.aabb,p=d.getAABB3Diag(u);d.getAABB3Center(u,qh);const g=Math.abs(p/Math.tan(t.cameraFlight.fitFOV*d.DEGTORAD)),m=1.1*p;tc.orthoScale=m,n?(tc.eye.set(d.addVec3(qh,d.mulVec3Scalar(o.worldRight,g,Zh),ec)),tc.look.set(qh),tc.up.set(o.worldUp)):a?(tc.eye.set(d.addVec3(qh,d.mulVec3Scalar(o.worldForward,g,Zh),ec)),tc.look.set(qh),tc.up.set(o.worldUp)):l?(tc.eye.set(d.addVec3(qh,d.mulVec3Scalar(o.worldRight,-g,Zh),ec)),tc.look.set(qh),tc.up.set(o.worldUp)):A?(tc.eye.set(d.addVec3(qh,d.mulVec3Scalar(o.worldForward,-g,Zh),ec)),tc.look.set(qh),tc.up.set(o.worldUp)):h?(tc.eye.set(d.addVec3(qh,d.mulVec3Scalar(o.worldUp,g,Zh),ec)),tc.look.set(qh),tc.up.set(d.normalizeVec3(d.mulVec3Scalar(o.worldForward,1,Jh),$h))):c&&(tc.eye.set(d.addVec3(qh,d.mulVec3Scalar(o.worldUp,-g,Zh),ec)),tc.look.set(qh),tc.up.set(d.normalizeVec3(d.mulVec3Scalar(o.worldForward,-1,Jh)))),!i.firstPerson&&i.followPointer&&t.pivotController.setPivotPos(qh),t.cameraFlight.duration>0?t.cameraFlight.flyTo(tc,(()=>{t.pivotController.getPivoting()&&i.followPointer&&t.pivotController.showPivot()})):(t.cameraFlight.jumpTo(tc),t.pivotController.getPivoting()&&i.followPointer&&t.pivotController.showPivot())}))}reset(){}destroy(){this._scene.input.off(this._onSceneKeyDown)}}class sc{constructor(e,t,i,s,r){this._scene=e;const o=t.pickController,n=t.pivotController,a=t.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null;let l=!1,A=!1;const h=this._scene.canvas.canvas,c=i=>{let s;i&&i.worldPos&&(s=i.worldPos);const r=i&&i.entity?i.entity.aabb:e.aabb;if(s){const i=e.camera;d.subVec3(i.eye,i.look,[]),t.cameraFlight.flyTo({aabb:r})}else t.cameraFlight.flyTo({aabb:r})},u=e.tickify(this._canvasMouseMoveHandler=t=>{if(!i.active||!i.pointerEnabled)return;if(l||A)return;const r=a.hasSubs("hover"),n=a.hasSubs("hoverEnter"),h=a.hasSubs("hoverOut"),c=a.hasSubs("hoverOff"),u=a.hasSubs("hoverSurface"),d=a.hasSubs("hoverSnapOrSurface");if(r||n||h||c||u||d)if(o.pickCursorPos=s.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=u,o.scheduleSnapOrPick=d,o.update(),o.pickResult){if(o.pickResult.entity){const t=o.pickResult.entity.id;this._lastPickedEntityId!==t&&(void 0!==this._lastPickedEntityId&&a.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),a.fire("hoverEnter",o.pickResult,!0),this._lastPickedEntityId=t)}a.fire("hover",o.pickResult,!0),(o.pickResult.worldPos||o.pickResult.snappedWorldPos)&&a.fire("hoverSurface",o.pickResult,!0)}else void 0!==this._lastPickedEntityId&&(a.fire("hoverOut",{entity:e.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),a.fire("hoverOff",{canvasPos:o.pickCursorPos},!0)});h.addEventListener("mousemove",u),h.addEventListener("mousedown",this._canvasMouseDownHandler=t=>{1===t.which&&(l=!0),3===t.which&&(A=!0);if(1===t.which&&i.active&&i.pointerEnabled&&(s.mouseDownClientX=t.clientX,s.mouseDownClientY=t.clientY,s.mouseDownCursorX=s.pointerCanvasPos[0],s.mouseDownCursorY=s.pointerCanvasPos[1],!i.firstPerson&&i.followPointer&&(o.pickCursorPos=s.pointerCanvasPos,o.schedulePickSurface=!0,o.update(),1===t.which))){const t=o.pickResult;t&&t.worldPos?(n.setPivotPos(t.worldPos),n.startPivot()):(i.smartPivot?n.setCanvasPivotPos(s.pointerCanvasPos):n.setPivotPos(e.camera.look),n.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{1===e.which&&(l=!1),3===e.which&&(A=!1),n.getPivoting()&&n.endPivot()}),h.addEventListener("mouseup",this._canvasMouseUpHandler=r=>{if(!i.active||!i.pointerEnabled)return;if(!(1===r.which))return;if(n.hidePivot(),Math.abs(r.clientX-s.mouseDownClientX)>3||Math.abs(r.clientY-s.mouseDownClientY)>3)return;const l=a.hasSubs("picked"),A=a.hasSubs("pickedNothing"),h=a.hasSubs("pickedSurface"),u=a.hasSubs("doublePicked"),p=a.hasSubs("doublePickedSurface"),g=a.hasSubs("doublePickedNothing");if(!(i.doublePickFlyTo||u||p||g))return(l||A||h)&&(o.pickCursorPos=s.pointerCanvasPos,o.schedulePickEntity=!0,o.schedulePickSurface=h,o.update(),o.pickResult?(a.fire("picked",o.pickResult,!0),o.pickedSurface&&a.fire("pickedSurface",o.pickResult,!0)):a.fire("pickedNothing",{canvasPos:s.pointerCanvasPos},!0)),void(this._clicks=0);if(this._clicks++,1===this._clicks){o.pickCursorPos=s.pointerCanvasPos,o.schedulePickEntity=i.doublePickFlyTo,o.schedulePickSurface=h,o.update();const e=o.pickResult,r=o.pickedSurface;this._timeout=setTimeout((()=>{e?(a.fire("picked",e,!0),r&&(a.fire("pickedSurface",e,!0),!i.firstPerson&&i.followPointer&&(t.pivotController.setPivotPos(e.worldPos),t.pivotController.startPivot()&&t.pivotController.showPivot()))):a.fire("pickedNothing",{canvasPos:s.pointerCanvasPos},!0),this._clicks=0}),i.doubleClickTimeFrame)}else{if(null!==this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),o.pickCursorPos=s.pointerCanvasPos,o.schedulePickEntity=i.doublePickFlyTo||u||p,o.schedulePickSurface=o.schedulePickEntity&&p,o.update(),o.pickResult){if(a.fire("doublePicked",o.pickResult,!0),o.pickedSurface&&a.fire("doublePickedSurface",o.pickResult,!0),i.doublePickFlyTo&&(c(o.pickResult),!i.firstPerson&&i.followPointer)){const e=o.pickResult.entity.aabb,i=d.getAABB3Center(e);t.pivotController.setPivotPos(i),t.pivotController.startPivot()&&t.pivotController.showPivot()}}else if(a.fire("doublePickedNothing",{canvasPos:s.pointerCanvasPos},!0),i.doublePickFlyTo&&(c(),!i.firstPerson&&i.followPointer)){const i=e.aabb,s=d.getAABB3Center(i);t.pivotController.setPivotPos(s),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 rc{constructor(e,t,i,s,r){this._scene=e;const o=e.input,n=[],a=e.canvas.canvas;let l=!0;this._onSceneMouseMove=o.on("mousemove",(()=>{l=!0})),this._onSceneKeyDown=o.on("keydown",(t=>{i.active&&i.pointerEnabled&&e.input.keyboardEnabled&&s.mouseover&&(n[t]=!0,t===o.KEY_SHIFT&&(a.style.cursor="move"))})),this._onSceneKeyUp=o.on("keyup",(s=>{i.active&&i.pointerEnabled&&e.input.keyboardEnabled&&(n[s]=!1,s===o.KEY_SHIFT&&(a.style.cursor=null),t.pivotController.getPivoting()&&t.pivotController.endPivot())})),this._onTick=e.on("tick",(a=>{if(!i.active||!i.pointerEnabled||!e.input.keyboardEnabled)return;if(!s.mouseover)return;const A=t.cameraControl,h=a.deltaTime/1e3;if(!i.planView){const e=A._isKeyDownForAction(A.ROTATE_Y_POS,n),s=A._isKeyDownForAction(A.ROTATE_Y_NEG,n),o=A._isKeyDownForAction(A.ROTATE_X_POS,n),a=A._isKeyDownForAction(A.ROTATE_X_NEG,n),l=h*i.keyboardRotationRate;(e||s||o||a)&&(!i.firstPerson&&i.followPointer&&t.pivotController.startPivot(),e?r.rotateDeltaY+=l:s&&(r.rotateDeltaY-=l),o?r.rotateDeltaX+=l:a&&(r.rotateDeltaX-=l),!i.firstPerson&&i.followPointer&&t.pivotController.startPivot())}if(!n[o.KEY_CTRL]&&!n[o.KEY_ALT]){const e=A._isKeyDownForAction(A.DOLLY_BACKWARDS,n),o=A._isKeyDownForAction(A.DOLLY_FORWARDS,n);if(e||o){const n=h*i.keyboardDollyRate;!i.firstPerson&&i.followPointer&&t.pivotController.startPivot(),o?r.dollyDelta-=n:e&&(r.dollyDelta+=n),l&&(s.followPointerDirty=!0,l=!1)}}const c=A._isKeyDownForAction(A.PAN_FORWARDS,n),u=A._isKeyDownForAction(A.PAN_BACKWARDS,n),d=A._isKeyDownForAction(A.PAN_LEFT,n),p=A._isKeyDownForAction(A.PAN_RIGHT,n),g=A._isKeyDownForAction(A.PAN_UP,n),m=A._isKeyDownForAction(A.PAN_DOWN,n),f=(n[o.KEY_ALT]?.3:1)*h*i.keyboardPanRate;(c||u||d||p||g||m)&&(!i.firstPerson&&i.followPointer&&t.pivotController.startPivot(),m?r.panDeltaY+=f:g&&(r.panDeltaY+=-f),p?r.panDeltaX+=-f:d&&(r.panDeltaX+=f),u?r.panDeltaZ+=f:c&&(r.panDeltaZ+=-f))}))}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 oc=.001,nc=d.vec3();class ac{constructor(e,t,i,s,r){this._scene=e;const o=e.camera,n=t.pickController,a=t.pivotController,l=t.panController;let A=1,h=1,c=null;this._onTick=e.on("tick",(()=>{if(!i.active||!i.pointerEnabled)return;let t="default";if(Math.abs(r.dollyDelta){s.mouseover=!0}),o.addEventListener("mouseleave",this._mouseLeaveHandler=()=>{s.mouseover=!1,o.style.cursor=null}),document.addEventListener("mousemove",this._mouseMoveHandler=e=>{Ac(e,o,s.pointerCanvasPos)}),o.addEventListener("mousedown",this._mouseDownHandler=e=>{i.active&&i.pointerEnabled&&(Ac(e,o,s.pointerCanvasPos),s.mouseover=!0)}),o.addEventListener("mouseup",this._mouseUpHandler=e=>{i.active&&i.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 Ac(e,t,i){if(e){const{left:s,top:r}=t.getBoundingClientRect();i[0]=e.clientX-s-window.scrollX,i[1]=e.clientY-r-window.scrollY}else e=window.event,i[0]=e.x,i[1]=e.y;return i}const hc=function(e,t){if(e){let i=e.target,s=0,r=0;for(;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;t[0]=e.pageX-s,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t};class cc{constructor(e,t,i,s,r){this._scene=e;const o=t.pickController,n=t.pivotController,a=d.vec2(),l=d.vec2(),A=d.vec2(),h=d.vec2(),c=[],u=this._scene.canvas.canvas;let p=0,g=!1;this._onTick=e.on("tick",(()=>{g=!1})),u.addEventListener("touchstart",this._canvasTouchStartHandler=t=>{if(!i.active||!i.pointerEnabled)return;t.preventDefault();const r=t.touches,l=t.changedTouches;for(s.touchStartTime=Date.now(),1===r.length&&1===l.length&&(hc(r[0],a),i.followPointer&&(o.pickCursorPos=a,o.schedulePickSurface=!0,o.update(),i.planView||(o.picked&&o.pickedSurface&&o.pickResult&&o.pickResult.worldPos?(n.setPivotPos(o.pickResult.worldPos),!i.firstPerson&&n.startPivot()&&n.showPivot()):(i.smartPivot?n.setCanvasPivotPos(s.pointerCanvasPos):n.setPivotPos(e.camera.look),!i.firstPerson&&n.startPivot()&&n.showPivot()))));c.length{n.getPivoting()&&n.endPivot()}),u.addEventListener("touchmove",this._canvasTouchMoveHandler=t=>{if(!i.active||!i.pointerEnabled)return;if(t.stopPropagation(),t.preventDefault(),g)return;g=!0;const n=e.canvas.boundary,a=n[2],u=n[3],m=t.touches;if(t.touches.length===p){if(1===p){hc(m[0],l),d.subVec2(l,c[0],h);const t=h[0],o=h[1];if(null!==s.longTouchTimeout&&(Math.abs(t)>i.longTapRadius||Math.abs(o)>i.longTapRadius)&&(clearTimeout(s.longTouchTimeout),s.longTouchTimeout=null),i.planView){const s=e.camera;if("perspective"===s.projection){const n=Math.abs(e.camera.eyeLookDist)*Math.tan(s.perspective.fov/2*Math.PI/180);r.panDeltaX+=t*n/u*i.touchPanRate,r.panDeltaY+=o*n/u*i.touchPanRate}else r.panDeltaX+=.5*s.ortho.scale*(t/u)*i.touchPanRate,r.panDeltaY+=.5*s.ortho.scale*(o/u)*i.touchPanRate}else r.rotateDeltaY-=t/a*(1*i.dragRotationRate),r.rotateDeltaX+=o/u*(1.5*i.dragRotationRate)}else if(2===p){const t=m[0],n=m[1];hc(t,l),hc(n,A);const a=d.geometricMeanVec2(c[0],c[1]),h=d.geometricMeanVec2(l,A),p=d.vec2();d.subVec2(a,h,p);const g=p[0],f=p[1],_=e.camera,v=d.distVec2([t.pageX,t.pageY],[n.pageX,n.pageY]),b=(d.distVec2(c[0],c[1])-v)*i.touchDollyRate;if(r.dollyDelta=b,Math.abs(b)<1)if("perspective"===_.projection){const t=o.pickResult?o.pickResult.worldPos:e.center,s=Math.abs(d.lenVec3(d.subVec3(t,e.camera.eye,[])))*Math.tan(_.perspective.fov/2*Math.PI/180);r.panDeltaX-=g*s/u*i.touchPanRate,r.panDeltaY-=f*s/u*i.touchPanRate}else r.panDeltaX-=.5*_.ortho.scale*(g/u)*i.touchPanRate,r.panDeltaY-=.5*_.ortho.scale*(f/u)*i.touchPanRate;s.pointerCanvasPos=h}for(let e=0;e{let s;i&&i.worldPos&&(s=i.worldPos);const r=i?i.entity.aabb:e.aabb;if(s){const i=e.camera;d.subVec3(i.eye,i.look,[]),t.cameraFlight.flyTo({aabb:r})}else t.cameraFlight.flyTo({aabb:r})};u.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{if(!i.active||!i.pointerEnabled)return;null!==s.longTouchTimeout&&(clearTimeout(s.longTouchTimeout),s.longTouchTimeout=null);const r=e.touches,o=e.changedTouches;if(a=Date.now(),1===r.length&&1===o.length){h=a,uc(r[0],A);const o=A[0],n=A[1],l=r[0].pageX,c=r[0].pageY;s.longTouchTimeout=setTimeout((()=>{t.cameraControl.fire("rightClick",{pagePos:[Math.round(l),Math.round(c)],canvasPos:[Math.round(o),Math.round(n)],event:e},!0),s.longTouchTimeout=null}),i.longTapTimeout)}else h=-1;for(;l.length{if(!i.active||!i.pointerEnabled)return;const t=Date.now(),r=e.touches,a=e.changedTouches,u=n.hasSubs("pickedSurface");null!==s.longTouchTimeout&&(clearTimeout(s.longTouchTimeout),s.longTouchTimeout=null),0===r.length&&1===a.length&&h>-1&&t-h<150&&(c>-1&&h-c<325?(uc(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=u,o.update(),o.pickResult?(o.pickResult.touchInput=!0,n.fire("doublePicked",o.pickResult),o.pickedSurface&&n.fire("doublePickedSurface",o.pickResult),i.doublePickFlyTo&&p(o.pickResult)):(n.fire("doublePickedNothing"),i.doublePickFlyTo&&p()),c=-1):d.distVec2(l[0],A)<4&&(uc(a[0],o.pickCursorPos),o.schedulePickEntity=!0,o.schedulePickSurface=u,o.update(),o.pickResult?(o.pickResult.touchInput=!0,n.fire("picked",o.pickResult),o.pickedSurface&&n.fire("pickedSurface",o.pickResult)):n.fire("pickedNothing"),c=t),h=-1),l.length=r.length;for(let e=0,t=r.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:d.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:d.vec2(),tapStartTime:-1,lastTapTime:-1,longTouchTimeout:null},this._updates={rotateDeltaX:0,rotateDeltaY:0,panDeltaX:0,panDeltaY:0,panDeltaZ:0,dollyDelta:0};const i=this.scene;this._controllers={cameraControl:this,pickController:new Kh(this,this._configs),pivotController:new Wh(i,this._configs),panController:new Nh(i),cameraFlight:new Mh(this,{duration:.5})},this._handlers=[new lc(this.scene,this._controllers,this._configs,this._states,this._updates),new cc(this.scene,this._controllers,this._configs,this._states,this._updates),new Yh(this.scene,this._controllers,this._configs,this._states,this._updates),new ic(this.scene,this._controllers,this._configs,this._states,this._updates),new sc(this.scene,this._controllers,this._configs,this._states,this._updates),new dc(this.scene,this._controllers,this._configs,this._states,this._updates),new rc(this.scene,this._controllers,this._configs,this._states,this._updates)],this._cameraUpdater=new ac(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",_.isString(e)){const t=this.scene.input,i={};switch(e){default:this.error("Unsupported value for 'keyMap': "+e+" defaulting to 'qwerty'");case"qwerty":i[this.PAN_LEFT]=[t.KEY_A],i[this.PAN_RIGHT]=[t.KEY_D],i[this.PAN_UP]=[t.KEY_Z],i[this.PAN_DOWN]=[t.KEY_X],i[this.PAN_BACKWARDS]=[],i[this.PAN_FORWARDS]=[],i[this.DOLLY_FORWARDS]=[t.KEY_W,t.KEY_ADD],i[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],i[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],i[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],i[this.ROTATE_Y_POS]=[t.KEY_Q,t.KEY_LEFT_ARROW],i[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],i[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],i[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],i[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],i[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],i[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],i[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6];break;case"azerty":i[this.PAN_LEFT]=[t.KEY_Q],i[this.PAN_RIGHT]=[t.KEY_D],i[this.PAN_UP]=[t.KEY_W],i[this.PAN_DOWN]=[t.KEY_X],i[this.PAN_BACKWARDS]=[],i[this.PAN_FORWARDS]=[],i[this.DOLLY_FORWARDS]=[t.KEY_Z,t.KEY_ADD],i[this.DOLLY_BACKWARDS]=[t.KEY_S,t.KEY_SUBTRACT],i[this.ROTATE_X_POS]=[t.KEY_DOWN_ARROW],i[this.ROTATE_X_NEG]=[t.KEY_UP_ARROW],i[this.ROTATE_Y_POS]=[t.KEY_A,t.KEY_LEFT_ARROW],i[this.ROTATE_Y_NEG]=[t.KEY_E,t.KEY_RIGHT_ARROW],i[this.AXIS_VIEW_RIGHT]=[t.KEY_NUM_1],i[this.AXIS_VIEW_BACK]=[t.KEY_NUM_2],i[this.AXIS_VIEW_LEFT]=[t.KEY_NUM_3],i[this.AXIS_VIEW_FRONT]=[t.KEY_NUM_4],i[this.AXIS_VIEW_TOP]=[t.KEY_NUM_5],i[this.AXIS_VIEW_BOTTOM]=[t.KEY_NUM_6]}this._keyMap=i}else{const t=e;this._keyMap=t}}get keyMap(){return this._keyMap}_isKeyDownForAction(e,t){const i=this._keyMap[e];if(!i)return!1;t||(t=this.scene.input.keyDown);for(let e=0,s=i.length;e0?bc(t):null,n=i&&i.length>0?bc(i):null,a=e=>{if(!e)return;var t=!0;(n&&n[e.type]||o&&!o[e.type])&&(t=!1),t&&s.push(e.id);const i=e.children;if(i)for(var r=0,l=i.length;r * Copyright (c) 2022 Niklas von Hertzen @@ -34,5 +34,5 @@ let Th=null;function Ph(e,t){let s;for(let i=0;i<3;i++)if(0!=(s=Th[3*e+i]-Th[3*t 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 Iu=function(e,t){return Iu=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])},Iu(e,t)};function _u(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}Iu(e,t),e.prototype=null===t?Object.create(t):(s.prototype=t.prototype,new s)}var Tu=function(){return Tu=Object.assign||function(e){for(var t,s=1,i=arguments.length;s0&&r[r.length-1])||6!==o[0]&&2!==o[0])){n=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=55296&&r<=56319&&s>10),n%1024+56320)),(r+1===s||i.length>16384)&&(o+=String.fromCharCode.apply(String,i),i.length=0)}return o},xu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Su="undefined"==typeof Uint8Array?[]:new Uint8Array(256),wu=0;wu=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}(),Hu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Gu="undefined"==typeof Uint8Array?[]:new Uint8Array(256),ku=0;ku>4,c[l++]=(15&i)<<4|r>>2,c[l++]=(3&r)<<6|63&o;return h}(e),n=Array.isArray(o)?function(e){for(var t=e.length,s=[],i=0;i0;){var n=i[--o];if(Array.isArray(e)?-1!==e.indexOf(n):e===n)for(var a=s;a<=i.length;){var l;if((l=i[++a])===t)return!0;if(l!==Vu)break}if(n!==Vu)break}return!1},PA=function(e,t){for(var s=e;s>=0;){var i=t[s];if(i!==Vu)return i;s--}return 0},bA=function(e,t,s,i,r){if(0===s[i])return pA;var o=i-1;if(Array.isArray(r)&&!0===r[o])return pA;var n=o-1,a=o+1,l=t[o],h=n>=0?t[n]:0,c=t[a];if(2===l&&3===c)return pA;if(-1!==yA.indexOf(l))return"!";if(-1!==yA.indexOf(c))return pA;if(-1!==EA.indexOf(c))return pA;if(8===PA(o,t))return dA;if(11===fA.get(e[o]))return pA;if((l===iA||l===rA)&&11===fA.get(e[a]))return pA;if(7===l||7===c)return pA;if(9===l)return pA;if(-1===[Vu,ju,Qu].indexOf(l)&&9===c)return pA;if(-1!==[Wu,zu,Ku,qu,tA].indexOf(c))return pA;if(PA(o,t)===Zu)return pA;if(TA(23,Zu,o,t))return pA;if(TA([Wu,zu],Xu,o,t))return pA;if(TA(12,12,o,t))return pA;if(l===Vu)return dA;if(23===l||23===c)return pA;if(16===c||16===l)return dA;if(-1!==[ju,Qu,Xu].indexOf(c)||14===l)return pA;if(36===h&&-1!==_A.indexOf(l))return pA;if(l===tA&&36===c)return pA;if(c===Yu)return pA;if(-1!==mA.indexOf(c)&&l===Ju||-1!==mA.indexOf(l)&&c===Ju)return pA;if(l===eA&&-1!==[aA,iA,rA].indexOf(c)||-1!==[aA,iA,rA].indexOf(l)&&c===$u)return pA;if(-1!==mA.indexOf(l)&&-1!==gA.indexOf(c)||-1!==gA.indexOf(l)&&-1!==mA.indexOf(c))return pA;if(-1!==[eA,$u].indexOf(l)&&(c===Ju||-1!==[Zu,Qu].indexOf(c)&&t[a+1]===Ju)||-1!==[Zu,Qu].indexOf(l)&&c===Ju||l===Ju&&-1!==[Ju,tA,qu].indexOf(c))return pA;if(-1!==[Ju,tA,qu,Wu,zu].indexOf(c))for(var u=o;u>=0;){if((A=t[u])===Ju)return pA;if(-1===[tA,qu].indexOf(A))break;u--}if(-1!==[eA,$u].indexOf(c))for(u=-1!==[Wu,zu].indexOf(l)?n:o;u>=0;){var A;if((A=t[u])===Ju)return pA;if(-1===[tA,qu].indexOf(A))break;u--}if(lA===l&&-1!==[lA,hA,oA,nA].indexOf(c)||-1!==[hA,oA].indexOf(l)&&-1!==[hA,cA].indexOf(c)||-1!==[cA,nA].indexOf(l)&&c===cA)return pA;if(-1!==IA.indexOf(l)&&-1!==[Yu,$u].indexOf(c)||-1!==IA.indexOf(c)&&l===eA)return pA;if(-1!==mA.indexOf(l)&&-1!==mA.indexOf(c))return pA;if(l===qu&&-1!==mA.indexOf(c))return pA;if(-1!==mA.concat(Ju).indexOf(l)&&c===Zu&&-1===AA.indexOf(e[a])||-1!==mA.concat(Ju).indexOf(c)&&l===zu)return pA;if(41===l&&41===c){for(var p=s[o],d=1;p>0&&41===t[--p];)d++;if(d%2!=0)return pA}return l===iA&&c===rA?pA:dA},RA=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var s=function(e,t){void 0===t&&(t="strict");var s=[],i=[],r=[];return e.forEach((function(e,o){var n=fA.get(e);if(n>50?(r.push(!0),n-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return i.push(o),s.push(16);if(4===n||11===n){if(0===o)return i.push(o),s.push(sA);var a=s[o-1];return-1===vA.indexOf(a)?(i.push(i[o-1]),s.push(a)):(i.push(o),s.push(sA))}return i.push(o),31===n?s.push("strict"===t?Xu:aA):n===uA||29===n?s.push(sA):43===n?e>=131072&&e<=196605||e>=196608&&e<=262141?s.push(aA):s.push(sA):void s.push(n)})),[i,s,r]}(e,t.lineBreak),i=s[0],r=s[1],o=s[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(r=r.map((function(e){return-1!==[Ju,sA,uA].indexOf(e)?aA:e})));var n="keep-all"===t.wordBreak?o.map((function(t,s){return t&&e[s]>=19968&&e[s]<=40959})):void 0;return[i,r,n]},DA=function(){function e(e,t,s,i){this.codePoints=e,this.required="!"===t,this.start=s,this.end=i}return e.prototype.slice=function(){return Ou.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),CA=45,NA=43,OA=-1,xA=function(e){return e>=48&&e<=57},SA=function(e){return xA(e)||e>=65&&e<=70||e>=97&&e<=102},wA=function(e){return 10===e||9===e||32===e},MA=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},BA=function(e){return MA(e)||xA(e)||e===CA},FA=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},LA=function(e,t){return 92===e&&10!==t},UA=function(e,t,s){return e===CA?MA(t)||LA(t,s):!!MA(e)||!(92!==e||!LA(e,t))},HA=function(e,t,s){return e===NA||e===CA?!!xA(t)||46===t&&xA(s):xA(46===e?t:e)},GA=function(e){var t=0,s=1;e[t]!==NA&&e[t]!==CA||(e[t]===CA&&(s=-1),t++);for(var i=[];xA(e[t]);)i.push(e[t++]);var r=i.length?parseInt(Ou.apply(void 0,i),10):0;46===e[t]&&t++;for(var o=[];xA(e[t]);)o.push(e[t++]);var n=o.length,a=n?parseInt(Ou.apply(void 0,o),10):0;69!==e[t]&&101!==e[t]||t++;var l=1;e[t]!==NA&&e[t]!==CA||(e[t]===CA&&(l=-1),t++);for(var h=[];xA(e[t]);)h.push(e[t++]);var c=h.length?parseInt(Ou.apply(void 0,h),10):0;return s*(r+a*Math.pow(10,-n))*Math.pow(10,l*c)},kA={type:2},VA={type:3},jA={type:4},QA={type:13},WA={type:8},zA={type:21},KA={type:9},YA={type:10},XA={type:11},ZA={type:12},qA={type:14},JA={type:23},$A={type:1},ep={type:25},tp={type:24},sp={type:26},ip={type:27},rp={type:28},op={type:29},np={type:31},ap={type:32},lp=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(Nu(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==ap;)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),i=this.peekCodePoint(2);if(BA(t)||LA(s,i)){var r=UA(t,s,i)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),QA;break;case 39:return this.consumeStringToken(39);case 40:return kA;case 41:return VA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),qA;break;case NA:if(HA(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return jA;case CA:var o=e,n=this.peekCodePoint(0),a=this.peekCodePoint(1);if(HA(o,n,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(UA(o,n,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(n===CA&&62===a)return this.consumeCodePoint(),this.consumeCodePoint(),tp;break;case 46:if(HA(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 l=this.consumeCodePoint();if(42===l&&47===(l=this.consumeCodePoint()))return this.consumeToken();if(l===OA)return this.consumeToken()}break;case 58:return sp;case 59:return ip;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===CA&&this.peekCodePoint(2)===CA)return this.consumeCodePoint(),this.consumeCodePoint(),ep;break;case 64:var h=this.peekCodePoint(0),c=this.peekCodePoint(1),u=this.peekCodePoint(2);if(UA(h,c,u))return{type:7,value:this.consumeName()};break;case 91:return rp;case 92:if(LA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return op;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),WA;break;case 123:return XA;case 125:return ZA;case 117:case 85:var A=this.peekCodePoint(0),p=this.peekCodePoint(1);return A!==NA||!SA(p)&&63!==p||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),KA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),zA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),YA;break;case OA:return ap}return wA(e)?(this.consumeWhiteSpace(),np):xA(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):MA(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:Ou(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();SA(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(Ou.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(Ou.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var i=parseInt(Ou.apply(void 0,e),16);if(this.peekCodePoint(0)===CA&&SA(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var r=[];SA(t)&&r.length<6;)r.push(t),t=this.consumeCodePoint();return{type:30,start:i,end:parseInt(Ou.apply(void 0,r),16)}}return{type:30,start:i,end:i}},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(),this.peekCodePoint(0)===OA)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(),this.peekCodePoint(0)===OA||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:s.value}):(this.consumeBadUrlRemnants(),JA)}for(;;){var i=this.consumeCodePoint();if(i===OA||41===i)return{type:22,value:Ou.apply(void 0,e)};if(wA(i))return this.consumeWhiteSpace(),this.peekCodePoint(0)===OA||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:Ou.apply(void 0,e)}):(this.consumeBadUrlRemnants(),JA);if(34===i||39===i||40===i||FA(i))return this.consumeBadUrlRemnants(),JA;if(92===i){if(!LA(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),JA;e.push(this.consumeEscapedCodePoint())}else e.push(i)}},e.prototype.consumeWhiteSpace=function(){for(;wA(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||e===OA)return;LA(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var s=Math.min(5e4,e);t+=Ou.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 i=this._value[s];if(i===OA||void 0===i||i===e)return{type:0,value:t+=this.consumeStringSlice(s)};if(10===i)return this._value.splice(0,s),$A;if(92===i){var r=this._value[s+1];r!==OA&&void 0!==r&&(10===r?(t+=this.consumeStringSlice(s),s=-1,this._value.shift()):LA(i,r)&&(t+=this.consumeStringSlice(s),t+=Ou(this.consumeEscapedCodePoint()),s=-1))}s++}},e.prototype.consumeNumber=function(){var e=[],t=4,s=this.peekCodePoint(0);for(s!==NA&&s!==CA||e.push(this.consumeCodePoint());xA(this.peekCodePoint(0));)e.push(this.consumeCodePoint());s=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===s&&xA(i))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;xA(this.peekCodePoint(0));)e.push(this.consumeCodePoint());s=this.peekCodePoint(0),i=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===s||101===s)&&((i===NA||i===CA)&&xA(r)||xA(i)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;xA(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[GA(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],s=e[1],i=this.peekCodePoint(0),r=this.peekCodePoint(1),o=this.peekCodePoint(2);return UA(i,r,o)?{type:15,number:t,flags:s,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:t,flags:s}):{type:17,number:t,flags:s}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(SA(e)){for(var t=Ou(e);SA(this.peekCodePoint(0))&&t.length<6;)t+=Ou(this.consumeCodePoint());wA(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 e===OA?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if(BA(t))e+=Ou(t);else{if(!LA(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=Ou(this.consumeEscapedCodePoint())}}},e}(),hp=function(){function e(e){this._tokens=e}return e.create=function(t){var s=new lp;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||Ep(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?ap:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),cp=function(e){return 15===e.type},up=function(e){return 17===e.type},Ap=function(e){return 20===e.type},pp=function(e){return 0===e.type},dp=function(e,t){return Ap(e)&&e.value===t},fp=function(e){return 31!==e.type},mp=function(e){return 31!==e.type&&4!==e.type},yp=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},Ep=function(e,t){return 11===t&&12===e.type||(28===t&&29===e.type||2===t&&3===e.type)},gp=function(e){return 17===e.type||15===e.type},vp=function(e){return 16===e.type||gp(e)},Ip=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},_p={type:17,number:0,flags:4},Tp={type:16,number:50,flags:4},Pp={type:16,number:100,flags:4},bp=function(e,t,s){var i=e[0],r=e[1];return[Rp(i,t),Rp(void 0!==r?r:i,s)]},Rp=function(e,t){if(16===e.type)return e.number/100*t;if(cp(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},Dp="grad",Cp="turn",Np=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case Dp:return Math.PI/200*t.number;case"rad":return t.number;case Cp:return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},Op=function(e){return 15===e.type&&("deg"===e.unit||e.unit===Dp||"rad"===e.unit||e.unit===Cp)},xp=function(e){switch(e.filter(Ap).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[_p,_p];case"to top":case"bottom":return Sp(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[_p,Pp];case"to right":case"left":return Sp(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Pp,Pp];case"to bottom":case"top":return Sp(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Pp,_p];case"to left":case"right":return Sp(270)}return 0},Sp=function(e){return Math.PI*e/180},wp=function(e,t){if(18===t.type){var s=kp[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 i=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);return Fp(parseInt(i+i,16),parseInt(r+r,16),parseInt(o+o,16),1)}if(4===t.value.length){i=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);var n=t.value.substring(3,4);return Fp(parseInt(i+i,16),parseInt(r+r,16),parseInt(o+o,16),parseInt(n+n,16)/255)}if(6===t.value.length){i=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6);return Fp(parseInt(i,16),parseInt(r,16),parseInt(o,16),1)}if(8===t.value.length){i=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6),n=t.value.substring(6,8);return Fp(parseInt(i,16),parseInt(r,16),parseInt(o,16),parseInt(n,16)/255)}}if(20===t.type){var a=jp[t.value.toUpperCase()];if(void 0!==a)return a}return jp.TRANSPARENT},Mp=function(e){return 0==(255&e)},Bp=function(e){var t=255&e,s=255&e>>8,i=255&e>>16,r=255&e>>24;return t<255?"rgba("+r+","+i+","+s+","+t/255+")":"rgb("+r+","+i+","+s+")"},Fp=function(e,t,s,i){return(e<<24|t<<16|s<<8|Math.round(255*i)<<0)>>>0},Lp=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},Up=function(e,t){var s=t.filter(mp);if(3===s.length){var i=s.map(Lp),r=i[0],o=i[1],n=i[2];return Fp(r,o,n,1)}if(4===s.length){var a=s.map(Lp),l=(r=a[0],o=a[1],n=a[2],a[3]);return Fp(r,o,n,l)}return 0};function Hp(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 Gp=function(e,t){var s=t.filter(mp),i=s[0],r=s[1],o=s[2],n=s[3],a=(17===i.type?Sp(i.number):Np(e,i))/(2*Math.PI),l=vp(r)?r.number/100:0,h=vp(o)?o.number/100:0,c=void 0!==n&&vp(n)?Rp(n,1):1;if(0===l)return Fp(255*h,255*h,255*h,1);var u=h<=.5?h*(l+1):h+l-h*l,A=2*h-u,p=Hp(A,u,a+1/3),d=Hp(A,u,a),f=Hp(A,u,a-1/3);return Fp(255*p,255*d,255*f,c)},kp={hsl:Gp,hsla:Gp,rgb:Up,rgba:Up},Vp=function(e,t){return wp(e,hp.create(t).parseComponentValue())},jp={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},Qp={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Ap(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Wp={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},zp=function(e,t){var s=wp(e,t[0]),i=t[1];return i&&vp(i)?{color:s,stop:i}:{color:s,stop:null}},Kp=function(e,t){var s=e[0],i=e[e.length-1];null===s.stop&&(s.stop=_p),null===i.stop&&(i.stop=Pp);for(var r=[],o=0,n=0;no?r.push(l):r.push(o),o=l}else r.push(null)}var h=null;for(n=0;ne.optimumDistance)?{optimumCorner:t,optimumDistance:a}:e}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},qp=function(e,t){var s=Sp(180),i=[];return yp(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&-1!==["top","left","right","bottom"].indexOf(o.value))return void(s=xp(t));if(Op(o))return void(s=(Np(e,o)+Sp(270))%Sp(360))}var n=zp(e,t);i.push(n)})),{angle:s,stops:i,type:1}},Jp="closest-side",$p="farthest-side",ed="closest-corner",td="farthest-corner",sd="circle",id="ellipse",rd="cover",od="contain",nd=function(e,t){var s=0,i=3,r=[],o=[];return yp(t).forEach((function(t,n){var a=!0;if(0===n?a=t.reduce((function(e,t){if(Ap(t))switch(t.value){case"center":return o.push(Tp),!1;case"top":case"left":return o.push(_p),!1;case"right":case"bottom":return o.push(Pp),!1}else if(vp(t)||gp(t))return o.push(t),!1;return e}),a):1===n&&(a=t.reduce((function(e,t){if(Ap(t))switch(t.value){case sd:return s=0,!1;case id:return s=1,!1;case od:case Jp:return i=0,!1;case $p:return i=1,!1;case ed:return i=2,!1;case rd:case td:return i=3,!1}else if(gp(t)||vp(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),a)),a){var l=zp(e,t);r.push(l)}})),{size:i,shape:s,stops:r,position:o,type:2}},ad=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 i=hd[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return i(e,t.values)}throw new Error("Unsupported image type "+t.type)};var ld,hd={"linear-gradient":function(e,t){var s=Sp(180),i=[];return yp(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&"to"===o.value)return void(s=xp(t));if(Op(o))return void(s=Np(e,o))}var n=zp(e,t);i.push(n)})),{angle:s,stops:i,type:1}},"-moz-linear-gradient":qp,"-ms-linear-gradient":qp,"-o-linear-gradient":qp,"-webkit-linear-gradient":qp,"radial-gradient":function(e,t){var s=0,i=3,r=[],o=[];return yp(t).forEach((function(t,n){var a=!0;if(0===n){var l=!1;a=t.reduce((function(e,t){if(l)if(Ap(t))switch(t.value){case"center":return o.push(Tp),e;case"top":case"left":return o.push(_p),e;case"right":case"bottom":return o.push(Pp),e}else(vp(t)||gp(t))&&o.push(t);else if(Ap(t))switch(t.value){case sd:return s=0,!1;case id:return s=1,!1;case"at":return l=!0,!1;case Jp:return i=0,!1;case rd:case $p:return i=1,!1;case od:case ed:return i=2,!1;case td:return i=3,!1}else if(gp(t)||vp(t))return Array.isArray(i)||(i=[]),i.push(t),!1;return e}),a)}if(a){var h=zp(e,t);r.push(h)}})),{size:i,shape:s,stops:r,position:o,type:2}},"-moz-radial-gradient":nd,"-ms-radial-gradient":nd,"-o-radial-gradient":nd,"-webkit-radial-gradient":nd,"-webkit-gradient":function(e,t){var s=Sp(180),i=[],r=1;return yp(t).forEach((function(t,s){var o=t[0];if(0===s){if(Ap(o)&&"linear"===o.value)return void(r=1);if(Ap(o)&&"radial"===o.value)return void(r=2)}if(18===o.type)if("from"===o.name){var n=wp(e,o.values[0]);i.push({stop:_p,color:n})}else if("to"===o.name){n=wp(e,o.values[0]);i.push({stop:Pp,color:n})}else if("color-stop"===o.name){var a=o.values.filter(mp);if(2===a.length){n=wp(e,a[1]);var l=a[0];up(l)&&i.push({stop:{type:16,number:100*l.number,flags:l.flags},color:n})}}})),1===r?{angle:(s+Sp(180))%Sp(360),stops:i,type:r}:{size:3,shape:0,stops:i,position:[],type:r}}},cd={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 mp(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!hd[e.name])}(e)})).map((function(t){return ad(e,t)}))}},ud={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Ap(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Ad={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return yp(t).map((function(e){return e.filter(vp)})).map(Ip)}},pd={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return yp(t).map((function(e){return e.filter(Ap).map((function(e){return e.value})).join(" ")})).map(dd)}},dd=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"}(ld||(ld={}));var fd,md={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return yp(t).map((function(e){return e.filter(yd)}))}},yd=function(e){return Ap(e)||vp(e)},Ed=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},gd=Ed("top"),vd=Ed("right"),Id=Ed("bottom"),_d=Ed("left"),Td=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return Ip(t.filter(vp))}}},Pd=Td("top-left"),bd=Td("top-right"),Rd=Td("bottom-right"),Dd=Td("bottom-left"),Cd=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}}},Nd=Cd("top"),Od=Cd("right"),xd=Cd("bottom"),Sd=Cd("left"),wd=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return cp(t)?t.number:0}}},Md=wd("top"),Bd=wd("right"),Fd=wd("bottom"),Ld=wd("left"),Ud={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Hd={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},Gd={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(Ap).reduce((function(e,t){return e|kd(t.value)}),0)}},kd=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},Vd={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}},jd={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"}(fd||(fd={}));var Qd,Wd={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?fd.STRICT:fd.NORMAL}},zd={name:"line-height",initialValue:"normal",prefix:!1,type:4},Kd=function(e,t){return Ap(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:vp(e)?Rp(e,t):t},Yd={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:ad(e,t)}},Xd={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},Zd={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}}},qd=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},Jd=qd("top"),$d=qd("right"),ef=qd("bottom"),tf=qd("left"),sf={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(Ap).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}}))}},rf={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},of=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},nf=of("top"),af=of("right"),lf=of("bottom"),hf=of("left"),cf={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}}},uf={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}},Af={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&dp(t[0],"none")?[]:yp(t).map((function(t){for(var s={color:jp.TRANSPARENT,offsetX:_p,offsetY:_p,blur:_p},i=0,r=0;r1?1:0],this.overflowWrap=Wf(e,rf,t.overflowWrap),this.paddingTop=Wf(e,nf,t.paddingTop),this.paddingRight=Wf(e,af,t.paddingRight),this.paddingBottom=Wf(e,lf,t.paddingBottom),this.paddingLeft=Wf(e,hf,t.paddingLeft),this.paintOrder=Wf(e,Hf,t.paintOrder),this.position=Wf(e,uf,t.position),this.textAlign=Wf(e,cf,t.textAlign),this.textDecorationColor=Wf(e,Pf,null!==(s=t.textDecorationColor)&&void 0!==s?s:t.color),this.textDecorationLine=Wf(e,bf,null!==(i=t.textDecorationLine)&&void 0!==i?i:t.textDecoration),this.textShadow=Wf(e,Af,t.textShadow),this.textTransform=Wf(e,pf,t.textTransform),this.transform=Wf(e,df,t.transform),this.transformOrigin=Wf(e,Ef,t.transformOrigin),this.visibility=Wf(e,gf,t.visibility),this.webkitTextStrokeColor=Wf(e,Gf,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=Wf(e,kf,t.webkitTextStrokeWidth),this.wordBreak=Wf(e,vf,t.wordBreak),this.zIndex=Wf(e,If,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 xf(this.display,4)||xf(this.display,33554432)||xf(this.display,268435456)||xf(this.display,536870912)||xf(this.display,67108864)||xf(this.display,134217728)},e}(),jf=function(e,t){this.content=Wf(e,Sf,t.content),this.quotes=Wf(e,Ff,t.quotes)},Qf=function(e,t){this.counterIncrement=Wf(e,wf,t.counterIncrement),this.counterReset=Wf(e,Mf,t.counterReset)},Wf=function(e,t,s){var i=new lp,r=null!=s?s.toString():t.initialValue;i.write(r);var o=new hp(i.read());switch(t.type){case 2:var n=o.parseComponentValue();return t.parse(e,Ap(n)?n.value:t.initialValue);case 0:return t.parse(e,o.parseComponentValue());case 1:return t.parse(e,o.parseComponentValues());case 4:return o.parseComponentValue();case 3:switch(t.format){case"angle":return Np(e,o.parseComponentValue());case"color":return wp(e,o.parseComponentValue());case"image":return ad(e,o.parseComponentValue());case"length":var a=o.parseComponentValue();return gp(a)?a:_p;case"length-percentage":var l=o.parseComponentValue();return vp(l)?l:_p;case"time":return _f(e,o.parseComponentValue())}}},zf=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},Kf=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,zf(t,3),this.styles=new Vf(e,window.getComputedStyle(t,null)),qm(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=Cu(this.context,t),zf(t,4)&&(this.flags|=16)},Yf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xf="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Zf=0;Zf=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}(),$f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",em="undefined"==typeof Uint8Array?[]:new Uint8Array(256),tm=0;tm<$f.length;tm++)em[$f.charCodeAt(tm)]=tm;var sm,im=8,rm=9,om=11,nm=12,am=function(){for(var e=[],t=0;t>10),n%1024+56320)),(r+1===s||i.length>16384)&&(o+=String.fromCharCode.apply(String,i),i.length=0)}return o},lm=function(e,t){var s,i,r,o=function(e){var t,s,i,r,o,n=.75*e.length,a=e.length,l=0;"="===e[e.length-1]&&(n--,"="===e[e.length-2]&&n--);var h="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(n):new Array(n),c=Array.isArray(h)?h:new Uint8Array(h);for(t=0;t>4,c[l++]=(15&i)<<4|r>>2,c[l++]=(3&r)<<6|63&o;return h}(e),n=Array.isArray(o)?function(e){for(var t=e.length,s=[],i=0;i=55296&&r<=56319&&s=s)return{done:!0,value:null};for(var e=hm;in.x||r.y>n.y;return n=r,0===t||a}));return e.body.removeChild(t),a}(document);return Object.defineProperty(mm,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,s=e.createElement("canvas"),i=s.getContext("2d");if(!i)return!1;t.src="data:image/svg+xml,";try{i.drawImage(t,0,0),s.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(mm,"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 i=t.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,s,s);var r=new Image,o=t.toDataURL();r.src=o;var n=dm(s,s,0,0,r);return i.fillStyle="red",i.fillRect(0,0,s,s),fm(n).then((function(t){i.drawImage(t,0,0);var r=i.getImageData(0,0,s,s).data;i.fillStyle="red",i.fillRect(0,0,s,s);var n=e.createElement("div");return n.style.backgroundImage="url("+o+")",n.style.height="100px",pm(r)?fm(dm(s,s,0,0,n)):Promise.reject(!1)})).then((function(e){return i.drawImage(e,0,0),pm(i.getImageData(0,0,s,s).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(mm,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(mm,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(mm,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(mm,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(mm,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},ym=function(e,t){this.text=e,this.bounds=t},Em=function(e,t){var s=t.ownerDocument;if(s){var i=s.createElement("html2canvaswrapper");i.appendChild(t.cloneNode(!0));var r=t.parentNode;if(r){r.replaceChild(i,t);var o=Cu(e,i);return i.firstChild&&r.replaceChild(i.firstChild,i),o}}return Du.EMPTY},gm=function(e,t,s){var i=e.ownerDocument;if(!i)throw new Error("Node has no owner document");var r=i.createRange();return r.setStart(e,t),r.setEnd(e,t+s),r},vm=function(e){if(mm.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=Am(e),i=[];!(t=s.next()).done;)t.value&&i.push(t.value.slice());return i}(e)},Im=function(e,t){return 0!==t.letterSpacing?vm(e):function(e,t){if(mm.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 Tm(e,t)}(e,t)},_m=[32,160,4961,65792,65793,4153,4241],Tm=function(e,t){for(var s,i=function(e,t){var s=Nu(e),i=RA(s,t),r=i[0],o=i[1],n=i[2],a=s.length,l=0,h=0;return{next:function(){if(h>=a)return{done:!0,value:null};for(var e=pA;h0)if(mm.SUPPORT_RANGE_BOUNDS){var r=gm(i,n,t.length).getClientRects();if(r.length>1){var a=vm(t),l=0;a.forEach((function(t){o.push(new ym(t,Du.fromDOMRectList(e,gm(i,l+n,t.length).getClientRects()))),l+=t.length}))}else o.push(new ym(t,Du.fromDOMRectList(e,r)))}else{var h=i.splitText(t.length);o.push(new ym(t,Em(e,i))),i=h}else mm.SUPPORT_RANGE_BOUNDS||(i=i.splitText(t.length));n+=t.length})),o}(e,this.text,s,t)},bm=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(Rm,Dm);case 2:return e.toUpperCase();default:return e}},Rm=/(^|\s|:|-|\(|\))([a-z])/g,Dm=function(e,t,s){return e.length>0?t+s.toUpperCase():e},Cm=function(e){function t(t,s){var i=e.call(this,t,s)||this;return i.src=s.currentSrc||s.src,i.intrinsicWidth=s.naturalWidth,i.intrinsicHeight=s.naturalHeight,i.context.cache.addImage(i.src),i}return _u(t,e),t}(Kf),Nm=function(e){function t(t,s){var i=e.call(this,t,s)||this;return i.canvas=s,i.intrinsicWidth=s.width,i.intrinsicHeight=s.height,i}return _u(t,e),t}(Kf),Om=function(e){function t(t,s){var i=e.call(this,t,s)||this,r=new XMLSerializer,o=Cu(t,s);return s.setAttribute("width",o.width+"px"),s.setAttribute("height",o.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(s)),i.intrinsicWidth=s.width.baseVal.value,i.intrinsicHeight=s.height.baseVal.value,i.context.cache.addImage(i.svg),i}return _u(t,e),t}(Kf),xm=function(e){function t(t,s){var i=e.call(this,t,s)||this;return i.value=s.value,i}return _u(t,e),t}(Kf),Sm=function(e){function t(t,s){var i=e.call(this,t,s)||this;return i.start=s.start,i.reversed="boolean"==typeof s.reversed&&!0===s.reversed,i}return _u(t,e),t}(Kf),wm=[{type:15,flags:0,unit:"px",number:3}],Mm=[{type:16,flags:0,number:50}],Bm="checkbox",Fm="radio",Lm="password",Um=707406591,Hm=function(e){function t(t,s){var i,r,o,n=e.call(this,t,s)||this;switch(n.type=s.type.toLowerCase(),n.checked=s.checked,n.value=0===(r=(i=s).type===Lm?new Array(i.value.length+1).join("•"):i.value).length?i.placeholder||"":r,n.type!==Bm&&n.type!==Fm||(n.styles.backgroundColor=3739148031,n.styles.borderTopColor=n.styles.borderRightColor=n.styles.borderBottomColor=n.styles.borderLeftColor=2779096575,n.styles.borderTopWidth=n.styles.borderRightWidth=n.styles.borderBottomWidth=n.styles.borderLeftWidth=1,n.styles.borderTopStyle=n.styles.borderRightStyle=n.styles.borderBottomStyle=n.styles.borderLeftStyle=1,n.styles.backgroundClip=[0],n.styles.backgroundOrigin=[0],n.bounds=(o=n.bounds).width>o.height?new Du(o.left+(o.width-o.height)/2,o.top,o.height,o.height):o.width0)s.textNodes.push(new Pm(e,r,s.styles));else if(Zm(r))if(uy(r)&&r.assignedNodes)r.assignedNodes().forEach((function(t){return Qm(e,t,s,i)}));else{var n=Wm(e,r);n.styles.isVisible()&&(Km(r,n,i)?n.flags|=4:Ym(n.styles)&&(n.flags|=2),-1!==jm.indexOf(r.tagName)&&(n.flags|=8),s.elements.push(n),r.slot,r.shadowRoot?Qm(e,r.shadowRoot,n,i):hy(r)||sy(r)||cy(r)||Qm(e,r,n,i))}},Wm=function(e,t){return ny(t)?new Cm(e,t):ry(t)?new Nm(e,t):sy(t)?new Om(e,t):$m(t)?new xm(e,t):ey(t)?new Sm(e,t):ty(t)?new Hm(e,t):cy(t)?new Gm(e,t):hy(t)?new km(e,t):ay(t)?new Vm(e,t):new Kf(e,t)},zm=function(e,t){var s=Wm(e,t);return s.flags|=4,Qm(e,t,s,s),s},Km=function(e,t,s){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||iy(e)&&s.styles.isTransparent()},Ym=function(e){return e.isPositioned()||e.isFloating()},Xm=function(e){return e.nodeType===Node.TEXT_NODE},Zm=function(e){return e.nodeType===Node.ELEMENT_NODE},qm=function(e){return Zm(e)&&void 0!==e.style&&!Jm(e)},Jm=function(e){return"object"==typeof e.className},$m=function(e){return"LI"===e.tagName},ey=function(e){return"OL"===e.tagName},ty=function(e){return"INPUT"===e.tagName},sy=function(e){return"svg"===e.tagName},iy=function(e){return"BODY"===e.tagName},ry=function(e){return"CANVAS"===e.tagName},oy=function(e){return"VIDEO"===e.tagName},ny=function(e){return"IMG"===e.tagName},ay=function(e){return"IFRAME"===e.tagName},ly=function(e){return"STYLE"===e.tagName},hy=function(e){return"TEXTAREA"===e.tagName},cy=function(e){return"SELECT"===e.tagName},uy=function(e){return"SLOT"===e.tagName},Ay=function(e){return e.tagName.indexOf("-")>0},py=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,i=e.counterReset,r=!0;null!==s&&s.forEach((function(e){var s=t.counters[e.counter];s&&0!==e.increment&&(r=!1,s.length||s.push(1),s[Math.max(0,s.length-1)]+=e.increment)}));var o=[];return r&&i.forEach((function(e){var s=t.counters[e.counter];o.push(e.counter),s||(s=t.counters[e.counter]=[]),s.push(e.reset)})),o},e}(),dy={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"]},fy={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:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},my={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:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},yy={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:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},Ey=function(e,t,s,i,r,o){return es?Dy(e,r,o.length>0):i.integers.reduce((function(t,s,r){for(;e>=s;)e-=s,t+=i.values[r];return t}),"")+o},gy=function(e,t,s,i){var r="";do{s||e--,r=i(e)+r,e/=t}while(e*t>=t);return r},vy=function(e,t,s,i,r){var o=s-t+1;return(e<0?"-":"")+(gy(Math.abs(e),o,i,(function(e){return Ou(Math.floor(e%o)+t)}))+r)},Iy=function(e,t,s){void 0===s&&(s=". ");var i=t.length;return gy(Math.abs(e),i,!1,(function(e){return t[Math.floor(e%i)]}))+s},_y=function(e,t,s,i,r,o){if(e<-9999||e>9999)return Dy(e,4,r.length>0);var n=Math.abs(e),a=r;if(0===n)return t[0]+a;for(var l=0;n>0&&l<=4;l++){var h=n%10;0===h&&xf(o,1)&&""!==a?a=t[h]+a:h>1||1===h&&0===l||1===h&&1===l&&xf(o,2)||1===h&&1===l&&xf(o,4)&&e>100||1===h&&l>1&&xf(o,8)?a=t[h]+(l>0?s[l-1]:"")+a:1===h&&l>0&&(a=s[l-1]+a),n=Math.floor(n/10)}return(e<0?i:"")+a},Ty="十百千萬",Py="拾佰仟萬",by="マイナス",Ry="마이너스",Dy=function(e,t,s){var i=s?". ":"",r=s?"、":"",o=s?", ":"",n=s?" ":"";switch(t){case 0:return"•"+n;case 1:return"◦"+n;case 2:return"◾"+n;case 5:var a=vy(e,48,57,!0,i);return a.length<4?"0"+a:a;case 4:return Iy(e,"〇一二三四五六七八九",r);case 6:return Ey(e,1,3999,dy,3,i).toLowerCase();case 7:return Ey(e,1,3999,dy,3,i);case 8:return vy(e,945,969,!1,i);case 9:return vy(e,97,122,!1,i);case 10:return vy(e,65,90,!1,i);case 11:return vy(e,1632,1641,!0,i);case 12:case 49:return Ey(e,1,9999,fy,3,i);case 35:return Ey(e,1,9999,fy,3,i).toLowerCase();case 13:return vy(e,2534,2543,!0,i);case 14:case 30:return vy(e,6112,6121,!0,i);case 15:return Iy(e,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return Iy(e,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return _y(e,"零一二三四五六七八九",Ty,"負",r,14);case 47:return _y(e,"零壹貳參肆伍陸柒捌玖",Py,"負",r,15);case 42:return _y(e,"零一二三四五六七八九",Ty,"负",r,14);case 41:return _y(e,"零壹贰叁肆伍陆柒捌玖",Py,"负",r,15);case 26:return _y(e,"〇一二三四五六七八九","十百千万",by,r,0);case 25:return _y(e,"零壱弐参四伍六七八九","拾百千万",by,r,7);case 31:return _y(e,"영일이삼사오육칠팔구","십백천만",Ry,o,7);case 33:return _y(e,"零一二三四五六七八九","十百千萬",Ry,o,0);case 32:return _y(e,"零壹貳參四五六七八九","拾百千",Ry,o,7);case 18:return vy(e,2406,2415,!0,i);case 20:return Ey(e,1,19999,yy,3,i);case 21:return vy(e,2790,2799,!0,i);case 22:return vy(e,2662,2671,!0,i);case 22:return Ey(e,1,10999,my,3,i);case 23:return Iy(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Iy(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return vy(e,3302,3311,!0,i);case 28:return Iy(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return Iy(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return vy(e,3792,3801,!0,i);case 37:return vy(e,6160,6169,!0,i);case 38:return vy(e,4160,4169,!0,i);case 39:return vy(e,2918,2927,!0,i);case 40:return vy(e,1776,1785,!0,i);case 43:return vy(e,3046,3055,!0,i);case 44:return vy(e,3174,3183,!0,i);case 45:return vy(e,3664,3673,!0,i);case 46:return vy(e,3872,3881,!0,i);default:return vy(e,48,57,!0,i)}},Cy="data-html2canvas-ignore",Ny=function(){function e(e,t,s){if(this.context=e,this.options=s,this.scrolledElements=[],this.referenceElement=t,this.counters=new py,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,i=xy(e,t);if(!i.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,o=e.defaultView.pageYOffset,n=i.contentWindow,a=n.document,l=My(i).then((function(){return Pu(s,void 0,void 0,(function(){var e,s;return bu(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(Hy),n&&(n.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||n.scrollY===t.top&&n.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(n.scrollX-t.left,n.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")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,wy(a)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(a,s)})).then((function(){return i}))]:[2,i]}}))}))}));return a.open(),a.write(Ly(document.doctype)+""),Uy(this.referenceElement.ownerDocument,r,o),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),l},e.prototype.createElementClone=function(e){if(zf(e,2),ry(e))return this.createCanvasClone(e);if(oy(e))return this.createVideoClone(e);if(ly(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return ny(t)&&(ny(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),Ay(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return Fy(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}),""),i=e.cloneNode(!1);return i.textContent=s,i}}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 i=e.cloneNode(!1);try{i.width=e.width,i.height=e.height;var r=e.getContext("2d"),o=i.getContext("2d");if(o)if(!this.options.allowTaint&&r)o.putImageData(r.getImageData(0,0,e.width,e.height),0,0);else{var n=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(n){var a=n.getContextAttributes();!1===(null==a?void 0:a.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}o.drawImage(e,0,0)}return i}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return i},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 i=e.ownerDocument.createElement("canvas");return i.width=e.offsetWidth,i.height=e.offsetHeight,i},e.prototype.appendChildNode=function(e,t,s){Zm(t)&&("SCRIPT"===t.tagName||t.hasAttribute(Cy)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&Zm(t)&&ly(t)||e.appendChild(this.cloneNode(t,s))},e.prototype.cloneChildNodes=function(e,t,s){for(var i=this,r=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;r;r=r.nextSibling)if(Zm(r)&&uy(r)&&"function"==typeof r.assignedNodes){var o=r.assignedNodes();o.length&&o.forEach((function(e){return i.appendChildNode(t,e,s)}))}else this.appendChildNode(t,r,s)},e.prototype.cloneNode=function(e,t){if(Xm(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var s=e.ownerDocument.defaultView;if(s&&Zm(e)&&(qm(e)||Jm(e))){var i=this.createElementClone(e);i.style.transitionProperty="none";var r=s.getComputedStyle(e),o=s.getComputedStyle(e,":before"),n=s.getComputedStyle(e,":after");this.referenceElement===e&&qm(i)&&(this.clonedReferenceElement=i),iy(i)&&jy(i);var a=this.counters.parse(new Qf(this.context,r)),l=this.resolvePseudoContent(e,i,o,sm.BEFORE);Ay(e)&&(t=!0),oy(e)||this.cloneChildNodes(e,i,t),l&&i.insertBefore(l,i.firstChild);var h=this.resolvePseudoContent(e,i,n,sm.AFTER);return h&&i.appendChild(h),this.counters.pop(a),(r&&(this.options.copyStyles||Jm(e))&&!ay(e)||t)&&Fy(r,i),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([i,e.scrollLeft,e.scrollTop]),(hy(e)||cy(e))&&(hy(i)||cy(i))&&(i.value=e.value),i}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,s,i){var r=this;if(s){var o=s.content,n=t.ownerDocument;if(n&&o&&"none"!==o&&"-moz-alt-content"!==o&&"none"!==s.display){this.counters.parse(new Qf(this.context,s));var a=new jf(this.context,s),l=n.createElement("html2canvaspseudoelement");Fy(s,l),a.content.forEach((function(t){if(0===t.type)l.appendChild(n.createTextNode(t.value));else if(22===t.type){var s=n.createElement("img");s.src=t.value,s.style.opacity="1",l.appendChild(s)}else if(18===t.type){if("attr"===t.name){var i=t.values.filter(Ap);i.length&&l.appendChild(n.createTextNode(e.getAttribute(i[0].value)||""))}else if("counter"===t.name){var o=t.values.filter(mp),h=o[0],c=o[1];if(h&&Ap(h)){var u=r.counters.getCounterValue(h.value),A=c&&Ap(c)?Zd.parse(r.context,c.value):3;l.appendChild(n.createTextNode(Dy(u,A,!1)))}}else if("counters"===t.name){var p=t.values.filter(mp),d=(h=p[0],p[1]);c=p[2];if(h&&Ap(h)){var f=r.counters.getCounterValues(h.value),m=c&&Ap(c)?Zd.parse(r.context,c.value):3,y=d&&0===d.type?d.value:"",E=f.map((function(e){return Dy(e,m,!1)})).join(y);l.appendChild(n.createTextNode(E))}}}else if(20===t.type)switch(t.value){case"open-quote":l.appendChild(n.createTextNode(Lf(a.quotes,r.quoteDepth++,!0)));break;case"close-quote":l.appendChild(n.createTextNode(Lf(a.quotes,--r.quoteDepth,!1)));break;default:l.appendChild(n.createTextNode(t.value))}})),l.className=Gy+" "+ky;var h=i===sm.BEFORE?" "+Gy:" "+ky;return Jm(t)?t.className.baseValue+=h:t.className+=h,l}}},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"}(sm||(sm={}));var Oy,xy=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(Cy,"true"),e.body.appendChild(s),s},Sy=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},wy=function(e){return Promise.all([].slice.call(e.images,0).map(Sy))},My=function(e){return new Promise((function(t,s){var i=e.contentWindow;if(!i)return s("No window assigned for iframe");var r=i.document;i.onload=e.onload=function(){i.onload=e.onload=null;var s=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(s),t(e))}),50)}}))},By=["all","d","content"],Fy=function(e,t){for(var s=e.length-1;s>=0;s--){var i=e.item(s);-1===By.indexOf(i)&&t.style.setProperty(i,e.getPropertyValue(i))}return t},Ly=function(e){var t="";return e&&(t+=""),t},Uy=function(e,t,s){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||s!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,s)},Hy=function(e){var t=e[0],s=e[1],i=e[2];t.scrollLeft=s,t.scrollTop=i},Gy="___html2canvas___pseudoelement_before",ky="___html2canvas___pseudoelement_after",Vy='{\n content: "" !important;\n display: none !important;\n}',jy=function(e){Qy(e,"."+Gy+":before"+Vy+"\n ."+ky+":after"+Vy)},Qy=function(e,t){var s=e.ownerDocument;if(s){var i=s.createElement("style");i.textContent=t,e.appendChild(i)}},Wy=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}(),zy=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:$y(e)||Zy(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 Pu(this,void 0,void 0,(function(){var t,s,i,r,o=this;return bu(this,(function(n){switch(n.label){case 0:return t=Wy.isSameOrigin(e),s=!qy(e)&&!0===this._options.useCORS&&mm.SUPPORT_CORS_IMAGES&&!t,i=!qy(e)&&!t&&!$y(e)&&"string"==typeof this._options.proxy&&mm.SUPPORT_CORS_XHR&&!s,t||!1!==this._options.allowTaint||qy(e)||$y(e)||i||s?(r=e,i?[4,this.proxy(r)]:[3,2]):[2];case 1:r=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var i=new Image;i.onload=function(){return e(i)},i.onerror=t,(Jy(r)||s)&&(i.crossOrigin="anonymous"),i.src=r,!0===i.complete&&setTimeout((function(){return e(i)}),500),o._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.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 i=e.substring(0,256);return new Promise((function(r,o){var n=mm.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=function(){if(200===a.status)if("text"===n)r(a.response);else{var e=new FileReader;e.addEventListener("load",(function(){return r(e.result)}),!1),e.addEventListener("error",(function(e){return o(e)}),!1),e.readAsDataURL(a.response)}else o("Failed to proxy resource "+i+" with status code "+a.status)},a.onerror=o;var l=s.indexOf("?")>-1?"&":"?";if(a.open("GET",""+s+l+"url="+encodeURIComponent(e)+"&responseType="+n),"text"!==n&&a instanceof XMLHttpRequest&&(a.responseType=n),t._options.imageTimeout){var h=t._options.imageTimeout;a.timeout=h,a.ontimeout=function(){return o("Timed out ("+h+"ms) proxying "+i)}}a.send()}))},e}(),Ky=/^data:image\/svg\+xml/i,Yy=/^data:image\/.*;base64,/i,Xy=/^data:image\/.*/i,Zy=function(e){return mm.SUPPORT_SVG_DRAWING||!eE(e)},qy=function(e){return Xy.test(e)},Jy=function(e){return Yy.test(e)},$y=function(e){return"blob"===e.substr(0,4)},eE=function(e){return"svg"===e.substr(-3).toLowerCase()||Ky.test(e)},tE=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}(),sE=function(e,t,s){return new tE(e.x+(t.x-e.x)*s,e.y+(t.y-e.y)*s)},iE=function(){function e(e,t,s,i){this.type=1,this.start=e,this.startControl=t,this.endControl=s,this.end=i}return e.prototype.subdivide=function(t,s){var i=sE(this.start,this.startControl,t),r=sE(this.startControl,this.endControl,t),o=sE(this.endControl,this.end,t),n=sE(i,r,t),a=sE(r,o,t),l=sE(n,a,t);return s?new e(this.start,i,n,l):new e(l,a,o,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}(),rE=function(e){return 1===e.type},oE=function(e){var t=e.styles,s=e.bounds,i=bp(t.borderTopLeftRadius,s.width,s.height),r=i[0],o=i[1],n=bp(t.borderTopRightRadius,s.width,s.height),a=n[0],l=n[1],h=bp(t.borderBottomRightRadius,s.width,s.height),c=h[0],u=h[1],A=bp(t.borderBottomLeftRadius,s.width,s.height),p=A[0],d=A[1],f=[];f.push((r+a)/s.width),f.push((p+c)/s.width),f.push((o+d)/s.height),f.push((l+u)/s.height);var m=Math.max.apply(Math,f);m>1&&(r/=m,o/=m,a/=m,l/=m,c/=m,u/=m,p/=m,d/=m);var y=s.width-a,E=s.height-u,g=s.width-c,v=s.height-d,I=t.borderTopWidth,_=t.borderRightWidth,T=t.borderBottomWidth,P=t.borderLeftWidth,b=Rp(t.paddingTop,e.bounds.width),R=Rp(t.paddingRight,e.bounds.width),D=Rp(t.paddingBottom,e.bounds.width),C=Rp(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||o>0?nE(s.left+P/3,s.top+I/3,r-P/3,o-I/3,Oy.TOP_LEFT):new tE(s.left+P/3,s.top+I/3),this.topRightBorderDoubleOuterBox=r>0||o>0?nE(s.left+y,s.top+I/3,a-_/3,l-I/3,Oy.TOP_RIGHT):new tE(s.left+s.width-_/3,s.top+I/3),this.bottomRightBorderDoubleOuterBox=c>0||u>0?nE(s.left+g,s.top+E,c-_/3,u-T/3,Oy.BOTTOM_RIGHT):new tE(s.left+s.width-_/3,s.top+s.height-T/3),this.bottomLeftBorderDoubleOuterBox=p>0||d>0?nE(s.left+P/3,s.top+v,p-P/3,d-T/3,Oy.BOTTOM_LEFT):new tE(s.left+P/3,s.top+s.height-T/3),this.topLeftBorderDoubleInnerBox=r>0||o>0?nE(s.left+2*P/3,s.top+2*I/3,r-2*P/3,o-2*I/3,Oy.TOP_LEFT):new tE(s.left+2*P/3,s.top+2*I/3),this.topRightBorderDoubleInnerBox=r>0||o>0?nE(s.left+y,s.top+2*I/3,a-2*_/3,l-2*I/3,Oy.TOP_RIGHT):new tE(s.left+s.width-2*_/3,s.top+2*I/3),this.bottomRightBorderDoubleInnerBox=c>0||u>0?nE(s.left+g,s.top+E,c-2*_/3,u-2*T/3,Oy.BOTTOM_RIGHT):new tE(s.left+s.width-2*_/3,s.top+s.height-2*T/3),this.bottomLeftBorderDoubleInnerBox=p>0||d>0?nE(s.left+2*P/3,s.top+v,p-2*P/3,d-2*T/3,Oy.BOTTOM_LEFT):new tE(s.left+2*P/3,s.top+s.height-2*T/3),this.topLeftBorderStroke=r>0||o>0?nE(s.left+P/2,s.top+I/2,r-P/2,o-I/2,Oy.TOP_LEFT):new tE(s.left+P/2,s.top+I/2),this.topRightBorderStroke=r>0||o>0?nE(s.left+y,s.top+I/2,a-_/2,l-I/2,Oy.TOP_RIGHT):new tE(s.left+s.width-_/2,s.top+I/2),this.bottomRightBorderStroke=c>0||u>0?nE(s.left+g,s.top+E,c-_/2,u-T/2,Oy.BOTTOM_RIGHT):new tE(s.left+s.width-_/2,s.top+s.height-T/2),this.bottomLeftBorderStroke=p>0||d>0?nE(s.left+P/2,s.top+v,p-P/2,d-T/2,Oy.BOTTOM_LEFT):new tE(s.left+P/2,s.top+s.height-T/2),this.topLeftBorderBox=r>0||o>0?nE(s.left,s.top,r,o,Oy.TOP_LEFT):new tE(s.left,s.top),this.topRightBorderBox=a>0||l>0?nE(s.left+y,s.top,a,l,Oy.TOP_RIGHT):new tE(s.left+s.width,s.top),this.bottomRightBorderBox=c>0||u>0?nE(s.left+g,s.top+E,c,u,Oy.BOTTOM_RIGHT):new tE(s.left+s.width,s.top+s.height),this.bottomLeftBorderBox=p>0||d>0?nE(s.left,s.top+v,p,d,Oy.BOTTOM_LEFT):new tE(s.left,s.top+s.height),this.topLeftPaddingBox=r>0||o>0?nE(s.left+P,s.top+I,Math.max(0,r-P),Math.max(0,o-I),Oy.TOP_LEFT):new tE(s.left+P,s.top+I),this.topRightPaddingBox=a>0||l>0?nE(s.left+Math.min(y,s.width-_),s.top+I,y>s.width+_?0:Math.max(0,a-_),Math.max(0,l-I),Oy.TOP_RIGHT):new tE(s.left+s.width-_,s.top+I),this.bottomRightPaddingBox=c>0||u>0?nE(s.left+Math.min(g,s.width-P),s.top+Math.min(E,s.height-T),Math.max(0,c-_),Math.max(0,u-T),Oy.BOTTOM_RIGHT):new tE(s.left+s.width-_,s.top+s.height-T),this.bottomLeftPaddingBox=p>0||d>0?nE(s.left+P,s.top+Math.min(v,s.height-T),Math.max(0,p-P),Math.max(0,d-T),Oy.BOTTOM_LEFT):new tE(s.left+P,s.top+s.height-T),this.topLeftContentBox=r>0||o>0?nE(s.left+P+C,s.top+I+b,Math.max(0,r-(P+C)),Math.max(0,o-(I+b)),Oy.TOP_LEFT):new tE(s.left+P+C,s.top+I+b),this.topRightContentBox=a>0||l>0?nE(s.left+Math.min(y,s.width+P+C),s.top+I+b,y>s.width+P+C?0:a-P+C,l-(I+b),Oy.TOP_RIGHT):new tE(s.left+s.width-(_+R),s.top+I+b),this.bottomRightContentBox=c>0||u>0?nE(s.left+Math.min(g,s.width-(P+C)),s.top+Math.min(E,s.height+I+b),Math.max(0,c-(_+R)),u-(T+D),Oy.BOTTOM_RIGHT):new tE(s.left+s.width-(_+R),s.top+s.height-(T+D)),this.bottomLeftContentBox=p>0||d>0?nE(s.left+P+C,s.top+v,Math.max(0,p-(P+C)),d-(T+D),Oy.BOTTOM_LEFT):new tE(s.left+P+C,s.top+s.height-(T+D))};!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"}(Oy||(Oy={}));var nE=function(e,t,s,i,r){var o=(Math.sqrt(2)-1)/3*4,n=s*o,a=i*o,l=e+s,h=t+i;switch(r){case Oy.TOP_LEFT:return new iE(new tE(e,h),new tE(e,h-a),new tE(l-n,t),new tE(l,t));case Oy.TOP_RIGHT:return new iE(new tE(e,t),new tE(e+n,t),new tE(l,h-a),new tE(l,h));case Oy.BOTTOM_RIGHT:return new iE(new tE(l,t),new tE(l,t+a),new tE(e+n,h),new tE(e,h));case Oy.BOTTOM_LEFT:default:return new iE(new tE(l,h),new tE(l-n,h),new tE(e,t+a),new tE(e,t))}},aE=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},lE=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},hE=function(e,t,s){this.offsetX=e,this.offsetY=t,this.matrix=s,this.type=0,this.target=6},cE=function(e,t){this.path=e,this.target=t,this.type=1},uE=function(e){this.opacity=e,this.type=2,this.target=6},AE=function(e){return 1===e.type},pE=function(e,t){return e.length===t.length&&e.some((function(e,s){return e===t[s]}))},dE=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},fE=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new oE(this.container),this.container.styles.opacity<1&&this.effects.push(new uE(this.container.styles.opacity)),null!==this.container.styles.transform){var s=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new hE(s,i,r))}if(0!==this.container.styles.overflowX){var o=aE(this.curves),n=lE(this.curves);pE(o,n)?this.effects.push(new cE(o,6)):(this.effects.push(new cE(o,2)),this.effects.push(new cE(n,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),s=this.parent,i=this.effects.slice(0);s;){var r=s.effects.filter((function(e){return!AE(e)}));if(t||0!==s.container.styles.position||!s.parent){if(i.unshift.apply(i,r),t=-1===[2,3].indexOf(s.container.styles.position),0!==s.container.styles.overflowX){var o=aE(s.curves),n=lE(s.curves);pE(o,n)||i.unshift(new cE(n,6))}}else i.unshift.apply(i,r);s=s.parent}return i.filter((function(t){return xf(t.target,e)}))},e}(),mE=function(e,t,s,i){e.container.elements.forEach((function(r){var o=xf(r.flags,4),n=xf(r.flags,2),a=new fE(r,e);xf(r.styles.display,2048)&&i.push(a);var l=xf(r.flags,8)?[]:i;if(o||n){var h=o||r.styles.isPositioned()?s:t,c=new dE(a);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var u=r.styles.zIndex.order;if(u<0){var A=0;h.negativeZIndex.some((function(e,t){return u>e.element.container.styles.zIndex.order?(A=t,!1):A>0})),h.negativeZIndex.splice(A,0,c)}else if(u>0){var p=0;h.positiveZIndex.some((function(e,t){return u>=e.element.container.styles.zIndex.order?(p=t+1,!1):p>0})),h.positiveZIndex.splice(p,0,c)}else h.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else r.styles.isFloating()?h.nonPositionedFloats.push(c):h.nonPositionedInlineLevel.push(c);mE(a,c,o?c:s,l)}else r.styles.isInlineLevel()?t.inlineLevel.push(a):t.nonInlineLevel.push(a),mE(a,t,s,l);xf(r.flags,8)&&yE(r,l)}))},yE=function(e,t){for(var s=e instanceof Sm?e.start:1,i=e instanceof Sm&&e.reversed,r=0;r0&&e.intrinsicHeight>0){var i=_E(e),r=lE(t);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(s,0,0,e.intrinsicWidth,e.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return Pu(this,void 0,void 0,(function(){var s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g;return bu(this,(function(v){switch(v.label){case 0:this.applyEffects(e.getEffects(4)),s=e.container,i=e.curves,r=s.styles,o=0,n=s.textNodes,v.label=1;case 1:return o0&&T>0&&(y=i.ctx.createPattern(d,"repeat"),i.renderRepeat(g,y,b,R))):function(e){return 2===e.type}(s)&&(E=TE(e,t,[null,null,null]),g=E[0],v=E[1],I=E[2],_=E[3],T=E[4],P=0===s.position.length?[Tp]:s.position,b=Rp(P[0],_),R=Rp(P[P.length-1],T),D=function(e,t,s,i,r){var o=0,n=0;switch(e.size){case 0:0===e.shape?o=n=Math.min(Math.abs(t),Math.abs(t-i),Math.abs(s),Math.abs(s-r)):1===e.shape&&(o=Math.min(Math.abs(t),Math.abs(t-i)),n=Math.min(Math.abs(s),Math.abs(s-r)));break;case 2:if(0===e.shape)o=n=Math.min(Xp(t,s),Xp(t,s-r),Xp(t-i,s),Xp(t-i,s-r));else if(1===e.shape){var a=Math.min(Math.abs(s),Math.abs(s-r))/Math.min(Math.abs(t),Math.abs(t-i)),l=Zp(i,r,t,s,!0),h=l[0],c=l[1];n=a*(o=Xp(h-t,(c-s)/a))}break;case 1:0===e.shape?o=n=Math.max(Math.abs(t),Math.abs(t-i),Math.abs(s),Math.abs(s-r)):1===e.shape&&(o=Math.max(Math.abs(t),Math.abs(t-i)),n=Math.max(Math.abs(s),Math.abs(s-r)));break;case 3:if(0===e.shape)o=n=Math.max(Xp(t,s),Xp(t,s-r),Xp(t-i,s),Xp(t-i,s-r));else if(1===e.shape){a=Math.max(Math.abs(s),Math.abs(s-r))/Math.max(Math.abs(t),Math.abs(t-i));var u=Zp(i,r,t,s,!1);h=u[0],c=u[1],n=a*(o=Xp(h-t,(c-s)/a))}}return Array.isArray(e.size)&&(o=Rp(e.size[0],i),n=2===e.size.length?Rp(e.size[1],r):o),[o,n]}(s,b,R,_,T),C=D[0],N=D[1],C>0&&N>0&&(O=i.ctx.createRadialGradient(v+b,I+R,0,v+b,I+R,C),Kp(s.stops,2*C).forEach((function(e){return O.addColorStop(e.stop,Bp(e.color))})),i.path(g),i.ctx.fillStyle=O,C!==N?(x=e.bounds.left+.5*e.bounds.width,S=e.bounds.top+.5*e.bounds.height,M=1/(w=N/C),i.ctx.save(),i.ctx.translate(x,S),i.ctx.transform(1,0,0,w,0,0),i.ctx.translate(-x,-S),i.ctx.fillRect(v,M*(I-S)+S,_,T*M),i.ctx.restore()):i.ctx.fill())),B.label=6;case 6:return t--,[2]}}))},i=this,r=0,o=e.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return r0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,2)]:[3,11]:[3,13];case 4:return c.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,3)];case 6:return c.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,o,e.curves)];case 8:return c.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,o,e.curves)];case 10:c.sent(),c.label=11;case 11:o++,c.label=12;case 12:return n++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,t,s,i,r){return Pu(this,void 0,void 0,(function(){var o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v;return bu(this,(function(I){return this.ctx.save(),o=function(e,t){switch(t){case 0:return gE(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return gE(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return gE(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return gE(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(i,s),n=EE(i,s),2===r&&(this.path(n),this.ctx.clip()),rE(n[0])?(a=n[0].start.x,l=n[0].start.y):(a=n[0].x,l=n[0].y),rE(n[1])?(h=n[1].end.x,c=n[1].end.y):(h=n[1].x,c=n[1].y),u=0===s||2===s?Math.abs(a-h):Math.abs(l-c),this.ctx.beginPath(),3===r?this.formatPath(o):this.formatPath(n.slice(0,2)),A=t<3?3*t:2*t,p=t<3?2*t:t,3===r&&(A=t,p=t),d=!0,u<=2*A?d=!1:u<=2*A+p?(A*=f=u/(2*A+p),p*=f):(m=Math.floor((u+p)/(A+p)),y=(u-m*A)/(m-1),p=(E=(u-(m+1)*A)/m)<=0||Math.abs(p-y){})),qE(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){KE(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){KE(this.isRunning),this.isRunning=!1,this._reject(e)}}class $E{}const eg=new Map;function tg(e){KE(e.source&&!e.url||!e.source&&e.url);let t=eg.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return sg((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),eg.set(e.url,t)),e.source&&(t=sg(e.source),eg.set(e.source,t))),KE(t),t}function sg(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function ig(e,t=!0,s){const i=s||new Set;if(e){if(rg(e))i.add(e);else if(rg(e.buffer))i.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const s in e)ig(e[s],t,i)}else;return void 0===s?Array.from(i):[]}function rg(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 og=()=>{};class ng{static isSupported(){return"undefined"!=typeof Worker&&YE||void 0!==typeof $E}constructor(e){qE(this,"name",void 0),qE(this,"source",void 0),qE(this,"url",void 0),qE(this,"terminated",!1),qE(this,"worker",void 0),qE(this,"onMessage",void 0),qE(this,"onError",void 0),qE(this,"_loadableURL","");const{name:t,source:s,url:i}=e;KE(s||i),this.name=t,this.source=s,this.url=i,this.onMessage=og,this.onError=e=>console.log(e),this.worker=YE?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=og,this.onError=og,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||ig(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=tg({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 $E(t,{eval:!1})}else{if(!this.source)throw new Error("no worker");e=new $E(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 ag{static isSupported(){return ng.isSupported()}constructor(e){qE(this,"name","unnamed"),qE(this,"source",void 0),qE(this,"url",void 0),qE(this,"maxConcurrency",1),qE(this,"maxMobileConcurrency",1),qE(this,"onDebug",(()=>{})),qE(this,"reuseWorkers",!0),qE(this,"props",{}),qE(this,"jobQueue",[]),qE(this,"idleQueue",[]),qE(this,"count",0),qE(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 i=new Promise((i=>(this.jobQueue.push({name:e,onMessage:t,onError:s,onStart:i}),this)));return this._startQueuedJob(),await i}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 JE(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 hg{static isSupported(){return ng.isSupported()}static getWorkerFarm(e={}){return hg._workerFarm=hg._workerFarm||new hg({}),hg._workerFarm.setProps(e),hg._workerFarm}constructor(e){qE(this,"props",void 0),qE(this,"workerPools",new Map),this.props={...lg},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:i}=e;let r=this.workerPools.get(t);return r||(r=new ag({name:t,source:s,url:i}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}qE(hg,"_workerFarm",void 0);const cg={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},ug=cg.window||cg.self||cg.global,Ag=cg.process||{},pg="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source",dg=!("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)}();class fg{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 mg(e,t,s,i=600){const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>i&&(s=Math.min(s,i/e.width));const o=e.width*s,n=e.height*s,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}const yg={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 Eg(e){return"string"==typeof e?yg[e.toUpperCase()]||yg.WHITE:e}function gg(e,t){if(!e)throw new Error(t||"Assertion failed")}function vg(){let e;if(dg&&ug.performance)e=ug.performance.now();else if(Ag.hrtime){const t=Ag.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}const Ig={debug:dg&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},_g={enabled:!0,level:0};function Tg(){}const Pg={},bg={once:!0};function Rg(e){for(const t in e)for(const s in e[t])return s||"untitled";return"empty"}class Dg{constructor({id:e}={id:""}){this.id=e,this.VERSION=pg,this._startTs=vg(),this._deltaTs=vg(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new fg("__probe-".concat(this.id,"__"),_g),this.userData={},this.timeStamp("".concat(this.id," started")),function(e,t=["constructor"]){const s=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(s);for(const s of i)"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((vg()-this._startTs).toPrecision(10))}getDelta(){return Number((vg()-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){gg(e,t)}warn(e){return this._getLogFunction(0,e,Ig.warn,arguments,bg)}error(e){return this._getLogFunction(0,e,Ig.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,Ig.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,Ig.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,Ig.debug||Ig.info,arguments,bg)}table(e,t,s){return t?this._getLogFunction(e,t,console.table||Tg,s&&[s],{tag:Rg(t)}):Tg}image({logLevel:e,priority:t,image:s,message:i="",scale:r=1}){return this._shouldLog(e||t)?dg?function({image:e,message:t="",scale:s=1}){if("string"==typeof e){const i=new Image;return i.onload=()=>{const e=mg(i,t,s);console.log(...e)},i.src=e,Tg}const i=e.nodeName||"";if("img"===i.toLowerCase())return console.log(...mg(e,t,s)),Tg;if("canvas"===i.toLowerCase()){const i=new Image;return i.onload=()=>console.log(...mg(i,t,s)),i.src=e.toDataURL(),Tg}return Tg}({image:s,message:i,scale:r}):function({image:e,message:t="",scale:s=1}){let i=null;try{i=module.require("asciify-image")}catch(e){}if(i)return()=>i(e,{fit:"box",width:"".concat(Math.round(80*s),"%")}).then((e=>console.log(e)));return Tg}({image:s,message:i,scale:r}):Tg}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||Tg)}group(e,t,s={collapsed:!1}){s=Ng({logLevel:e,message:t,opts:s});const{collapsed:i}=s;return s.method=(i?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||Tg)}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()>=Cg(e)}_getLogFunction(e,t,s,i=[],r){if(this._shouldLog(e)){r=Ng({logLevel:e,message:t,args:i,opts:r}),gg(s=s||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=vg();const o=r.tag||r.message;if(r.once){if(Pg[o])return Tg;Pg[o]=vg()}return t=function(e,t,s){if("string"==typeof t){const i=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(i," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,s){return dg||"string"!=typeof e||(t&&(t=Eg(t),e="[".concat(t,"m").concat(e,"")),s&&(t=Eg(s),e="[".concat(s+10,"m").concat(e,""))),e}(t,s.color,s.background)}return t}(this.id,r.message,r),s.bind(console,t,...r.args)}return Tg}}function Cg(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 gg(Number.isFinite(t)&&t>=0),t}function Ng(e){const{logLevel:t,message:s}=e;e.logLevel=Cg(t);const i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==s;);switch(e.args=i,typeof t){case"string":case"function":void 0!==s&&i.unshift(s),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return gg("string"===r||"object"===r),Object.assign(e,e.opts)}Dg.VERSION=pg,new Dg({id:"loaders.gl"});function Og(){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)}()}new class{constructor(){qE(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)}};const xg={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},Sg=xg.window||xg.self||xg.global,wg=xg.process||{},Mg="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source";Og();class Bg{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";qE(this,"storage",void 0),qE(this,"id",void 0),qE(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 Fg(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600;const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>i&&(s=Math.min(s,i/e.width));const o=e.width*s,n=e.height*s,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}let Lg;function Ug(e){return"string"==typeof e?Lg[e.toUpperCase()]||Lg.WHITE:e}function Hg(e,t){if(!e)throw new Error(t||"Assertion failed")}function Gg(){let e;var t,s;if(Og&&"performance"in Sg)e=null==Sg||null===(t=Sg.performance)||void 0===t||null===(s=t.now)||void 0===s?void 0:s.call(t);else if("hrtime"in wg){var i;const t=null==wg||null===(i=wg.hrtime)||void 0===i?void 0:i.call(wg);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"}(Lg||(Lg={}));const kg={debug:Og&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Vg={enabled:!0,level:0};function jg(){}const Qg={},Wg={once:!0};class zg{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""};qE(this,"id",void 0),qE(this,"VERSION",Mg),qE(this,"_startTs",Gg()),qE(this,"_deltaTs",Gg()),qE(this,"_storage",void 0),qE(this,"userData",{}),qE(this,"LOG_THROTTLE_TIMEOUT",0),this.id=e,this._storage=new Bg("__probe-".concat(this.id,"__"),Vg),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),i=Object.getOwnPropertyNames(s);for(const s of i)"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((Gg()-this._startTs).toPrecision(10))}getDelta(){return Number((Gg()-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){Hg(e,t)}warn(e){return this._getLogFunction(0,e,kg.warn,arguments,Wg)}error(e){return this._getLogFunction(0,e,kg.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,kg.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,kg.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){for(var s=arguments.length,i=new Array(s>2?s-2:0),r=2;r{const t=Fg(e,s,i);console.log(...t)},e.src=t,jg}const r=t.nodeName||"";if("img"===r.toLowerCase())return console.log(...Fg(t,s,i)),jg;if("canvas"===r.toLowerCase()){const e=new Image;return e.onload=()=>console.log(...Fg(e,s,i)),e.src=t.toDataURL(),jg}return jg}({image:i,message:r,scale:o}):function(e){let{image:t,message:s="",scale:i=1}=e,r=null;try{r=module.require("asciify-image")}catch(e){}if(r)return()=>r(t,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((e=>console.log(e)));return jg}({image:i,message:r,scale:o}):jg}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||jg)}group(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1};const i=Yg({logLevel:e,message:t,opts:s}),{collapsed:r}=s;return i.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}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||jg)}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()>=Kg(e)}_getLogFunction(e,t,s,i,r){if(this._shouldLog(e)){r=Yg({logLevel:e,message:t,args:i,opts:r}),Hg(s=s||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=Gg();const o=r.tag||r.message;if(r.once){if(Qg[o])return jg;Qg[o]=Gg()}return t=function(e,t,s){if("string"==typeof t){const i=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(i," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,s){return Og||"string"!=typeof e||(t&&(t=Ug(t),e="[".concat(t,"m").concat(e,"")),s&&(t=Ug(s),e="[".concat(s+10,"m").concat(e,""))),e}(t,s.color,s.background)}return t}(this.id,r.message,r),s.bind(console,t,...r.args)}return jg}}function Kg(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 Hg(Number.isFinite(t)&&t>=0),t}function Yg(e){const{logLevel:t,message:s}=e;e.logLevel=Kg(t);const i=e.args?Array.from(e.args):[];for(;i.length&&i.shift()!==s;);switch(typeof t){case"string":case"function":void 0!==s&&i.unshift(s),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return Hg("string"===r||"object"===r),Object.assign(e,{args:i},e.opts)}function Xg(e){for(const t in e)for(const s in e[t])return s||"untitled";return"empty"}var Zg,qg,Jg,$g,ev,tv,sv,iv,rv;let ov;qE(zg,"VERSION",Mg),new zg({id:"loaders.gl"}),(rv=Zg||(Zg={}))[rv.NONE=0]="NONE",rv[rv.BASISLZ=1]="BASISLZ",rv[rv.ZSTD=2]="ZSTD",rv[rv.ZLIB=3]="ZLIB",function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(qg||(qg={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(Jg||(Jg={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}($g||($g={})),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"}(ev||(ev={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(tv||(tv={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}(sv||(sv={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(iv||(iv={})),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"}(ov||(ov={}));const nv={DEFAULT:{}};function av(e,t,s={}){const i="lightgrey",r=s.hoverColor||"rgba(0,0,0,0.4)",o=s.textColor||"black",n=500,a=n+n/3,l=a/24,h=[{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=r[0]*l&&t<=(r[0]+r[2])*l&&s>=r[1]*l&&s<=(r[1]+r[3])*l)return i}}return-1},this.setAreaHighlighted=function(e,t){var s=A[e];if(!s)throw"Area not found: "+e;s.highlighted=!!t,m()},this.getAreaDir=function(e){var t=A[e];if(!t)throw"Unknown area: "+e;return t.dir},this.getAreaUp=function(e){var t=A[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 lv=p.vec3(),hv=p.vec3();p.mat4();class cv extends G{constructor(e,t={}){super("NavCube",e,t),e.navCube=this;try{this._navCubeScene=new Zt(e,{canvasId:t.canvasId,canvasElement:t.canvasElement,transparent:!0}),this._navCubeCanvas=this._navCubeScene.canvas.canvas,this._navCubeScene.input.keyboardEnabled=!1}catch(e){return void this.error(e)}const s=this._navCubeScene;s.clearLights(),new gt(s,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new gt(s,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new gt(s,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._navCubeCamera=s.camera,this._navCubeCamera.ortho.scale=7,this._navCubeCamera.ortho.near=.1,this._navCubeCamera.ortho.far=2e3,s.edgeMaterial.edgeColor=[.2,.2,.2],s.edgeMaterial.edgeAlpha=.6,this._zUp=Boolean(e.camera.zUp);var i=this;this.setIsProjectNorth(t.isProjectNorth),this.setProjectNorthOffsetAngle(t.projectNorthOffsetAngle);const r=function(){const e=p.mat4();return function(t,s,r){return p.identityMat4(e),p.rotationMat4v(t*i._projectNorthOffsetAngle*p.DEGTORAD,[0,1,0],e),p.transformVec3(e,s,r)}}();this._synchCamera=function(){var t=p.rotationMat4c(-90*p.DEGTORAD,1,0,0),s=p.vec3(),o=p.vec3(),n=p.vec3();return function(){var a=e.camera.eye,l=e.camera.look,h=e.camera.up;s=p.mulVec3Scalar(p.normalizeVec3(p.subVec3(a,l,s)),5),i._isProjectNorth&&i._projectNorthOffsetAngle&&(s=r(-1,s,lv),h=r(-1,h,hv)),i._zUp?(p.transformVec3(t,s,o),p.transformVec3(t,h,n),i._navCubeCamera.look=[0,0,0],i._navCubeCamera.eye=p.transformVec3(t,s,o),i._navCubeCamera.up=p.transformPoint3(t,h,n)):(i._navCubeCamera.look=[0,0,0],i._navCubeCamera.eye=s,i._navCubeCamera.up=h)}}(),this._cubeTextureCanvas=new av(e,s,t),this._cubeSampler=new wi(s,{image:this._cubeTextureCanvas.getImage(),flipY:!0,wrapS:Jt,wrapT:Jt}),this._cubeMesh=new ci(s,{geometry:new St(s,{primitive:"triangles",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],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]}),material:new Lt(s,{diffuse:[.4,.4,.4],specular:[.4,.4,.4],emissive:[.6,.6,.6],diffuseMap:this._cubeSampler,emissiveMap:this._cubeSampler}),visible:!0,edges:!0}),this._shadow=!1===t.shadowVisible?null:new ci(s,{geometry:new St(s,Ai({center:[0,0,0],radiusTop:.001,radiusBottom:1.4,height:.01,radialSegments:20,heightSegments:1,openEnded:!0})),material:new Lt(s,{diffuse:[0,0,0],specular:[0,0,0],emissive:[0,0,0],alpha:.5}),position:[0,-1.5,0],visible:!0,pickable:!1,backfaces:!1}),this._onCameraMatrix=e.camera.on("matrix",this._synchCamera),this._onCameraWorldAxis=e.camera.on("worldAxis",(()=>{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 o=-1;function n(e){var t=[0,0];if(e){for(var s=e.target,i=0,r=0;s.offsetParent;)i+=s.offsetLeft,r+=s.offsetTop,s=s.offsetParent;t[0]=e.pageX-i,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var a,l,h=null,c=null,u=!1,A=!1,d=.5;i._navCubeCanvas.addEventListener("mouseenter",i._onMouseEnter=function(e){A=!0}),i._navCubeCanvas.addEventListener("mouseleave",i._onMouseLeave=function(e){A=!1}),i._navCubeCanvas.addEventListener("mousedown",i._onMouseDown=function(e){if(1===e.which){h=e.x,c=e.y,a=e.clientX,l=e.clientY;var t=n(e),i=s.pick({canvasPos:t});u=!!i}}),document.addEventListener("mouseup",i._onMouseUp=function(e){if(1===e.which&&(u=!1,null!==h)){var t=n(e),a=s.pick({canvasPos:t,pickSurface:!0});if(a&&a.uv){var l=i._cubeTextureCanvas.getArea(a.uv);if(l>=0&&(document.body.style.cursor="pointer",o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1),l>=0)){if(i._cubeTextureCanvas.setAreaHighlighted(l,!0),o=l,i._repaint(),e.xh+3||e.yc+3)return;var A=i._cubeTextureCanvas.getAreaDir(l);if(A){var p=i._cubeTextureCanvas.getAreaUp(l);i._isProjectNorth&&i._projectNorthOffsetAngle&&(A=r(1,A,lv),p=r(1,p,hv)),f(A,p,(function(){o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1),document.body.style.cursor="pointer",o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1),l>=0&&(i._cubeTextureCanvas.setAreaHighlighted(l,!1),o=-1,i._repaint())}))}}}}}),document.addEventListener("mousemove",i._onMouseMove=function(t){if(o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1),1!==t.buttons||u){if(u){var r=t.clientX,h=t.clientY;return document.body.style.cursor="move",void function(t,s){var i=(t-a)*-d,r=(s-l)*-d;e.camera.orbitYaw(i),e.camera.orbitPitch(-r),a=t,l=s}(r,h)}if(A){var c=n(t),p=s.pick({canvasPos:c,pickSurface:!0});if(p){if(p.uv){document.body.style.cursor="pointer";var f=i._cubeTextureCanvas.getArea(p.uv);if(f===o)return;o>=0&&i._cubeTextureCanvas.setAreaHighlighted(o,!1),f>=0&&(i._cubeTextureCanvas.setAreaHighlighted(f,!0),i._repaint(),o=f)}}else document.body.style.cursor="default",o>=0&&(i._cubeTextureCanvas.setAreaHighlighted(o,!1),i._repaint(),o=-1)}}});var f=function(){var t=p.vec3();return function(s,r,o){var n=i._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,a=p.getAABB3Diag(n);p.getAABB3Center(n,t);var l=Math.abs(a/Math.tan(i._cameraFitFOV*p.DEGTORAD));e.cameraControl.pivotPos=t,i._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-l*s[0],t[1]-l*s[1],t[2]-l*s[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:i._cameraFitFOV,duration:i._cameraFlyDuration},o):e.cameraFlight.jumpTo({look:t,eye:[t[0]-l*s[0],t[1]-l*s[1],t[2]-l*s[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:i._cameraFitFOV},o)}}();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()}}p.vec3();const uv=new Float64Array([0,0,1]),Av=new Float64Array(4);class pv{constructor(e){this.id=null,this._viewer=e.viewer,this._visible=!1,this._pos=p.vec3(),this._origin=p.vec3(),this._rtcPos=p.vec3(),this._baseDir=p.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=p.vec3PairToQuaternion(uv,e,Av)}_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 Pi(t,{position:[0,0,0],scale:[5,5,5]});const i=this._rootNode,r={arrowHead:new St(i,Ai({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new St(i,Ai({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),arrowHeadHandle:new St(i,Ai({radiusTop:.09,radiusBottom:.09,radialSegments:8,heightSegments:1,height:.37,openEnded:!1})),curve:new St(i,Hi({radius:.8,tube:s,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),curveHandle:new St(i,Hi({radius:.8,tube:.06,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),hoop:new St(i,Hi({radius:.8,tube:s,radialSegments:64,tubeSegments:8,arc:2*Math.PI})),axis:new St(i,Ai({radiusTop:s,radiusBottom:s,radialSegments:20,heightSegments:1,height:1,openEnded:!1})),axisHandle:new St(i,Ai({radiusTop:.08,radiusBottom:.08,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},o={pickable:new Lt(i,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),red:new Lt(i,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Ht(i,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6}),green:new Lt(i,{diffuse:[0,1,0],emissive:[0,1,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightGreen:new Ht(i,{edges:!1,fill:!0,fillColor:[0,1,0],fillAlpha:.6}),blue:new Lt(i,{diffuse:[0,0,1],emissive:[0,0,1],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightBlue:new Ht(i,{edges:!1,fill:!0,fillColor:[0,0,1],fillAlpha:.2}),center:new Lt(i,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),highlightBall:new Ht(i,{edges:!1,fill:!0,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1}),highlightPlane:new Ht(i,{edges:!0,edgeWidth:3,fill:!1,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1})};this._displayMeshes={plane:i.addChild(new ci(i,{geometry:new St(i,{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 Lt(i,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new Ht(i,{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:i.addChild(new ci(i,{geometry:new St(i,Hi({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Lt(i,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new Ht(i,{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:i.addChild(new ci(i,{geometry:r.curve,material:o.red,matrix:function(){const e=p.rotationMat4v(90*p.DEGTORAD,[0,1,0],p.identityMat4()),t=p.rotationMat4v(270*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveHandle:i.addChild(new ci(i,{geometry:r.curveHandle,material:o.pickable,matrix:function(){const e=p.rotationMat4v(90*p.DEGTORAD,[0,1,0],p.identityMat4()),t=p.rotationMat4v(270*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveArrow1:i.addChild(new ci(i,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=p.translateMat4c(0,-.07,-.8,p.identityMat4()),t=p.scaleMat4v([.6,.6,.6],p.identityMat4()),s=p.rotationMat4v(0*p.DEGTORAD,[0,0,1],p.identityMat4());return p.mulMat4(p.mulMat4(e,t,p.identityMat4()),s,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xCurveArrow2:i.addChild(new ci(i,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=p.translateMat4c(0,-.8,-.07,p.identityMat4()),t=p.scaleMat4v([.6,.6,.6],p.identityMat4()),s=p.rotationMat4v(90*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(p.mulMat4(e,t,p.identityMat4()),s,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurve:i.addChild(new ci(i,{geometry:r.curve,material:o.green,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveHandle:i.addChild(new ci(i,{geometry:r.curveHandle,material:o.pickable,rotation:[-90,0,0],pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveArrow1:i.addChild(new ci(i,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=p.translateMat4c(.07,0,-.8,p.identityMat4()),t=p.scaleMat4v([.6,.6,.6],p.identityMat4()),s=p.rotationMat4v(90*p.DEGTORAD,[0,0,1],p.identityMat4());return p.mulMat4(p.mulMat4(e,t,p.identityMat4()),s,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurveArrow2:i.addChild(new ci(i,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=p.translateMat4c(.8,0,-.07,p.identityMat4()),t=p.scaleMat4v([.6,.6,.6],p.identityMat4()),s=p.rotationMat4v(90*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(p.mulMat4(e,t,p.identityMat4()),s,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurve:i.addChild(new ci(i,{geometry:r.curve,material:o.blue,matrix:p.rotationMat4v(180*p.DEGTORAD,[1,0,0],p.identityMat4()),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zCurveHandle:i.addChild(new ci(i,{geometry:r.curveHandle,material:o.pickable,matrix:p.rotationMat4v(180*p.DEGTORAD,[1,0,0],p.identityMat4()),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveCurveArrow1:i.addChild(new ci(i,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=p.translateMat4c(.8,-.07,0,p.identityMat4()),t=p.scaleMat4v([.6,.6,.6],p.identityMat4());return p.mulMat4(e,t,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveArrow2:i.addChild(new ci(i,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=p.translateMat4c(.05,-.8,0,p.identityMat4()),t=p.scaleMat4v([.6,.6,.6],p.identityMat4()),s=p.rotationMat4v(90*p.DEGTORAD,[0,0,1],p.identityMat4());return p.mulMat4(p.mulMat4(e,t,p.identityMat4()),s,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),center:i.addChild(new ci(i,{geometry:new St(i,pi({radius:.05})),material:o.center,pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrow:i.addChild(new ci(i,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=p.translateMat4c(0,1.1,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[0,0,1],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrowHandle:i.addChild(new ci(i,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=p.translateMat4c(0,1.1,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[0,0,1],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xAxis:i.addChild(new ci(i,{geometry:r.axis,material:o.red,matrix:function(){const e=p.translateMat4c(0,.5,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[0,0,1],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisHandle:i.addChild(new ci(i,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=p.translateMat4c(0,.5,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[0,0,1],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:i.addChild(new ci(i,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=p.translateMat4c(0,1.1,0,p.identityMat4()),t=p.rotationMat4v(180*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrowHandle:i.addChild(new ci(i,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=p.translateMat4c(0,1.1,0,p.identityMat4()),t=p.rotationMat4v(180*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,opacity:.2}),e),yShaft:i.addChild(new ci(i,{geometry:r.axis,material:o.green,position:[0,-.5,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yShaftHandle:i.addChild(new ci(i,{geometry:r.axisHandle,material:o.pickable,position:[0,-.5,0],pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:i.addChild(new ci(i,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=p.translateMat4c(0,1.1,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[.8,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrowHandle:i.addChild(new ci(i,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=p.translateMat4c(0,1.1,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[.8,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zShaft:i.addChild(new ci(i,{geometry:r.axis,material:o.blue,matrix:function(){const e=p.translateMat4c(0,.5,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1}),e),zAxisHandle:i.addChild(new ci(i,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=p.translateMat4c(0,.5,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),clippable:!1,pickable:!0,collidable:!0,visible:!1}),e)},this._affordanceMeshes={planeFrame:i.addChild(new ci(i,{geometry:new St(i,Hi({center:[0,0,0],radius:2,tube:s,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Lt(i,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Ht(i,{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:i.addChild(new ci(i,{geometry:r.hoop,material:o.red,highlighted:!0,highlightMaterial:o.highlightRed,matrix:function(){const e=p.rotationMat4v(90*p.DEGTORAD,[0,1,0],p.identityMat4()),t=p.rotationMat4v(270*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yHoop:i.addChild(new ci(i,{geometry:r.hoop,material:o.green,highlighted:!0,highlightMaterial:o.highlightGreen,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zHoop:i.addChild(new ci(i,{geometry:r.hoop,material:o.blue,highlighted:!0,highlightMaterial:o.highlightBlue,matrix:p.rotationMat4v(180*p.DEGTORAD,[1,0,0],p.identityMat4()),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xAxisArrow:i.addChild(new ci(i,{geometry:r.arrowHeadBig,material:o.red,matrix:function(){const e=p.translateMat4c(0,1.1,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[0,0,1],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:i.addChild(new ci(i,{geometry:r.arrowHeadBig,material:o.green,matrix:function(){const e=p.translateMat4c(0,1.1,0,p.identityMat4()),t=p.rotationMat4v(180*p.DEGTORAD,[1,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:i.addChild(new ci(i,{geometry:r.arrowHeadBig,material:o.blue,matrix:function(){const e=p.translateMat4c(0,1.1,0,p.identityMat4()),t=p.rotationMat4v(-90*p.DEGTORAD,[.8,0,0],p.identityMat4());return p.mulMat4(t,e,p.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e)}}_bindEvents(){const e=this;var t=!1;const s=-1,i=0,r=1,o=2,n=3,a=4,l=5,h=this._rootNode;var c=null,u=null;const A=p.vec2(),d=p.vec3([1,0,0]),f=p.vec3([0,1,0]),m=p.vec3([0,0,1]),y=this._viewer.scene.canvas.canvas,E=this._viewer.camera,g=this._viewer.scene;{const e=p.vec3([0,0,0]);let t=-1;this._onCameraViewMatrix=g.camera.on("viewMatrix",(()=>{})),this._onCameraProjMatrix=g.camera.on("projMatrix",(()=>{})),this._onSceneTick=g.on("tick",(()=>{const s=Math.abs(p.lenVec3(p.subVec3(g.camera.eye,this._pos,e)));if(s!==t&&"perspective"===E.projection){const e=.07*(Math.tan(E.perspective.fov*p.DEGTORAD)*s);h.scale=[e,e,e],t=s}if("ortho"===E.projection){const e=E.ortho.scale/10;h.scale=[e,e,e],t=s}}))}const v=function(){const e=new Float64Array(2);return function(t){if(t){for(var s=t.target,i=0,r=0;s.offsetParent;)i+=s.offsetLeft,r+=s.offsetTop,s=s.offsetParent;e[0]=t.pageX-i,e[1]=t.pageY-r}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),I=function(){const t=p.mat4();return function(s,i){return p.quaternionToMat4(e._rootNode.quaternion,t),p.transformVec3(t,s,i),p.normalizeVec3(i),i}}();var _=function(){const e=p.vec3();return function(t){const s=Math.abs(t[0]);return s>Math.abs(t[1])&&s>Math.abs(t[2])?p.cross3Vec3(t,[0,1,0],e):p.cross3Vec3(t,[1,0,0],e),p.cross3Vec3(e,t,e),p.normalizeVec3(e),e}}();const T=function(){const t=p.vec3(),s=p.vec3(),i=p.vec4();return function(r,o,n){I(r,i);const a=_(i,o,n);b(o,a,t),b(n,a,s),p.subVec3(s,t);const l=p.dotVec3(s,i);e._pos[0]+=i[0]*l,e._pos[1]+=i[1]*l,e._pos[2]+=i[2]*l,e._rootNode.position=e._pos,e._sectionPlane&&(e._sectionPlane.pos=e._pos)}}();var P=function(){const t=p.vec4(),s=p.vec4(),i=p.vec4(),r=p.vec4();return function(o,n,a){I(o,r);if(!(b(n,r,t)&&b(a,r,s))){const e=_(r,n,a);b(n,e,t,1),b(a,e,s,1);var l=p.dotVec3(t,r);t[0]-=l*r[0],t[1]-=l*r[1],t[2]-=l*r[2],l=p.dotVec3(s,r),s[0]-=l*r[0],s[1]-=l*r[1],s[2]-=l*r[2]}p.normalizeVec3(t),p.normalizeVec3(s),l=p.dotVec3(t,s),l=p.clamp(l,-1,1);var h=Math.acos(l)*p.RADTODEG;p.cross3Vec3(t,s,i),p.dotVec3(i,r)<0&&(h=-h),e._rootNode.rotate(o,h),R()}}(),b=function(){const t=p.vec4([0,0,0,1]),s=p.mat4();return function(i,r,o,n){n=n||0,t[0]=i[0]/y.width*2-1,t[1]=-(i[1]/y.height*2-1),t[2]=0,t[3]=1,p.mulMat4(E.projMatrix,E.viewMatrix,s),p.inverseMat4(s),p.transformVec4(s,t,t),p.mulVec4Scalar(t,1/t[3]);var a=E.eye;p.subVec4(t,a,t);const l=e._sectionPlane.pos;var h=-p.dotVec3(l,r)-n,c=p.dotVec3(r,t);if(Math.abs(c)>.005){var u=-(p.dotVec3(r,a)+h)/c;return p.mulVec3Scalar(t,u,o),p.addVec3(o,a),p.subVec3(o,l,o),!0}return!1}}();const R=function(){const t=p.vec3(),s=p.mat4();return function(){e.sectionPlane&&(p.quaternionToMat4(h.quaternion,s),p.transformVec3(s,[0,0,1],t),e._setSectionPlaneDir(t))}}();var D,C=!1;this._onCameraControlHover=this._viewer.cameraControl.on("hoverEnter",(e=>{if(!this._visible)return;if(C)return;var h;t=!1,D&&(D.visible=!1);switch(e.entity.id){case this._displayMeshes.xAxisArrowHandle.id:case this._displayMeshes.xAxisHandle.id:h=this._affordanceMeshes.xAxisArrow,c=i;break;case this._displayMeshes.yAxisArrowHandle.id:case this._displayMeshes.yShaftHandle.id:h=this._affordanceMeshes.yAxisArrow,c=r;break;case this._displayMeshes.zAxisArrowHandle.id:case this._displayMeshes.zAxisHandle.id:h=this._affordanceMeshes.zAxisArrow,c=o;break;case this._displayMeshes.xCurveHandle.id:h=this._affordanceMeshes.xHoop,c=n;break;case this._displayMeshes.yCurveHandle.id:h=this._affordanceMeshes.yHoop,c=a;break;case this._displayMeshes.zCurveHandle.id:h=this._affordanceMeshes.zHoop,c=l;break;default:return void(c=s)}h&&(h.visible=!0),D=h,t=!0})),this._onCameraControlHoverLeave=this._viewer.cameraControl.on("hoverOutEntity",(e=>{this._visible&&(D&&(D.visible=!1),D=null,c=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=v(e);u=c,A[0]=s[0],A[1]=s[1]}}),y.addEventListener("mousemove",this._canvasMouseMoveListener=e=>{if(!this._visible)return;if(!C)return;var t=v(e);const s=t[0],h=t[1];switch(u){case i:T(d,A,t);break;case r:T(f,A,t);break;case o:T(m,A,t);break;case n:P(d,A,t);break;case a:P(f,A,t);break;case l:P(m,A,t)}A[0]=s,A[1]=h}),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,i=e.camera,r=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),i.off(this._onCameraViewMatrix),i.off(this._onCameraProjMatrix),r.off(this._onCameraControlHover),r.off(this._onCameraControlHoverLeave)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class dv{constructor(e,t,s){this.id=s.id,this._sectionPlane=s,this._mesh=new ci(t,{id:s.id,geometry:new St(t,wt({xSize:.5,ySize:.5,zSize:.001})),material:new Lt(t,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new kt(t,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new Ht(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Ht(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=p.vec3([0,0,0]),t=p.vec3(),s=p.vec3([0,0,1]),i=p.vec4(4),r=p.vec3(),o=()=>{const o=this._sectionPlane.scene.center,n=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];p.subVec3(o,this._sectionPlane.pos,e);const a=-p.dotVec3(n,e);p.normalizeVec3(n),p.mulVec3Scalar(n,a,t);const l=p.vec3PairToQuaternion(s,this._sectionPlane.dir,i);r[0]=.1*t[0],r[1]=.1*t[1],r[2]=.1*t[2],this._mesh.quaternion=l,this._mesh.position=r};this._onSectionPlanePos=this._sectionPlane.on("pos",o),this._onSectionPlaneDir=this._sectionPlane.on("dir",o)}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 fv{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 Zt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new gt(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new gt(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new gt(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=p.rotationMat4c(-90*p.DEGTORAD,1,0,0),s=p.vec3(),i=p.vec3(),r=p.vec3();this._synchCamera=()=>{const o=this._viewer.camera.eye,n=this._viewer.camera.look,a=this._viewer.camera.up;p.mulVec3Scalar(p.normalizeVec3(p.subVec3(o,n,s)),7),this._zUp?(p.transformVec3(t,s,i),p.transformVec3(t,a,r),e.look=[0,0,0],e.eye=p.transformVec3(t,s,i),e.up=p.transformPoint3(t,a,r)):(e.look=[0,0,0],e.eye=s,e.up=a)}}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 dv(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 mv=p.AABB3(),yv=p.vec3();class Ev extends G{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 fv(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;mv.set(this.viewer.scene.aabb),p.getAABB3Center(mv,yv),mv[0]+=t[0]-yv[0],mv[1]+=t[1]-yv[1],mv[2]+=t[2]-yv[2],mv[3]+=t[0]-yv[0],mv[4]+=t[1]-yv[1],mv[5]+=t[2]-yv[2],this.viewer.cameraFlight.flyTo({aabb:mv,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 di(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 pv(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;t0){const s=document.createElement("a");s.href="#",s.id=`switch-${e.nodeId}`,s.textContent="+",s.classList.add("plus"),t&&s.addEventListener("click",t),o.appendChild(s)}const n=document.createElement("input");n.id=`checkbox-${e.nodeId}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",s&&n.addEventListener("change",s),o.appendChild(n);const a=document.createElement("span");return a.textContent=e.title,o.appendChild(a),i&&(a.oncontextmenu=i),r&&(a.onclick=r),o}createDisabledNodeElement(e){const t=document.createElement("li"),s=document.createElement("a");s.href="#",s.textContent="!",s.classList.add("warn"),s.classList.add("warning"),t.appendChild(s);const i=document.createElement("span");return i.textContent=e,t.appendChild(i),t}addChildren(e,t){const s=document.createElement("ul");t.forEach((e=>{s.appendChild(e)})),e.parentElement.appendChild(s)}expand(e,t,s){e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",t),e.addEventListener("click",s)}collapse(e,t,s){if(!e)return;const i=e.parentElement;if(!i)return;const r=i.querySelector("ul");r&&(i.removeChild(r),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",s),e.addEventListener("click",t))}isExpanded(e){return void 0!==e.parentElement.getElementsByTagName("li")[0]}getId(e){return e.parentElement.id}getIdFromCheckbox(e){return e.id.replace("checkbox-","")}getSwitchElement(e){return document.getElementById(`switch-${e}`)}isChecked(e){return e.checked}setCheckbox(e,t){const s=document.getElementById(`checkbox-${e}`);s&&t!==s.checked&&(s.checked=t)}setXRayed(e,t){const s=document.getElementById(e);s&&(t?s.classList.add("xrayed-node"):s.classList.remove("xrayed-node"))}setHighlighted(e,t){const s=document.getElementById(e);s&&(t?(s.scrollIntoView({block:"center"}),s.classList.add("highlighted-node")):s.classList.remove("highlighted-node"))}}const vv=[];class Iv extends G{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(!vv[e]){vv[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._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootNames={},this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._renderService=t.renderService||new gv,!this._renderService)throw new Error("TreeViewPlugin: no render service set");if(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 i=e.visible;if(!(i!==s.checked))return;this._muteTreeEvents=!0,s.checked=i,i?s.numVisibleEntities++:s.numVisibleEntities--,this._renderService.setCheckbox(s.nodeId,i);let r=s.parent;for(;r;)r.checked=i,i?r.numVisibleEntities++:r.numVisibleEntities--,this._renderService.setCheckbox(r.nodeId,r.numVisibleEntities>0),r=r.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 i=e.xrayed;i!==s.xrayed&&(s.xrayed=i,this._renderService.setXRayed(s.nodeId,i),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=this._renderService.isChecked(t),i=this._renderService.getIdFromCheckbox(t),r=this._nodeNodes[i],o=this._viewer.scene.objects;let n=0;this._withNodeTree(r,(e=>{const t=e.objectId,i=o[t],r=0===e.children.length;e.numVisibleEntities=s?e.numEntities:0,r&&s!==e.checked&&n++,e.checked=s,this._renderService.setCheckbox(e.nodeId,s),i&&(i.visible=s)}));let a=r.parent;for(;a;)a.checked=s,s?a.numVisibleEntities+=n:a.numVisibleEntities-=n,this._renderService.setCheckbox(a.nodeId,a.numVisibleEntities>0),a=a.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 i=this.viewer.metaScene.metaModels[e];i?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=i,t&&t.rootName&&(this._rootNames[e]=t.rootName),s.on("destroyed",(()=>{this.removeModel(s.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(this._rootNames[e]&&delete this._rootNames[e],delete this._metaModels[e],this._createNodes())}showNode(e){this.unShowNode();const t=this._objectNodes[e];if(!t)return;const s=t.nodeId,i=this._renderService.getSwitchElement(s);if(i)return this._expandSwitchElement(i),i.scrollIntoView(),!0;const r=[];r.unshift(t);let o=t.parent;for(;o;)r.unshift(o),o=o.parent;for(let e=0,t=r.length;e{if(i===e)return;const r=this._renderService.getSwitchElement(s.nodeId);if(r){this._expandSwitchElement(r);const e=s.children;for(var o=0,n=e.length;o0;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=this._renderService.createRootNode();this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let s in t){const i=t[s],r=i.type,o=i.name,n=o&&""!==o&&"Undefined"!==o&&"Default"!==o?o:r,a=this._renderService.createDisabledNodeElement(n);e.appendChild(a)}}_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,i=e.children,r=e.id,o=s.objects[r];if(e._countEntities=0,o&&e._countEntities++,i)for(let t=0,s=i.length;t{e.aabb&&r.aabb||(e.aabb||(e.aabb=t.getAABB(i.getObjectIDsInSubtree(e.objectId))),r.aabb||(r.aabb=t.getAABB(i.getObjectIDsInSubtree(r.objectId))));let o=0;return o=s.xUp?0:s.yUp?1:2,e.aabb[o]>r.aabb[o]?-1:e.aabb[o]i?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,s=this._viewer.scene.objects;for(let i=0,r=e.length;ithis._createNodeElement(e))),t=this._renderService.createRootNode();e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){return this._renderService.createNodeElement(e,this._switchExpandHandler,this._checkboxChangeHandler,(t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}),(t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}))}_expandSwitchElement(e){if(this._renderService.isExpanded(e))return;const t=this._renderService.getId(e),s=this._nodeNodes[t].children.map((e=>this._createNodeElement(e)));this._renderService.addChildren(e,s),this._renderService.expand(e,this._switchExpandHandler,this._switchCollapseHandler)}_collapseNode(e){const t=this._renderService.getSwitchElement(e);this._collapseSwitchElement(t)}_collapseSwitchElement(e){this._renderService.collapse(e,this._switchExpandHandler,this._switchCollapseHandler)}}class _v{constructor(){}getManifest(e,t,s){E.loadJSON(e,(e=>{t(e)}),(function(e){s(e)}))}getMetaModel(e,t,s){E.loadJSON(e,(e=>{t(e)}),(function(e){s(e)}))}getXKT(e,t,s){var i=()=>{};t=t||i,s=s||i;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),s=new Uint8Array(e);for(var n=0;n=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]),i=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]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),o=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),n=new Array(576);t(n);const a=new Array(60);t(a);const l=new Array(512);t(l);const h=new Array(256);t(h);const c=new Array(29);t(c);const u=new Array(30);function A(e,t,s,i,r){this.static_tree=e,this.extra_bits=t,this.extra_base=s,this.elems=i,this.max_length=r,this.has_stree=e&&e.length}let p,d,f;function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(u);const y=e=>e<256?l[e]:l[256+(e>>>7)],E=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},g=(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<{g(e,s[2*t],s[2*t+1])},I=(e,t)=>{let s=0;do{s|=1&e,e>>>=1,s<<=1}while(--t>0);return s>>>1},_=(e,t,s)=>{const i=new Array(16);let r,o,n=0;for(r=1;r<=15;r++)n=n+s[r-1]<<1,i[r]=n;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=I(i[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},P=e=>{e.bi_valid>8?E(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},b=(e,t,s,i)=>{const r=2*t,o=2*s;return e[r]{const i=e.heap[s];let r=s<<1;for(;r<=e.heap_len&&(r{let o,n,a,l,A=0;if(0!==e.sym_next)do{o=255&e.pending_buf[e.sym_buf+A++],o+=(255&e.pending_buf[e.sym_buf+A++])<<8,n=e.pending_buf[e.sym_buf+A++],0===o?v(e,n,t):(a=h[n],v(e,a+256+1,t),l=s[a],0!==l&&(n-=c[a],g(e,n,l)),o--,a=y(o),v(e,a,r),l=i[a],0!==l&&(o-=u[a],g(e,o,l)))}while(A{const s=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let n,a,l,h=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)R(e,s,n);l=o;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],R(e,s,1),a=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=a,s[2*l]=s[2*n]+s[2*a],e.depth[l]=(e.depth[n]>=e.depth[a]?e.depth[n]:e.depth[a])+1,s[2*n+1]=s[2*a+1]=l,e.heap[1]=l++,R(e,s,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const s=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let h,c,u,A,p,d,f=0;for(A=0;A<=15;A++)e.bl_count[A]=0;for(s[2*e.heap[e.heap_max]+1]=0,h=e.heap_max+1;h<573;h++)c=e.heap[h],A=s[2*s[2*c+1]+1]+1,A>l&&(A=l,f++),s[2*c+1]=A,c>i||(e.bl_count[A]++,p=0,c>=a&&(p=n[c-a]),d=s[2*c],e.opt_len+=d*(A+p),o&&(e.static_len+=d*(r[2*c+1]+p)));if(0!==f){do{for(A=l-1;0===e.bl_count[A];)A--;e.bl_count[A]--,e.bl_count[A+1]+=2,e.bl_count[l]--,f-=2}while(f>0);for(A=l;0!==A;A--)for(c=e.bl_count[A];0!==c;)u=e.heap[--h],u>i||(s[2*u+1]!==A&&(e.opt_len+=(A-s[2*u+1])*s[2*u],s[2*u+1]=A),c--)}})(e,t),_(s,h,e.bl_count)},N=(e,t,s)=>{let i,r,o=-1,n=t[1],a=0,l=7,h=4;for(0===n&&(l=138,h=3),t[2*(s+1)+1]=65535,i=0;i<=s;i++)r=n,n=t[2*(i+1)+1],++a{let i,r,o=-1,n=t[1],a=0,l=7,h=4;for(0===n&&(l=138,h=3),i=0;i<=s;i++)if(r=n,n=t[2*(i+1)+1],!(++a{g(e,0+(i?1:0),3),P(e),E(e,s),E(e,~s),s&&e.pending_buf.set(e.window.subarray(t,t+s),e.pending),e.pending+=s};var w={_tr_init:e=>{x||((()=>{let e,t,o,m,y;const E=new Array(16);for(o=0,m=0;m<28;m++)for(c[m]=o,e=0;e<1<>=7;m<30;m++)for(u[m]=y<<7,e=0;e<1<{let r,l,h=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),h=(e=>{let t;for(N(e,e.dyn_ltree,e.l_desc.max_code),N(e,e.dyn_dtree,e.d_desc.max_code),C(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=r&&(r=l)):r=l=s+5,s+4<=r&&-1!==t?S(e,t,s,i):4===e.strategy||l===r?(g(e,2+(i?1:0),3),D(e,n,a)):(g(e,4+(i?1:0),3),((e,t,s,i)=>{let r;for(g(e,t-257,5),g(e,s-1,5),g(e,i-4,4),r=0;r(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*(h[s]+256+1)]++,e.dyn_dtree[2*y(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{g(e,2,3),v(e,256,n),(e=>{16===e.bi_valid?(E(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)}},M=(e,t,s,i)=>{let r=65535&e|0,o=e>>>16&65535|0,n=0;for(;0!==s;){n=s>2e3?2e3:s,s-=n;do{r=r+t[i++]|0,o=o+r|0}while(--n);r%=65521,o%=65521}return r|o<<16|0};const B=new Uint32Array((()=>{let e,t=[];for(var s=0;s<256;s++){e=s;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[s]=e}return t})());var F=(e,t,s,i)=>{const r=B,o=i+s;e^=-1;for(let s=i;s>>8^r[255&(e^t[s])];return-1^e},L={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"},U={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:H,_tr_stored_block:G,_tr_flush_block:k,_tr_tally:V,_tr_align:j}=w,{Z_NO_FLUSH:Q,Z_PARTIAL_FLUSH:W,Z_FULL_FLUSH:z,Z_FINISH:K,Z_BLOCK:Y,Z_OK:X,Z_STREAM_END:Z,Z_STREAM_ERROR:q,Z_DATA_ERROR:J,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:se,Z_RLE:ie,Z_FIXED:re,Z_DEFAULT_STRATEGY:oe,Z_UNKNOWN:ne,Z_DEFLATED:ae}=U,le=258,he=262,ce=42,ue=113,Ae=666,pe=(e,t)=>(e.msg=L[t],t),de=e=>2*e-(e>4?9:0),fe=e=>{let t=e.length;for(;--t>=0;)e[t]=0},me=e=>{let t,s,i,r=e.w_size;t=e.hash_size,i=t;do{s=e.head[--i],e.head[i]=s>=r?s-r:0}while(--t);t=r,i=t;do{s=e.prev[--i],e.prev[i]=s>=r?s-r: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))},ge=(e,t)=>{k(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ee(e.strm)},ve=(e,t)=>{e.pending_buf[e.pending++]=t},Ie=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},_e=(e,t,s,i)=>{let r=e.avail_in;return r>i&&(r=i),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),s),1===e.state.wrap?e.adler=M(e.adler,t,r,s):2===e.state.wrap&&(e.adler=F(e.adler,t,r,s)),e.next_in+=r,e.total_in+=r,r)},Te=(e,t)=>{let s,i,r=e.max_chain_length,o=e.strstart,n=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-he?e.strstart-(e.w_size-he):0,h=e.window,c=e.w_mask,u=e.prev,A=e.strstart+le;let p=h[o+n-1],d=h[o+n];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(s=t,h[s+n]===d&&h[s+n-1]===p&&h[s]===h[o]&&h[++s]===h[o+1]){o+=2,s++;do{}while(h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&h[++o]===h[++s]&&on){if(e.match_start=t,n=i,i>=a)break;p=h[o+n-1],d=h[o+n]}}}while((t=u[t&c])>l&&0!=--r);return n<=e.lookahead?n:e.lookahead},Pe=e=>{const t=e.w_size;let s,i,r;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-he)&&(e.window.set(e.window.subarray(t,t+t-i),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),me(e),i+=t),0===e.strm.avail_in)break;if(s=_e(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=s,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=ye(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=ye(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let s,i,r,o=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n=0,a=e.strm.avail_in;do{if(s=65535,r=e.bi_valid+42>>3,e.strm.avail_outi+e.strm.avail_in&&(s=i+e.strm.avail_in),s>r&&(s=r),s>8,e.pending_buf[e.pending-2]=~s,e.pending_buf[e.pending-1]=~s>>8,Ee(e.strm),i&&(i>s&&(i=s),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,s-=i),s&&(_e(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===n);return a-=e.strm.avail_in,a&&(a>=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<=a&&(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-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&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++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(_e(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,o=r>e.w_size?e.w_size:r,i=e.strstart-e.block_start,(i>=o||(i||t===K)&&t!==Q&&0===e.strm.avail_in&&i<=r)&&(s=i>r?r:i,n=t===K&&0===e.strm.avail_in&&s===i?1:0,G(e,e.block_start,s,n),e.block_start+=s,Ee(e.strm)),n?3:1)},Re=(e,t)=>{let s,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),0!==s&&e.strstart-s<=e.w_size-he&&(e.match_length=Te(e,s)),e.match_length>=3)if(i=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 i=V(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(ge(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===K?(ge(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ge(e,!1),0===e.strm.avail_out)?1:2},De=(e,t)=>{let s,i,r;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){r=e.strstart+e.lookahead-3,i=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<=r&&(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++,i&&(ge(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(i=V(e,0,e.window[e.strstart-1]),i&&ge(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&&(i=V(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===K?(ge(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ge(e,!1),0===e.strm.avail_out)?1:2};function Ce(e,t,s,i,r){this.good_length=e,this.max_lazy=t,this.nice_length=s,this.max_chain=i,this.func=r}const Ne=[new Ce(0,0,0,0,be),new Ce(4,4,8,4,Re),new Ce(4,5,16,8,Re),new Ce(4,6,32,32,Re),new Ce(4,4,16,16,De),new Ce(8,16,32,32,De),new Ce(8,16,128,128,De),new Ce(8,32,128,256,De),new Ce(32,128,258,1024,De),new Ce(32,258,258,4096,De)];function Oe(){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=ae,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 xe=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==ce&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==ue&&t.status!==Ae?1:0},Se=e=>{if(xe(e))return pe(e,q);e.total_in=e.total_out=0,e.data_type=ne;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?ce:ue,e.adler=2===t.wrap?0:1,t.last_flush=-2,H(t),X},we=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=Ne[s.level].max_lazy,s.good_match=Ne[s.level].good_length,s.nice_match=Ne[s.level].nice_length,s.max_chain_length=Ne[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},Me=(e,t,s,i,r,o)=>{if(!e)return q;let n=1;if(t===ee&&(t=6),i<0?(n=0,i=-i):i>15&&(n=2,i-=16),r<1||r>9||s!==ae||i<8||i>15||t<0||t>9||o<0||o>re||8===i&&1!==n)return pe(e,q);8===i&&(i=9);const a=new Oe;return e.state=a,a.strm=e,a.status=ce,a.wrap=n,a.gzhead=null,a.w_bits=i,a.w_size=1<xe(e)||2!==e.state.wrap?q:(e.state.gzhead=t,X),Le=(e,t)=>{if(xe(e)||t>Y||t<0)return e?pe(e,q):q;const s=e.state;if(!e.output||0!==e.avail_in&&!e.input||s.status===Ae&&t!==K)return pe(e,0===e.avail_out?$:q);const i=s.last_flush;if(s.last_flush=t,0!==s.pending){if(Ee(e),0===e.avail_out)return s.last_flush=-1,X}else if(0===e.avail_in&&de(t)<=de(i)&&t!==K)return pe(e,$);if(s.status===Ae&&0!==e.avail_in)return pe(e,$);if(s.status===ce&&0===s.wrap&&(s.status=ue),s.status===ce){let t=ae+(s.w_bits-8<<4)<<8,i=-1;if(i=s.strategy>=se||s.level<2?0:s.level<6?1:6===s.level?2:3,t|=i<<6,0!==s.strstart&&(t|=32),t+=31-t%31,Ie(s,t),0!==s.strstart&&(Ie(s,e.adler>>>16),Ie(s,65535&e.adler)),e.adler=1,s.status=ue,Ee(e),0!==s.pending)return s.last_flush=-1,X}if(57===s.status)if(e.adler=0,ve(s,31),ve(s,139),ve(s,8),s.gzhead)ve(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)),ve(s,255&s.gzhead.time),ve(s,s.gzhead.time>>8&255),ve(s,s.gzhead.time>>16&255),ve(s,s.gzhead.time>>24&255),ve(s,9===s.level?2:s.strategy>=se||s.level<2?4:0),ve(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(ve(s,255&s.gzhead.extra.length),ve(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=F(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=69;else if(ve(s,0),ve(s,0),ve(s,0),ve(s,0),ve(s,0),ve(s,9===s.level?2:s.strategy>=se||s.level<2?4:0),ve(s,3),s.status=ue,Ee(e),0!==s.pending)return s.last_flush=-1,X;if(69===s.status){if(s.gzhead.extra){let t=s.pending,i=(65535&s.gzhead.extra.length)-s.gzindex;for(;s.pending+i>s.pending_buf_size;){let r=s.pending_buf_size-s.pending;if(s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex,s.gzindex+r),s.pending),s.pending=s.pending_buf_size,s.gzhead.hcrc&&s.pending>t&&(e.adler=F(e.adler,s.pending_buf,s.pending-t,t)),s.gzindex+=r,Ee(e),0!==s.pending)return s.last_flush=-1,X;t=0,i-=r}let r=new Uint8Array(s.gzhead.extra);s.pending_buf.set(r.subarray(s.gzindex,s.gzindex+i),s.pending),s.pending+=i,s.gzhead.hcrc&&s.pending>t&&(e.adler=F(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,i=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>i&&(e.adler=F(e.adler,s.pending_buf,s.pending-i,i)),Ee(e),0!==s.pending)return s.last_flush=-1,X;i=0}t=s.gzindexi&&(e.adler=F(e.adler,s.pending_buf,s.pending-i,i)),s.gzindex=0}s.status=91}if(91===s.status){if(s.gzhead.comment){let t,i=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>i&&(e.adler=F(e.adler,s.pending_buf,s.pending-i,i)),Ee(e),0!==s.pending)return s.last_flush=-1,X;i=0}t=s.gzindexi&&(e.adler=F(e.adler,s.pending_buf,s.pending-i,i))}s.status=103}if(103===s.status){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size&&(Ee(e),0!==s.pending))return s.last_flush=-1,X;ve(s,255&e.adler),ve(s,e.adler>>8&255),e.adler=0}if(s.status=ue,Ee(e),0!==s.pending)return s.last_flush=-1,X}if(0!==e.avail_in||0!==s.lookahead||t!==Q&&s.status!==Ae){let i=0===s.level?be(s,t):s.strategy===se?((e,t)=>{let s;for(;;){if(0===e.lookahead&&(Pe(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&&(ge(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ge(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ge(e,!1),0===e.strm.avail_out)?1:2})(s,t):s.strategy===ie?((e,t)=>{let s,i,r,o;const n=e.window;for(;;){if(e.lookahead<=le){if(Pe(e),e.lookahead<=le&&t===Q)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,i=n[r],i===n[++r]&&i===n[++r]&&i===n[++r])){o=e.strstart+le;do{}while(i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&i===n[++r]&&re.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&&(ge(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ge(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ge(e,!1),0===e.strm.avail_out)?1:2})(s,t):Ne[s.level].func(s,t);if(3!==i&&4!==i||(s.status=Ae),1===i||3===i)return 0===e.avail_out&&(s.last_flush=-1),X;if(2===i&&(t===W?j(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))),Ee(e),0===e.avail_out))return s.last_flush=-1,X}return t!==K?X:s.wrap<=0?Z:(2===s.wrap?(ve(s,255&e.adler),ve(s,e.adler>>8&255),ve(s,e.adler>>16&255),ve(s,e.adler>>24&255),ve(s,255&e.total_in),ve(s,e.total_in>>8&255),ve(s,e.total_in>>16&255),ve(s,e.total_in>>24&255)):(Ie(s,e.adler>>>16),Ie(s,65535&e.adler)),Ee(e),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?X:Z)},Ue=e=>{if(xe(e))return q;const t=e.state.status;return e.state=null,t===ue?pe(e,J):X},He=(e,t)=>{let s=t.length;if(xe(e))return q;const i=e.state,r=i.wrap;if(2===r||1===r&&i.status!==ce||i.lookahead)return q;if(1===r&&(e.adler=M(e.adler,t,s,0)),i.wrap=0,s>=i.w_size){0===r&&(fe(i.head),i.strstart=0,i.block_start=0,i.insert=0);let e=new Uint8Array(i.w_size);e.set(t.subarray(s-i.w_size,s),0),t=e,s=i.w_size}const o=e.avail_in,n=e.next_in,a=e.input;for(e.avail_in=s,e.next_in=0,e.input=t,Pe(i);i.lookahead>=3;){let e=i.strstart,t=i.lookahead-2;do{i.ins_h=ye(i,i.ins_h,i.window[e+3-1]),i.prev[e&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=e,e++}while(--t);i.strstart=e,i.lookahead=2,Pe(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,e.next_in=n,e.input=a,e.avail_in=o,i.wrap=r,X};const Ge=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var ke=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,i=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,i,r,o,n=e.length,a=0;for(r=0;r>>6,t[o++]=128|63&s):s<65536?(t[o++]=224|s>>>12,t[o++]=128|s>>>6&63,t[o++]=128|63&s):(t[o++]=240|s>>>18,t[o++]=128|s>>>12&63,t[o++]=128|s>>>6&63,t[o++]=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 i,r;const o=new Array(2*s);for(r=0,i=0;i4)o[r++]=65533,i+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&i1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&je)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let s="";for(let i=0;i{(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:Ze,Z_SYNC_FLUSH:qe,Z_FULL_FLUSH:Je,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:st,Z_DEFAULT_STRATEGY:it,Z_DEFLATED:rt}=U;function ot(e){this.options=ke({level:st,method:rt,chunkSize:16384,windowBits:15,memLevel:8,strategy:it},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=Be(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(s!==et)throw new Error(L[s]);if(t.header&&Fe(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=He(this.strm,e),s!==et)throw new Error(L[s]);this._dict_set=!0}}function nt(e,t){const s=new ot(t);if(s.push(e,!0),s.err)throw s.msg||L[s.err];return s.result}ot.prototype.push=function(e,t){const s=this.strm,i=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?$e:Ze,"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(i),s.next_out=0,s.avail_out=i),(o===qe||o===Je)&&s.avail_out<=6)this.onData(s.output.subarray(0,s.next_out)),s.avail_out=0;else{if(r=Le(s,o),r===tt)return s.next_out>0&&this.onData(s.output.subarray(0,s.next_out)),r=Ue(this.strm),this.onEnd(r),this.ended=!0,r===et;if(0!==s.avail_out){if(o>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},ot.prototype.onData=function(e){this.chunks.push(e)},ot.prototype.onEnd=function(e){e===et&&(this.result=Ve(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var at={Deflate:ot,deflate:nt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,nt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,nt(e,t)},constants:U};const lt=16209;var ht=function(e,t){let s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T,P,b;const R=e.state;s=e.next_in,P=e.input,i=s+(e.avail_in-5),r=e.next_out,b=e.output,o=r-(t-e.avail_out),n=r+(e.avail_out-257),a=R.dmax,l=R.wsize,h=R.whave,c=R.wnext,u=R.window,A=R.hold,p=R.bits,d=R.lencode,f=R.distcode,m=(1<>>24,A>>>=g,p-=g,g=E>>>16&255,0===g)b[r++]=65535&E;else{if(!(16&g)){if(0==(64&g)){E=d[(65535&E)+(A&(1<>>=g,p-=g),p<15&&(A+=P[s++]<>>24,A>>>=g,p-=g,g=E>>>16&255,!(16&g)){if(0==(64&g)){E=f[(65535&E)+(A&(1<a){e.msg="invalid distance too far back",R.mode=lt;break e}if(A>>>=g,p-=g,g=r-o,I>g){if(g=I-g,g>h&&R.sane){e.msg="invalid distance too far back",R.mode=lt;break e}if(_=0,T=u,0===c){if(_+=l-g,g2;)b[r++]=T[_++],b[r++]=T[_++],b[r++]=T[_++],v-=3;v&&(b[r++]=T[_++],v>1&&(b[r++]=T[_++]))}else{_=r-I;do{b[r++]=b[_++],b[r++]=b[_++],b[r++]=b[_++],v-=3}while(v>2);v&&(b[r++]=b[_++],v>1&&(b[r++]=b[_++]))}break}}break}}while(s>3,s-=v,p-=v<<3,A&=(1<{const l=a.bits;let h,c,u,A,p,d,f=0,m=0,y=0,E=0,g=0,v=0,I=0,_=0,T=0,P=0,b=null;const R=new Uint16Array(16),D=new Uint16Array(16);let C,N,O,x=null;for(f=0;f<=15;f++)R[f]=0;for(m=0;m=1&&0===R[E];E--);if(g>E&&(g=E),0===E)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(y=1;y0&&(0===e||1!==E))return-1;for(D[1]=0,f=1;f<15;f++)D[f+1]=D[f]+R[f];for(m=0;m852||2===e&&T>592)return 1;for(;;){C=f-I,n[m]+1=d?(N=x[n[m]-d],O=b[n[m]-d]):(N=96,O=0),h=1<>I)+c]=C<<24|N<<16|O|0}while(0!==c);for(h=1<>=1;if(0!==h?(P&=h-1,P+=h):P=0,m++,0==--R[f]){if(f===E)break;f=t[s+n[m]]}if(f>g&&(P&A)!==u){for(0===I&&(I=g),p+=y,v=f-I,_=1<852||2===e&&T>592)return 1;u=P&A,r[u]=g<<24|v<<16|p-o|0}}return 0!==P&&(r[p+P]=f-I<<24|64<<16|0),a.bits=g,0};const{Z_FINISH:ft,Z_BLOCK:mt,Z_TREES:yt,Z_OK:Et,Z_STREAM_END:gt,Z_NEED_DICT:vt,Z_STREAM_ERROR:It,Z_DATA_ERROR:_t,Z_MEM_ERROR:Tt,Z_BUF_ERROR:Pt,Z_DEFLATED:bt}=U,Rt=16180,Dt=16190,Ct=16191,Nt=16192,Ot=16194,xt=16199,St=16200,wt=16206,Mt=16209,Bt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Ft(){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 Lt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ut=e=>{if(Lt(e))return It;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=Rt,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,Et},Ht=e=>{if(Lt(e))return It;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ut(e)},Gt=(e,t)=>{let s;if(Lt(e))return It;const i=e.state;return t<0?(s=0,t=-t):(s=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?It:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=s,i.wbits=t,Ht(e))},kt=(e,t)=>{if(!e)return It;const s=new Ft;e.state=s,s.strm=e,s.window=null,s.mode=Rt;const i=Gt(e,t);return i!==Et&&(e.state=null),i};let Vt,jt,Qt=!0;const Wt=e=>{if(Qt){Vt=new Int32Array(512),jt=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,jt,0,e.work,{bits:5}),Qt=!1}e.lencode=Vt,e.lenbits=9,e.distcode=jt,e.distbits=5},zt=(e,t,s,i)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(s-o.wsize,s),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>i&&(r=i),o.window.set(t.subarray(s-i,s-i+r),o.wnext),(i-=r)?(o.window.set(t.subarray(s-i,s),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T,P=0;const b=new Uint8Array(4);let R,D;const C=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Lt(e)||!e.output||!e.input&&0!==e.avail_in)return It;s=e.state,s.mode===Ct&&(s.mode=Nt),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,i=e.input,a=e.avail_in,h=s.hold,c=s.bits,u=a,A=l,T=Et;e:for(;;)switch(s.mode){case Rt:if(0===s.wrap){s.mode=Nt;break}for(;c<16;){if(0===a)break e;a--,h+=i[o++]<>>8&255,s.check=F(s.check,b,2,0),h=0,c=0,s.mode=16181;break}if(s.head&&(s.head.done=!1),!(1&s.wrap)||(((255&h)<<8)+(h>>8))%31){e.msg="incorrect header check",s.mode=Mt;break}if((15&h)!==bt){e.msg="unknown compression method",s.mode=Mt;break}if(h>>>=4,c-=4,_=8+(15&h),0===s.wbits&&(s.wbits=_),_>15||_>s.wbits){e.msg="invalid window size",s.mode=Mt;break}s.dmax=1<>8&1),512&s.flags&&4&s.wrap&&(b[0]=255&h,b[1]=h>>>8&255,s.check=F(s.check,b,2,0)),h=0,c=0,s.mode=16182;case 16182:for(;c<32;){if(0===a)break e;a--,h+=i[o++]<>>8&255,b[2]=h>>>16&255,b[3]=h>>>24&255,s.check=F(s.check,b,4,0)),h=0,c=0,s.mode=16183;case 16183:for(;c<16;){if(0===a)break e;a--,h+=i[o++]<>8),512&s.flags&&4&s.wrap&&(b[0]=255&h,b[1]=h>>>8&255,s.check=F(s.check,b,2,0)),h=0,c=0,s.mode=16184;case 16184:if(1024&s.flags){for(;c<16;){if(0===a)break e;a--,h+=i[o++]<>>8&255,s.check=F(s.check,b,2,0)),h=0,c=0}else s.head&&(s.head.extra=null);s.mode=16185;case 16185:if(1024&s.flags&&(p=s.length,p>a&&(p=a),p&&(s.head&&(_=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Uint8Array(s.head.extra_len)),s.head.extra.set(i.subarray(o,o+p),_)),512&s.flags&&4&s.wrap&&(s.check=F(s.check,i,p,o)),a-=p,o+=p,s.length-=p),s.length))break e;s.length=0,s.mode=16186;case 16186:if(2048&s.flags){if(0===a)break e;p=0;do{_=i[o+p++],s.head&&_&&s.length<65536&&(s.head.name+=String.fromCharCode(_))}while(_&&p>9&1,s.head.done=!0),e.adler=s.check=0,s.mode=Ct;break;case 16189:for(;c<32;){if(0===a)break e;a--,h+=i[o++]<>>=7&c,c-=7&c,s.mode=wt;break}for(;c<3;){if(0===a)break e;a--,h+=i[o++]<>>=1,c-=1,3&h){case 0:s.mode=16193;break;case 1:if(Wt(s),s.mode=xt,t===yt){h>>>=2,c-=2;break e}break;case 2:s.mode=16196;break;case 3:e.msg="invalid block type",s.mode=Mt}h>>>=2,c-=2;break;case 16193:for(h>>>=7&c,c-=7&c;c<32;){if(0===a)break e;a--,h+=i[o++]<>>16^65535)){e.msg="invalid stored block lengths",s.mode=Mt;break}if(s.length=65535&h,h=0,c=0,s.mode=Ot,t===yt)break e;case Ot:s.mode=16195;case 16195:if(p=s.length,p){if(p>a&&(p=a),p>l&&(p=l),0===p)break e;r.set(i.subarray(o,o+p),n),a-=p,o+=p,l-=p,n+=p,s.length-=p;break}s.mode=Ct;break;case 16196:for(;c<14;){if(0===a)break e;a--,h+=i[o++]<>>=5,c-=5,s.ndist=1+(31&h),h>>>=5,c-=5,s.ncode=4+(15&h),h>>>=4,c-=4,s.nlen>286||s.ndist>30){e.msg="too many length or distance symbols",s.mode=Mt;break}s.have=0,s.mode=16197;case 16197:for(;s.have>>=3,c-=3}for(;s.have<19;)s.lens[C[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,R={bits:s.lenbits},T=dt(0,s.lens,0,19,s.lencode,0,s.work,R),s.lenbits=R.bits,T){e.msg="invalid code lengths set",s.mode=Mt;break}s.have=0,s.mode=16198;case 16198:for(;s.have>>24,y=P>>>16&255,E=65535&P,!(m<=c);){if(0===a)break e;a--,h+=i[o++]<>>=m,c-=m,s.lens[s.have++]=E;else{if(16===E){for(D=m+2;c>>=m,c-=m,0===s.have){e.msg="invalid bit length repeat",s.mode=Mt;break}_=s.lens[s.have-1],p=3+(3&h),h>>>=2,c-=2}else if(17===E){for(D=m+3;c>>=m,c-=m,_=0,p=3+(7&h),h>>>=3,c-=3}else{for(D=m+7;c>>=m,c-=m,_=0,p=11+(127&h),h>>>=7,c-=7}if(s.have+p>s.nlen+s.ndist){e.msg="invalid bit length repeat",s.mode=Mt;break}for(;p--;)s.lens[s.have++]=_}}if(s.mode===Mt)break;if(0===s.lens[256]){e.msg="invalid code -- missing end-of-block",s.mode=Mt;break}if(s.lenbits=9,R={bits:s.lenbits},T=dt(1,s.lens,0,s.nlen,s.lencode,0,s.work,R),s.lenbits=R.bits,T){e.msg="invalid literal/lengths set",s.mode=Mt;break}if(s.distbits=6,s.distcode=s.distdyn,R={bits:s.distbits},T=dt(2,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,R),s.distbits=R.bits,T){e.msg="invalid distances set",s.mode=Mt;break}if(s.mode=xt,t===yt)break e;case xt:s.mode=St;case St:if(a>=6&&l>=258){e.next_out=n,e.avail_out=l,e.next_in=o,e.avail_in=a,s.hold=h,s.bits=c,ht(e,A),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,i=e.input,a=e.avail_in,h=s.hold,c=s.bits,s.mode===Ct&&(s.back=-1);break}for(s.back=0;P=s.lencode[h&(1<>>24,y=P>>>16&255,E=65535&P,!(m<=c);){if(0===a)break e;a--,h+=i[o++]<>g)],m=P>>>24,y=P>>>16&255,E=65535&P,!(g+m<=c);){if(0===a)break e;a--,h+=i[o++]<>>=g,c-=g,s.back+=g}if(h>>>=m,c-=m,s.back+=m,s.length=E,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=Mt;break}s.extra=15&y,s.mode=16201;case 16201:if(s.extra){for(D=s.extra;c>>=s.extra,c-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=16202;case 16202:for(;P=s.distcode[h&(1<>>24,y=P>>>16&255,E=65535&P,!(m<=c);){if(0===a)break e;a--,h+=i[o++]<>g)],m=P>>>24,y=P>>>16&255,E=65535&P,!(g+m<=c);){if(0===a)break e;a--,h+=i[o++]<>>=g,c-=g,s.back+=g}if(h>>>=m,c-=m,s.back+=m,64&y){e.msg="invalid distance code",s.mode=Mt;break}s.offset=E,s.extra=15&y,s.mode=16203;case 16203:if(s.extra){for(D=s.extra;c>>=s.extra,c-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){e.msg="invalid distance too far back",s.mode=Mt;break}s.mode=16204;case 16204:if(0===l)break e;if(p=A-l,s.offset>p){if(p=s.offset-p,p>s.whave&&s.sane){e.msg="invalid distance too far back",s.mode=Mt;break}p>s.wnext?(p-=s.wnext,d=s.wsize-p):d=s.wnext-p,p>s.length&&(p=s.length),f=s.window}else f=r,d=n-s.offset,p=s.length;p>l&&(p=l),l-=p,s.length-=p;do{r[n++]=f[d++]}while(--p);0===s.length&&(s.mode=St);break;case 16205:if(0===l)break e;r[n++]=s.length,l--,s.mode=St;break;case wt:if(s.wrap){for(;c<32;){if(0===a)break e;a--,h|=i[o++]<{if(Lt(e))return It;let t=e.state;return t.window&&(t.window=null),e.state=null,Et},qt=(e,t)=>{if(Lt(e))return It;const s=e.state;return 0==(2&s.wrap)?It:(s.head=t,t.done=!1,Et)},Jt=(e,t)=>{const s=t.length;let i,r,o;return Lt(e)?It:(i=e.state,0!==i.wrap&&i.mode!==Dt?It:i.mode===Dt&&(r=1,r=M(r,t,s,0),r!==i.check)?_t:(o=zt(e,t,s,s),o?(i.mode=16210,Tt):(i.havedict=1,Et)))},$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:is,Z_STREAM_END:rs,Z_NEED_DICT:os,Z_STREAM_ERROR:ns,Z_DATA_ERROR:as,Z_MEM_ERROR:ls}=U;function hs(e){this.options=ke({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!==is)throw new Error(L[s]);if(this.header=new $t,qt(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=Jt(this.strm,t.dictionary),s!==is)))throw new Error(L[s])}function cs(e,t){const s=new hs(t);if(s.push(e),s.err)throw s.msg||L[s.err];return s.result}hs.prototype.push=function(e,t){const s=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let o,n,a;if(this.ended)return!1;for(n=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(i),s.next_out=0,s.avail_out=i),o=Xt(s,n),o===os&&r&&(o=Jt(s,r),o===is?o=Xt(s,n):o===as&&(o=os));s.avail_in>0&&o===rs&&s.state.wrap>0&&0!==e[s.next_in];)Kt(s),o=Xt(s,n);switch(o){case ns:case as:case os:case ls:return this.onEnd(o),this.ended=!0,!1}if(a=s.avail_out,s.next_out&&(0===s.avail_out||o===rs))if("string"===this.options.to){let e=Ke(s.output,s.next_out),t=s.next_out-e,r=ze(s.output,e);s.next_out=t,s.avail_out=i-t,t&&s.output.set(s.output.subarray(e,e+t),0),this.onData(r)}else this.onData(s.output.length===s.next_out?s.output:s.output.subarray(0,s.next_out));if(o!==is||0!==a){if(o===rs)return o=Zt(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===s.avail_in)break}}return!0},hs.prototype.onData=function(e){this.chunks.push(e)},hs.prototype.onEnd=function(e){e===is&&("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 us={Inflate:hs,inflate:cs,inflateRaw:function(e,t){return(t=t||{}).raw=!0,cs(e,t)},ungzip:cs,constants:U};const{Deflate:As,deflate:ps,deflateRaw:ds,gzip:fs}=at,{Inflate:ms,inflate:ys,inflateRaw:Es,ungzip:gs}=us;var vs=As,Is=ps,_s=ds,Ts=fs,Ps=ms,bs=ys,Rs=Es,Ds=gs,Cs=U,Ns={Deflate:vs,deflate:Is,deflateRaw:_s,gzip:Ts,Inflate:Ps,inflate:bs,inflateRaw:Rs,ungzip:Ds,constants:Cs};e.Deflate=vs,e.Inflate=Ps,e.constants=Cs,e.default=Ns,e.deflate=Is,e.deflateRaw=_s,e.gzip=Ts,e.inflate=bs,e.inflateRaw=Rs,e.ungzip=Ds,Object.defineProperty(e,"__esModule",{value:!0})}));var Tv=Object.freeze({__proto__:null});let Pv=window.pako||Tv;Pv.inflate||(Pv=Pv.default);const bv=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 Rv={version:1,parse:function(e,t,s,i,r,o){const n=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),a=function(e){return{positions:new Uint16Array(Pv.inflate(e.positions).buffer),normals:new Int8Array(Pv.inflate(e.normals).buffer),indices:new Uint32Array(Pv.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Pv.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(Pv.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(Pv.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(Pv.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(Pv.inflate(e.meshColors).buffer),entityIDs:Pv.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(Pv.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(Pv.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(Pv.inflate(e.positionsDecodeMatrix).buffer)}}(n);!function(e,t,s,i,r,o){o.getNextId(),i.positionsCompression="precompressed",i.normalsCompression="precompressed";const n=s.positions,a=s.normals,l=s.indices,h=s.edgeIndices,c=s.meshPositions,u=s.meshIndices,A=s.meshEdgesIndices,d=s.meshColors,f=JSON.parse(s.entityIDs),m=s.entityMeshes,y=s.entityIsObjects,g=c.length,v=m.length;for(let r=0;rm[e]m[t]?1:0));for(let e=0;e1||(C[s]=e)}}for(let e=0;e1,o=Mv(y.subarray(4*t,4*t+3)),A=y[4*t+3]/255,g=a.subarray(p[t],s?a.length:p[t+1]),I=l.subarray(p[t],s?l.length:p[t+1]),_=h.subarray(d[t],s?h.length:d[t+1]),P=c.subarray(f[t],s?c.length:f[t+1]),D=u.subarray(m[t],m[t]+16);if(r){const e=`${n}-geometry.${t}`;i.createGeometry({id:e,primitive:"triangles",positionsCompressed:g,normalsCompressed:I,indices:_,edgeIndices:P,positionsDecodeMatrix:D})}else{const e=`${n}-${t}`;v[C[t]];const s={};i.createMesh(E.apply(s,{id:e,primitive:"triangles",positionsCompressed:g,normalsCompressed:I,indices:_,edgeIndices:P,positionsDecodeMatrix:D,color:o,opacity:A}))}}let N=0;for(let e=0;e1){const t={},r=`${n}-instance.${N++}`,o=`${n}-geometry.${s}`,a=16*_[e],h=A.subarray(a,a+16);i.createMesh(E.apply(t,{id:r,geometryId:o,matrix:h})),l.push(r)}else l.push(s)}if(l.length>0){const e={};i.createEntity(E.apply(e,{id:r,isObject:!0,meshIds:l}))}}}(0,0,a,i,0,o)}};let Fv=window.pako||Tv;Fv.inflate||(Fv=Fv.default);const Lv=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 Uv={version:5,parse:function(e,t,s,i,r,o){const n=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),a=function(e){return{positions:new Float32Array(Fv.inflate(e.positions).buffer),normals:new Int8Array(Fv.inflate(e.normals).buffer),indices:new Uint32Array(Fv.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Fv.inflate(e.edgeIndices).buffer),matrices:new Float32Array(Fv.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(Fv.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(Fv.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(Fv.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(Fv.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(Fv.inflate(e.primitiveInstances).buffer),eachEntityId:Fv.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(Fv.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(Fv.inflate(e.eachEntityMatricesPortion).buffer)}}(n);!function(e,t,s,i,r,o){const n=o.getNextId();i.positionsCompression="disabled",i.normalsCompression="precompressed";const a=s.positions,l=s.normals,h=s.indices,c=s.edgeIndices,u=s.matrices,A=s.eachPrimitivePositionsAndNormalsPortion,p=s.eachPrimitiveIndicesPortion,d=s.eachPrimitiveEdgeIndicesPortion,f=s.eachPrimitiveColor,m=s.primitiveInstances,y=JSON.parse(s.eachEntityId),g=s.eachEntityPrimitiveInstancesPortion,v=s.eachEntityMatricesPortion,I=A.length,_=m.length,T=new Uint8Array(I),P=y.length;for(let e=0;e<_;e++)T[m[e]]++;const b={};for(let e=0;e1||(b[s]=e)}}for(let e=0;e1,r=Lv(f.subarray(4*e,4*e+3)),o=f[4*e+3]/255,u=a.subarray(A[e],t?a.length:A[e+1]),m=l.subarray(A[e],t?l.length:A[e+1]),g=h.subarray(p[e],t?h.length:p[e+1]),v=c.subarray(d[e],t?c.length:d[e+1]);if(s){const t=`${n}-geometry.${e}`;i.createGeometry({id:t,primitive:"triangles",positionsCompressed:u,normalsCompressed:m,indices:g,edgeIndices:v})}else{const t=e;y[b[e]];const s={};i.createMesh(E.apply(s,{id:t,primitive:"triangles",positionsCompressed:u,normalsCompressed:m,indices:g,edgeIndices:v,color:r,opacity:o}))}}let R=0;for(let e=0;e1){const t={},r="instance."+R++,o="geometry"+s,n=16*v[e],l=u.subarray(n,n+16);i.createMesh(E.apply(t,{id:r,geometryId:o,matrix:l})),a.push(r)}else a.push(s)}if(a.length>0){const e={};i.createEntity(E.apply(e,{id:r,isObject:!0,meshIds:a}))}}}(0,0,a,i,0,o)}};let Hv=window.pako||Tv;Hv.inflate||(Hv=Hv.default);const Gv=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 kv={version:6,parse:function(e,t,s,i,r,o){const n=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),a=function(e){function t(e,t){return 0===e.length?[]:Hv.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:Hv.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))}}(n);!function(e,t,s,i,r,o){const n=o.getNextId(),a=s.positions,l=s.normals,h=s.indices,c=s.edgeIndices,u=s.matrices,A=s.reusedPrimitivesDecodeMatrix,d=s.eachPrimitivePositionsAndNormalsPortion,f=s.eachPrimitiveIndicesPortion,m=s.eachPrimitiveEdgeIndicesPortion,y=s.eachPrimitiveColorAndOpacity,g=s.primitiveInstances,v=JSON.parse(s.eachEntityId),I=s.eachEntityPrimitiveInstancesPortion,_=s.eachEntityMatricesPortion,T=s.eachTileAABB,P=s.eachTileEntitiesPortion,b=d.length,R=g.length,D=v.length,C=P.length,N=new Uint32Array(b);for(let e=0;e1,u=t===b-1,p=a.subarray(d[t],u?a.length:d[t+1]),v=l.subarray(d[t],u?l.length:d[t+1]),I=h.subarray(f[t],u?h.length:f[t+1]),_=c.subarray(m[t],u?c.length:m[t+1]),T=Gv(y.subarray(4*t,4*t+3)),P=y[4*t+3]/255,R=o.getNextId();if(r){const e=`${n}-geometry.${s}.${t}`;F[e]||(i.createGeometry({id:e,primitive:"triangles",positionsCompressed:p,indices:I,edgeIndices:_,positionsDecodeMatrix:A}),F[e]=!0),i.createMesh(E.apply(H,{id:R,geometryId:e,origin:O,matrix:C,color:T,opacity:P})),M.push(R)}else i.createMesh(E.apply(H,{id:R,origin:O,primitive:"triangles",positionsCompressed:p,normalsCompressed:v,indices:I,edgeIndices:_,positionsDecodeMatrix:B,color:T,opacity:P})),M.push(R)}M.length>0&&i.createEntity(E.apply(U,{id:P,isObject:!0,meshIds:M}))}}}(e,t,a,i,0,o)}};let Vv=window.pako||Tv;Vv.inflate||(Vv=Vv.default);const jv=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 Qv(e){const t=[];for(let s=0,i=e.length;s1,p=t===N-1,b=jv(P.subarray(6*e,6*e+3)),R=P[6*e+3]/255,D=P[6*e+4]/255,C=P[6*e+5]/255,O=o.getNextId();if(r){const r=T[e],o=A.slice(r,r+16),_=`${n}-geometry.${s}.${t}`;if(!G[_]){let e,s,r,o,n,A;switch(f[t]){case 0:e="solid",s=a.subarray(m[t],p?a.length:m[t+1]),r=l.subarray(y[t],p?l.length:y[t+1]),n=c.subarray(v[t],p?c.length:v[t+1]),A=u.subarray(I[t],p?u.length:I[t+1]);break;case 1:e="surface",s=a.subarray(m[t],p?a.length:m[t+1]),r=l.subarray(y[t],p?l.length:y[t+1]),n=c.subarray(v[t],p?c.length:v[t+1]),A=u.subarray(I[t],p?u.length:I[t+1]);break;case 2:e="points",s=a.subarray(m[t],p?a.length:m[t+1]),o=Qv(h.subarray(g[t],p?h.length:g[t+1]));break;case 3:e="lines",s=a.subarray(m[t],p?a.length:m[t+1]),n=c.subarray(v[t],p?c.length:v[t+1]);break;default:continue}i.createGeometry({id:_,primitive:e,positionsCompressed:s,normalsCompressed:r,colors:o,indices:n,edgeIndices:A,positionsDecodeMatrix:d}),G[_]=!0}i.createMesh(E.apply(k,{id:O,geometryId:_,origin:M,matrix:o,color:b,metallic:D,roughness:C,opacity:R})),F.push(O)}else{let e,s,r,o,n,A;switch(f[t]){case 0:e="solid",s=a.subarray(m[t],p?a.length:m[t+1]),r=l.subarray(y[t],p?l.length:y[t+1]),n=c.subarray(v[t],p?c.length:v[t+1]),A=u.subarray(I[t],p?u.length:I[t+1]);break;case 1:e="surface",s=a.subarray(m[t],p?a.length:m[t+1]),r=l.subarray(y[t],p?l.length:y[t+1]),n=c.subarray(v[t],p?c.length:v[t+1]),A=u.subarray(I[t],p?u.length:I[t+1]);break;case 2:e="points",s=a.subarray(m[t],p?a.length:m[t+1]),o=Qv(h.subarray(g[t],p?h.length:g[t+1]));break;case 3:e="lines",s=a.subarray(m[t],p?a.length:m[t+1]),n=c.subarray(v[t],p?c.length:v[t+1]);break;default:continue}i.createMesh(E.apply(k,{id:O,origin:M,primitive:e,positionsCompressed:s,normalsCompressed:r,colors:o,indices:n,edgeIndices:A,positionsDecodeMatrix:H,color:b,metallic:D,roughness:C,opacity:R})),F.push(O)}}F.length>0&&i.createEntity(E.apply(U,{id:C,isObject:!0,meshIds:F}))}}}(e,t,a,i,0,o)}};let zv=window.pako||Tv;zv.inflate||(zv=zv.default);const Kv=p.vec4(),Yv=p.vec4();const Xv=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 Zv(e){const t=[];for(let s=0,i=e.length;s1,l=r===B-1,h=Xv(N.subarray(6*e,6*e+3)),c=N[6*e+3]/255,u=N[6*e+4]/255,O=N[6*e+5]/255,x=o.getNextId();if(a){const o=C[e],a=g.slice(o,o+16),D=`${n}-geometry.${s}.${r}`;let N=V[D];if(!N){N={batchThisMesh:!t.reuseGeometries};let e=!1;switch(I[r]){case 0:N.primitiveName="solid",N.geometryPositions=A.subarray(_[r],l?A.length:_[r+1]),N.geometryNormals=d.subarray(T[r],l?d.length:T[r+1]),N.geometryIndices=m.subarray(b[r],l?m.length:b[r+1]),N.geometryEdgeIndices=y.subarray(R[r],l?y.length:R[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 1:N.primitiveName="surface",N.geometryPositions=A.subarray(_[r],l?A.length:_[r+1]),N.geometryNormals=d.subarray(T[r],l?d.length:T[r+1]),N.geometryIndices=m.subarray(b[r],l?m.length:b[r+1]),N.geometryEdgeIndices=y.subarray(R[r],l?y.length:R[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 2:N.primitiveName="points",N.geometryPositions=A.subarray(_[r],l?A.length:_[r+1]),N.geometryColors=Zv(f.subarray(P[r],l?f.length:P[r+1])),e=N.geometryPositions.length>0;break;case 3:N.primitiveName="lines",N.geometryPositions=A.subarray(_[r],l?A.length:_[r+1]),N.geometryIndices=m.subarray(b[r],l?m.length:b[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;default:continue}if(e||(N=null),N&&(N.geometryPositions.length,N.batchThisMesh)){N.decompressedPositions=new Float32Array(N.geometryPositions.length);const e=N.geometryPositions,t=N.decompressedPositions;for(let s=0,i=e.length;s0&&n.length>0;break;case 1:e="surface",t=A.subarray(_[r],l?A.length:_[r+1]),s=d.subarray(T[r],l?d.length:T[r+1]),n=m.subarray(b[r],l?m.length:b[r+1]),a=y.subarray(R[r],l?y.length:R[r+1]),p=t.length>0&&n.length>0;break;case 2:e="points",t=A.subarray(_[r],l?A.length:_[r+1]),o=Zv(f.subarray(P[r],l?f.length:P[r+1])),p=t.length>0;break;case 3:e="lines",t=A.subarray(_[r],l?A.length:_[r+1]),n=m.subarray(b[r],l?m.length:b[r+1]),p=t.length>0&&n.length>0;break;default:continue}p&&(i.createMesh(E.apply(Q,{id:x,origin:G,primitive:e,positionsCompressed:t,normalsCompressed:s,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:M,color:h,metallic:u,roughness:O,opacity:c})),w.push(x))}}w.length>0&&i.createEntity(E.apply(j,{id:h,isObject:!0,meshIds:w}))}}}(e,t,a,i,r,o)}};let Jv=window.pako||Tv;Jv.inflate||(Jv=Jv.default);const $v=p.vec4(),eI=p.vec4();const tI=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 sI={version:9,parse:function(e,t,s,i,r,o){const n=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),a=function(e){function t(e,t){return 0===e.length?[]:Jv.inflate(e,t).buffer}return{metadata:JSON.parse(Jv.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(Jv.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,s,i,r,o){const n=o.getNextId(),a=s.metadata,l=s.positions,h=s.normals,c=s.colors,u=s.indices,A=s.edgeIndices,d=s.matrices,f=s.reusedGeometriesDecodeMatrix,m=s.eachGeometryPrimitiveType,y=s.eachGeometryPositionsPortion,g=s.eachGeometryNormalsPortion,v=s.eachGeometryColorsPortion,I=s.eachGeometryIndicesPortion,_=s.eachGeometryEdgeIndicesPortion,T=s.eachMeshGeometriesPortion,P=s.eachMeshMatricesPortion,b=s.eachMeshMaterial,R=s.eachEntityId,D=s.eachEntityMeshesPortion,C=s.eachTileAABB,N=s.eachTileEntitiesPortion,O=y.length,x=T.length,S=D.length,w=N.length;r&&r.loadData(a,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const M=new Uint32Array(O);for(let e=0;e1,R=r===O-1,D=tI(b.subarray(6*e,6*e+3)),C=b[6*e+3]/255,N=b[6*e+4]/255,x=b[6*e+5]/255,S=o.getNextId();if(a){const o=P[e],a=d.slice(o,o+16),T=`${n}-geometry.${s}.${r}`;let b=L[T];if(!b){b={batchThisMesh:!t.reuseGeometries};let e=!1;switch(m[r]){case 0:b.primitiveName="solid",b.geometryPositions=l.subarray(y[r],R?l.length:y[r+1]),b.geometryNormals=h.subarray(g[r],R?h.length:g[r+1]),b.geometryIndices=u.subarray(I[r],R?u.length:I[r+1]),b.geometryEdgeIndices=A.subarray(_[r],R?A.length:_[r+1]),e=b.geometryPositions.length>0&&b.geometryIndices.length>0;break;case 1:b.primitiveName="surface",b.geometryPositions=l.subarray(y[r],R?l.length:y[r+1]),b.geometryNormals=h.subarray(g[r],R?h.length:g[r+1]),b.geometryIndices=u.subarray(I[r],R?u.length:I[r+1]),b.geometryEdgeIndices=A.subarray(_[r],R?A.length:_[r+1]),e=b.geometryPositions.length>0&&b.geometryIndices.length>0;break;case 2:b.primitiveName="points",b.geometryPositions=l.subarray(y[r],R?l.length:y[r+1]),b.geometryColors=c.subarray(v[r],R?c.length:v[r+1]),e=b.geometryPositions.length>0;break;case 3:b.primitiveName="lines",b.geometryPositions=l.subarray(y[r],R?l.length:y[r+1]),b.geometryIndices=u.subarray(I[r],R?u.length:I[r+1]),e=b.geometryPositions.length>0&&b.geometryIndices.length>0;break;default:continue}if(e||(b=null),b&&(b.geometryPositions.length,b.batchThisMesh)){b.decompressedPositions=new Float32Array(b.geometryPositions.length),b.transformedAndRecompressedPositions=new Uint16Array(b.geometryPositions.length);const e=b.geometryPositions,t=b.decompressedPositions;for(let s=0,i=e.length;s0&&n.length>0;break;case 1:e="surface",t=l.subarray(y[r],R?l.length:y[r+1]),s=h.subarray(g[r],R?h.length:g[r+1]),n=u.subarray(I[r],R?u.length:I[r+1]),a=A.subarray(_[r],R?A.length:_[r+1]),p=t.length>0&&n.length>0;break;case 2:e="points",t=l.subarray(y[r],R?l.length:y[r+1]),o=c.subarray(v[r],R?c.length:v[r+1]),p=t.length>0;break;case 3:e="lines",t=l.subarray(y[r],R?l.length:y[r+1]),n=u.subarray(I[r],R?u.length:I[r+1]),p=t.length>0&&n.length>0;break;default:continue}p&&(i.createMesh(E.apply(j,{id:S,origin:B,primitive:e,positionsCompressed:t,normalsCompressed:s,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:G,color:D,metallic:N,roughness:x,opacity:C})),U.push(S))}}U.length>0&&i.createEntity(E.apply(V,{id:C,isObject:!0,meshIds:U}))}}}(e,t,a,i,r,o)}};let iI=window.pako||Tv;iI.inflate||(iI=iI.default);const rI=p.vec4(),oI=p.vec4();const nI=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 aI(e,t){const s=[];if(t.length>1)for(let e=0,i=t.length-1;e1)for(let t=0,i=e.length/3-1;t0,a=9*e,u=1===c[a+0],A=c[a+1];c[a+2],c[a+3];const p=c[a+4],d=c[a+5],f=c[a+6],m=c[a+7],y=c[a+8];if(o){const t=new Uint8Array(l.subarray(s,r)).buffer,o=`${n}-texture-${e}`;if(u)i.createTexture({id:o,buffers:[t],minFilter:p,magFilter:d,wrapS:f,wrapT:m,wrapR:y});else{const e=new Blob([t],{type:10001===A?"image/jpeg":10002===A?"image/png":"image/gif"}),s=(window.URL||window.webkitURL).createObjectURL(e),r=document.createElement("img");r.src=s,i.createTexture({id:o,image:r,minFilter:p,magFilter:d,wrapS:f,wrapT:m,wrapR:y})}}}for(let e=0;e=0?`${n}-texture-${r}`:null,normalsTextureId:a>=0?`${n}-texture-${a}`:null,metallicRoughnessTextureId:o>=0?`${n}-texture-${o}`:null,emissiveTextureId:l>=0?`${n}-texture-${l}`:null,occlusionTextureId:h>=0?`${n}-texture-${h}`:null})}const j=new Uint32Array(H);for(let e=0;e1,l=r===H-1,h=x[e],c=h>=0?`${n}-textureSet-${h}`:null,w=nI(S.subarray(6*e,6*e+3)),M=S[6*e+3]/255,B=S[6*e+4]/255,U=S[6*e+5]/255,G=o.getNextId();if(a){const o=O[e],a=v.slice(o,o+16),h=`${n}-geometry.${s}.${r}`;let N=z[h];if(!N){N={batchThisMesh:!t.reuseGeometries};let e=!1;switch(_[r]){case 0:N.primitiveName="solid",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryNormals=A.subarray(P[r],l?A.length:P[r+1]),N.geometryUVs=f.subarray(R[r],l?f.length:R[r+1]),N.geometryIndices=m.subarray(D[r],l?m.length:D[r+1]),N.geometryEdgeIndices=y.subarray(C[r],l?y.length:C[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 1:N.primitiveName="surface",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryNormals=A.subarray(P[r],l?A.length:P[r+1]),N.geometryUVs=f.subarray(R[r],l?f.length:R[r+1]),N.geometryIndices=m.subarray(D[r],l?m.length:D[r+1]),N.geometryEdgeIndices=y.subarray(C[r],l?y.length:C[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 2:N.primitiveName="points",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryColors=d.subarray(b[r],l?d.length:b[r+1]),e=N.geometryPositions.length>0;break;case 3:N.primitiveName="lines",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryIndices=m.subarray(D[r],l?m.length:D[r+1]),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 4:N.primitiveName="lines",N.geometryPositions=u.subarray(T[r],l?u.length:T[r+1]),N.geometryIndices=aI(N.geometryPositions,m.subarray(D[r],l?m.length:D[r+1])),e=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;default:continue}if(e||(N=null),N&&(N.geometryPositions.length,N.batchThisMesh)){N.decompressedPositions=new Float32Array(N.geometryPositions.length),N.transformedAndRecompressedPositions=new Uint16Array(N.geometryPositions.length);const e=N.geometryPositions,t=N.decompressedPositions;for(let s=0,i=e.length;s0&&a.length>0;break;case 1:e="surface",t=u.subarray(T[r],l?u.length:T[r+1]),s=A.subarray(P[r],l?A.length:P[r+1]),o=f.subarray(R[r],l?f.length:R[r+1]),a=m.subarray(D[r],l?m.length:D[r+1]),h=y.subarray(C[r],l?y.length:C[r+1]),p=t.length>0&&a.length>0;break;case 2:e="points",t=u.subarray(T[r],l?u.length:T[r+1]),n=d.subarray(b[r],l?d.length:b[r+1]),p=t.length>0;break;case 3:e="lines",t=u.subarray(T[r],l?u.length:T[r+1]),a=m.subarray(D[r],l?m.length:D[r+1]),p=t.length>0&&a.length>0;break;case 4:e="lines",t=u.subarray(T[r],l?u.length:T[r+1]),a=aI(t,m.subarray(D[r],l?m.length:D[r+1])),p=t.length>0&&a.length>0;break;default:continue}p&&(i.createMesh(E.apply(V,{id:G,textureSetId:c,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:s,uv:o&&o.length>0?o:null,colorsCompressed:n,indices:a,edgeIndices:h,positionsDecodeMatrix:g,color:w,metallic:B,roughness:U,opacity:M})),F.push(G))}}F.length>0&&i.createEntity(E.apply(G,{id:l,isObject:!0,meshIds:F}))}}}(e,t,a,i,r,o)}},hI={};hI[Rv.version]=Rv,hI[Nv.version]=Nv,hI[Sv.version]=Sv,hI[Bv.version]=Bv,hI[Uv.version]=Uv,hI[kv.version]=kv,hI[Wv.version]=Wv,hI[qv.version]=qv,hI[sI.version]=sI,hI[lI.version]=lI;class cI extends G{constructor(e,t={}){super("XKTLoader",e,t),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this.textureTranscoder=t.textureTranscoder,this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults,this.includeTypes=t.includeTypes,this.excludeTypes=t.excludeTypes,this.excludeUnclassifiedObjects=t.excludeUnclassifiedObjects,this.reuseGeometries=t.reuseGeometries}get supportedVersions(){return Object.keys(hI)}get textureTranscoder(){return this._textureTranscoder}set textureTranscoder(e){this._textureTranscoder=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new _v}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||nv}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}get reuseGeometries(){return this._reuseGeometries}set reuseGeometries(e){this._reuseGeometries=!1!==e}load(e={}){if(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),!(e.src||e.xkt||e.manifestSrc||e.manifest))return this.error("load() param expected: src, xkt, manifestSrc or manifestData"),o;const t={},s=e.includeTypes||this._includeTypes,i=e.excludeTypes||this._excludeTypes,r=e.objectDefaults||this._objectDefaults;if(t.reuseGeometries=null!==e.reuseGeometries&&void 0!==e.reuseGeometries?e.reuseGeometries:!1!==this._reuseGeometries,s){t.includeTypesMap={};for(let e=0,i=s.length;e{o.finalize(),a.finalize(),this.viewer.scene.canvas.spinner.processes--,o.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(a.id)})),this.scheduleTask((()=>{o.destroyed||(o.scene.fire("modelLoaded",o.id),o.fire("loaded",!0,!1))}))},h=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),o.fire("error",e)};let c=0;const u={getNextId:()=>`${n}.${c++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const r=e.metaModelSrc;this._dataSource.getMetaModel(r,(r=>{o.destroyed||(a.loadData(r,{includeTypes:s,excludeTypes:i,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,u,l,h):(this._parseModel(e.xkt,e,t,o,null,u),l()))}),(e=>{h(`load(): Failed to load model metadata for model '${n} from '${r}' - ${e}`)}))}else e.metaModelData&&(a.loadData(e.metaModelData,{includeTypes:s,excludeTypes:i,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,u,l,h):(this._parseModel(e.xkt,e,t,o,null,u),l()));else if(e.src)this._loadModel(e.src,e,t,o,a,u,l,h);else if(e.xkt)this._parseModel(e.xkt,e,t,o,a,u),l();else if(e.manifestSrc||e.manifest){const r=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",n=(e,o,n)=>{let l=0;const h=()=>{l>=e.length?o():this._dataSource.getMetaModel(`${r}${e[l]}`,(e=>{a.loadData(e,{includeTypes:s,excludeTypes:i,globalizeObjectIds:t.globalizeObjectIds}),l++,this.scheduleTask(h,100)}),n)};h()},c=(s,i,n)=>{let l=0;const h=()=>{l>=s.length?i():this._dataSource.getXKT(`${r}${s[l]}`,(s=>{this._parseModel(s,e,t,o,a,u),l++,this.scheduleTask(h,100)}),n)};h()};if(e.manifest){const t=e.manifest,s=t.xktFiles;if(!s||0===s.length)return void h("load(): Failed to load model manifest - manifest not valid");const i=t.metaModelFiles;i?n(i,(()=>{c(s,l,h)}),h):c(s,l,h)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(o.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void h("load(): Failed to load model manifest - manifest not valid");const s=e.metaModelFiles;s?n(s,(()=>{c(t,l,h)}),h):c(t,l,h)}),h)}return o}_loadModel(e,t,s,i,r,o,n,a){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,s,i,r,o),n()}),a)}_parseModel(e,t,s,i,r,o){if(i.destroyed)return;const n=new DataView(e),a=new Uint8Array(e),l=n.getUint32(0,!0),h=hI[l];if(!h)return void this.error("Unsupported .XKT file version: "+l+" - this XKTLoaderPlugin supports versions "+Object.keys(hI));this.log("Loading .xkt V"+l);const c=n.getUint32(4,!0),u=[];let A=4*(c+2);for(let e=0;ee.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){r(e)}}}function d(){}function f(e){var s,i=this;i.init=function(e){s=new Blob([],{type:n}),e()},i.writeUint8Array=function(e,i){s=new Blob([s,t?e:e.buffer],{type:n}),i()},i.getData=function(t,i){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=i,r.readAsText(s,e)}}function m(t){var s=this,i="",r="";s.init=function(e){i+="data:"+(t||"")+";base64,",e()},s.writeUint8Array=function(t,s){var o,n=r.length,a=r;for(r="",o=0;o<3*Math.floor((n+t.length)/3)-n;o++)a+=String.fromCharCode(t[o]);for(;o2?i+=e.btoa(a):r=a,s()},s.getData=function(t){t(i+e.btoa(r))}}function y(e){var s,i=this;i.init=function(t){s=new Blob([],{type:e}),t()},i.writeUint8Array=function(i,r){s=new Blob([s,t?i:i.buffer],{type:e}),r()},i.getData=function(e){e(s)}}function E(e,t,s,i,r,n,a,l,h,c){var u,A,p,d=0,f=t.sn;function m(){e.removeEventListener("message",y,!1),l(A,p)}function y(t){var s=t.data,r=s.data,o=s.error;if(o)return o.toString=function(){return"Error: "+this.message},void h(o);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":r?(A+=r.length,i.writeUint8Array(r,(function(){E()}),c)):E();break;case"flush":p=s.crc,r?(A+=r.length,i.writeUint8Array(r,(function(){m()}),c)):m();break;case"progress":a&&a(u+s.loaded,n);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",s)}}function E(){(u=d*o)<=n?s.readUint8Array(r+u,Math.min(o,n-u),(function(s){a&&a(u,n);var i=0===u?t:{sn:f};i.type="append",i.data=s;try{e.postMessage(i,[s.buffer])}catch(t){e.postMessage(i)}d++}),h):e.postMessage({sn:f,type:"flush"})}A=0,e.addEventListener("message",y,!1),E()}function g(e,t,s,i,r,n,l,h,c,u){var A,p=0,d=0,f="input"===n,m="output"===n,y=new a;!function n(){var a;if((A=p*o)127?r[s-128]:String.fromCharCode(s);return i}function _(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)?((i||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)):r("File is using Zip64 (4gb+ file size).")):r("File contains encrypted entry.")}function b(t,o,n){var a=0;function l(){}l.prototype.getData=function(i,o,l,c){var u=this;function A(e,t){c&&!function(e){var t=h(4);return t.view.setUint32(0,e),u.crc32==t.view.getUint32(0)}(t)?n("CRC failed."):i.getData((function(e){o(e)}))}function p(e){n(e||r)}function d(e){n(e||"Error while writing file data.")}t.readUint8Array(u.offset,30,(function(r){var o,f=h(r.length,r);1347093252==f.view.getUint32(0)?(P(u,f,4,!1,n),o=u.offset+30+u.filenameLength+u.extraFieldLength,i.init((function(){0===u.compressionMethod?v(u._worker,a++,t,i,o,u.compressedSize,c,A,l,p,d):function(t,s,i,r,o,n,a,l,h,c,u){var A=a?"output":"none";e.zip.useWebWorkers?E(t,{sn:s,codecClass:"Inflater",crcType:A},i,r,o,n,h,l,c,u):g(new e.zip.Inflater,i,r,o,n,A,h,l,c,u)}(u._worker,a++,t,i,o,u.compressedSize,c,A,l,p,d)}),d)):n(s)}),p)};var c={getEntries:function(e){var r=this._worker;!function(e){t.size<22?n(s):r(22,(function(){r(Math.min(65558,t.size),(function(){n(s)}))}));function r(s,r){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));r()}),(function(){n(i)}))}}((function(o){var a,c;a=o.getUint32(16,!0),c=o.getUint16(8,!0),a<0||a>=t.size?n(s):t.readUint8Array(a,t.size-a,(function(t){var i,o,a,u,A=0,p=[],d=h(t.length,t);for(i=0;i>>8^s[255&(t^e[i])];this.crc=t},a.prototype.get=function(){return~this.crc},a.prototype.table=function(){var e,t,s,i=[];for(e=0;e<256;e++){for(s=e,t=0;t<8;t++)1&s?s=s>>>1^3988292384:s>>>=1;i[e]=s}return i}(),l.prototype.append=function(e,t){return e},l.prototype.flush=function(){},u.prototype=new c,u.prototype.constructor=u,A.prototype=new c,A.prototype.constructor=A,p.prototype=new c,p.prototype.constructor=p,d.prototype.getData=function(e){e(this.data)},f.prototype=new d,f.prototype.constructor=f,m.prototype=new d,m.prototype.constructor=m,y.prototype=new d,y.prototype.constructor=y;var N={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function O(t,s,i){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var r;if(e.zip.workerScripts){if(r=e.zip.workerScripts[t],!Array.isArray(r))return void i(new Error("zip.workerScripts."+t+" is not an array!"));r=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(r)}else(r=N[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+r[0];var o=new Worker(r[0]);o.codecTime=o.crcTime=0,o.postMessage({type:"importScripts",scripts:r.slice(1)}),o.addEventListener("message",(function e(t){var r=t.data;if(r.error)return o.terminate(),void i(r.error);"importScripts"===r.type&&(o.removeEventListener("message",e),o.removeEventListener("error",n),s(o))})),o.addEventListener("error",n)}else i(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function n(e){o.terminate(),i(e)}}function x(e){console.error(e)}e.zip={Reader:c,Writer:d,BlobReader:p,Data64URIReader:A,TextReader:u,BlobWriter:y,Data64URIWriter:m,TextWriter:f,createReader:function(e,t,s){s=s||x,e.init((function(){b(e,t,s)}),s)},createWriter:function(e,t,s,i){s=s||x,i=!!i,e.init((function(){C(e,t,s,i)}),s)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(uI);!function(e){var t,s,i=e.Reader,r=e.Writer;try{s=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function o(e){var t=this;function s(s,i){var r;t.data?s():((r=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(r.getResponseHeader("Content-Length"))||Number(r.response.byteLength)),t.data=new Uint8Array(r.response),s()}),!1),r.addEventListener("error",i,!1),r.open("GET",e),r.responseType="arraybuffer",r.send())}t.size=0,t.init=function(i,r){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var o=new XMLHttpRequest;o.addEventListener("load",(function(){t.size=Number(o.getResponseHeader("Content-Length")),t.size?i():s(i,r)}),!1),o.addEventListener("error",r,!1),o.open("HEAD",e),o.send()}else s(i,r)},t.readUint8Array=function(e,i,r,o){s((function(){r(new Uint8Array(t.data.subarray(e,e+i)))}),o)}}function n(e){var t=this;t.size=0,t.init=function(s,i){var r=new XMLHttpRequest;r.addEventListener("load",(function(){t.size=Number(r.getResponseHeader("Content-Length")),"bytes"==r.getResponseHeader("Accept-Ranges")?s():i("HTTP Range not supported.")}),!1),r.addEventListener("error",i,!1),r.open("HEAD",e),r.send()},t.readUint8Array=function(t,s,i,r){!function(t,s,i,r){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="arraybuffer",o.setRequestHeader("Range","bytes="+t+"-"+(t+s-1)),o.addEventListener("load",(function(){i(o.response)}),!1),o.addEventListener("error",r,!1),o.send()}(t,s,(function(e){i(new Uint8Array(e))}),r)}}function a(e){var t=this;t.size=0,t.init=function(s,i){t.size=e.byteLength,s()},t.readUint8Array=function(t,s,i,r){i(new Uint8Array(e.slice(t,t+s)))}}function l(){var e,t=this;t.init=function(t,s){e=new Uint8Array,t()},t.writeUint8Array=function(t,s,i){var r=new Uint8Array(e.length+t.length);r.set(e),r.set(t,e.length),e=r,s()},t.getData=function(t){t(e.buffer)}}function h(e,t){var i,r=this;r.init=function(t,s){e.createWriter((function(e){i=e,t()}),s)},r.writeUint8Array=function(e,r,o){var n=new Blob([s?e:e.buffer],{type:t});i.onwrite=function(){i.onwrite=null,r()},i.onerror=o,i.write(n)},r.getData=function(t){e.file(t)}}o.prototype=new i,o.prototype.constructor=o,n.prototype=new i,n.prototype.constructor=n,a.prototype=new i,a.prototype.constructor=a,l.prototype=new r,l.prototype.constructor=l,h.prototype=new r,h.prototype.constructor=h,e.FileWriter=h,e.HttpReader=o,e.HttpRangeReader=n,e.ArrayBufferReader=a,e.ArrayBufferWriter=l,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(s,i,r){return function(s,i,r,o){if(s.directory)return o?new t(s.fs,i,r,s):new e.fs.ZipFileEntry(s.fs,i,r,s);throw"Parent entry is not a directory."}(this,s,{data:i,Reader:r?n:o})},t.prototype.importHttpContent=function(e,t,s,i){this.importZip(t?new n(e):new o(e),s,i)},e.fs.FS.prototype.importHttpContent=function(e,s,i,r){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,s,i,r)})}(uI.zip);var AI,pI,dI,fI,mI,yI,EI,gI=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},vI=gI({"dist/web-ifc-mt.js"(e,t){var s,i=(s="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e={}){function t(){return D.buffer!=w.buffer&&z(),w}function i(){return D.buffer!=w.buffer&&z(),M}function r(){return D.buffer!=w.buffer&&z(),B}function o(){return D.buffer!=w.buffer&&z(),F}function n(){return D.buffer!=w.buffer&&z(),L}function a(){return D.buffer!=w.buffer&&z(),U}function l(){return D.buffer!=w.buffer&&z(),G}var h,c,u=void 0!==e?e:{};u.ready=new Promise((function(e,t){h=e,c=t}));var A,p,d,f=Object.assign({},u),m="./this.program",y=(e,t)=>{throw t},E="object"==typeof window,g="function"==typeof importScripts,v="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,I=u.ENVIRONMENT_IS_PTHREAD||!1,_="";function T(e){return u.locateFile?u.locateFile(e,_):_+e}(E||g)&&(g?_=self.location.href:"undefined"!=typeof document&&document.currentScript&&(_=document.currentScript.src),s&&(_=s),_=0!==_.indexOf("blob:")?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",A=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},g&&(d=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),p=(e,t,s)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):s()},i.onerror=s,i.send(null)});var P,b=u.print||console.log.bind(console),R=u.printErr||console.warn.bind(console);Object.assign(u,f),f=null,u.arguments,u.thisProgram&&(m=u.thisProgram),u.quit&&(y=u.quit),u.wasmBinary&&(P=u.wasmBinary);var D,C,N=u.noExitRuntime||!0;"object"!=typeof WebAssembly&&ae("no native wasm support detected");var O,x=!1;function S(e,t){e||ae(t)}var w,M,B,F,L,U,H,G,k="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function V(e,t,s){for(var i=(t>>>=0)+s,r=t;e[r]&&!(r>=i);)++r;if(r-t>16&&e.buffer&&k)return k.decode(e.buffer instanceof SharedArrayBuffer?e.slice(t,r):e.subarray(t,r));for(var o="";t>10,56320|1023&h)}}else o+=String.fromCharCode((31&n)<<6|a)}else o+=String.fromCharCode(n)}return o}function j(e,t){return(e>>>=0)?V(i(),e,t):""}function Q(e,t,s,i){if(!(i>0))return 0;for(var r=s>>>=0,o=s+i-1,n=0;n=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++n)),a<=127){if(s>=o)break;t[s++>>>0]=a}else if(a<=2047){if(s+1>=o)break;t[s++>>>0]=192|a>>6,t[s++>>>0]=128|63&a}else if(a<=65535){if(s+2>=o)break;t[s++>>>0]=224|a>>12,t[s++>>>0]=128|a>>6&63,t[s++>>>0]=128|63&a}else{if(s+3>=o)break;t[s++>>>0]=240|a>>18,t[s++>>>0]=128|a>>12&63,t[s++>>>0]=128|a>>6&63,t[s++>>>0]=128|63&a}}return t[s>>>0]=0,s-r}function W(e){for(var t=0,s=0;s=55296&&i<=57343?(t+=4,++s):t+=3}return t}function z(){var e=D.buffer;u.HEAP8=w=new Int8Array(e),u.HEAP16=B=new Int16Array(e),u.HEAP32=L=new Int32Array(e),u.HEAPU8=M=new Uint8Array(e),u.HEAPU16=F=new Uint16Array(e),u.HEAPU32=U=new Uint32Array(e),u.HEAPF32=H=new Float32Array(e),u.HEAPF64=G=new Float64Array(e)}var K,Y=u.INITIAL_MEMORY||16777216;if(S(Y>=5242880,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+Y+"! (STACK_SIZE=5242880)"),I)D=u.wasmMemory;else if(u.wasmMemory)D=u.wasmMemory;else if(!((D=new WebAssembly.Memory({initial:Y/65536,maximum:65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw R("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"),v&&R("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");z(),Y=D.buffer.byteLength;var X=[],Z=[],q=[];function J(){return N}function $(){I||(u.noFSInit||Ee.init.initialized||Ee.init(),Ee.ignorePermissions=!1,Te(Z))}var ee,te,se,ie=0,re=null;function oe(e){ie++,u.monitorRunDependencies&&u.monitorRunDependencies(ie)}function ne(e){if(ie--,u.monitorRunDependencies&&u.monitorRunDependencies(ie),0==ie&&re){var t=re;re=null,t()}}function ae(e){u.onAbort&&u.onAbort(e),R(e="Aborted("+e+")"),x=!0,O=1,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw c(t),t}function le(e){return e.startsWith("data:application/octet-stream;base64,")}function he(e){try{if(e==ee&&P)return new Uint8Array(P);if(d)return d(e);throw"both async and sync fetching of the wasm failed"}catch(e){ae(e)}}function ce(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function ue(e){var t=_e.pthreads[e];S(t),_e.returnWorkerToPool(t)}le(ee="web-ifc-mt.wasm")||(ee=T(ee));var Ae={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var s=0,i=e.length-1;i>=0;i--){var r=e[i];"."===r?e.splice(i,1):".."===r?(e.splice(i,1),s++):s&&(e.splice(i,1),s--)}if(t)for(;s;s--)e.unshift("..");return e},normalize:e=>{var t=Ae.isAbs(e),s="/"===e.substr(-1);return e=Ae.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),e||t||(e="."),e&&s&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=Ae.splitPath(e),s=t[0],i=t[1];return s||i?(i&&(i=i.substr(0,i.length-1)),s+i):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=Ae.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Ae.normalize(e.join("/"))},join2:(e,t)=>Ae.normalize(e+"/"+t)},pe={resolve:function(){for(var e="",t=!1,s=arguments.length-1;s>=-1&&!t;s--){var i=s>=0?arguments[s]:Ee.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=Ae.isAbs(i)}return e=Ae.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=pe.resolve(e).substr(1),t=pe.resolve(t).substr(1);for(var i=s(e.split("/")),r=s(t.split("/")),o=Math.min(i.length,r.length),n=o,a=0;a0?s:W(e)+1,r=new Array(i),o=Q(e,r,0,r.length);return t&&(r.length=o),r}var fe={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){fe.ttys[e]={input:[],output:[],ops:t},Ee.registerDevice(e,fe.stream_ops)},stream_ops:{open:function(e){var t=fe.ttys[e.node.rdev];if(!t)throw new Ee.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,i,r){if(!e.tty||!e.tty.ops.get_char)throw new Ee.ErrnoError(60);for(var o=0,n=0;n0&&(b(V(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(R(V(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(R(V(e.output,0)),e.output=[])}}};function me(e){ae()}var ye={ops_table:null,mount:function(e){return ye.createNode(null,"/",16895,0)},createNode:function(e,t,s,i){if(Ee.isBlkdev(s)||Ee.isFIFO(s))throw new Ee.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:Ee.chrdev_stream_ops}});var r=Ee.createNode(e,t,s,i);return Ee.isDir(r.mode)?(r.node_ops=ye.ops_table.dir.node,r.stream_ops=ye.ops_table.dir.stream,r.contents={}):Ee.isFile(r.mode)?(r.node_ops=ye.ops_table.file.node,r.stream_ops=ye.ops_table.file.stream,r.usedBytes=0,r.contents=null):Ee.isLink(r.mode)?(r.node_ops=ye.ops_table.link.node,r.stream_ops=ye.ops_table.link.stream):Ee.isChrdev(r.mode)&&(r.node_ops=ye.ops_table.chrdev.node,r.stream_ops=ye.ops_table.chrdev.stream),r.timestamp=Date.now(),e&&(e.contents[t]=r,e.timestamp=r.timestamp),r},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 i=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(i.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=Ee.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,Ee.isDir(e.mode)?t.size=4096:Ee.isFile(e.mode)?t.size=e.usedBytes:Ee.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 Ee.genericErrors[44]},mknod:function(e,t,s,i){return ye.createNode(e,t,s,i)},rename:function(e,t,s){if(Ee.isDir(e.mode)){var i;try{i=Ee.lookupNode(t,s)}catch(e){}if(i)for(var r in i.contents)throw new Ee.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=Ee.lookupNode(e,t);for(var i in s.contents)throw new Ee.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 i=ye.createNode(e,t,41471,0);return i.link=s,i},readlink:function(e){if(!Ee.isLink(e.mode))throw new Ee.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,s,i,r){var o=e.node.contents;if(r>=e.node.usedBytes)return 0;var n=Math.min(e.node.usedBytes-r,i);if(n>8&&o.subarray)t.set(o.subarray(r,r+n),s);else for(var a=0;a0||i+s>>=0,t().set(l,n>>>0)}else a=!1,n=l.byteOffset;return{ptr:n,allocated:a}},msync:function(e,t,s,i,r){return ye.stream_ops.write(e,t,0,i,s,!1),0}}},Ee={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=pe.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new Ee.ErrnoError(32);for(var s=e.split("/").filter((e=>!!e)),i=Ee.root,r="/",o=0;o40)throw new Ee.ErrnoError(32)}}return{path:r,node:i}},getPath:e=>{for(var t;;){if(Ee.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,i=0;i>>0)%Ee.nameTable.length},hashAddNode:e=>{var t=Ee.hashName(e.parent.id,e.name);e.name_next=Ee.nameTable[t],Ee.nameTable[t]=e},hashRemoveNode:e=>{var t=Ee.hashName(e.parent.id,e.name);if(Ee.nameTable[t]===e)Ee.nameTable[t]=e.name_next;else for(var s=Ee.nameTable[t];s;){if(s.name_next===e){s.name_next=e.name_next;break}s=s.name_next}},lookupNode:(e,t)=>{var s=Ee.mayLookup(e);if(s)throw new Ee.ErrnoError(s,e);for(var i=Ee.hashName(e.id,t),r=Ee.nameTable[i];r;r=r.name_next){var o=r.name;if(r.parent.id===e.id&&o===t)return r}return Ee.lookup(e,t)},createNode:(e,t,s,i)=>{var r=new Ee.FSNode(e,t,s,i);return Ee.hashAddNode(r),r},destroyNode:e=>{Ee.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=Ee.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)=>Ee.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=Ee.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return Ee.lookupNode(e,t),20}catch(e){}return Ee.nodePermissions(e,"wx")},mayDelete:(e,t,s)=>{var i;try{i=Ee.lookupNode(e,t)}catch(e){return e.errno}var r=Ee.nodePermissions(e,"wx");if(r)return r;if(s){if(!Ee.isDir(i.mode))return 54;if(Ee.isRoot(i)||Ee.getPath(i)===Ee.cwd())return 10}else if(Ee.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?Ee.isLink(e.mode)?32:Ee.isDir(e.mode)&&("r"!==Ee.flagsToPermissionString(t)||512&t)?31:Ee.nodePermissions(e,Ee.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=Ee.MAX_OPEN_FDS)=>{for(var s=e;s<=t;s++)if(!Ee.streams[s])return s;throw new Ee.ErrnoError(33)},getStream:e=>Ee.streams[e],createStream:(e,t,s)=>{Ee.FSStream||(Ee.FSStream=function(){this.shared={}},Ee.FSStream.prototype={},Object.defineProperties(Ee.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 Ee.FSStream,e);var i=Ee.nextfd(t,s);return e.fd=i,Ee.streams[i]=e,e},closeStream:e=>{Ee.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=Ee.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new Ee.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{Ee.devices[e]={stream_ops:t}},getDevice:e=>Ee.devices[e],getMounts:e=>{for(var t=[],s=[e];s.length;){var i=s.pop();t.push(i),s.push.apply(s,i.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),Ee.syncFSRequests++,Ee.syncFSRequests>1&&R("warning: "+Ee.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var s=Ee.getMounts(Ee.root.mount),i=0;function r(e){return Ee.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,r(e));++i>=s.length&&r(null)}s.forEach((t=>{if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount:(e,t,s)=>{var i,r="/"===s,o=!s;if(r&&Ee.root)throw new Ee.ErrnoError(10);if(!r&&!o){var n=Ee.lookupPath(s,{follow_mount:!1});if(s=n.path,i=n.node,Ee.isMountpoint(i))throw new Ee.ErrnoError(10);if(!Ee.isDir(i.mode))throw new Ee.ErrnoError(54)}var a={type:e,opts:t,mountpoint:s,mounts:[]},l=e.mount(a);return l.mount=a,a.root=l,r?Ee.root=l:i&&(i.mounted=a,i.mount&&i.mount.mounts.push(a)),l},unmount:e=>{var t=Ee.lookupPath(e,{follow_mount:!1});if(!Ee.isMountpoint(t.node))throw new Ee.ErrnoError(28);var s=t.node,i=s.mounted,r=Ee.getMounts(i);Object.keys(Ee.nameTable).forEach((e=>{for(var t=Ee.nameTable[e];t;){var s=t.name_next;r.includes(t.mount)&&Ee.destroyNode(t),t=s}})),s.mounted=null;var o=s.mount.mounts.indexOf(i);s.mount.mounts.splice(o,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,s)=>{var i=Ee.lookupPath(e,{parent:!0}).node,r=Ae.basename(e);if(!r||"."===r||".."===r)throw new Ee.ErrnoError(28);var o=Ee.mayCreate(i,r);if(o)throw new Ee.ErrnoError(o);if(!i.node_ops.mknod)throw new Ee.ErrnoError(63);return i.node_ops.mknod(i,r,t,s)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,Ee.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,Ee.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var s=e.split("/"),i="",r=0;r(void 0===s&&(s=t,t=438),t|=8192,Ee.mknod(e,t,s)),symlink:(e,t)=>{if(!pe.resolve(e))throw new Ee.ErrnoError(44);var s=Ee.lookupPath(t,{parent:!0}).node;if(!s)throw new Ee.ErrnoError(44);var i=Ae.basename(t),r=Ee.mayCreate(s,i);if(r)throw new Ee.ErrnoError(r);if(!s.node_ops.symlink)throw new Ee.ErrnoError(63);return s.node_ops.symlink(s,i,e)},rename:(e,t)=>{var s,i,r=Ae.dirname(e),o=Ae.dirname(t),n=Ae.basename(e),a=Ae.basename(t);if(s=Ee.lookupPath(e,{parent:!0}).node,i=Ee.lookupPath(t,{parent:!0}).node,!s||!i)throw new Ee.ErrnoError(44);if(s.mount!==i.mount)throw new Ee.ErrnoError(75);var l,h=Ee.lookupNode(s,n),c=pe.relative(e,o);if("."!==c.charAt(0))throw new Ee.ErrnoError(28);if("."!==(c=pe.relative(t,r)).charAt(0))throw new Ee.ErrnoError(55);try{l=Ee.lookupNode(i,a)}catch(e){}if(h!==l){var u=Ee.isDir(h.mode),A=Ee.mayDelete(s,n,u);if(A)throw new Ee.ErrnoError(A);if(A=l?Ee.mayDelete(i,a,u):Ee.mayCreate(i,a))throw new Ee.ErrnoError(A);if(!s.node_ops.rename)throw new Ee.ErrnoError(63);if(Ee.isMountpoint(h)||l&&Ee.isMountpoint(l))throw new Ee.ErrnoError(10);if(i!==s&&(A=Ee.nodePermissions(s,"w")))throw new Ee.ErrnoError(A);Ee.hashRemoveNode(h);try{s.node_ops.rename(h,i,a)}catch(e){throw e}finally{Ee.hashAddNode(h)}}},rmdir:e=>{var t=Ee.lookupPath(e,{parent:!0}).node,s=Ae.basename(e),i=Ee.lookupNode(t,s),r=Ee.mayDelete(t,s,!0);if(r)throw new Ee.ErrnoError(r);if(!t.node_ops.rmdir)throw new Ee.ErrnoError(63);if(Ee.isMountpoint(i))throw new Ee.ErrnoError(10);t.node_ops.rmdir(t,s),Ee.destroyNode(i)},readdir:e=>{var t=Ee.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Ee.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=Ee.lookupPath(e,{parent:!0}).node;if(!t)throw new Ee.ErrnoError(44);var s=Ae.basename(e),i=Ee.lookupNode(t,s),r=Ee.mayDelete(t,s,!1);if(r)throw new Ee.ErrnoError(r);if(!t.node_ops.unlink)throw new Ee.ErrnoError(63);if(Ee.isMountpoint(i))throw new Ee.ErrnoError(10);t.node_ops.unlink(t,s),Ee.destroyNode(i)},readlink:e=>{var t=Ee.lookupPath(e).node;if(!t)throw new Ee.ErrnoError(44);if(!t.node_ops.readlink)throw new Ee.ErrnoError(28);return pe.resolve(Ee.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var s=Ee.lookupPath(e,{follow:!t}).node;if(!s)throw new Ee.ErrnoError(44);if(!s.node_ops.getattr)throw new Ee.ErrnoError(63);return s.node_ops.getattr(s)},lstat:e=>Ee.stat(e,!0),chmod:(e,t,s)=>{var i;if(!(i="string"==typeof e?Ee.lookupPath(e,{follow:!s}).node:e).node_ops.setattr)throw new Ee.ErrnoError(63);i.node_ops.setattr(i,{mode:4095&t|-4096&i.mode,timestamp:Date.now()})},lchmod:(e,t)=>{Ee.chmod(e,t,!0)},fchmod:(e,t)=>{var s=Ee.getStream(e);if(!s)throw new Ee.ErrnoError(8);Ee.chmod(s.node,t)},chown:(e,t,s,i)=>{var r;if(!(r="string"==typeof e?Ee.lookupPath(e,{follow:!i}).node:e).node_ops.setattr)throw new Ee.ErrnoError(63);r.node_ops.setattr(r,{timestamp:Date.now()})},lchown:(e,t,s)=>{Ee.chown(e,t,s,!0)},fchown:(e,t,s)=>{var i=Ee.getStream(e);if(!i)throw new Ee.ErrnoError(8);Ee.chown(i.node,t,s)},truncate:(e,t)=>{if(t<0)throw new Ee.ErrnoError(28);var s;if(!(s="string"==typeof e?Ee.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new Ee.ErrnoError(63);if(Ee.isDir(s.mode))throw new Ee.ErrnoError(31);if(!Ee.isFile(s.mode))throw new Ee.ErrnoError(28);var i=Ee.nodePermissions(s,"w");if(i)throw new Ee.ErrnoError(i);s.node_ops.setattr(s,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var s=Ee.getStream(e);if(!s)throw new Ee.ErrnoError(8);if(0==(2097155&s.flags))throw new Ee.ErrnoError(28);Ee.truncate(s.node,t)},utime:(e,t,s)=>{var i=Ee.lookupPath(e,{follow:!0}).node;i.node_ops.setattr(i,{timestamp:Math.max(t,s)})},open:(e,t,s)=>{if(""===e)throw new Ee.ErrnoError(44);var i;if(s=void 0===s?438:s,s=64&(t="string"==typeof t?Ee.modeStringToFlags(t):t)?4095&s|32768:0,"object"==typeof e)i=e;else{e=Ae.normalize(e);try{i=Ee.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var r=!1;if(64&t)if(i){if(128&t)throw new Ee.ErrnoError(20)}else i=Ee.mknod(e,s,0),r=!0;if(!i)throw new Ee.ErrnoError(44);if(Ee.isChrdev(i.mode)&&(t&=-513),65536&t&&!Ee.isDir(i.mode))throw new Ee.ErrnoError(54);if(!r){var o=Ee.mayOpen(i,t);if(o)throw new Ee.ErrnoError(o)}512&t&&!r&&Ee.truncate(i,0),t&=-131713;var n=Ee.createStream({node:i,path:Ee.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return n.stream_ops.open&&n.stream_ops.open(n),!u.logReadFiles||1&t||(Ee.readFiles||(Ee.readFiles={}),e in Ee.readFiles||(Ee.readFiles[e]=1)),n},close:e=>{if(Ee.isClosed(e))throw new Ee.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Ee.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,s)=>{if(Ee.isClosed(e))throw new Ee.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Ee.ErrnoError(70);if(0!=s&&1!=s&&2!=s)throw new Ee.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,s),e.ungotten=[],e.position},read:(e,t,s,i,r)=>{if(s>>>=0,i<0||r<0)throw new Ee.ErrnoError(28);if(Ee.isClosed(e))throw new Ee.ErrnoError(8);if(1==(2097155&e.flags))throw new Ee.ErrnoError(8);if(Ee.isDir(e.node.mode))throw new Ee.ErrnoError(31);if(!e.stream_ops.read)throw new Ee.ErrnoError(28);var o=void 0!==r;if(o){if(!e.seekable)throw new Ee.ErrnoError(70)}else r=e.position;var n=e.stream_ops.read(e,t,s,i,r);return o||(e.position+=n),n},write:(e,t,s,i,r,o)=>{if(s>>>=0,i<0||r<0)throw new Ee.ErrnoError(28);if(Ee.isClosed(e))throw new Ee.ErrnoError(8);if(0==(2097155&e.flags))throw new Ee.ErrnoError(8);if(Ee.isDir(e.node.mode))throw new Ee.ErrnoError(31);if(!e.stream_ops.write)throw new Ee.ErrnoError(28);e.seekable&&1024&e.flags&&Ee.llseek(e,0,2);var n=void 0!==r;if(n){if(!e.seekable)throw new Ee.ErrnoError(70)}else r=e.position;var a=e.stream_ops.write(e,t,s,i,r,o);return n||(e.position+=a),a},allocate:(e,t,s)=>{if(Ee.isClosed(e))throw new Ee.ErrnoError(8);if(t<0||s<=0)throw new Ee.ErrnoError(28);if(0==(2097155&e.flags))throw new Ee.ErrnoError(8);if(!Ee.isFile(e.node.mode)&&!Ee.isDir(e.node.mode))throw new Ee.ErrnoError(43);if(!e.stream_ops.allocate)throw new Ee.ErrnoError(138);e.stream_ops.allocate(e,t,s)},mmap:(e,t,s,i,r)=>{if(0!=(2&i)&&0==(2&r)&&2!=(2097155&e.flags))throw new Ee.ErrnoError(2);if(1==(2097155&e.flags))throw new Ee.ErrnoError(2);if(!e.stream_ops.mmap)throw new Ee.ErrnoError(43);return e.stream_ops.mmap(e,t,s,i,r)},msync:(e,t,s,i,r)=>(s>>>=0,e.stream_ops.msync?e.stream_ops.msync(e,t,s,i,r):0),munmap:e=>0,ioctl:(e,t,s)=>{if(!e.stream_ops.ioctl)throw new Ee.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,i=Ee.open(e,t.flags),r=Ee.stat(e).size,o=new Uint8Array(r);return Ee.read(i,o,0,r,0),"utf8"===t.encoding?s=V(o,0):"binary"===t.encoding&&(s=o),Ee.close(i),s},writeFile:(e,t,s={})=>{s.flags=s.flags||577;var i=Ee.open(e,s.flags,s.mode);if("string"==typeof t){var r=new Uint8Array(W(t)+1),o=Q(t,r,0,r.length);Ee.write(i,r,0,o,void 0,s.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Ee.write(i,t,0,t.byteLength,void 0,s.canOwn)}Ee.close(i)},cwd:()=>Ee.currentPath,chdir:e=>{var t=Ee.lookupPath(e,{follow:!0});if(null===t.node)throw new Ee.ErrnoError(44);if(!Ee.isDir(t.node.mode))throw new Ee.ErrnoError(54);var s=Ee.nodePermissions(t.node,"x");if(s)throw new Ee.ErrnoError(s);Ee.currentPath=t.path},createDefaultDirectories:()=>{Ee.mkdir("/tmp"),Ee.mkdir("/home"),Ee.mkdir("/home/web_user")},createDefaultDevices:()=>{Ee.mkdir("/dev"),Ee.registerDevice(Ee.makedev(1,3),{read:()=>0,write:(e,t,s,i,r)=>i}),Ee.mkdev("/dev/null",Ee.makedev(1,3)),fe.register(Ee.makedev(5,0),fe.default_tty_ops),fe.register(Ee.makedev(6,0),fe.default_tty1_ops),Ee.mkdev("/dev/tty",Ee.makedev(5,0)),Ee.mkdev("/dev/tty1",Ee.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()=>ae("randomDevice")}();Ee.createDevice("/dev","random",e),Ee.createDevice("/dev","urandom",e),Ee.mkdir("/dev/shm"),Ee.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{Ee.mkdir("/proc");var e=Ee.mkdir("/proc/self");Ee.mkdir("/proc/self/fd"),Ee.mount({mount:()=>{var t=Ee.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var s=+t,i=Ee.getStream(s);if(!i)throw new Ee.ErrnoError(8);var r={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>i.path}};return r.parent=r,r}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{u.stdin?Ee.createDevice("/dev","stdin",u.stdin):Ee.symlink("/dev/tty","/dev/stdin"),u.stdout?Ee.createDevice("/dev","stdout",null,u.stdout):Ee.symlink("/dev/tty","/dev/stdout"),u.stderr?Ee.createDevice("/dev","stderr",null,u.stderr):Ee.symlink("/dev/tty1","/dev/stderr"),Ee.open("/dev/stdin",0),Ee.open("/dev/stdout",1),Ee.open("/dev/stderr",1)},ensureErrnoError:()=>{Ee.ErrnoError||(Ee.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},Ee.ErrnoError.prototype=new Error,Ee.ErrnoError.prototype.constructor=Ee.ErrnoError,[44].forEach((e=>{Ee.genericErrors[e]=new Ee.ErrnoError(e),Ee.genericErrors[e].stack=""})))},staticInit:()=>{Ee.ensureErrnoError(),Ee.nameTable=new Array(4096),Ee.mount(ye,{},"/"),Ee.createDefaultDirectories(),Ee.createDefaultDevices(),Ee.createSpecialDirectories(),Ee.filesystems={MEMFS:ye}},init:(e,t,s)=>{Ee.init.initialized=!0,Ee.ensureErrnoError(),u.stdin=e||u.stdin,u.stdout=t||u.stdout,u.stderr=s||u.stderr,Ee.createStandardStreams()},quit:()=>{Ee.init.initialized=!1;for(var e=0;e{var s=0;return e&&(s|=365),t&&(s|=146),s},findObject:(e,t)=>{var s=Ee.analyzePath(e,t);return s.exists?s.object:null},analyzePath:(e,t)=>{try{e=(i=Ee.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 i=Ee.lookupPath(e,{parent:!0});s.parentExists=!0,s.parentPath=i.path,s.parentObject=i.node,s.name=Ae.basename(e),i=Ee.lookupPath(e,{follow:!t}),s.exists=!0,s.path=i.path,s.object=i.node,s.name=i.node.name,s.isRoot="/"===i.path}catch(e){s.error=e.errno}return s},createPath:(e,t,s,i)=>{e="string"==typeof e?e:Ee.getPath(e);for(var r=t.split("/").reverse();r.length;){var o=r.pop();if(o){var n=Ae.join2(e,o);try{Ee.mkdir(n)}catch(e){}e=n}}return n},createFile:(e,t,s,i,r)=>{var o=Ae.join2("string"==typeof e?e:Ee.getPath(e),t),n=Ee.getMode(i,r);return Ee.create(o,n)},createDataFile:(e,t,s,i,r,o)=>{var n=t;e&&(e="string"==typeof e?e:Ee.getPath(e),n=t?Ae.join2(e,t):e);var a=Ee.getMode(i,r),l=Ee.create(n,a);if(s){if("string"==typeof s){for(var h=new Array(s.length),c=0,u=s.length;c{var r=Ae.join2("string"==typeof e?e:Ee.getPath(e),t),o=Ee.getMode(!!s,!!i);Ee.createDevice.major||(Ee.createDevice.major=64);var n=Ee.makedev(Ee.createDevice.major++,0);return Ee.registerDevice(n,{open:e=>{e.seekable=!1},close:e=>{i&&i.buffer&&i.buffer.length&&i(10)},read:(e,t,i,r,o)=>{for(var n=0,a=0;a{for(var n=0;n{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=de(A(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new Ee.ErrnoError(29)}},createLazyFile:(e,s,i,r,o)=>{function n(){this.lengthKnown=!1,this.chunks=[]}if(n.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]}},n.prototype.setDataGetter=function(e){this.getter=e},n.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",i,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+i+". Status: "+e.status);var t,s=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,n=1048576;r||(n=s);var a=this;a.setDataGetter((e=>{var t=e*n,r=(e+1)*n-1;if(r=Math.min(r,s-1),void 0===a.chunks[e]&&(a.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 r=new XMLHttpRequest;if(r.open("GET",i,!1),s!==n&&r.setRequestHeader("Range","bytes="+e+"-"+t),r.responseType="arraybuffer",r.overrideMimeType&&r.overrideMimeType("text/plain; charset=x-user-defined"),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+i+". Status: "+r.status);return void 0!==r.response?new Uint8Array(r.response||[]):de(r.responseText||"",!0)})(t,r)),void 0===a.chunks[e])throw new Error("doXHR failed!");return a.chunks[e]})),!o&&s||(n=s=1,s=this.getter(0).length,n=s,b("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=s,this._chunkSize=n,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!g)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new n;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var l={isDevice:!1,contents:a}}else l={isDevice:!1,url:i};var h=Ee.createFile(e,s,l,r,o);l.contents?h.contents=l.contents:l.url&&(h.contents=null,h.url=l.url),Object.defineProperties(h,{usedBytes:{get:function(){return this.contents.length}}});var c={};function u(e,t,s,i,r){var o=e.node.contents;if(r>=o.length)return 0;var n=Math.min(o.length-r,i);if(o.slice)for(var a=0;a{var t=h.stream_ops[e];c[e]=function(){return Ee.forceLoadFile(h),t.apply(null,arguments)}})),c.read=(e,t,s,i,r)=>(Ee.forceLoadFile(h),u(e,t,s,i,r)),c.mmap=(e,s,i,r,o)=>{Ee.forceLoadFile(h);var n=me();if(!n)throw new Ee.ErrnoError(48);return u(e,t(),n,s,i),{ptr:n,allocated:!0}},h.stream_ops=c,h},createPreloadedFile:(e,t,s,i,r,o,n,a,l,h)=>{var c=t?pe.resolve(Ae.join2(e,t)):e;function u(s){function u(s){h&&h(),a||Ee.createDataFile(e,t,s,i,r,l),o&&o(),ne()}Browser.handledByPreloadPlugin(s,c,u,(()=>{n&&n(),ne()}))||u(s)}oe(),"string"==typeof s?function(e,t,s,i){var r=i?"":"al "+e;p(e,(s=>{S(s,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(s)),r&&ne()}),(t=>{if(!s)throw'Loading data file "'+e+'" failed.';s()})),r&&oe()}(s,(e=>u(e)),n):u(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 i=Ee.indexedDB();try{var r=i.open(Ee.DB_NAME(),Ee.DB_VERSION)}catch(e){return s(e)}r.onupgradeneeded=()=>{b("creating db"),r.result.createObjectStore(Ee.DB_STORE_NAME)},r.onsuccess=()=>{var i=r.result.transaction([Ee.DB_STORE_NAME],"readwrite"),o=i.objectStore(Ee.DB_STORE_NAME),n=0,a=0,l=e.length;function h(){0==a?t():s()}e.forEach((e=>{var t=o.put(Ee.analyzePath(e).object.contents,e);t.onsuccess=()=>{++n+a==l&&h()},t.onerror=()=>{a++,n+a==l&&h()}})),i.onerror=s},r.onerror=s},loadFilesFromDB:(e,t=(()=>{}),s=(()=>{}))=>{var i=Ee.indexedDB();try{var r=i.open(Ee.DB_NAME(),Ee.DB_VERSION)}catch(e){return s(e)}r.onupgradeneeded=s,r.onsuccess=()=>{var i=r.result;try{var o=i.transaction([Ee.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var n=o.objectStore(Ee.DB_STORE_NAME),a=0,l=0,h=e.length;function c(){0==l?t():s()}e.forEach((e=>{var t=n.get(e);t.onsuccess=()=>{Ee.analyzePath(e).exists&&Ee.unlink(e),Ee.createDataFile(Ae.dirname(e),Ae.basename(e),t.result,!0,!0,!0),++a+l==h&&c()},t.onerror=()=>{l++,a+l==h&&c()}})),o.onerror=s},r.onerror=s}},ge={DEFAULT_POLLMASK:5,calculateAt:function(e,t,s){if(Ae.isAbs(t))return t;var i;if(i=-100===e?Ee.cwd():ge.getStreamFromFD(e).path,0==t.length){if(!s)throw new Ee.ErrnoError(44);return i}return Ae.join2(i,t)},doStat:function(e,t,s){try{var i=e(t)}catch(e){if(e&&e.node&&Ae.normalize(t)!==Ae.normalize(Ee.getPath(e.node)))return-54;throw e}n()[s>>>2]=i.dev,n()[s+8>>>2]=i.ino,n()[s+12>>>2]=i.mode,a()[s+16>>>2]=i.nlink,n()[s+20>>>2]=i.uid,n()[s+24>>>2]=i.gid,n()[s+28>>>2]=i.rdev,se=[i.size>>>0,(te=i.size,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[s+40>>>2]=se[0],n()[s+44>>>2]=se[1],n()[s+48>>>2]=4096,n()[s+52>>>2]=i.blocks;var r=i.atime.getTime(),o=i.mtime.getTime(),l=i.ctime.getTime();return se=[Math.floor(r/1e3)>>>0,(te=Math.floor(r/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[s+56>>>2]=se[0],n()[s+60>>>2]=se[1],a()[s+64>>>2]=r%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)],n()[s+72>>>2]=se[0],n()[s+76>>>2]=se[1],a()[s+80>>>2]=o%1e3*1e3,se=[Math.floor(l/1e3)>>>0,(te=Math.floor(l/1e3),+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[s+88>>>2]=se[0],n()[s+92>>>2]=se[1],a()[s+96>>>2]=l%1e3*1e3,se=[i.ino>>>0,(te=i.ino,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[s+104>>>2]=se[0],n()[s+108>>>2]=se[1],0},doMsync:function(e,t,s,r,o){if(!Ee.isFile(t.node.mode))throw new Ee.ErrnoError(43);if(2&r)return 0;e>>>=0;var n=i().slice(e,e+s);Ee.msync(t,n,o,s,r)},varargs:void 0,get:function(){return ge.varargs+=4,n()[ge.varargs-4>>>2]},getStr:function(e){return j(e)},getStreamFromFD:function(e){var t=Ee.getStream(e);if(!t)throw new Ee.ErrnoError(8);return t}};function ve(e){if(I)return ls(1,1,e);O=e,J()||(_e.terminateAllThreads(),u.onExit&&u.onExit(e),x=!0),y(e,new ce(e))}var Ie=function(e,t){if(O=e,!t&&I)throw Pe(e),"unwind";ve(e)},_e={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){I?_e.initWorker():_e.initMainThread()},initMainThread:function(){for(var e=navigator.hardwareConcurrency;e--;)_e.allocateUnusedWorker()},initWorker:function(){N=!1},setExitStatus:function(e){O=e},terminateAllThreads:function(){for(var e of Object.values(_e.pthreads))_e.returnWorkerToPool(e);for(var e of _e.unusedWorkers)e.terminate();_e.unusedWorkers=[]},returnWorkerToPool:function(e){var t=e.pthread_ptr;delete _e.pthreads[t],_e.unusedWorkers.push(e),_e.runningWorkers.splice(_e.runningWorkers.indexOf(e),1),e.pthread_ptr=0,Bs(t)},receiveObjectTransfer:function(e){},threadInitTLS:function(){_e.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:e=>new Promise((t=>{e.onmessage=s=>{var i,r=s.data,o=r.cmd;if(e.pthread_ptr&&(_e.currentProxiedOperationCallerThread=e.pthread_ptr),r.targetThread&&r.targetThread!=Ns()){var n=_e.pthreads[r.targetThread];return n?n.postMessage(r,r.transferList):R('Internal error! Worker sent a message "'+o+'" to target pthread '+r.targetThread+", but that thread no longer exists!"),void(_e.currentProxiedOperationCallerThread=void 0)}"processProxyingQueue"===o?ts(r.queue):"spawnThread"===o?function(e){var t=_e.getNewWorker();if(!t)return 6;_e.runningWorkers.push(t),_e.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)}(r):"cleanupThread"===o?ue(r.thread):"killThread"===o?function(e){var t=_e.pthreads[e];delete _e.pthreads[e],t.terminate(),Bs(e),_e.runningWorkers.splice(_e.runningWorkers.indexOf(t),1),t.pthread_ptr=0}(r.thread):"cancelThread"===o?(i=r.thread,_e.pthreads[i].postMessage({cmd:"cancel"})):"loaded"===o?(e.loaded=!0,t(e)):"print"===o?b("Thread "+r.threadId+": "+r.text):"printErr"===o?R("Thread "+r.threadId+": "+r.text):"alert"===o?alert("Thread "+r.threadId+": "+r.text):"setimmediate"===r.target?e.postMessage(r):"callHandler"===o?u[r.handler](...r.args):o&&R("worker sent an unknown command "+o),_e.currentProxiedOperationCallerThread=void 0},e.onerror=e=>{throw R("worker sent an error! "+e.filename+":"+e.lineno+": "+e.message),e};var i=[];for(var r of["onExit","onAbort","print","printErr"])u.hasOwnProperty(r)&&i.push(r);e.postMessage({cmd:"load",handlers:i,urlOrBlob:u.mainScriptUrlOrBlob||s,wasmMemory:D,wasmModule:C})})),loadWasmModuleToAllWorkers:function(e){if(I)return e();Promise.all(_e.unusedWorkers.map(_e.loadWasmModuleToWorker)).then(e)},allocateUnusedWorker:function(){var e,t=T("web-ifc-mt.worker.js");e=new Worker(t),_e.unusedWorkers.push(e)},getNewWorker:function(){return 0==_e.unusedWorkers.length&&(_e.allocateUnusedWorker(),_e.loadWasmModuleToWorker(_e.unusedWorkers[0])),_e.unusedWorkers.pop()}};function Te(e){for(;e.length>0;)e.shift()(u)}function Pe(e){if(I)return ls(2,0,e);try{Ie(e)}catch(e){!function(e){if(e instanceof ce||"unwind"==e)return O;y(1,e)}(e)}}u.PThread=_e,u.establishStackSpace=function(){var e=Ns(),t=n()[e+52>>>2],s=n()[e+56>>>2];Us(t,t-s),Gs(t)};var be=[];function Re(e){var t=be[e];return t||(e>=be.length&&(be.length=e+1),be[e]=t=K.get(e)),t}function De(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){a()[this.ptr+4>>>2]=e},this.get_type=function(){return a()[this.ptr+4>>>2]},this.set_destructor=function(e){a()[this.ptr+8>>>2]=e},this.get_destructor=function(){return a()[this.ptr+8>>>2]},this.set_refcount=function(e){n()[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(n(),this.ptr+0>>2,1)},this.release_ref=function(){return 1===Atomics.sub(n(),this.ptr+0>>2,1)},this.set_adjusted_ptr=function(e){a()[this.ptr+16>>>2]=e},this.get_adjusted_ptr=function(){return a()[this.ptr+16>>>2]},this.get_exception_ptr=function(){if(Vs(this.get_type()))return a()[this.excPtr>>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}u.invokeEntryPoint=function(e,t){var s=Re(e)(t);J()?_e.setExitStatus(s):Fs(s)};var Ce="To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking",Ne={};function Oe(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function xe(e){return this.fromWireType(n()[e>>>2])}var Se={},we={},Me={};function Be(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 Fe(e,t){return e=Be(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Le(e,t){var s=Fe(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 Ue=void 0;function He(e){throw new Ue(e)}function Ge(e,t,s){function i(t){var i=s(t);i.length!==e.length&&He("Mismatched type converter count");for(var r=0;r{we.hasOwnProperty(e)?r[t]=we[e]:(o.push(e),Se.hasOwnProperty(e)||(Se[e]=[]),Se[e].push((()=>{r[t]=we[e],++n===o.length&&i(r)})))})),0===o.length&&i(r)}var ke={};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 je=void 0;function Qe(e){for(var t="",s=e;i()[s>>>0];)t+=je[i()[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 i=t.name;if(e||ze('type "'+i+'" must have a positive integer typeid pointer'),we.hasOwnProperty(e)){if(s.ignoreDuplicateRegistrations)return;ze("Cannot register type '"+i+"' twice")}if(we[e]=t,delete Me[e],Se.hasOwnProperty(e)){var r=Se[e];delete Se[e],r.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,i=e.$$.ptrType.registeredClass,r=e.$$.ptr;t.baseClass;)s=t.upcast(s),t=t.baseClass;for(;i.baseClass;)r=i.upcast(r),i=i.baseClass;return t===i&&s===r}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 Ze(e){ze(e.$$.ptrType.registeredClass.name+" instance already deleted")}var qe=!1;function Je(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 i=et(e,t,s.baseClass);return null===i?null:s.downcast(i)}var tt={};function st(){return Object.keys(lt).length}function it(){var e=[];for(var t in lt)lt.hasOwnProperty(t)&&e.push(lt[t]);return e}var rt=[];function ot(){for(;rt.length;){var e=rt.pop();e.$$.deleteScheduled=!1,e.delete()}}var nt=void 0;function at(e){nt=e,rt.length&&nt&&nt(ot)}var lt={};function ht(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),lt[t]}function ct(e,t){return t.ptrType&&t.ptr||He("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&He("Both smartPtrType and smartPtr must be specified"),t.count={value:1},At(Object.create(e,{$$:{value:t}}))}function ut(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var s=ht(this.registeredClass,t);if(void 0!==s){if(0===s.$$.count.value)return s.$$.ptr=t,s.$$.smartPtr=e,s.clone();var i=s.clone();return this.destructor(e),i}function r(){return this.isSmartPointer?ct(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):ct(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var o,n=this.registeredClass.getActualType(t),a=tt[n];if(!a)return r.call(this);o=this.isConst?a.constPointerType:a.pointerType;var l=et(t,this.registeredClass,o.registeredClass);return null===l?r.call(this):this.isSmartPointer?ct(o.registeredClass.instancePrototype,{ptrType:o,ptr:l,smartPtrType:this,smartPtr:e}):ct(o.registeredClass.instancePrototype,{ptrType:o,ptr:l})}function At(e){return"undefined"==typeof FinalizationRegistry?(At=e=>e,e):(qe=new FinalizationRegistry((e=>{$e(e.$$)})),Je=e=>qe.unregister(e),(At=e=>{var t=e.$$;if(t.smartPtr){var s={$$:t};qe.register(e,s,e)}return e})(e))}function pt(){if(this.$$.ptr||Ze(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=At(Object.create(Object.getPrototypeOf(this),{$$:{value:Xe(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function dt(){this.$$.ptr||Ze(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ze("Object already scheduled for deletion"),Je(this),$e(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ft(){return!this.$$.ptr}function mt(){return this.$$.ptr||Ze(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ze("Object already scheduled for deletion"),rt.push(this),1===rt.length&&nt&&nt(ot),this.$$.deleteScheduled=!0,this}function yt(){}function Et(e,t,s){if(void 0===e[t].overloadTable){var i=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[i.argCount]=i}}function gt(e,t,s){u.hasOwnProperty(e)?((void 0===s||void 0!==u[e].overloadTable&&void 0!==u[e].overloadTable[s])&&ze("Cannot register public name '"+e+"' twice"),Et(u,e,e),u.hasOwnProperty(s)&&ze("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),u[e].overloadTable[s]=t):(u[e]=t,void 0!==s&&(u[e].numArguments=s))}function vt(e,t,s,i,r,o,n,a){this.name=e,this.constructor=t,this.instancePrototype=s,this.rawDestructor=i,this.baseClass=r,this.getActualType=o,this.upcast=n,this.downcast=a,this.pureVirtualFunctions=[]}function It(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 _t(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 It(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 i=t.$$.ptrType.registeredClass;if(s=It(t.$$.ptr,i,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 r=t.clone();s=this.rawShare(s,Vt.toHandle((function(){r.delete()}))),null!==e&&e.push(this.rawDestructor,s)}break;default:ze("Unsupporting sharing policy")}return s}function Pt(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 It(t.$$.ptr,s,this.registeredClass)}function bt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Rt(e){this.rawDestructor&&this.rawDestructor(e)}function Dt(e){null!==e&&e.delete()}function Ct(e,t,s,i,r,o,n,a,l,h,c){this.name=e,this.registeredClass=t,this.isReference=s,this.isConst=i,this.isSmartPointer=r,this.pointeeType=o,this.sharingPolicy=n,this.rawGetPointee=a,this.rawConstructor=l,this.rawShare=h,this.rawDestructor=c,r||void 0!==t.baseClass?this.toWireType=Tt:i?(this.toWireType=_t,this.destructorFunction=null):(this.toWireType=Pt,this.destructorFunction=null)}function Nt(e,t,s){u.hasOwnProperty(e)||He("Replacing nonexistant public symbol"),void 0!==u[e].overloadTable&&void 0!==s?u[e].overloadTable[s]=t:(u[e]=t,u[e].argCount=s)}function Ot(e,t,s){return e.includes("j")?function(e,t,s){var i=u["dynCall_"+e];return s&&s.length?i.apply(null,[t].concat(s)):i.call(null,t)}(e,t,s):Re(t).apply(null,s)}function xt(e,t){var s,i,r,o=(e=Qe(e)).includes("j")?(s=e,i=t,r=[],function(){return r.length=0,Object.assign(r,arguments),Ot(s,i,r)}):Re(t);return"function"!=typeof o&&ze("unknown function pointer with signature "+e+": "+t),o}var St=void 0;function wt(e){var t=Os(e),s=Qe(t);return Ls(t),s}function Mt(e,t){var s=[],i={};throw t.forEach((function e(t){i[t]||we[t]||(Me[t]?Me[t].forEach(e):(s.push(t),i[t]=!0))})),new St(e+": "+s.map(wt).join([", "]))}function Bt(e,t){for(var s=[],i=0;i>>2]);return s}function Ft(e,t,s,i,r){var o=t.length;o<2&&ze("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var n=null!==t[1]&&null!==s,a=!1,l=1;l0?", ":"")+u),A+=(h?"var rv = ":"")+"invoker(fn"+(u.length>0?", ":"")+u+");\n",a)A+="runDestructors(destructors);\n";else for(l=n?1:2;l4&&0==--Ut[e].refcount&&(Ut[e]=void 0,Lt.push(e))}function Gt(){for(var e=0,t=5;t(e||ze("Cannot use deleted val. handle = "+e),Ut[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=Lt.length?Lt.pop():Ut.length;return Ut[t]={refcount:1,value:e},t}}};function jt(e,s,l){switch(s){case 0:return function(e){var s=l?t():i();return this.fromWireType(s[e>>>0])};case 1:return function(e){var t=l?r():o();return this.fromWireType(t[e>>>1])};case 2:return function(e){var t=l?n():a();return this.fromWireType(t[e>>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function Qt(e,t){var s=we[e];return void 0===s&&ze(t+" has unknown type "+wt(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((D.buffer!=w.buffer&&z(),H)[e>>>2])};case 3:return function(e){return this.fromWireType(l()[e>>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Kt(e,s,l){switch(s){case 0:return l?function(e){return t()[e>>>0]}:function(e){return i()[e>>>0]};case 1:return l?function(e){return r()[e>>>1]}:function(e){return o()[e>>>1]};case 2:return l?function(e){return n()[e>>>2]}:function(e){return a()[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,n=s>>1,a=n+t/2;!(n>=a)&&o()[n>>>0];)++n;if((s=n<<1)-e>32&&Yt)return Yt.decode(i().slice(e,s));for(var l="",h=0;!(h>=t/2);++h){var c=r()[e+2*h>>>1];if(0==c)break;l+=String.fromCharCode(c)}return l}function Zt(e,t,s){if(void 0===s&&(s=2147483647),s<2)return 0;for(var i=t,o=(s-=2)<2*e.length?s/2:e.length,n=0;n>>1]=a,t+=2}return r()[t>>>1]=0,t-i}function qt(e){return 2*e.length}function Jt(e,t){for(var s=0,i="";!(s>=t/4);){var r=n()[e+4*s>>>2];if(0==r)break;if(++s,r>=65536){var o=r-65536;i+=String.fromCharCode(55296|o>>10,56320|1023&o)}else i+=String.fromCharCode(r)}return i}function $t(e,t,s){if(void 0===s&&(s=2147483647),s<4)return 0;for(var i=t>>>=0,r=i+s-4,o=0;o=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++o)),n()[t>>>2]=a,(t+=4)+4>r)break}return n()[t>>>2]=0,t-i}function es(e){for(var t=0,s=0;s=55296&&i<=57343&&++s,t+=4}return t}function ts(e){Atomics.store(n(),e>>2,1),Ns()&&Ms(e),Atomics.compareExchange(n(),e>>2,1,0)}u.executeNotifiedProxyingQueue=ts;var ss,is={};function rs(e){var t=is[e];return void 0===t?Qe(e):t}function os(){return"object"==typeof globalThis?globalThis:Function("return this")()}function ns(e){ns.shown||(ns.shown={}),ns.shown[e]||(ns.shown[e]=1,R(e))}function as(e){var t=Hs(),s=e();return Gs(t),s}function ls(e,t){var s=arguments.length-2,i=arguments;return as((()=>{for(var r=s,o=ks(8*r),n=o>>3,a=0;a>>0]=h}return ws(e,r,o,t)}))}ss=()=>performance.timeOrigin+performance.now();var hs=[];function cs(e){var t=D.buffer;try{return D.grow(e-t.byteLength+65535>>>16),z(),1}catch(e){}}var us={};function As(){if(!As.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",_:m||"./this.program"};for(var t in us)void 0===us[t]?delete e[t]:e[t]=us[t];var s=[];for(var t in e)s.push(t+"="+e[t]);As.strings=s}return As.strings}function ps(e,s){if(I)return ls(3,1,e,s);var i=0;return As().forEach((function(r,o){var n=s+i;a()[e+4*o>>>2]=n,function(e,s,i){for(var r=0;r>>0]=e.charCodeAt(r);i||(t()[s>>>0]=0)}(r,n),i+=r.length+1})),0}function ds(e,t){if(I)return ls(4,1,e,t);var s=As();a()[e>>>2]=s.length;var i=0;return s.forEach((function(e){i+=e.length+1})),a()[t>>>2]=i,0}function fs(e){if(I)return ls(5,1,e);try{var t=ge.getStreamFromFD(e);return Ee.close(t),0}catch(e){if(void 0===Ee||!(e instanceof Ee.ErrnoError))throw e;return e.errno}}function ms(e,s,i,r){if(I)return ls(6,1,e,s,i,r);try{var o=function(e,s,i,r){for(var o=0,n=0;n>>2],h=a()[s+4>>>2];s+=8;var c=Ee.read(e,t(),l,h,r);if(c<0)return-1;if(o+=c,c>>2]=o,0}catch(e){if(void 0===Ee||!(e instanceof Ee.ErrnoError))throw e;return e.errno}}function ys(e,t,s,i,r){if(I)return ls(7,1,e,t,s,i,r);try{var o=(h=s)+2097152>>>0<4194305-!!(l=t)?(l>>>0)+4294967296*h:NaN;if(isNaN(o))return 61;var a=ge.getStreamFromFD(e);return Ee.llseek(a,o,i),se=[a.position>>>0,(te=a.position,+Math.abs(te)>=1?te>0?(0|Math.min(+Math.floor(te/4294967296),4294967295))>>>0:~~+Math.ceil((te-+(~~te>>>0))/4294967296)>>>0:0)],n()[r>>>2]=se[0],n()[r+4>>>2]=se[1],a.getdents&&0===o&&0===i&&(a.getdents=null),0}catch(e){if(void 0===Ee||!(e instanceof Ee.ErrnoError))throw e;return e.errno}var l,h}function Es(e,s,i,r){if(I)return ls(8,1,e,s,i,r);try{var o=function(e,s,i,r){for(var o=0,n=0;n>>2],h=a()[s+4>>>2];s+=8;var c=Ee.write(e,t(),l,h,r);if(c<0)return-1;o+=c,void 0!==r&&(r+=c)}return o}(ge.getStreamFromFD(e),s,i);return a()[r>>>2]=o,0}catch(e){if(void 0===Ee||!(e instanceof Ee.ErrnoError))throw e;return e.errno}}function gs(e){return e%4==0&&(e%100!=0||e%400==0)}var vs=[31,29,31,30,31,30,31,31,30,31,30,31],Is=[31,28,31,30,31,30,31,31,30,31,30,31];function _s(e,s,i,r){var o=n()[r+40>>>2],a={tm_sec:n()[r>>>2],tm_min:n()[r+4>>>2],tm_hour:n()[r+8>>>2],tm_mday:n()[r+12>>>2],tm_mon:n()[r+16>>>2],tm_year:n()[r+20>>>2],tm_wday:n()[r+24>>>2],tm_yday:n()[r+28>>>2],tm_isdst:n()[r+32>>>2],tm_gmtoff:n()[r+36>>>2],tm_zone:o?j(o):""},l=j(i),h={"%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 c in h)l=l.replace(new RegExp(c,"g"),h[c]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],A=["January","February","March","April","May","June","July","August","September","October","November","December"];function p(e,t,s){for(var i="number"==typeof e?e.toString():e||"";i.length0?1:0}var i;return 0===(i=s(e.getFullYear()-t.getFullYear()))&&0===(i=s(e.getMonth()-t.getMonth()))&&(i=s(e.getDate()-t.getDate())),i}function m(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 i=gs(s.getFullYear()),r=s.getMonth(),o=(i?vs:Is)[r];if(!(t>o-s.getDate()))return s.setDate(s.getDate()+t),s;t-=o-s.getDate()+1,s.setDate(1),r<11?s.setMonth(r+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),i=new Date(t.getFullYear()+1,0,4),r=m(s),o=m(i);return f(r,t)<=0?f(o,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var E={"%a":function(e){return u[e.tm_wday].substring(0,3)},"%A":function(e){return u[e.tm_wday]},"%b":function(e){return A[e.tm_mon].substring(0,3)},"%B":function(e){return A[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 p(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,i=0;i<=t;s+=e[i++]);return s}(gs(e.tm_year+1900)?vs:Is,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&&gs(e.tm_year)||(t=1)}}else{t=52;var i=(e.tm_wday+7-e.tm_yday-1)%7;(4==i||5==i&&gs(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 c in l=l.replace(/%%/g,"\0\0"),E)l.includes(c)&&(l=l.replace(new RegExp(c,"g"),E[c](a)));var g,v,I=de(l=l.replace(/\0\0/g,"%"),!1);return I.length>s?0:(g=I,v=e,t().set(g,v>>>0),I.length-1)}_e.init();var Ts=function(e,t,s,i){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Ee.nextInode++,this.name=t,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=i},Ps=365,bs=146;Object.defineProperties(Ts.prototype,{read:{get:function(){return(this.mode&Ps)===Ps},set:function(e){e?this.mode|=Ps:this.mode&=-366}},write:{get:function(){return(this.mode&bs)===bs},set:function(e){e?this.mode|=bs:this.mode&=-147}},isFolder:{get:function(){return Ee.isDir(this.mode)}},isDevice:{get:function(){return Ee.isChrdev(this.mode)}}}),Ee.FSNode=Ts,Ee.staticInit(),Ue=u.InternalError=Le(Error,"InternalError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);je=e}(),We=u.BindingError=Le(Error,"BindingError"),yt.prototype.isAliasOf=Ye,yt.prototype.clone=pt,yt.prototype.delete=dt,yt.prototype.isDeleted=ft,yt.prototype.deleteLater=mt,u.getInheritedInstanceCount=st,u.getLiveInheritedInstances=it,u.flushPendingDeletes=ot,u.setDelayFunction=at,Ct.prototype.getPointee=bt,Ct.prototype.destructor=Rt,Ct.prototype.argPackAdvance=8,Ct.prototype.readValueFromPointer=xe,Ct.prototype.deleteObject=Dt,Ct.prototype.fromWireType=ut,St=u.UnboundTypeError=Le(Error,"UnboundTypeError"),u.count_emval_handles=Gt,u.get_first_emval=kt;var Rs=[null,ve,Pe,ps,ds,fs,ms,ys,Es],Ds={g:function(e,t,s){throw new De(e).init(t,s),e},T:function(e){xs(e,!g,1,!E),_e.threadInitTLS()},J:function(e){I?postMessage({cmd:"cleanupThread",thread:e}):ue(e)},X:function(e){},_:function(e){ae(Ce)},Z:function(e,t){ae(Ce)},da:function(e){var t=Ne[e];delete Ne[e];var s=t.elements,i=s.length,r=s.map((function(e){return e.getterReturnType})).concat(s.map((function(e){return e.setterArgumentType}))),o=t.rawConstructor,n=t.rawDestructor;Ge([e],r,(function(e){return s.forEach(((t,s)=>{var r=e[s],o=t.getter,n=t.getterContext,a=e[s+i],l=t.setter,h=t.setterContext;t.read=e=>r.fromWireType(o(n,e)),t.write=(e,t)=>{var s=[];l(h,e,a.toWireType(s,t)),Oe(s)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(i),r=0;r>>l])},destructorFunction:null})},p:function(e,t,s,i,r,o,n,a,l,h,c,u,A){c=Qe(c),o=xt(r,o),a&&(a=xt(n,a)),h&&(h=xt(l,h)),A=xt(u,A);var p=Be(c);gt(p,(function(){Mt("Cannot construct "+c+" due to unbound types",[i])})),Ge([e,t,s],i?[i]:[],(function(t){var s,r;t=t[0],r=i?(s=t.registeredClass).instancePrototype:yt.prototype;var n=Fe(p,(function(){if(Object.getPrototypeOf(this)!==l)throw new We("Use 'new' to construct "+c);if(void 0===u.constructor_body)throw new We(c+" has no accessible constructor");var e=u.constructor_body[arguments.length];if(void 0===e)throw new We("Tried to invoke ctor of "+c+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(u.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),l=Object.create(r,{constructor:{value:n}});n.prototype=l;var u=new vt(c,n,l,A,s,o,a,h),d=new Ct(c,u,!0,!1,!1),f=new Ct(c+"*",u,!1,!1,!1),m=new Ct(c+" const*",u,!1,!0,!1);return tt[e]={pointerType:f,constPointerType:m},Nt(p,n),[d,f,m]}))},o:function(e,t,s,i,r,o){S(t>0);var n=Bt(t,s);r=xt(i,r),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]=()=>{Mt("Cannot construct "+e.name+" due to unbound types",n)},Ge([],n,(function(i){return i.splice(1,0,null),e.registeredClass.constructor_body[t-1]=Ft(s,i,null,r,o),[]})),[]}))},c:function(e,t,s,i,r,o,n,a){var l=Bt(s,i);t=Qe(t),o=xt(r,o),Ge([],[e],(function(e){var i=(e=e[0]).name+"."+t;function r(){Mt("Cannot call "+i+" due to unbound types",l)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),a&&e.registeredClass.pureVirtualFunctions.push(t);var h=e.registeredClass.instancePrototype,c=h[t];return void 0===c||void 0===c.overloadTable&&c.className!==e.name&&c.argCount===s-2?(r.argCount=s-2,r.className=e.name,h[t]=r):(Et(h,t,i),h[t].overloadTable[s-2]=r),Ge([],l,(function(r){var a=Ft(i,r,e,o,n);return void 0===h[t].overloadTable?(a.argCount=s-2,h[t]=a):h[t].overloadTable[s-2]=a,[]})),[]}))},aa:function(e,t){Ke(e,{name:t=Qe(t),fromWireType:function(e){var t=Vt.toValue(e);return Ht(e),t},toWireType:function(e,t){return Vt.toHandle(t)},argPackAdvance:8,readValueFromPointer:xe,destructorFunction:null})},D:function(e,t,s,i){var r=Ve(s);function o(){}t=Qe(t),o.values={},Ke(e,{name:t,constructor:o,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:jt(t,r,i),destructorFunction:null}),gt(t,o)},t:function(e,t,s){var i=Qt(e,"enum");t=Qe(t);var r=i.constructor,o=Object.create(i.constructor.prototype,{value:{value:s},constructor:{value:Fe(i.name+"_"+t,(function(){}))}});r.values[s]=o,r[t]=o},B:function(e,t,s){var i=Ve(s);Ke(e,{name:t=Qe(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:zt(t,i),destructorFunction:null})},d:function(e,t,s,i,r,o){var n=Bt(t,s);e=Qe(e),r=xt(i,r),gt(e,(function(){Mt("Cannot call "+e+" due to unbound types",n)}),t-1),Ge([],n,(function(s){var i=[s[0],null].concat(s.slice(1));return Nt(e,Ft(e,i,null,r,o),t-1),[]}))},s:function(e,t,s,i,r){t=Qe(t);var o=Ve(s),n=e=>e;if(0===i){var a=32-8*s;n=e=>e<>>a}var l=t.includes("unsigned");Ke(e,{name:t,fromWireType:n,toWireType:l?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:Kt(t,o,0!==i),destructorFunction:null})},i:function(e,t,s){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function r(e){e>>=2;var t=a(),s=t[e>>>0],r=t[e+1>>>0];return new i(t.buffer,r,s)}Ke(e,{name:s=Qe(s),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{ignoreDuplicateRegistrations:!0})},C:function(e,t){var s="std::string"===(t=Qe(t));Ke(e,{name:t,fromWireType:function(e){var t,r=a()[e>>>2],o=e+4;if(s)for(var n=o,l=0;l<=r;++l){var h=o+l;if(l==r||0==i()[h>>>0]){var c=j(n,h-n);void 0===t?t=c:(t+=String.fromCharCode(0),t+=c),n=h+1}}else{var u=new Array(r);for(l=0;l>>0]);t=u.join("")}return Ls(e),t},toWireType:function(e,t){var r;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var o="string"==typeof t;o||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||ze("Cannot pass non-string to std::string"),r=s&&o?W(t):t.length;var n,l,h=Cs(4+r+1),c=h+4;if(c>>>=0,a()[h>>>2]=r,s&&o)n=c,l=r+1,Q(t,i(),n,l);else if(o)for(var u=0;u255&&(Ls(c),ze("String has UTF-16 code units that do not fit in 8 bits")),i()[c+u>>>0]=A}else for(u=0;u>>0]=t[u];return null!==e&&e.push(Ls,h),h},argPackAdvance:8,readValueFromPointer:xe,destructorFunction:function(e){Ls(e)}})},x:function(e,t,s){var i,r,n,l,h;s=Qe(s),2===t?(i=Xt,r=Zt,l=qt,n=()=>o(),h=1):4===t&&(i=Jt,r=$t,l=es,n=()=>a(),h=2),Ke(e,{name:s,fromWireType:function(e){for(var s,r=a()[e>>>2],o=n(),l=e+4,c=0;c<=r;++c){var u=e+4+c*t;if(c==r||0==o[u>>>h]){var A=i(l,u-l);void 0===s?s=A:(s+=String.fromCharCode(0),s+=A),l=u+t}}return Ls(e),s},toWireType:function(e,i){"string"!=typeof i&&ze("Cannot pass non-string to C++ string type "+s);var o=l(i),n=Cs(4+o+t);return n>>>=0,a()[n>>>2]=o>>h,r(i,n+4,o+t),null!==e&&e.push(Ls,n),n},argPackAdvance:8,readValueFromPointer:xe,destructorFunction:function(e){Ls(e)}})},ea:function(e,t,s,i,r,o){Ne[e]={name:Qe(t),rawConstructor:xt(s,i),rawDestructor:xt(r,o),elements:[]}},j:function(e,t,s,i,r,o,n,a,l){Ne[e].elements.push({getterReturnType:t,getter:xt(s,i),getterContext:r,setterArgumentType:o,setter:xt(n,a),setterContext:l})},r:function(e,t,s,i,r,o){ke[e]={name:Qe(t),rawConstructor:xt(s,i),rawDestructor:xt(r,o),fields:[]}},f:function(e,t,s,i,r,o,n,a,l,h){ke[e].fields.push({fieldName:Qe(t),getterReturnType:s,getter:xt(i,r),getterContext:o,setterArgumentType:n,setter:xt(a,l),setterContext:h})},ca:function(e,t){Ke(e,{isVoid:!0,name:t=Qe(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},Y:function(e){R(j(e))},V:function(e,t,s,i){if(e==t)setTimeout((()=>ts(i)));else if(I)postMessage({targetThread:e,cmd:"processProxyingQueue",queue:i});else{var r=_e.pthreads[e];if(!r)return;r.postMessage({cmd:"processProxyingQueue",queue:i})}return 1},S:function(e,t,s){return-1},n:function(e,t,s){e=Vt.toValue(e),t=Qt(t,"emval::as");var i=[],r=Vt.toHandle(i);return a()[s>>>2]=r,t.toWireType(i,e)},z:function(e,t,s,i){e=Vt.toValue(e);for(var r=function(e,t){for(var s=new Array(e),i=0;i>>2],"parameter "+i);return s}(t,s),o=new Array(t),n=0;n4&&(Ut[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(rs(e))},w:function(){return Vt.toHandle({})},m:function(e){Oe(Vt.toValue(e)),Ht(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(){ae("")},U:function(){g||ns("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){i().copyWithin(e>>>0,t>>>0,t+s>>>0)},R:function(e,t,s){hs.length=t;for(var i=s>>3,r=0;r>>0];return Rs[e].apply(null,hs)},P:function(e){var t=i().length;if((e>>>=0)<=t)return!1;var s,r,o=4294901760;if(e>o)return!1;for(var n=1;n<=4;n*=2){var a=t*(1+.2/n);if(a=Math.min(a,e+100663296),cs(Math.min(o,(s=Math.max(e,a))+((r=65536)-s%r)%r)))return!0}return!1},$:function(){throw"unwind"},L:ps,M:ds,I:Ie,N:fs,O:ms,G:ys,Q:Es,a:D||u.wasmMemory,K:function(e,t,s,i,r){return _s(e,t,s,i)}};!function(){var e={a:Ds};function t(e,t){var s,i,r=e.exports;u.asm=r,s=u.asm.ka,_e.tlsInitFunctions.push(s),K=u.asm.ia,i=u.asm.ha,Z.unshift(i),C=t,_e.loadWasmModuleToAllWorkers((()=>ne()))}function s(e){t(e.instance,e.module)}function i(t){return(P||!E&&!g||"function"!=typeof fetch?Promise.resolve().then((function(){return he(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 he(ee)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){R("failed to asynchronously prepare wasm: "+e),ae(e)}))}if(oe(),u.instantiateWasm)try{return u.instantiateWasm(e,t)}catch(e){R("Module.instantiateWasm callback failed with error: "+e),c(e)}(P||"function"!=typeof WebAssembly.instantiateStreaming||le(ee)||"function"!=typeof fetch?i(s):fetch(ee,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(s,(function(e){return R("wasm streaming compile failed: "+e),R("falling back to ArrayBuffer instantiation"),i(s)}))}))).catch(c)}();var Cs=function(){return(Cs=u.asm.ja).apply(null,arguments)};u.__emscripten_tls_init=function(){return(u.__emscripten_tls_init=u.asm.ka).apply(null,arguments)};var Ns=u._pthread_self=function(){return(Ns=u._pthread_self=u.asm.la).apply(null,arguments)},Os=u.___getTypeName=function(){return(Os=u.___getTypeName=u.asm.ma).apply(null,arguments)};u.__embind_initialize_bindings=function(){return(u.__embind_initialize_bindings=u.asm.na).apply(null,arguments)};var xs=u.__emscripten_thread_init=function(){return(xs=u.__emscripten_thread_init=u.asm.oa).apply(null,arguments)};u.__emscripten_thread_crashed=function(){return(u.__emscripten_thread_crashed=u.asm.pa).apply(null,arguments)};var Ss,ws=function(){return(ws=u.asm.qa).apply(null,arguments)},Ms=u.__emscripten_proxy_execute_task_queue=function(){return(Ms=u.__emscripten_proxy_execute_task_queue=u.asm.ra).apply(null,arguments)},Bs=function(){return(Bs=u.asm.sa).apply(null,arguments)},Fs=u.__emscripten_thread_exit=function(){return(Fs=u.__emscripten_thread_exit=u.asm.ta).apply(null,arguments)},Ls=function(){return(Ls=u.asm.ua).apply(null,arguments)},Us=function(){return(Us=u.asm.va).apply(null,arguments)},Hs=function(){return(Hs=u.asm.wa).apply(null,arguments)},Gs=function(){return(Gs=u.asm.xa).apply(null,arguments)},ks=function(){return(ks=u.asm.ya).apply(null,arguments)},Vs=function(){return(Vs=u.asm.za).apply(null,arguments)};function js(){if(!(ie>0)){if(I)return h(u),$(),void startWorker(u);!function(){if(u.preRun)for("function"==typeof u.preRun&&(u.preRun=[u.preRun]);u.preRun.length;)e=u.preRun.shift(),X.unshift(e);var e;Te(X)}(),ie>0||(u.setStatus?(u.setStatus("Running..."),setTimeout((function(){setTimeout((function(){u.setStatus("")}),1),e()}),1)):e())}function e(){Ss||(Ss=!0,u.calledRun=!0,x||($(),h(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),function(){if(!I){if(u.postRun)for("function"==typeof u.postRun&&(u.postRun=[u.postRun]);u.postRun.length;)e=u.postRun.shift(),q.unshift(e);var e;Te(q)}}()))}}if(u.dynCall_jiji=function(){return(u.dynCall_jiji=u.asm.Aa).apply(null,arguments)},u.dynCall_viijii=function(){return(u.dynCall_viijii=u.asm.Ba).apply(null,arguments)},u.dynCall_iiiiij=function(){return(u.dynCall_iiiiij=u.asm.Ca).apply(null,arguments)},u.dynCall_iiiiijj=function(){return(u.dynCall_iiiiijj=u.asm.Da).apply(null,arguments)},u.dynCall_iiiiiijj=function(){return(u.dynCall_iiiiiijj=u.asm.Ea).apply(null,arguments)},u.keepRuntimeAlive=J,u.wasmMemory=D,u.ExitStatus=ce,u.PThread=_e,re=function e(){Ss||js(),Ss||(re=e)},u.preInit)for("function"==typeof u.preInit&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return js(),e.ready});"object"==typeof e&&"object"==typeof t?t.exports=i:"function"==typeof define&&define.amd?define([],(function(){return i})):"object"==typeof e&&(e.WebIFCWasm=i)}}),II=gI({"dist/web-ifc.js"(e,t){var s,i=(s="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(e={}){var t,i,r=void 0!==e?e:{};r.ready=new Promise((function(e,s){t=e,i=s}));var o,n,a=Object.assign({},r),l="./this.program",h="";"undefined"!=typeof document&&document.currentScript&&(h=document.currentScript.src),s&&(h=s),h=0!==h.indexOf("blob:")?h.substr(0,h.replace(/[?#].*/,"").lastIndexOf("/")+1):"",o=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},n=(e,t,s)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):s()},i.onerror=s,i.send(null)};var c,u,A=r.print||console.log.bind(console),p=r.printErr||console.warn.bind(console);Object.assign(r,a),a=null,r.arguments,r.thisProgram&&(l=r.thisProgram),r.quit,r.wasmBinary&&(c=r.wasmBinary),r.noExitRuntime,"object"!=typeof WebAssembly&&V("no native wasm support detected");var d=!1;function f(e,t){e||V(t)}var m,y,E,g,v,I,_,T,P,b="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function R(e,t,s){for(var i=(t>>>=0)+s,r=t;e[r]&&!(r>=i);)++r;if(r-t>16&&e.buffer&&b)return b.decode(e.subarray(t,r));for(var o="";t>10,56320|1023&h)}}else o+=String.fromCharCode((31&n)<<6|a)}else o+=String.fromCharCode(n)}return o}function D(e,t){return(e>>>=0)?R(y,e,t):""}function C(e,t,s,i){if(!(i>0))return 0;for(var r=s>>>=0,o=s+i-1,n=0;n=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++n)),a<=127){if(s>=o)break;t[s++>>>0]=a}else if(a<=2047){if(s+1>=o)break;t[s++>>>0]=192|a>>6,t[s++>>>0]=128|63&a}else if(a<=65535){if(s+2>=o)break;t[s++>>>0]=224|a>>12,t[s++>>>0]=128|a>>6&63,t[s++>>>0]=128|63&a}else{if(s+3>=o)break;t[s++>>>0]=240|a>>18,t[s++>>>0]=128|a>>12&63,t[s++>>>0]=128|a>>6&63,t[s++>>>0]=128|63&a}}return t[s>>>0]=0,s-r}function N(e){for(var t=0,s=0;s=55296&&i<=57343?(t+=4,++s):t+=3}return t}function O(){var e=u.buffer;r.HEAP8=m=new Int8Array(e),r.HEAP16=E=new Int16Array(e),r.HEAP32=v=new Int32Array(e),r.HEAPU8=y=new Uint8Array(e),r.HEAPU16=g=new Uint16Array(e),r.HEAPU32=I=new Uint32Array(e),r.HEAPF32=_=new Float32Array(e),r.HEAPF64=T=new Float64Array(e)}var x,S,w,M,B=[],F=[],L=[],U=0,H=null;function G(e){U++,r.monitorRunDependencies&&r.monitorRunDependencies(U)}function k(e){if(U--,r.monitorRunDependencies&&r.monitorRunDependencies(U),0==U&&H){var t=H;H=null,t()}}function V(e){r.onAbort&&r.onAbort(e),p(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw i(t),t}function j(e){return e.startsWith("data:application/octet-stream;base64,")}function Q(e){try{if(e==x&&c)return new Uint8Array(c);throw"both async and sync fetching of the wasm failed"}catch(e){V(e)}}function W(e){for(;e.length>0;)e.shift()(r)}function z(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(e){I[this.ptr+4>>>2]=e},this.get_type=function(){return I[this.ptr+4>>>2]},this.set_destructor=function(e){I[this.ptr+8>>>2]=e},this.get_destructor=function(){return I[this.ptr+8>>>2]},this.set_refcount=function(e){v[this.ptr>>>2]=e},this.set_caught=function(e){e=e?1:0,m[this.ptr+12>>>0]=e},this.get_caught=function(){return 0!=m[this.ptr+12>>>0]},this.set_rethrown=function(e){e=e?1:0,m[this.ptr+13>>>0]=e},this.get_rethrown=function(){return 0!=m[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=v[this.ptr>>>2];v[this.ptr>>>2]=e+1},this.release_ref=function(){var e=v[this.ptr>>>2];return v[this.ptr>>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){I[this.ptr+16>>>2]=e},this.get_adjusted_ptr=function(){return I[this.ptr+16>>>2]},this.get_exception_ptr=function(){if(Kt(this.get_type()))return I[this.excPtr>>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}j(x="web-ifc.wasm")||(S=x,x=r.locateFile?r.locateFile(S,h):h+S);var K={};function Y(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function X(e){return this.fromWireType(v[e>>>2])}var Z={},q={},J={};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 ie(e){throw new se(e)}function re(e,t,s){function i(t){var i=s(t);i.length!==e.length&&ie("Mismatched type converter count");for(var r=0;r{q.hasOwnProperty(e)?r[t]=q[e]:(o.push(e),Z.hasOwnProperty(e)||(Z[e]=[]),Z[e].push((()=>{r[t]=q[e],++n===o.length&&i(r)})))})),0===o.length&&i(r)}var oe={};function ne(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 ae=void 0;function le(e){for(var t="",s=e;y[s>>>0];)t+=ae[y[s++>>>0]];return t}var he=void 0;function ce(e){throw new he(e)}function ue(e,t,s={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var i=t.name;if(e||ce('type "'+i+'" must have a positive integer typeid pointer'),q.hasOwnProperty(e)){if(s.ignoreDuplicateRegistrations)return;ce("Cannot register type '"+i+"' twice")}if(q[e]=t,delete J[e],Z.hasOwnProperty(e)){var r=Z[e];delete Z[e],r.forEach((e=>e()))}}function Ae(e){if(!(this instanceof Be))return!1;if(!(e instanceof Be))return!1;for(var t=this.$$.ptrType.registeredClass,s=this.$$.ptr,i=e.$$.ptrType.registeredClass,r=e.$$.ptr;t.baseClass;)s=t.upcast(s),t=t.baseClass;for(;i.baseClass;)r=i.upcast(r),i=i.baseClass;return t===i&&s===r}function pe(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){ce(e.$$.ptrType.registeredClass.name+" instance already deleted")}var fe=!1;function me(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 Ee(e,t,s){if(t===s)return e;if(void 0===s.baseClass)return null;var i=Ee(e,t,s.baseClass);return null===i?null:s.downcast(i)}var ge={};function ve(){return Object.keys(Re).length}function Ie(){var e=[];for(var t in Re)Re.hasOwnProperty(t)&&e.push(Re[t]);return e}var _e=[];function Te(){for(;_e.length;){var e=_e.pop();e.$$.deleteScheduled=!1,e.delete()}}var Pe=void 0;function be(e){Pe=e,_e.length&&Pe&&Pe(Te)}var Re={};function De(e,t){return t=function(e,t){for(void 0===t&&ce("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}(e,t),Re[t]}function Ce(e,t){return t.ptrType&&t.ptr||ie("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&ie("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Oe(Object.create(e,{$$:{value:t}}))}function Ne(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var s=De(this.registeredClass,t);if(void 0!==s){if(0===s.$$.count.value)return s.$$.ptr=t,s.$$.smartPtr=e,s.clone();var i=s.clone();return this.destructor(e),i}function r(){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 o,n=this.registeredClass.getActualType(t),a=ge[n];if(!a)return r.call(this);o=this.isConst?a.constPointerType:a.pointerType;var l=Ee(t,this.registeredClass,o.registeredClass);return null===l?r.call(this):this.isSmartPointer?Ce(o.registeredClass.instancePrototype,{ptrType:o,ptr:l,smartPtrType:this,smartPtr:e}):Ce(o.registeredClass.instancePrototype,{ptrType:o,ptr:l})}function Oe(e){return"undefined"==typeof FinalizationRegistry?(Oe=e=>e,e):(fe=new FinalizationRegistry((e=>{ye(e.$$)})),me=e=>fe.unregister(e),(Oe=e=>{var t=e.$$;if(t.smartPtr){var s={$$:t};fe.register(e,s,e)}return e})(e))}function xe(){if(this.$$.ptr||de(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=Oe(Object.create(Object.getPrototypeOf(this),{$$:{value:pe(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Se(){this.$$.ptr||de(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ce("Object already scheduled for deletion"),me(this),ye(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function we(){return!this.$$.ptr}function Me(){return this.$$.ptr||de(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ce("Object already scheduled for deletion"),_e.push(this),1===_e.length&&Pe&&Pe(Te),this.$$.deleteScheduled=!0,this}function Be(){}function Fe(e,t,s){if(void 0===e[t].overloadTable){var i=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||ce("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[i.argCount]=i}}function Le(e,t,s){r.hasOwnProperty(e)?((void 0===s||void 0!==r[e].overloadTable&&void 0!==r[e].overloadTable[s])&&ce("Cannot register public name '"+e+"' twice"),Fe(r,e,e),r.hasOwnProperty(s)&&ce("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),r[e].overloadTable[s]=t):(r[e]=t,void 0!==s&&(r[e].numArguments=s))}function Ue(e,t,s,i,r,o,n,a){this.name=e,this.constructor=t,this.instancePrototype=s,this.rawDestructor=i,this.baseClass=r,this.getActualType=o,this.upcast=n,this.downcast=a,this.pureVirtualFunctions=[]}function He(e,t,s){for(;t!==s;)t.upcast||ce("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&&ce("null is not a valid "+this.name),0;t.$$||ce('Cannot pass "'+ut(t)+'" as a '+this.name),t.$$.ptr||ce("Cannot pass deleted object as a pointer of type "+this.name);var s=t.$$.ptrType.registeredClass;return He(t.$$.ptr,s,this.registeredClass)}function ke(e,t){var s;if(null===t)return this.isReference&&ce("null is not a valid "+this.name),this.isSmartPointer?(s=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,s),s):0;t.$$||ce('Cannot pass "'+ut(t)+'" as a '+this.name),t.$$.ptr||ce("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&ce("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var i=t.$$.ptrType.registeredClass;if(s=He(t.$$.ptr,i,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&ce("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?s=t.$$.smartPtr:ce("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 r=t.clone();s=this.rawShare(s,lt.toHandle((function(){r.delete()}))),null!==e&&e.push(this.rawDestructor,s)}break;default:ce("Unsupporting sharing policy")}return s}function Ve(e,t){if(null===t)return this.isReference&&ce("null is not a valid "+this.name),0;t.$$||ce('Cannot pass "'+ut(t)+'" as a '+this.name),t.$$.ptr||ce("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&ce("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var s=t.$$.ptrType.registeredClass;return He(t.$$.ptr,s,this.registeredClass)}function je(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,i,r,o,n,a,l,h,c){this.name=e,this.registeredClass=t,this.isReference=s,this.isConst=i,this.isSmartPointer=r,this.pointeeType=o,this.sharingPolicy=n,this.rawGetPointee=a,this.rawConstructor=l,this.rawShare=h,this.rawDestructor=c,r||void 0!==t.baseClass?this.toWireType=ke:i?(this.toWireType=Ge,this.destructorFunction=null):(this.toWireType=Ve,this.destructorFunction=null)}function Ke(e,t,s){r.hasOwnProperty(e)||ie("Replacing nonexistant public symbol"),void 0!==r[e].overloadTable&&void 0!==s?r[e].overloadTable[s]=t:(r[e]=t,r[e].argCount=s)}var Ye=[];function Xe(e){var t=Ye[e];return t||(e>=Ye.length&&(Ye.length=e+1),Ye[e]=t=P.get(e)),t}function Ze(e,t,s){return e.includes("j")?function(e,t,s){var i=r["dynCall_"+e];return s&&s.length?i.apply(null,[t].concat(s)):i.call(null,t)}(e,t,s):Xe(t).apply(null,s)}function qe(e,t){var s,i,r,o=(e=le(e)).includes("j")?(s=e,i=t,r=[],function(){return r.length=0,Object.assign(r,arguments),Ze(s,i,r)}):Xe(t);return"function"!=typeof o&&ce("unknown function pointer with signature "+e+": "+t),o}var Je=void 0;function $e(e){var t=Qt(e),s=le(t);return zt(t),s}function et(e,t){var s=[],i={};throw t.forEach((function e(t){i[t]||q[t]||(J[t]?J[t].forEach(e):(s.push(t),i[t]=!0))})),new Je(e+": "+s.map($e).join([", "]))}function tt(e,t){for(var s=[],i=0;i>>2]);return s}function st(e,t,s,i,r){var o=t.length;o<2&&ce("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var n=null!==t[1]&&null!==s,a=!1,l=1;l0?", ":"")+u),A+=(h?"var rv = ":"")+"invoker(fn"+(u.length>0?", ":"")+u+");\n",a)A+="runDestructors(destructors);\n";else for(l=n?1:2;l4&&0==--rt[e].refcount&&(rt[e]=void 0,it.push(e))}function nt(){for(var e=0,t=5;t(e||ce("Cannot use deleted val. handle = "+e),rt[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=it.length?it.pop():rt.length;return rt[t]={refcount:1,value:e},t}}};function ht(e,t,s){switch(t){case 0:return function(e){var t=s?m:y;return this.fromWireType(t[e>>>0])};case 1:return function(e){var t=s?E:g;return this.fromWireType(t[e>>>1])};case 2:return function(e){var t=s?v:I;return this.fromWireType(t[e>>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function ct(e,t){var s=q[e];return void 0===s&&ce(t+" has unknown type "+$e(e)),s}function ut(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function At(e,t){switch(t){case 2:return function(e){return this.fromWireType(_[e>>>2])};case 3:return function(e){return this.fromWireType(T[e>>>3])};default:throw new TypeError("Unknown float type: "+e)}}function pt(e,t,s){switch(t){case 0:return s?function(e){return m[e>>>0]}:function(e){return y[e>>>0]};case 1:return s?function(e){return E[e>>>1]}:function(e){return g[e>>>1]};case 2:return s?function(e){return v[e>>>2]}:function(e){return I[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,i=s>>1,r=i+t/2;!(i>=r)&&g[i>>>0];)++i;if((s=i<<1)-e>32&&dt)return dt.decode(y.subarray(e>>>0,s>>>0));for(var o="",n=0;!(n>=t/2);++n){var a=E[e+2*n>>>1];if(0==a)break;o+=String.fromCharCode(a)}return o}function mt(e,t,s){if(void 0===s&&(s=2147483647),s<2)return 0;for(var i=t,r=(s-=2)<2*e.length?s/2:e.length,o=0;o>>1]=n,t+=2}return E[t>>>1]=0,t-i}function yt(e){return 2*e.length}function Et(e,t){for(var s=0,i="";!(s>=t/4);){var r=v[e+4*s>>>2];if(0==r)break;if(++s,r>=65536){var o=r-65536;i+=String.fromCharCode(55296|o>>10,56320|1023&o)}else i+=String.fromCharCode(r)}return i}function gt(e,t,s){if(void 0===s&&(s=2147483647),s<4)return 0;for(var i=t>>>=0,r=i+s-4,o=0;o=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++o)),v[t>>>2]=n,(t+=4)+4>r)break}return v[t>>>2]=0,t-i}function vt(e){for(var t=0,s=0;s=55296&&i<=57343&&++s,t+=4}return t}var It={};function _t(e){var t=It[e];return void 0===t?le(e):t}function Tt(){return"object"==typeof globalThis?globalThis:Function("return this")()}function Pt(e){var t=u.buffer;try{return u.grow(e-t.byteLength+65535>>>16),O(),1}catch(e){}}var bt={};function Rt(){if(!Rt.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",_:l||"./this.program"};for(var t in bt)void 0===bt[t]?delete e[t]:e[t]=bt[t];var s=[];for(var t in e)s.push(t+"="+e[t]);Rt.strings=s}return Rt.strings}var Dt={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var s=0,i=e.length-1;i>=0;i--){var r=e[i];"."===r?e.splice(i,1):".."===r?(e.splice(i,1),s++):s&&(e.splice(i,1),s--)}if(t)for(;s;s--)e.unshift("..");return e},normalize:e=>{var t=Dt.isAbs(e),s="/"===e.substr(-1);return e=Dt.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"),e||t||(e="."),e&&s&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=Dt.splitPath(e),s=t[0],i=t[1];return s||i?(i&&(i=i.substr(0,i.length-1)),s+i):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=Dt.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments);return Dt.normalize(e.join("/"))},join2:(e,t)=>Dt.normalize(e+"/"+t)},Ct={resolve:function(){for(var e="",t=!1,s=arguments.length-1;s>=-1&&!t;s--){var i=s>=0?arguments[s]:wt.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=Dt.isAbs(i)}return e=Dt.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 i=s(e.split("/")),r=s(t.split("/")),o=Math.min(i.length,r.length),n=o,a=0;a0?s:N(e)+1,r=new Array(i),o=C(e,r,0,r.length);return t&&(r.length=o),r}var Ot={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Ot.ttys[e]={input:[],output:[],ops:t},wt.registerDevice(e,Ot.stream_ops)},stream_ops:{open:function(e){var t=Ot.ttys[e.node.rdev];if(!t)throw new wt.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,i,r){if(!e.tty||!e.tty.ops.get_char)throw new wt.ErrnoError(60);for(var o=0,n=0;n0&&(A(R(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(p(R(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync:function(e){e.output&&e.output.length>0&&(p(R(e.output,0)),e.output=[])}}};function xt(e){V()}var St={ops_table:null,mount:function(e){return St.createNode(null,"/",16895,0)},createNode:function(e,t,s,i){if(wt.isBlkdev(s)||wt.isFIFO(s))throw new wt.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:wt.chrdev_stream_ops}});var r=wt.createNode(e,t,s,i);return wt.isDir(r.mode)?(r.node_ops=St.ops_table.dir.node,r.stream_ops=St.ops_table.dir.stream,r.contents={}):wt.isFile(r.mode)?(r.node_ops=St.ops_table.file.node,r.stream_ops=St.ops_table.file.stream,r.usedBytes=0,r.contents=null):wt.isLink(r.mode)?(r.node_ops=St.ops_table.link.node,r.stream_ops=St.ops_table.link.stream):wt.isChrdev(r.mode)&&(r.node_ops=St.ops_table.chrdev.node,r.stream_ops=St.ops_table.chrdev.stream),r.timestamp=Date.now(),e&&(e.contents[t]=r,e.timestamp=r.timestamp),r},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 i=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(i.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=wt.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,wt.isDir(e.mode)?t.size=4096:wt.isFile(e.mode)?t.size=e.usedBytes:wt.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 wt.genericErrors[44]},mknod:function(e,t,s,i){return St.createNode(e,t,s,i)},rename:function(e,t,s){if(wt.isDir(e.mode)){var i;try{i=wt.lookupNode(t,s)}catch(e){}if(i)for(var r in i.contents)throw new wt.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=wt.lookupNode(e,t);for(var i in s.contents)throw new wt.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 i=St.createNode(e,t,41471,0);return i.link=s,i},readlink:function(e){if(!wt.isLink(e.mode))throw new wt.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,s,i,r){var o=e.node.contents;if(r>=e.node.usedBytes)return 0;var n=Math.min(e.node.usedBytes-r,i);if(n>8&&o.subarray)t.set(o.subarray(r,r+n),s);else for(var a=0;a0||s+t>>=0,m.set(a,o>>>0)}else n=!1,o=a.byteOffset;return{ptr:o,allocated:n}},msync:function(e,t,s,i,r){return St.stream_ops.write(e,t,0,i,s,!1),0}}},wt={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 wt.ErrnoError(32);for(var s=e.split("/").filter((e=>!!e)),i=wt.root,r="/",o=0;o40)throw new wt.ErrnoError(32)}}return{path:r,node:i}},getPath:e=>{for(var t;;){if(wt.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,i=0;i>>0)%wt.nameTable.length},hashAddNode:e=>{var t=wt.hashName(e.parent.id,e.name);e.name_next=wt.nameTable[t],wt.nameTable[t]=e},hashRemoveNode:e=>{var t=wt.hashName(e.parent.id,e.name);if(wt.nameTable[t]===e)wt.nameTable[t]=e.name_next;else for(var s=wt.nameTable[t];s;){if(s.name_next===e){s.name_next=e.name_next;break}s=s.name_next}},lookupNode:(e,t)=>{var s=wt.mayLookup(e);if(s)throw new wt.ErrnoError(s,e);for(var i=wt.hashName(e.id,t),r=wt.nameTable[i];r;r=r.name_next){var o=r.name;if(r.parent.id===e.id&&o===t)return r}return wt.lookup(e,t)},createNode:(e,t,s,i)=>{var r=new wt.FSNode(e,t,s,i);return wt.hashAddNode(r),r},destroyNode:e=>{wt.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=wt.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)=>wt.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=wt.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return wt.lookupNode(e,t),20}catch(e){}return wt.nodePermissions(e,"wx")},mayDelete:(e,t,s)=>{var i;try{i=wt.lookupNode(e,t)}catch(e){return e.errno}var r=wt.nodePermissions(e,"wx");if(r)return r;if(s){if(!wt.isDir(i.mode))return 54;if(wt.isRoot(i)||wt.getPath(i)===wt.cwd())return 10}else if(wt.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?wt.isLink(e.mode)?32:wt.isDir(e.mode)&&("r"!==wt.flagsToPermissionString(t)||512&t)?31:wt.nodePermissions(e,wt.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:(e=0,t=wt.MAX_OPEN_FDS)=>{for(var s=e;s<=t;s++)if(!wt.streams[s])return s;throw new wt.ErrnoError(33)},getStream:e=>wt.streams[e],createStream:(e,t,s)=>{wt.FSStream||(wt.FSStream=function(){this.shared={}},wt.FSStream.prototype={},Object.defineProperties(wt.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 wt.FSStream,e);var i=wt.nextfd(t,s);return e.fd=i,wt.streams[i]=e,e},closeStream:e=>{wt.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=wt.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new wt.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{wt.devices[e]={stream_ops:t}},getDevice:e=>wt.devices[e],getMounts:e=>{for(var t=[],s=[e];s.length;){var i=s.pop();t.push(i),s.push.apply(s,i.mounts)}return t},syncfs:(e,t)=>{"function"==typeof e&&(t=e,e=!1),wt.syncFSRequests++,wt.syncFSRequests>1&&p("warning: "+wt.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var s=wt.getMounts(wt.root.mount),i=0;function r(e){return wt.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,r(e));++i>=s.length&&r(null)}s.forEach((t=>{if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)}))},mount:(e,t,s)=>{var i,r="/"===s,o=!s;if(r&&wt.root)throw new wt.ErrnoError(10);if(!r&&!o){var n=wt.lookupPath(s,{follow_mount:!1});if(s=n.path,i=n.node,wt.isMountpoint(i))throw new wt.ErrnoError(10);if(!wt.isDir(i.mode))throw new wt.ErrnoError(54)}var a={type:e,opts:t,mountpoint:s,mounts:[]},l=e.mount(a);return l.mount=a,a.root=l,r?wt.root=l:i&&(i.mounted=a,i.mount&&i.mount.mounts.push(a)),l},unmount:e=>{var t=wt.lookupPath(e,{follow_mount:!1});if(!wt.isMountpoint(t.node))throw new wt.ErrnoError(28);var s=t.node,i=s.mounted,r=wt.getMounts(i);Object.keys(wt.nameTable).forEach((e=>{for(var t=wt.nameTable[e];t;){var s=t.name_next;r.includes(t.mount)&&wt.destroyNode(t),t=s}})),s.mounted=null;var o=s.mount.mounts.indexOf(i);s.mount.mounts.splice(o,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,s)=>{var i=wt.lookupPath(e,{parent:!0}).node,r=Dt.basename(e);if(!r||"."===r||".."===r)throw new wt.ErrnoError(28);var o=wt.mayCreate(i,r);if(o)throw new wt.ErrnoError(o);if(!i.node_ops.mknod)throw new wt.ErrnoError(63);return i.node_ops.mknod(i,r,t,s)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,wt.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,wt.mknod(e,t,0)),mkdirTree:(e,t)=>{for(var s=e.split("/"),i="",r=0;r(void 0===s&&(s=t,t=438),t|=8192,wt.mknod(e,t,s)),symlink:(e,t)=>{if(!Ct.resolve(e))throw new wt.ErrnoError(44);var s=wt.lookupPath(t,{parent:!0}).node;if(!s)throw new wt.ErrnoError(44);var i=Dt.basename(t),r=wt.mayCreate(s,i);if(r)throw new wt.ErrnoError(r);if(!s.node_ops.symlink)throw new wt.ErrnoError(63);return s.node_ops.symlink(s,i,e)},rename:(e,t)=>{var s,i,r=Dt.dirname(e),o=Dt.dirname(t),n=Dt.basename(e),a=Dt.basename(t);if(s=wt.lookupPath(e,{parent:!0}).node,i=wt.lookupPath(t,{parent:!0}).node,!s||!i)throw new wt.ErrnoError(44);if(s.mount!==i.mount)throw new wt.ErrnoError(75);var l,h=wt.lookupNode(s,n),c=Ct.relative(e,o);if("."!==c.charAt(0))throw new wt.ErrnoError(28);if("."!==(c=Ct.relative(t,r)).charAt(0))throw new wt.ErrnoError(55);try{l=wt.lookupNode(i,a)}catch(e){}if(h!==l){var u=wt.isDir(h.mode),A=wt.mayDelete(s,n,u);if(A)throw new wt.ErrnoError(A);if(A=l?wt.mayDelete(i,a,u):wt.mayCreate(i,a))throw new wt.ErrnoError(A);if(!s.node_ops.rename)throw new wt.ErrnoError(63);if(wt.isMountpoint(h)||l&&wt.isMountpoint(l))throw new wt.ErrnoError(10);if(i!==s&&(A=wt.nodePermissions(s,"w")))throw new wt.ErrnoError(A);wt.hashRemoveNode(h);try{s.node_ops.rename(h,i,a)}catch(e){throw e}finally{wt.hashAddNode(h)}}},rmdir:e=>{var t=wt.lookupPath(e,{parent:!0}).node,s=Dt.basename(e),i=wt.lookupNode(t,s),r=wt.mayDelete(t,s,!0);if(r)throw new wt.ErrnoError(r);if(!t.node_ops.rmdir)throw new wt.ErrnoError(63);if(wt.isMountpoint(i))throw new wt.ErrnoError(10);t.node_ops.rmdir(t,s),wt.destroyNode(i)},readdir:e=>{var t=wt.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new wt.ErrnoError(54);return t.node_ops.readdir(t)},unlink:e=>{var t=wt.lookupPath(e,{parent:!0}).node;if(!t)throw new wt.ErrnoError(44);var s=Dt.basename(e),i=wt.lookupNode(t,s),r=wt.mayDelete(t,s,!1);if(r)throw new wt.ErrnoError(r);if(!t.node_ops.unlink)throw new wt.ErrnoError(63);if(wt.isMountpoint(i))throw new wt.ErrnoError(10);t.node_ops.unlink(t,s),wt.destroyNode(i)},readlink:e=>{var t=wt.lookupPath(e).node;if(!t)throw new wt.ErrnoError(44);if(!t.node_ops.readlink)throw new wt.ErrnoError(28);return Ct.resolve(wt.getPath(t.parent),t.node_ops.readlink(t))},stat:(e,t)=>{var s=wt.lookupPath(e,{follow:!t}).node;if(!s)throw new wt.ErrnoError(44);if(!s.node_ops.getattr)throw new wt.ErrnoError(63);return s.node_ops.getattr(s)},lstat:e=>wt.stat(e,!0),chmod:(e,t,s)=>{var i;if(!(i="string"==typeof e?wt.lookupPath(e,{follow:!s}).node:e).node_ops.setattr)throw new wt.ErrnoError(63);i.node_ops.setattr(i,{mode:4095&t|-4096&i.mode,timestamp:Date.now()})},lchmod:(e,t)=>{wt.chmod(e,t,!0)},fchmod:(e,t)=>{var s=wt.getStream(e);if(!s)throw new wt.ErrnoError(8);wt.chmod(s.node,t)},chown:(e,t,s,i)=>{var r;if(!(r="string"==typeof e?wt.lookupPath(e,{follow:!i}).node:e).node_ops.setattr)throw new wt.ErrnoError(63);r.node_ops.setattr(r,{timestamp:Date.now()})},lchown:(e,t,s)=>{wt.chown(e,t,s,!0)},fchown:(e,t,s)=>{var i=wt.getStream(e);if(!i)throw new wt.ErrnoError(8);wt.chown(i.node,t,s)},truncate:(e,t)=>{if(t<0)throw new wt.ErrnoError(28);var s;if(!(s="string"==typeof e?wt.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new wt.ErrnoError(63);if(wt.isDir(s.mode))throw new wt.ErrnoError(31);if(!wt.isFile(s.mode))throw new wt.ErrnoError(28);var i=wt.nodePermissions(s,"w");if(i)throw new wt.ErrnoError(i);s.node_ops.setattr(s,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{var s=wt.getStream(e);if(!s)throw new wt.ErrnoError(8);if(0==(2097155&s.flags))throw new wt.ErrnoError(28);wt.truncate(s.node,t)},utime:(e,t,s)=>{var i=wt.lookupPath(e,{follow:!0}).node;i.node_ops.setattr(i,{timestamp:Math.max(t,s)})},open:(e,t,s)=>{if(""===e)throw new wt.ErrnoError(44);var i;if(s=void 0===s?438:s,s=64&(t="string"==typeof t?wt.modeStringToFlags(t):t)?4095&s|32768:0,"object"==typeof e)i=e;else{e=Dt.normalize(e);try{i=wt.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var o=!1;if(64&t)if(i){if(128&t)throw new wt.ErrnoError(20)}else i=wt.mknod(e,s,0),o=!0;if(!i)throw new wt.ErrnoError(44);if(wt.isChrdev(i.mode)&&(t&=-513),65536&t&&!wt.isDir(i.mode))throw new wt.ErrnoError(54);if(!o){var n=wt.mayOpen(i,t);if(n)throw new wt.ErrnoError(n)}512&t&&!o&&wt.truncate(i,0),t&=-131713;var a=wt.createStream({node:i,path:wt.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return a.stream_ops.open&&a.stream_ops.open(a),!r.logReadFiles||1&t||(wt.readFiles||(wt.readFiles={}),e in wt.readFiles||(wt.readFiles[e]=1)),a},close:e=>{if(wt.isClosed(e))throw new wt.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{wt.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,s)=>{if(wt.isClosed(e))throw new wt.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new wt.ErrnoError(70);if(0!=s&&1!=s&&2!=s)throw new wt.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,s),e.ungotten=[],e.position},read:(e,t,s,i,r)=>{if(s>>>=0,i<0||r<0)throw new wt.ErrnoError(28);if(wt.isClosed(e))throw new wt.ErrnoError(8);if(1==(2097155&e.flags))throw new wt.ErrnoError(8);if(wt.isDir(e.node.mode))throw new wt.ErrnoError(31);if(!e.stream_ops.read)throw new wt.ErrnoError(28);var o=void 0!==r;if(o){if(!e.seekable)throw new wt.ErrnoError(70)}else r=e.position;var n=e.stream_ops.read(e,t,s,i,r);return o||(e.position+=n),n},write:(e,t,s,i,r,o)=>{if(s>>>=0,i<0||r<0)throw new wt.ErrnoError(28);if(wt.isClosed(e))throw new wt.ErrnoError(8);if(0==(2097155&e.flags))throw new wt.ErrnoError(8);if(wt.isDir(e.node.mode))throw new wt.ErrnoError(31);if(!e.stream_ops.write)throw new wt.ErrnoError(28);e.seekable&&1024&e.flags&&wt.llseek(e,0,2);var n=void 0!==r;if(n){if(!e.seekable)throw new wt.ErrnoError(70)}else r=e.position;var a=e.stream_ops.write(e,t,s,i,r,o);return n||(e.position+=a),a},allocate:(e,t,s)=>{if(wt.isClosed(e))throw new wt.ErrnoError(8);if(t<0||s<=0)throw new wt.ErrnoError(28);if(0==(2097155&e.flags))throw new wt.ErrnoError(8);if(!wt.isFile(e.node.mode)&&!wt.isDir(e.node.mode))throw new wt.ErrnoError(43);if(!e.stream_ops.allocate)throw new wt.ErrnoError(138);e.stream_ops.allocate(e,t,s)},mmap:(e,t,s,i,r)=>{if(0!=(2&i)&&0==(2&r)&&2!=(2097155&e.flags))throw new wt.ErrnoError(2);if(1==(2097155&e.flags))throw new wt.ErrnoError(2);if(!e.stream_ops.mmap)throw new wt.ErrnoError(43);return e.stream_ops.mmap(e,t,s,i,r)},msync:(e,t,s,i,r)=>(s>>>=0,e.stream_ops.msync?e.stream_ops.msync(e,t,s,i,r):0),munmap:e=>0,ioctl:(e,t,s)=>{if(!e.stream_ops.ioctl)throw new wt.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,i=wt.open(e,t.flags),r=wt.stat(e).size,o=new Uint8Array(r);return wt.read(i,o,0,r,0),"utf8"===t.encoding?s=R(o,0):"binary"===t.encoding&&(s=o),wt.close(i),s},writeFile:(e,t,s={})=>{s.flags=s.flags||577;var i=wt.open(e,s.flags,s.mode);if("string"==typeof t){var r=new Uint8Array(N(t)+1),o=C(t,r,0,r.length);wt.write(i,r,0,o,void 0,s.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");wt.write(i,t,0,t.byteLength,void 0,s.canOwn)}wt.close(i)},cwd:()=>wt.currentPath,chdir:e=>{var t=wt.lookupPath(e,{follow:!0});if(null===t.node)throw new wt.ErrnoError(44);if(!wt.isDir(t.node.mode))throw new wt.ErrnoError(54);var s=wt.nodePermissions(t.node,"x");if(s)throw new wt.ErrnoError(s);wt.currentPath=t.path},createDefaultDirectories:()=>{wt.mkdir("/tmp"),wt.mkdir("/home"),wt.mkdir("/home/web_user")},createDefaultDevices:()=>{wt.mkdir("/dev"),wt.registerDevice(wt.makedev(1,3),{read:()=>0,write:(e,t,s,i,r)=>i}),wt.mkdev("/dev/null",wt.makedev(1,3)),Ot.register(wt.makedev(5,0),Ot.default_tty_ops),Ot.register(wt.makedev(6,0),Ot.default_tty1_ops),wt.mkdev("/dev/tty",wt.makedev(5,0)),wt.mkdev("/dev/tty1",wt.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")}();wt.createDevice("/dev","random",e),wt.createDevice("/dev","urandom",e),wt.mkdir("/dev/shm"),wt.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{wt.mkdir("/proc");var e=wt.mkdir("/proc/self");wt.mkdir("/proc/self/fd"),wt.mount({mount:()=>{var t=wt.createNode(e,"fd",16895,73);return t.node_ops={lookup:(e,t)=>{var s=+t,i=wt.getStream(s);if(!i)throw new wt.ErrnoError(8);var r={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>i.path}};return r.parent=r,r}},t}},{},"/proc/self/fd")},createStandardStreams:()=>{r.stdin?wt.createDevice("/dev","stdin",r.stdin):wt.symlink("/dev/tty","/dev/stdin"),r.stdout?wt.createDevice("/dev","stdout",null,r.stdout):wt.symlink("/dev/tty","/dev/stdout"),r.stderr?wt.createDevice("/dev","stderr",null,r.stderr):wt.symlink("/dev/tty1","/dev/stderr"),wt.open("/dev/stdin",0),wt.open("/dev/stdout",1),wt.open("/dev/stderr",1)},ensureErrnoError:()=>{wt.ErrnoError||(wt.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},wt.ErrnoError.prototype=new Error,wt.ErrnoError.prototype.constructor=wt.ErrnoError,[44].forEach((e=>{wt.genericErrors[e]=new wt.ErrnoError(e),wt.genericErrors[e].stack=""})))},staticInit:()=>{wt.ensureErrnoError(),wt.nameTable=new Array(4096),wt.mount(St,{},"/"),wt.createDefaultDirectories(),wt.createDefaultDevices(),wt.createSpecialDirectories(),wt.filesystems={MEMFS:St}},init:(e,t,s)=>{wt.init.initialized=!0,wt.ensureErrnoError(),r.stdin=e||r.stdin,r.stdout=t||r.stdout,r.stderr=s||r.stderr,wt.createStandardStreams()},quit:()=>{wt.init.initialized=!1;for(var e=0;e{var s=0;return e&&(s|=365),t&&(s|=146),s},findObject:(e,t)=>{var s=wt.analyzePath(e,t);return s.exists?s.object:null},analyzePath:(e,t)=>{try{e=(i=wt.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 i=wt.lookupPath(e,{parent:!0});s.parentExists=!0,s.parentPath=i.path,s.parentObject=i.node,s.name=Dt.basename(e),i=wt.lookupPath(e,{follow:!t}),s.exists=!0,s.path=i.path,s.object=i.node,s.name=i.node.name,s.isRoot="/"===i.path}catch(e){s.error=e.errno}return s},createPath:(e,t,s,i)=>{e="string"==typeof e?e:wt.getPath(e);for(var r=t.split("/").reverse();r.length;){var o=r.pop();if(o){var n=Dt.join2(e,o);try{wt.mkdir(n)}catch(e){}e=n}}return n},createFile:(e,t,s,i,r)=>{var o=Dt.join2("string"==typeof e?e:wt.getPath(e),t),n=wt.getMode(i,r);return wt.create(o,n)},createDataFile:(e,t,s,i,r,o)=>{var n=t;e&&(e="string"==typeof e?e:wt.getPath(e),n=t?Dt.join2(e,t):e);var a=wt.getMode(i,r),l=wt.create(n,a);if(s){if("string"==typeof s){for(var h=new Array(s.length),c=0,u=s.length;c{var r=Dt.join2("string"==typeof e?e:wt.getPath(e),t),o=wt.getMode(!!s,!!i);wt.createDevice.major||(wt.createDevice.major=64);var n=wt.makedev(wt.createDevice.major++,0);return wt.registerDevice(n,{open:e=>{e.seekable=!1},close:e=>{i&&i.buffer&&i.buffer.length&&i(10)},read:(e,t,i,r,o)=>{for(var n=0,a=0;a{for(var n=0;n{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(!o)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=Nt(o(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new wt.ErrnoError(29)}},createLazyFile:(e,t,s,i,r)=>{function o(){this.lengthKnown=!1,this.chunks=[]}if(o.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]}},o.prototype.setDataGetter=function(e){this.getter=e},o.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,i=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,n=1048576;r||(n=i);var a=this;a.setDataGetter((e=>{var t=e*n,r=(e+1)*n-1;if(r=Math.min(r,i-1),void 0===a.chunks[e]&&(a.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>i-1)throw new Error("only "+i+" bytes available! programmer error!");var r=new XMLHttpRequest;if(r.open("GET",s,!1),i!==n&&r.setRequestHeader("Range","bytes="+e+"-"+t),r.responseType="arraybuffer",r.overrideMimeType&&r.overrideMimeType("text/plain; charset=x-user-defined"),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+s+". Status: "+r.status);return void 0!==r.response?new Uint8Array(r.response||[]):Nt(r.responseText||"",!0)})(t,r)),void 0===a.chunks[e])throw new Error("doXHR failed!");return a.chunks[e]})),!o&&i||(n=i=1,i=this.getter(0).length,n=i,A("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=i,this._chunkSize=n,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 n={isDevice:!1,url:s},a=wt.createFile(e,t,n,i,r);n.contents?a.contents=n.contents:n.url&&(a.contents=null,a.url=n.url),Object.defineProperties(a,{usedBytes:{get:function(){return this.contents.length}}});var l={};function h(e,t,s,i,r){var o=e.node.contents;if(r>=o.length)return 0;var n=Math.min(o.length-r,i);if(o.slice)for(var a=0;a{var t=a.stream_ops[e];l[e]=function(){return wt.forceLoadFile(a),t.apply(null,arguments)}})),l.read=(e,t,s,i,r)=>(wt.forceLoadFile(a),h(e,t,s,i,r)),l.mmap=(e,t,s,i,r)=>{wt.forceLoadFile(a);var o=xt();if(!o)throw new wt.ErrnoError(48);return h(e,m,o,t,s),{ptr:o,allocated:!0}},a.stream_ops=l,a},createPreloadedFile:(e,t,s,i,r,o,a,l,h,c)=>{var u=t?Ct.resolve(Dt.join2(e,t)):e;function A(s){function n(s){c&&c(),l||wt.createDataFile(e,t,s,i,r,h),o&&o(),k()}Browser.handledByPreloadPlugin(s,u,n,(()=>{a&&a(),k()}))||n(s)}G(),"string"==typeof s?function(e,t,s,i){var r=i?"":"al "+e;n(e,(s=>{f(s,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(s)),r&&k()}),(t=>{if(!s)throw'Loading data file "'+e+'" failed.';s()})),r&&G()}(s,(e=>A(e)),a):A(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 i=wt.indexedDB();try{var r=i.open(wt.DB_NAME(),wt.DB_VERSION)}catch(e){return s(e)}r.onupgradeneeded=()=>{A("creating db"),r.result.createObjectStore(wt.DB_STORE_NAME)},r.onsuccess=()=>{var i=r.result.transaction([wt.DB_STORE_NAME],"readwrite"),o=i.objectStore(wt.DB_STORE_NAME),n=0,a=0,l=e.length;function h(){0==a?t():s()}e.forEach((e=>{var t=o.put(wt.analyzePath(e).object.contents,e);t.onsuccess=()=>{++n+a==l&&h()},t.onerror=()=>{a++,n+a==l&&h()}})),i.onerror=s},r.onerror=s},loadFilesFromDB:(e,t=(()=>{}),s=(()=>{}))=>{var i=wt.indexedDB();try{var r=i.open(wt.DB_NAME(),wt.DB_VERSION)}catch(e){return s(e)}r.onupgradeneeded=s,r.onsuccess=()=>{var i=r.result;try{var o=i.transaction([wt.DB_STORE_NAME],"readonly")}catch(e){return void s(e)}var n=o.objectStore(wt.DB_STORE_NAME),a=0,l=0,h=e.length;function c(){0==l?t():s()}e.forEach((e=>{var t=n.get(e);t.onsuccess=()=>{wt.analyzePath(e).exists&&wt.unlink(e),wt.createDataFile(Dt.dirname(e),Dt.basename(e),t.result,!0,!0,!0),++a+l==h&&c()},t.onerror=()=>{l++,a+l==h&&c()}})),o.onerror=s},r.onerror=s}},Mt={DEFAULT_POLLMASK:5,calculateAt:function(e,t,s){if(Dt.isAbs(t))return t;var i;if(i=-100===e?wt.cwd():Mt.getStreamFromFD(e).path,0==t.length){if(!s)throw new wt.ErrnoError(44);return i}return Dt.join2(i,t)},doStat:function(e,t,s){try{var i=e(t)}catch(e){if(e&&e.node&&Dt.normalize(t)!==Dt.normalize(wt.getPath(e.node)))return-54;throw e}v[s>>>2]=i.dev,v[s+8>>>2]=i.ino,v[s+12>>>2]=i.mode,I[s+16>>>2]=i.nlink,v[s+20>>>2]=i.uid,v[s+24>>>2]=i.gid,v[s+28>>>2]=i.rdev,M=[i.size>>>0,(w=i.size,+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+40>>>2]=M[0],v[s+44>>>2]=M[1],v[s+48>>>2]=4096,v[s+52>>>2]=i.blocks;var r=i.atime.getTime(),o=i.mtime.getTime(),n=i.ctime.getTime();return M=[Math.floor(r/1e3)>>>0,(w=Math.floor(r/1e3),+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+56>>>2]=M[0],v[s+60>>>2]=M[1],I[s+64>>>2]=r%1e3*1e3,M=[Math.floor(o/1e3)>>>0,(w=Math.floor(o/1e3),+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+72>>>2]=M[0],v[s+76>>>2]=M[1],I[s+80>>>2]=o%1e3*1e3,M=[Math.floor(n/1e3)>>>0,(w=Math.floor(n/1e3),+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+88>>>2]=M[0],v[s+92>>>2]=M[1],I[s+96>>>2]=n%1e3*1e3,M=[i.ino>>>0,(w=i.ino,+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[s+104>>>2]=M[0],v[s+108>>>2]=M[1],0},doMsync:function(e,t,s,i,r){if(!wt.isFile(t.node.mode))throw new wt.ErrnoError(43);if(2&i)return 0;e>>>=0;var o=y.slice(e,e+s);wt.msync(t,o,r,s,i)},varargs:void 0,get:function(){return Mt.varargs+=4,v[Mt.varargs-4>>>2]},getStr:function(e){return D(e)},getStreamFromFD:function(e){var t=wt.getStream(e);if(!t)throw new wt.ErrnoError(8);return t}};function Bt(e){return e%4==0&&(e%100!=0||e%400==0)}var Ft=[31,29,31,30,31,30,31,31,30,31,30,31],Lt=[31,28,31,30,31,30,31,31,30,31,30,31];function Ut(e,t,s,i){var r=v[i+40>>>2],o={tm_sec:v[i>>>2],tm_min:v[i+4>>>2],tm_hour:v[i+8>>>2],tm_mday:v[i+12>>>2],tm_mon:v[i+16>>>2],tm_year:v[i+20>>>2],tm_wday:v[i+24>>>2],tm_yday:v[i+28>>>2],tm_isdst:v[i+32>>>2],tm_gmtoff:v[i+36>>>2],tm_zone:r?D(r):""},n=D(s),a={"%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 l in a)n=n.replace(new RegExp(l,"g"),a[l]);var h=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["January","February","March","April","May","June","July","August","September","October","November","December"];function u(e,t,s){for(var i="number"==typeof e?e.toString():e||"";i.length0?1:0}var i;return 0===(i=s(e.getFullYear()-t.getFullYear()))&&0===(i=s(e.getMonth()-t.getMonth()))&&(i=s(e.getDate()-t.getDate())),i}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 i=Bt(s.getFullYear()),r=s.getMonth(),o=(i?Ft:Lt)[r];if(!(t>o-s.getDate()))return s.setDate(s.getDate()+t),s;t-=o-s.getDate()+1,s.setDate(1),r<11?s.setMonth(r+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),i=new Date(t.getFullYear()+1,0,4),r=d(s),o=d(i);return p(r,t)<=0?p(o,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var y={"%a":function(e){return h[e.tm_wday].substring(0,3)},"%A":function(e){return h[e.tm_wday]},"%b":function(e){return c[e.tm_mon].substring(0,3)},"%B":function(e){return c[e.tm_mon]},"%C":function(e){return A((e.tm_year+1900)/100|0,2)},"%d":function(e){return A(e.tm_mday,2)},"%e":function(e){return u(e.tm_mday,2," ")},"%g":function(e){return f(e).toString().substring(2)},"%G":function(e){return f(e)},"%H":function(e){return A(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),A(t,2)},"%j":function(e){return A(e.tm_mday+function(e,t){for(var s=0,i=0;i<=t;s+=e[i++]);return s}(Bt(e.tm_year+1900)?Ft:Lt,e.tm_mon-1),3)},"%m":function(e){return A(e.tm_mon+1,2)},"%M":function(e){return A(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 A(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 A(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&&Bt(e.tm_year)||(t=1)}}else{t=52;var i=(e.tm_wday+7-e.tm_yday-1)%7;(4==i||5==i&&Bt(e.tm_year%400-1))&&t++}return A(t,2)},"%w":function(e){return e.tm_wday},"%W":function(e){var t=e.tm_yday+7-(e.tm_wday+6)%7;return A(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 l in n=n.replace(/%%/g,"\0\0"),y)n.includes(l)&&(n=n.replace(new RegExp(l,"g"),y[l](o)));var E,g,I=Nt(n=n.replace(/\0\0/g,"%"),!1);return I.length>t?0:(E=I,g=e,m.set(E,g>>>0),I.length-1)}se=r.InternalError=te(Error,"InternalError"),function(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);ae=e}(),he=r.BindingError=te(Error,"BindingError"),Be.prototype.isAliasOf=Ae,Be.prototype.clone=xe,Be.prototype.delete=Se,Be.prototype.isDeleted=we,Be.prototype.deleteLater=Me,r.getInheritedInstanceCount=ve,r.getLiveInheritedInstances=Ie,r.flushPendingDeletes=Te,r.setDelayFunction=be,ze.prototype.getPointee=je,ze.prototype.destructor=Qe,ze.prototype.argPackAdvance=8,ze.prototype.readValueFromPointer=X,ze.prototype.deleteObject=We,ze.prototype.fromWireType=Ne,Je=r.UnboundTypeError=te(Error,"UnboundTypeError"),r.count_emval_handles=nt,r.get_first_emval=at;var Ht=function(e,t,s,i){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=wt.nextInode++,this.name=t,this.mode=s,this.node_ops={},this.stream_ops={},this.rdev=i},Gt=365,kt=146;Object.defineProperties(Ht.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&kt)===kt},set:function(e){e?this.mode|=kt:this.mode&=-147}},isFolder:{get:function(){return wt.isDir(this.mode)}},isDevice:{get:function(){return wt.isChrdev(this.mode)}}}),wt.FSNode=Ht,wt.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,i=s.length,r=s.map((function(e){return e.getterReturnType})).concat(s.map((function(e){return e.setterArgumentType}))),o=t.rawConstructor,n=t.rawDestructor;re([e],r,(function(e){return s.forEach(((t,s)=>{var r=e[s],o=t.getter,n=t.getterContext,a=e[s+i],l=t.setter,h=t.setterContext;t.read=e=>r.fromWireType(o(n,e)),t.write=(e,t)=>{var s=[];l(h,e,a.toWireType(s,t)),Y(s)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(i),r=0;r>>o])},destructorFunction:null})},o:function(e,t,s,i,r,o,n,a,l,h,c,u,A){c=le(c),o=qe(r,o),a&&(a=qe(n,a)),h&&(h=qe(l,h)),A=qe(u,A);var p=$(c);Le(p,(function(){et("Cannot construct "+c+" due to unbound types",[i])})),re([e,t,s],i?[i]:[],(function(t){var s,r;t=t[0],r=i?(s=t.registeredClass).instancePrototype:Be.prototype;var n=ee(p,(function(){if(Object.getPrototypeOf(this)!==l)throw new he("Use 'new' to construct "+c);if(void 0===u.constructor_body)throw new he(c+" has no accessible constructor");var e=u.constructor_body[arguments.length];if(void 0===e)throw new he("Tried to invoke ctor of "+c+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(u.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),l=Object.create(r,{constructor:{value:n}});n.prototype=l;var u=new Ue(c,n,l,A,s,o,a,h),d=new ze(c,u,!0,!1,!1),f=new ze(c+"*",u,!1,!1,!1),m=new ze(c+" const*",u,!1,!0,!1);return ge[e]={pointerType:f,constPointerType:m},Ke(p,n),[d,f,m]}))},n:function(e,t,s,i,r,o){f(t>0);var n=tt(t,s);r=qe(i,r),re([],[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 he("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",n)},re([],n,(function(i){return i.splice(1,0,null),e.registeredClass.constructor_body[t-1]=st(s,i,null,r,o),[]})),[]}))},b:function(e,t,s,i,r,o,n,a){var l=tt(s,i);t=le(t),o=qe(r,o),re([],[e],(function(e){var i=(e=e[0]).name+"."+t;function r(){et("Cannot call "+i+" due to unbound types",l)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),a&&e.registeredClass.pureVirtualFunctions.push(t);var h=e.registeredClass.instancePrototype,c=h[t];return void 0===c||void 0===c.overloadTable&&c.className!==e.name&&c.argCount===s-2?(r.argCount=s-2,r.className=e.name,h[t]=r):(Fe(h,t,i),h[t].overloadTable[s-2]=r),re([],l,(function(r){var a=st(i,r,e,o,n);return void 0===h[t].overloadTable?(a.argCount=s-2,h[t]=a):h[t].overloadTable[s-2]=a,[]})),[]}))},O:function(e,t){ue(e,{name:t=le(t),fromWireType:function(e){var t=lt.toValue(e);return ot(e),t},toWireType:function(e,t){return lt.toHandle(t)},argPackAdvance:8,readValueFromPointer:X,destructorFunction:null})},B:function(e,t,s,i){var r=ne(s);function o(){}t=le(t),o.values={},ue(e,{name:t,constructor:o,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:ht(t,r,i),destructorFunction:null}),Le(t,o)},s:function(e,t,s){var i=ct(e,"enum");t=le(t);var r=i.constructor,o=Object.create(i.constructor.prototype,{value:{value:s},constructor:{value:ee(i.name+"_"+t,(function(){}))}});r.values[s]=o,r[t]=o},z:function(e,t,s){var i=ne(s);ue(e,{name:t=le(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:At(t,i),destructorFunction:null})},c:function(e,t,s,i,r,o){var n=tt(t,s);e=le(e),r=qe(i,r),Le(e,(function(){et("Cannot call "+e+" due to unbound types",n)}),t-1),re([],n,(function(s){var i=[s[0],null].concat(s.slice(1));return Ke(e,st(e,i,null,r,o),t-1),[]}))},r:function(e,t,s,i,r){t=le(t);var o=ne(s),n=e=>e;if(0===i){var a=32-8*s;n=e=>e<>>a}var l=t.includes("unsigned");ue(e,{name:t,fromWireType:n,toWireType:l?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:pt(t,o,0!==i),destructorFunction:null})},h:function(e,t,s){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function r(e){var t=I,s=t[(e>>=2)>>>0],r=t[e+1>>>0];return new i(t.buffer,r,s)}ue(e,{name:s=le(s),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{ignoreDuplicateRegistrations:!0})},A:function(e,t){var s="std::string"===(t=le(t));ue(e,{name:t,fromWireType:function(e){var t,i=I[e>>>2],r=e+4;if(s)for(var o=r,n=0;n<=i;++n){var a=r+n;if(n==i||0==y[a>>>0]){var l=D(o,a-o);void 0===t?t=l:(t+=String.fromCharCode(0),t+=l),o=a+1}}else{var h=new Array(i);for(n=0;n>>0]);t=h.join("")}return zt(e),t},toWireType:function(e,t){var i;t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r="string"==typeof t;r||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||ce("Cannot pass non-string to std::string"),i=s&&r?N(t):t.length;var o=jt(4+i+1),n=o+4;if(n>>>=0,I[o>>>2]=i,s&&r)C(t,y,n,i+1);else if(r)for(var a=0;a255&&(zt(n),ce("String has UTF-16 code units that do not fit in 8 bits")),y[n+a>>>0]=l}else for(a=0;a>>0]=t[a];return null!==e&&e.push(zt,o),o},argPackAdvance:8,readValueFromPointer:X,destructorFunction:function(e){zt(e)}})},v:function(e,t,s){var i,r,o,n,a;s=le(s),2===t?(i=ft,r=mt,n=yt,o=()=>g,a=1):4===t&&(i=Et,r=gt,n=vt,o=()=>I,a=2),ue(e,{name:s,fromWireType:function(e){for(var s,r=I[e>>>2],n=o(),l=e+4,h=0;h<=r;++h){var c=e+4+h*t;if(h==r||0==n[c>>>a]){var u=i(l,c-l);void 0===s?s=u:(s+=String.fromCharCode(0),s+=u),l=c+t}}return zt(e),s},toWireType:function(e,i){"string"!=typeof i&&ce("Cannot pass non-string to C++ string type "+s);var o=n(i),l=jt(4+o+t);return I[(l>>>=0)>>>2]=o>>a,r(i,l+4,o+t),null!==e&&e.push(zt,l),l},argPackAdvance:8,readValueFromPointer:X,destructorFunction:function(e){zt(e)}})},S:function(e,t,s,i,r,o){K[e]={name:le(t),rawConstructor:qe(s,i),rawDestructor:qe(r,o),elements:[]}},i:function(e,t,s,i,r,o,n,a,l){K[e].elements.push({getterReturnType:t,getter:qe(s,i),getterContext:r,setterArgumentType:o,setter:qe(n,a),setterContext:l})},q:function(e,t,s,i,r,o){oe[e]={name:le(t),rawConstructor:qe(s,i),rawDestructor:qe(r,o),fields:[]}},e:function(e,t,s,i,r,o,n,a,l,h){oe[e].fields.push({fieldName:le(t),getterReturnType:s,getter:qe(i,r),getterContext:o,setterArgumentType:n,setter:qe(a,l),setterContext:h})},Q:function(e,t){ue(e,{isVoid:!0,name:t=le(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},m:function(e,t,s){e=lt.toValue(e),t=ct(t,"emval::as");var i=[],r=lt.toHandle(i);return I[s>>>2]=r,t.toWireType(i,e)},x:function(e,t,s,i){e=lt.toValue(e);for(var r=function(e,t){for(var s=new Array(e),i=0;i>>2],"parameter "+i);return s}(t,s),o=new Array(t),n=0;n4&&(rt[e].refcount+=1)},U:function(e,t){return(e=lt.toValue(e))instanceof(t=lt.toValue(t))},w:function(e){return"number"==typeof(e=lt.toValue(e))},C:function(e){return"string"==typeof(e=lt.toValue(e))},T:function(){return lt.toHandle([])},g:function(e){return lt.toHandle(_t(e))},u:function(){return lt.toHandle({})},l:function(e){Y(lt.toValue(e)),ot(e)},j:function(e,t,s){e=lt.toValue(e),t=lt.toValue(t),s=lt.toValue(s),e[t]=s},d:function(e,t){var s=(e=ct(e,"_emval_take_value")).readValueFromPointer(t);return lt.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,i=y.length,r=4294901760;if((e>>>=0)>r)return!1;for(var o=1;o<=4;o*=2){var n=i*(1+.2/o);if(n=Math.min(n,e+100663296),Pt(Math.min(r,(t=Math.max(e,n))+((s=65536)-t%s)%s)))return!0}return!1},H:function(e,t){var s=0;return Rt().forEach((function(i,r){var o=t+s;I[e+4*r>>>2]=o,function(e,t,s){for(var i=0;i>>0]=e.charCodeAt(i);s||(m[t>>>0]=0)}(i,o),s+=i.length+1})),0},I:function(e,t){var s=Rt();I[e>>>2]=s.length;var i=0;return s.forEach((function(e){i+=e.length+1})),I[t>>>2]=i,0},J:function(e){try{var t=Mt.getStreamFromFD(e);return wt.close(t),0}catch(e){if(void 0===wt||!(e instanceof wt.ErrnoError))throw e;return e.errno}},K:function(e,t,s,i){try{var r=function(e,t,s,i){for(var r=0,o=0;o>>2],a=I[t+4>>>2];t+=8;var l=wt.read(e,m,n,a,i);if(l<0)return-1;if(r+=l,l>>2]=r,0}catch(e){if(void 0===wt||!(e instanceof wt.ErrnoError))throw e;return e.errno}},E:function(e,t,s,i,r){try{var o=(l=s)+2097152>>>0<4194305-!!(a=t)?(a>>>0)+4294967296*l:NaN;if(isNaN(o))return 61;var n=Mt.getStreamFromFD(e);return wt.llseek(n,o,i),M=[n.position>>>0,(w=n.position,+Math.abs(w)>=1?w>0?(0|Math.min(+Math.floor(w/4294967296),4294967295))>>>0:~~+Math.ceil((w-+(~~w>>>0))/4294967296)>>>0:0)],v[r>>>2]=M[0],v[r+4>>>2]=M[1],n.getdents&&0===o&&0===i&&(n.getdents=null),0}catch(e){if(void 0===wt||!(e instanceof wt.ErrnoError))throw e;return e.errno}var a,l},M:function(e,t,s,i){try{var r=function(e,t,s,i){for(var r=0,o=0;o>>2],a=I[t+4>>>2];t+=8;var l=wt.write(e,m,n,a,i);if(l<0)return-1;r+=l,void 0!==i&&(i+=l)}return r}(Mt.getStreamFromFD(e),t,s);return I[i>>>2]=r,0}catch(e){if(void 0===wt||!(e instanceof wt.ErrnoError))throw e;return e.errno}},G:function(e,t,s,i,r){return Ut(e,t,s,i)}};!function(){var e={a:Vt};function t(e,t){var s,i=e.exports;r.asm=i,u=r.asm.V,O(),P=r.asm.X,s=r.asm.W,F.unshift(s),k()}function s(e){t(e.instance)}function o(t){return(c||"function"!=typeof fetch?Promise.resolve().then((function(){return Q(x)})):fetch(x,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+x+"'";return e.arrayBuffer()})).catch((function(){return Q(x)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){p("failed to asynchronously prepare wasm: "+e),V(e)}))}if(G(),r.instantiateWasm)try{return r.instantiateWasm(e,t)}catch(e){p("Module.instantiateWasm callback failed with error: "+e),i(e)}(c||"function"!=typeof WebAssembly.instantiateStreaming||j(x)||"function"!=typeof fetch?o(s):fetch(x,{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"),o(s)}))}))).catch(i)}();var jt=function(){return(jt=r.asm.Y).apply(null,arguments)},Qt=r.___getTypeName=function(){return(Qt=r.___getTypeName=r.asm.Z).apply(null,arguments)};r.__embind_initialize_bindings=function(){return(r.__embind_initialize_bindings=r.asm._).apply(null,arguments)};var Wt,zt=function(){return(zt=r.asm.$).apply(null,arguments)},Kt=function(){return(Kt=r.asm.aa).apply(null,arguments)};function Yt(){function e(){Wt||(Wt=!0,r.calledRun=!0,d||(r.noFSInit||wt.init.initialized||wt.init(),wt.ignorePermissions=!1,W(F),t(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)e=r.postRun.shift(),L.unshift(e);var e;W(L)}()))}U>0||(function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)e=r.preRun.shift(),B.unshift(e);var e;W(B)}(),U>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),e()}),1)):e()))}if(r.dynCall_jiji=function(){return(r.dynCall_jiji=r.asm.ba).apply(null,arguments)},r.dynCall_viijii=function(){return(r.dynCall_viijii=r.asm.ca).apply(null,arguments)},r.dynCall_iiiiij=function(){return(r.dynCall_iiiiij=r.asm.da).apply(null,arguments)},r.dynCall_iiiiijj=function(){return(r.dynCall_iiiiijj=r.asm.ea).apply(null,arguments)},r.dynCall_iiiiiijj=function(){return(r.dynCall_iiiiiijj=r.asm.fa).apply(null,arguments)},H=function e(){Wt||Yt(),Wt||(H=e)},r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Yt(),e.ready});"object"==typeof e&&"object"==typeof t?t.exports=i:"function"==typeof define&&define.amd?define([],(function(){return i})):"object"==typeof e&&(e.WebIFCWasm=i)}}),_I=class{constructor(e){this.value=e,this.type=5}},TI=class{constructor(e){this.expressID=e,this.type=0}};if((pI=AI||(AI={})).IFC2X3="IFC2X3",pI.IFC4="IFC4",pI.IFC4X3="IFC4X3",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 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 r{}r.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},r.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},r.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},r.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},r.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},r.USERDEFINED={type:3,value:"USERDEFINED"},r.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=r;class o{}o.OFFICE={type:3,value:"OFFICE"},o.SITE={type:3,value:"SITE"},o.HOME={type:3,value:"HOME"},o.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},o.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=o;class n{}n.AHEAD={type:3,value:"AHEAD"},n.BEHIND={type:3,value:"BEHIND"},e.IfcAheadOrBehind=n;class a{}a.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},a.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},a.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=a;class l{}l.GRILLE={type:3,value:"GRILLE"},l.REGISTER={type:3,value:"REGISTER"},l.DIFFUSER={type:3,value:"DIFFUSER"},l.EYEBALL={type:3,value:"EYEBALL"},l.IRIS={type:3,value:"IRIS"},l.LINEARGRILLE={type:3,value:"LINEARGRILLE"},l.LINEARDIFFUSER={type:3,value:"LINEARDIFFUSER"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=l;class h{}h.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},h.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},h.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},h.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},h.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},h.HEATPIPE={type:3,value:"HEATPIPE"},h.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},h.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},h.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=h;class c{}c.BELL={type:3,value:"BELL"},c.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},c.LIGHT={type:3,value:"LIGHT"},c.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},c.SIREN={type:3,value:"SIREN"},c.WHISTLE={type:3,value:"WHISTLE"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=c;class u{}u.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},u.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},u.LOADING_3D={type:3,value:"LOADING_3D"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=u;class A{}A.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},A.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},A.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},A.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},A.USERDEFINED={type:3,value:"USERDEFINED"},A.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=A;class p{}p.ADD={type:3,value:"ADD"},p.DIVIDE={type:3,value:"DIVIDE"},p.MULTIPLY={type:3,value:"MULTIPLY"},p.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=p;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 m{}m.BEAM={type:3,value:"BEAM"},m.JOIST={type:3,value:"JOIST"},m.LINTEL={type:3,value:"LINTEL"},m.T_BEAM={type:3,value:"T_BEAM"},m.USERDEFINED={type:3,value:"USERDEFINED"},m.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=m;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 E{}E.WATER={type:3,value:"WATER"},E.STEAM={type:3,value:"STEAM"},E.USERDEFINED={type:3,value:"USERDEFINED"},E.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=E;class g{}g.UNION={type:3,value:"UNION"},g.INTERSECTION={type:3,value:"INTERSECTION"},g.DIFFERENCE={type:3,value:"DIFFERENCE"},e.IfcBooleanOperator=g;class v{}v.USERDEFINED={type:3,value:"USERDEFINED"},v.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementProxyTypeEnum=v;class I{}I.BEND={type:3,value:"BEND"},I.CROSS={type:3,value:"CROSS"},I.REDUCER={type:3,value:"REDUCER"},I.TEE={type:3,value:"TEE"},I.USERDEFINED={type:3,value:"USERDEFINED"},I.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=I;class _{}_.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},_.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},_.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},_.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=_;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 P{}P.NOCHANGE={type:3,value:"NOCHANGE"},P.MODIFIED={type:3,value:"MODIFIED"},P.ADDED={type:3,value:"ADDED"},P.DELETED={type:3,value:"DELETED"},P.MODIFIEDADDED={type:3,value:"MODIFIEDADDED"},P.MODIFIEDDELETED={type:3,value:"MODIFIEDDELETED"},e.IfcChangeActionEnum=P;class b{}b.AIRCOOLED={type:3,value:"AIRCOOLED"},b.WATERCOOLED={type:3,value:"WATERCOOLED"},b.HEATRECOVERY={type:3,value:"HEATRECOVERY"},b.USERDEFINED={type:3,value:"USERDEFINED"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=b;class R{}R.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},R.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},R.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},R.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},R.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},R.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=R;class D{}D.COLUMN={type:3,value:"COLUMN"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=D;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 N{}N.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},N.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},N.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},N.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},N.AIRCOOLED={type:3,value:"AIRCOOLED"},N.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=N;class O{}O.ATPATH={type:3,value:"ATPATH"},O.ATSTART={type:3,value:"ATSTART"},O.ATEND={type:3,value:"ATEND"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=O;class x{}x.HARD={type:3,value:"HARD"},x.SOFT={type:3,value:"SOFT"},x.ADVISORY={type:3,value:"ADVISORY"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=x;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 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 M{}M.NATURALDRAFT={type:3,value:"NATURALDRAFT"},M.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},M.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=M;class B{}B.BUDGET={type:3,value:"BUDGET"},B.COSTPLAN={type:3,value:"COSTPLAN"},B.ESTIMATE={type:3,value:"ESTIMATE"},B.TENDER={type:3,value:"TENDER"},B.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},B.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},B.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},B.USERDEFINED={type:3,value:"USERDEFINED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=B;class F{}F.CEILING={type:3,value:"CEILING"},F.FLOORING={type:3,value:"FLOORING"},F.CLADDING={type:3,value:"CLADDING"},F.ROOFING={type:3,value:"ROOFING"},F.INSULATION={type:3,value:"INSULATION"},F.MEMBRANE={type:3,value:"MEMBRANE"},F.SLEEVING={type:3,value:"SLEEVING"},F.WRAPPING={type:3,value:"WRAPPING"},F.USERDEFINED={type:3,value:"USERDEFINED"},F.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=F;class L{}L.AED={type:3,value:"AED"},L.AES={type:3,value:"AES"},L.ATS={type:3,value:"ATS"},L.AUD={type:3,value:"AUD"},L.BBD={type:3,value:"BBD"},L.BEG={type:3,value:"BEG"},L.BGL={type:3,value:"BGL"},L.BHD={type:3,value:"BHD"},L.BMD={type:3,value:"BMD"},L.BND={type:3,value:"BND"},L.BRL={type:3,value:"BRL"},L.BSD={type:3,value:"BSD"},L.BWP={type:3,value:"BWP"},L.BZD={type:3,value:"BZD"},L.CAD={type:3,value:"CAD"},L.CBD={type:3,value:"CBD"},L.CHF={type:3,value:"CHF"},L.CLP={type:3,value:"CLP"},L.CNY={type:3,value:"CNY"},L.CYS={type:3,value:"CYS"},L.CZK={type:3,value:"CZK"},L.DDP={type:3,value:"DDP"},L.DEM={type:3,value:"DEM"},L.DKK={type:3,value:"DKK"},L.EGL={type:3,value:"EGL"},L.EST={type:3,value:"EST"},L.EUR={type:3,value:"EUR"},L.FAK={type:3,value:"FAK"},L.FIM={type:3,value:"FIM"},L.FJD={type:3,value:"FJD"},L.FKP={type:3,value:"FKP"},L.FRF={type:3,value:"FRF"},L.GBP={type:3,value:"GBP"},L.GIP={type:3,value:"GIP"},L.GMD={type:3,value:"GMD"},L.GRX={type:3,value:"GRX"},L.HKD={type:3,value:"HKD"},L.HUF={type:3,value:"HUF"},L.ICK={type:3,value:"ICK"},L.IDR={type:3,value:"IDR"},L.ILS={type:3,value:"ILS"},L.INR={type:3,value:"INR"},L.IRP={type:3,value:"IRP"},L.ITL={type:3,value:"ITL"},L.JMD={type:3,value:"JMD"},L.JOD={type:3,value:"JOD"},L.JPY={type:3,value:"JPY"},L.KES={type:3,value:"KES"},L.KRW={type:3,value:"KRW"},L.KWD={type:3,value:"KWD"},L.KYD={type:3,value:"KYD"},L.LKR={type:3,value:"LKR"},L.LUF={type:3,value:"LUF"},L.MTL={type:3,value:"MTL"},L.MUR={type:3,value:"MUR"},L.MXN={type:3,value:"MXN"},L.MYR={type:3,value:"MYR"},L.NLG={type:3,value:"NLG"},L.NZD={type:3,value:"NZD"},L.OMR={type:3,value:"OMR"},L.PGK={type:3,value:"PGK"},L.PHP={type:3,value:"PHP"},L.PKR={type:3,value:"PKR"},L.PLN={type:3,value:"PLN"},L.PTN={type:3,value:"PTN"},L.QAR={type:3,value:"QAR"},L.RUR={type:3,value:"RUR"},L.SAR={type:3,value:"SAR"},L.SCR={type:3,value:"SCR"},L.SEK={type:3,value:"SEK"},L.SGD={type:3,value:"SGD"},L.SKP={type:3,value:"SKP"},L.THB={type:3,value:"THB"},L.TRL={type:3,value:"TRL"},L.TTD={type:3,value:"TTD"},L.TWD={type:3,value:"TWD"},L.USD={type:3,value:"USD"},L.VEB={type:3,value:"VEB"},L.VND={type:3,value:"VND"},L.XEU={type:3,value:"XEU"},L.ZAR={type:3,value:"ZAR"},L.ZWD={type:3,value:"ZWD"},L.NOK={type:3,value:"NOK"},e.IfcCurrencyEnum=L;class U{}U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=U;class H{}H.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},H.FIREDAMPER={type:3,value:"FIREDAMPER"},H.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},H.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},H.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},H.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},H.BLASTDAMPER={type:3,value:"BLASTDAMPER"},H.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},H.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},H.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},H.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=H;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 k{}k.ANGULARVELOCITYUNIT={type:3,value:"ANGULARVELOCITYUNIT"},k.COMPOUNDPLANEANGLEUNIT={type:3,value:"COMPOUNDPLANEANGLEUNIT"},k.DYNAMICVISCOSITYUNIT={type:3,value:"DYNAMICVISCOSITYUNIT"},k.HEATFLUXDENSITYUNIT={type:3,value:"HEATFLUXDENSITYUNIT"},k.INTEGERCOUNTRATEUNIT={type:3,value:"INTEGERCOUNTRATEUNIT"},k.ISOTHERMALMOISTURECAPACITYUNIT={type:3,value:"ISOTHERMALMOISTURECAPACITYUNIT"},k.KINEMATICVISCOSITYUNIT={type:3,value:"KINEMATICVISCOSITYUNIT"},k.LINEARVELOCITYUNIT={type:3,value:"LINEARVELOCITYUNIT"},k.MASSDENSITYUNIT={type:3,value:"MASSDENSITYUNIT"},k.MASSFLOWRATEUNIT={type:3,value:"MASSFLOWRATEUNIT"},k.MOISTUREDIFFUSIVITYUNIT={type:3,value:"MOISTUREDIFFUSIVITYUNIT"},k.MOLECULARWEIGHTUNIT={type:3,value:"MOLECULARWEIGHTUNIT"},k.SPECIFICHEATCAPACITYUNIT={type:3,value:"SPECIFICHEATCAPACITYUNIT"},k.THERMALADMITTANCEUNIT={type:3,value:"THERMALADMITTANCEUNIT"},k.THERMALCONDUCTANCEUNIT={type:3,value:"THERMALCONDUCTANCEUNIT"},k.THERMALRESISTANCEUNIT={type:3,value:"THERMALRESISTANCEUNIT"},k.THERMALTRANSMITTANCEUNIT={type:3,value:"THERMALTRANSMITTANCEUNIT"},k.VAPORPERMEABILITYUNIT={type:3,value:"VAPORPERMEABILITYUNIT"},k.VOLUMETRICFLOWRATEUNIT={type:3,value:"VOLUMETRICFLOWRATEUNIT"},k.ROTATIONALFREQUENCYUNIT={type:3,value:"ROTATIONALFREQUENCYUNIT"},k.TORQUEUNIT={type:3,value:"TORQUEUNIT"},k.MOMENTOFINERTIAUNIT={type:3,value:"MOMENTOFINERTIAUNIT"},k.LINEARMOMENTUNIT={type:3,value:"LINEARMOMENTUNIT"},k.LINEARFORCEUNIT={type:3,value:"LINEARFORCEUNIT"},k.PLANARFORCEUNIT={type:3,value:"PLANARFORCEUNIT"},k.MODULUSOFELASTICITYUNIT={type:3,value:"MODULUSOFELASTICITYUNIT"},k.SHEARMODULUSUNIT={type:3,value:"SHEARMODULUSUNIT"},k.LINEARSTIFFNESSUNIT={type:3,value:"LINEARSTIFFNESSUNIT"},k.ROTATIONALSTIFFNESSUNIT={type:3,value:"ROTATIONALSTIFFNESSUNIT"},k.MODULUSOFSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFSUBGRADEREACTIONUNIT"},k.ACCELERATIONUNIT={type:3,value:"ACCELERATIONUNIT"},k.CURVATUREUNIT={type:3,value:"CURVATUREUNIT"},k.HEATINGVALUEUNIT={type:3,value:"HEATINGVALUEUNIT"},k.IONCONCENTRATIONUNIT={type:3,value:"IONCONCENTRATIONUNIT"},k.LUMINOUSINTENSITYDISTRIBUTIONUNIT={type:3,value:"LUMINOUSINTENSITYDISTRIBUTIONUNIT"},k.MASSPERLENGTHUNIT={type:3,value:"MASSPERLENGTHUNIT"},k.MODULUSOFLINEARSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFLINEARSUBGRADEREACTIONUNIT"},k.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT={type:3,value:"MODULUSOFROTATIONALSUBGRADEREACTIONUNIT"},k.PHUNIT={type:3,value:"PHUNIT"},k.ROTATIONALMASSUNIT={type:3,value:"ROTATIONALMASSUNIT"},k.SECTIONAREAINTEGRALUNIT={type:3,value:"SECTIONAREAINTEGRALUNIT"},k.SECTIONMODULUSUNIT={type:3,value:"SECTIONMODULUSUNIT"},k.SOUNDPOWERUNIT={type:3,value:"SOUNDPOWERUNIT"},k.SOUNDPRESSUREUNIT={type:3,value:"SOUNDPRESSUREUNIT"},k.TEMPERATUREGRADIENTUNIT={type:3,value:"TEMPERATUREGRADIENTUNIT"},k.THERMALEXPANSIONCOEFFICIENTUNIT={type:3,value:"THERMALEXPANSIONCOEFFICIENTUNIT"},k.WARPINGCONSTANTUNIT={type:3,value:"WARPINGCONSTANTUNIT"},k.WARPINGMOMENTUNIT={type:3,value:"WARPINGMOMENTUNIT"},k.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcDerivedUnitEnum=k;class V{}V.ORIGIN={type:3,value:"ORIGIN"},V.TARGET={type:3,value:"TARGET"},e.IfcDimensionExtentUsage=V;class j{}j.POSITIVE={type:3,value:"POSITIVE"},j.NEGATIVE={type:3,value:"NEGATIVE"},e.IfcDirectionSenseEnum=j;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 Z{}Z.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Z.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Z.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Z.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Z.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Z.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Z.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Z.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Z.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Z.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Z.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Z.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Z.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Z.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Z.REVOLVING={type:3,value:"REVOLVING"},Z.ROLLINGUP={type:3,value:"ROLLINGUP"},Z.USERDEFINED={type:3,value:"USERDEFINED"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=Z;class q{}q.BEND={type:3,value:"BEND"},q.CONNECTOR={type:3,value:"CONNECTOR"},q.ENTRY={type:3,value:"ENTRY"},q.EXIT={type:3,value:"EXIT"},q.JUNCTION={type:3,value:"JUNCTION"},q.OBSTRUCTION={type:3,value:"OBSTRUCTION"},q.TRANSITION={type:3,value:"TRANSITION"},q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=q;class J{}J.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},J.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},J.USERDEFINED={type:3,value:"USERDEFINED"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=J;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 ie{}ie.BATTERY={type:3,value:"BATTERY"},ie.CAPACITORBANK={type:3,value:"CAPACITORBANK"},ie.HARMONICFILTER={type:3,value:"HARMONICFILTER"},ie.INDUCTORBANK={type:3,value:"INDUCTORBANK"},ie.UPS={type:3,value:"UPS"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=ie;class re{}re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=re;class oe{}oe.ELECTRICPOINTHEATER={type:3,value:"ELECTRICPOINTHEATER"},oe.ELECTRICCABLEHEATER={type:3,value:"ELECTRICCABLEHEATER"},oe.ELECTRICMATHEATER={type:3,value:"ELECTRICMATHEATER"},oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricHeaterTypeEnum=oe;class ne{}ne.DC={type:3,value:"DC"},ne.INDUCTION={type:3,value:"INDUCTION"},ne.POLYPHASE={type:3,value:"POLYPHASE"},ne.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},ne.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=ne;class ae{}ae.TIMECLOCK={type:3,value:"TIMECLOCK"},ae.TIMEDELAY={type:3,value:"TIMEDELAY"},ae.RELAY={type:3,value:"RELAY"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricTimeControlTypeEnum=ae;class le{}le.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},le.ARCH={type:3,value:"ARCH"},le.BEAM_GRID={type:3,value:"BEAM_GRID"},le.BRACED_FRAME={type:3,value:"BRACED_FRAME"},le.GIRDER={type:3,value:"GIRDER"},le.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},le.RIGID_FRAME={type:3,value:"RIGID_FRAME"},le.SLAB_FIELD={type:3,value:"SLAB_FIELD"},le.TRUSS={type:3,value:"TRUSS"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=le;class he{}he.COMPLEX={type:3,value:"COMPLEX"},he.ELEMENT={type:3,value:"ELEMENT"},he.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=he;class ce{}ce.PRIMARY={type:3,value:"PRIMARY"},ce.SECONDARY={type:3,value:"SECONDARY"},ce.TERTIARY={type:3,value:"TERTIARY"},ce.AUXILIARY={type:3,value:"AUXILIARY"},ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEnergySequenceEnum=ce;class ue{}ue.COMBINEDVALUE={type:3,value:"COMBINEDVALUE"},ue.DISPOSAL={type:3,value:"DISPOSAL"},ue.EXTRACTION={type:3,value:"EXTRACTION"},ue.INSTALLATION={type:3,value:"INSTALLATION"},ue.MANUFACTURE={type:3,value:"MANUFACTURE"},ue.TRANSPORTATION={type:3,value:"TRANSPORTATION"},ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEnvironmentalImpactCategoryEnum=ue;class Ae{}Ae.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},Ae.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},Ae.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},Ae.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},Ae.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},Ae.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},Ae.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},Ae.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},Ae.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=Ae;class pe{}pe.DIRECTEXPANSIONSHELLANDTUBE={type:3,value:"DIRECTEXPANSIONSHELLANDTUBE"},pe.DIRECTEXPANSIONTUBEINTUBE={type:3,value:"DIRECTEXPANSIONTUBEINTUBE"},pe.DIRECTEXPANSIONBRAZEDPLATE={type:3,value:"DIRECTEXPANSIONBRAZEDPLATE"},pe.FLOODEDSHELLANDTUBE={type:3,value:"FLOODEDSHELLANDTUBE"},pe.SHELLANDCOIL={type:3,value:"SHELLANDCOIL"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporatorTypeEnum=pe;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 me{}me.BREECHINGINLET={type:3,value:"BREECHINGINLET"},me.FIREHYDRANT={type:3,value:"FIREHYDRANT"},me.HOSEREEL={type:3,value:"HOSEREEL"},me.SPRINKLER={type:3,value:"SPRINKLER"},me.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=me;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 Ee{}Ee.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},Ee.THERMOMETER={type:3,value:"THERMOMETER"},Ee.AMMETER={type:3,value:"AMMETER"},Ee.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},Ee.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},Ee.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},Ee.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},Ee.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=Ee;class ge{}ge.ELECTRICMETER={type:3,value:"ELECTRICMETER"},ge.ENERGYMETER={type:3,value:"ENERGYMETER"},ge.FLOWMETER={type:3,value:"FLOWMETER"},ge.GASMETER={type:3,value:"GASMETER"},ge.OILMETER={type:3,value:"OILMETER"},ge.WATERMETER={type:3,value:"WATERMETER"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=ge;class ve{}ve.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},ve.PAD_FOOTING={type:3,value:"PAD_FOOTING"},ve.PILE_CAP={type:3,value:"PILE_CAP"},ve.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=ve;class Ie{}Ie.GASAPPLIANCE={type:3,value:"GASAPPLIANCE"},Ie.GASBOOSTER={type:3,value:"GASBOOSTER"},Ie.GASBURNER={type:3,value:"GASBURNER"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGasTerminalTypeEnum=Ie;class _e{}_e.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},_e.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},_e.MODEL_VIEW={type:3,value:"MODEL_VIEW"},_e.PLAN_VIEW={type:3,value:"PLAN_VIEW"},_e.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},_e.SECTION_VIEW={type:3,value:"SECTION_VIEW"},_e.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=_e;class Te{}Te.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},Te.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=Te;class Pe{}Pe.PLATE={type:3,value:"PLATE"},Pe.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},Pe.USERDEFINED={type:3,value:"USERDEFINED"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=Pe;class be{}be.STEAMINJECTION={type:3,value:"STEAMINJECTION"},be.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},be.ADIABATICPAN={type:3,value:"ADIABATICPAN"},be.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},be.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},be.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},be.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},be.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},be.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},be.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},be.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},be.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},be.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},be.USERDEFINED={type:3,value:"USERDEFINED"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=be;class Re{}Re.INTERNAL={type:3,value:"INTERNAL"},Re.EXTERNAL={type:3,value:"EXTERNAL"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInternalOrExternalEnum=Re;class De{}De.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},De.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},De.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=De;class Ce{}Ce.USERDEFINED={type:3,value:"USERDEFINED"},Ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=Ce;class Ne{}Ne.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},Ne.FLUORESCENT={type:3,value:"FLUORESCENT"},Ne.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},Ne.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},Ne.METALHALIDE={type:3,value:"METALHALIDE"},Ne.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=Ne;class Oe{}Oe.AXIS1={type:3,value:"AXIS1"},Oe.AXIS2={type:3,value:"AXIS2"},Oe.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=Oe;class xe{}xe.TYPE_A={type:3,value:"TYPE_A"},xe.TYPE_B={type:3,value:"TYPE_B"},xe.TYPE_C={type:3,value:"TYPE_C"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=xe;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 we{}we.POINTSOURCE={type:3,value:"POINTSOURCE"},we.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=we;class Me{}Me.LOAD_GROUP={type:3,value:"LOAD_GROUP"},Me.LOAD_CASE={type:3,value:"LOAD_CASE"},Me.LOAD_COMBINATION_GROUP={type:3,value:"LOAD_COMBINATION_GROUP"},Me.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},Me.USERDEFINED={type:3,value:"USERDEFINED"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=Me;class Be{}Be.LOGICALAND={type:3,value:"LOGICALAND"},Be.LOGICALOR={type:3,value:"LOGICALOR"},e.IfcLogicalOperatorEnum=Be;class Fe{}Fe.BRACE={type:3,value:"BRACE"},Fe.CHORD={type:3,value:"CHORD"},Fe.COLLAR={type:3,value:"COLLAR"},Fe.MEMBER={type:3,value:"MEMBER"},Fe.MULLION={type:3,value:"MULLION"},Fe.PLATE={type:3,value:"PLATE"},Fe.POST={type:3,value:"POST"},Fe.PURLIN={type:3,value:"PURLIN"},Fe.RAFTER={type:3,value:"RAFTER"},Fe.STRINGER={type:3,value:"STRINGER"},Fe.STRUT={type:3,value:"STRUT"},Fe.STUD={type:3,value:"STUD"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=Fe;class Le{}Le.BELTDRIVE={type:3,value:"BELTDRIVE"},Le.COUPLING={type:3,value:"COUPLING"},Le.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=Le;class Ue{}Ue.NULL={type:3,value:"NULL"},e.IfcNullStyle=Ue;class He{}He.PRODUCT={type:3,value:"PRODUCT"},He.PROCESS={type:3,value:"PROCESS"},He.CONTROL={type:3,value:"CONTROL"},He.RESOURCE={type:3,value:"RESOURCE"},He.ACTOR={type:3,value:"ACTOR"},He.GROUP={type:3,value:"GROUP"},He.PROJECT={type:3,value:"PROJECT"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=He;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 ke{}ke.ASSIGNEE={type:3,value:"ASSIGNEE"},ke.ASSIGNOR={type:3,value:"ASSIGNOR"},ke.LESSEE={type:3,value:"LESSEE"},ke.LESSOR={type:3,value:"LESSOR"},ke.LETTINGAGENT={type:3,value:"LETTINGAGENT"},ke.OWNER={type:3,value:"OWNER"},ke.TENANT={type:3,value:"TENANT"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=ke;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 je{}je.GRILL={type:3,value:"GRILL"},je.LOUVER={type:3,value:"LOUVER"},je.SCREEN={type:3,value:"SCREEN"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermeableCoveringOperationEnum=je;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 Ze{}Ze.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},Ze.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},Ze.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},Ze.CALIBRATION={type:3,value:"CALIBRATION"},Ze.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},Ze.SHUTDOWN={type:3,value:"SHUTDOWN"},Ze.STARTUP={type:3,value:"STARTUP"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=Ze;class qe{}qe.CURVE={type:3,value:"CURVE"},qe.AREA={type:3,value:"AREA"},e.IfcProfileTypeEnum=qe;class Je{}Je.CHANGE={type:3,value:"CHANGE"},Je.MAINTENANCE={type:3,value:"MAINTENANCE"},Je.MOVE={type:3,value:"MOVE"},Je.PURCHASE={type:3,value:"PURCHASE"},Je.WORK={type:3,value:"WORK"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectOrderRecordTypeEnum=Je;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 it{}it.CIRCULATOR={type:3,value:"CIRCULATOR"},it.ENDSUCTION={type:3,value:"ENDSUCTION"},it.SPLITCASE={type:3,value:"SPLITCASE"},it.VERTICALINLINE={type:3,value:"VERTICALINLINE"},it.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=it;class rt{}rt.HANDRAIL={type:3,value:"HANDRAIL"},rt.GUARDRAIL={type:3,value:"GUARDRAIL"},rt.BALUSTRADE={type:3,value:"BALUSTRADE"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=rt;class ot{}ot.STRAIGHT={type:3,value:"STRAIGHT"},ot.SPIRAL={type:3,value:"SPIRAL"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=ot;class nt{}nt.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},nt.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},nt.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},nt.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},nt.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},nt.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=nt;class at{}at.BLINN={type:3,value:"BLINN"},at.FLAT={type:3,value:"FLAT"},at.GLASS={type:3,value:"GLASS"},at.MATT={type:3,value:"MATT"},at.METAL={type:3,value:"METAL"},at.MIRROR={type:3,value:"MIRROR"},at.PHONG={type:3,value:"PHONG"},at.PLASTIC={type:3,value:"PLASTIC"},at.STRAUSS={type:3,value:"STRAUSS"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=at;class lt{}lt.MAIN={type:3,value:"MAIN"},lt.SHEAR={type:3,value:"SHEAR"},lt.LIGATURE={type:3,value:"LIGATURE"},lt.STUD={type:3,value:"STUD"},lt.PUNCHING={type:3,value:"PUNCHING"},lt.EDGE={type:3,value:"EDGE"},lt.RING={type:3,value:"RING"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=lt;class ht{}ht.PLAIN={type:3,value:"PLAIN"},ht.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=ht;class ct{}ct.CONSUMED={type:3,value:"CONSUMED"},ct.PARTIALLYCONSUMED={type:3,value:"PARTIALLYCONSUMED"},ct.NOTCONSUMED={type:3,value:"NOTCONSUMED"},ct.OCCUPIED={type:3,value:"OCCUPIED"},ct.PARTIALLYOCCUPIED={type:3,value:"PARTIALLYOCCUPIED"},ct.NOTOCCUPIED={type:3,value:"NOTOCCUPIED"},ct.USERDEFINED={type:3,value:"USERDEFINED"},ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcResourceConsumptionEnum=ct;class ut{}ut.DIRECTION_X={type:3,value:"DIRECTION_X"},ut.DIRECTION_Y={type:3,value:"DIRECTION_Y"},e.IfcRibPlateDirectionEnum=ut;class At{}At.SUPPLIER={type:3,value:"SUPPLIER"},At.MANUFACTURER={type:3,value:"MANUFACTURER"},At.CONTRACTOR={type:3,value:"CONTRACTOR"},At.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},At.ARCHITECT={type:3,value:"ARCHITECT"},At.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},At.COSTENGINEER={type:3,value:"COSTENGINEER"},At.CLIENT={type:3,value:"CLIENT"},At.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},At.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},At.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},At.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},At.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},At.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},At.CIVILENGINEER={type:3,value:"CIVILENGINEER"},At.COMISSIONINGENGINEER={type:3,value:"COMISSIONINGENGINEER"},At.ENGINEER={type:3,value:"ENGINEER"},At.OWNER={type:3,value:"OWNER"},At.CONSULTANT={type:3,value:"CONSULTANT"},At.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},At.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},At.RESELLER={type:3,value:"RESELLER"},At.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=At;class pt{}pt.FLAT_ROOF={type:3,value:"FLAT_ROOF"},pt.SHED_ROOF={type:3,value:"SHED_ROOF"},pt.GABLE_ROOF={type:3,value:"GABLE_ROOF"},pt.HIP_ROOF={type:3,value:"HIP_ROOF"},pt.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},pt.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},pt.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},pt.BARREL_ROOF={type:3,value:"BARREL_ROOF"},pt.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},pt.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},pt.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},pt.DOME_ROOF={type:3,value:"DOME_ROOF"},pt.FREEFORM={type:3,value:"FREEFORM"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=pt;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 mt{}mt.BATH={type:3,value:"BATH"},mt.BIDET={type:3,value:"BIDET"},mt.CISTERN={type:3,value:"CISTERN"},mt.SHOWER={type:3,value:"SHOWER"},mt.SINK={type:3,value:"SINK"},mt.SANITARYFOUNTAIN={type:3,value:"SANITARYFOUNTAIN"},mt.TOILETPAN={type:3,value:"TOILETPAN"},mt.URINAL={type:3,value:"URINAL"},mt.WASHHANDBASIN={type:3,value:"WASHHANDBASIN"},mt.WCSEAT={type:3,value:"WCSEAT"},mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSanitaryTerminalTypeEnum=mt;class yt{}yt.UNIFORM={type:3,value:"UNIFORM"},yt.TAPERED={type:3,value:"TAPERED"},e.IfcSectionTypeEnum=yt;class Et{}Et.CO2SENSOR={type:3,value:"CO2SENSOR"},Et.FIRESENSOR={type:3,value:"FIRESENSOR"},Et.FLOWSENSOR={type:3,value:"FLOWSENSOR"},Et.GASSENSOR={type:3,value:"GASSENSOR"},Et.HEATSENSOR={type:3,value:"HEATSENSOR"},Et.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},Et.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},Et.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},Et.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},Et.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},Et.SMOKESENSOR={type:3,value:"SMOKESENSOR"},Et.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},Et.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},Et.USERDEFINED={type:3,value:"USERDEFINED"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=Et;class gt{}gt.START_START={type:3,value:"START_START"},gt.START_FINISH={type:3,value:"START_FINISH"},gt.FINISH_START={type:3,value:"FINISH_START"},gt.FINISH_FINISH={type:3,value:"FINISH_FINISH"},gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=gt;class vt{}vt.A_QUALITYOFCOMPONENTS={type:3,value:"A_QUALITYOFCOMPONENTS"},vt.B_DESIGNLEVEL={type:3,value:"B_DESIGNLEVEL"},vt.C_WORKEXECUTIONLEVEL={type:3,value:"C_WORKEXECUTIONLEVEL"},vt.D_INDOORENVIRONMENT={type:3,value:"D_INDOORENVIRONMENT"},vt.E_OUTDOORENVIRONMENT={type:3,value:"E_OUTDOORENVIRONMENT"},vt.F_INUSECONDITIONS={type:3,value:"F_INUSECONDITIONS"},vt.G_MAINTENANCELEVEL={type:3,value:"G_MAINTENANCELEVEL"},vt.USERDEFINED={type:3,value:"USERDEFINED"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcServiceLifeFactorTypeEnum=vt;class It{}It.ACTUALSERVICELIFE={type:3,value:"ACTUALSERVICELIFE"},It.EXPECTEDSERVICELIFE={type:3,value:"EXPECTEDSERVICELIFE"},It.OPTIMISTICREFERENCESERVICELIFE={type:3,value:"OPTIMISTICREFERENCESERVICELIFE"},It.PESSIMISTICREFERENCESERVICELIFE={type:3,value:"PESSIMISTICREFERENCESERVICELIFE"},It.REFERENCESERVICELIFE={type:3,value:"REFERENCESERVICELIFE"},e.IfcServiceLifeTypeEnum=It;class _t{}_t.FLOOR={type:3,value:"FLOOR"},_t.ROOF={type:3,value:"ROOF"},_t.LANDING={type:3,value:"LANDING"},_t.BASESLAB={type:3,value:"BASESLAB"},_t.USERDEFINED={type:3,value:"USERDEFINED"},_t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=_t;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 Pt{}Pt.SECTIONALRADIATOR={type:3,value:"SECTIONALRADIATOR"},Pt.PANELRADIATOR={type:3,value:"PANELRADIATOR"},Pt.TUBULARRADIATOR={type:3,value:"TUBULARRADIATOR"},Pt.CONVECTOR={type:3,value:"CONVECTOR"},Pt.BASEBOARDHEATER={type:3,value:"BASEBOARDHEATER"},Pt.FINNEDTUBEUNIT={type:3,value:"FINNEDTUBEUNIT"},Pt.UNITHEATER={type:3,value:"UNITHEATER"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=Pt;class bt{}bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=bt;class Rt{}Rt.BIRDCAGE={type:3,value:"BIRDCAGE"},Rt.COWL={type:3,value:"COWL"},Rt.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},Rt.USERDEFINED={type:3,value:"USERDEFINED"},Rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=Rt;class Dt{}Dt.STRAIGHT={type:3,value:"STRAIGHT"},Dt.WINDER={type:3,value:"WINDER"},Dt.SPIRAL={type:3,value:"SPIRAL"},Dt.CURVED={type:3,value:"CURVED"},Dt.FREEFORM={type:3,value:"FREEFORM"},Dt.USERDEFINED={type:3,value:"USERDEFINED"},Dt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=Dt;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 Nt{}Nt.READWRITE={type:3,value:"READWRITE"},Nt.READONLY={type:3,value:"READONLY"},Nt.LOCKED={type:3,value:"LOCKED"},Nt.READWRITELOCKED={type:3,value:"READWRITELOCKED"},Nt.READONLYLOCKED={type:3,value:"READONLYLOCKED"},e.IfcStateEnum=Nt;class Ot{}Ot.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},Ot.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},Ot.CABLE={type:3,value:"CABLE"},Ot.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},Ot.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveTypeEnum=Ot;class xt{}xt.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},xt.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},xt.SHELL={type:3,value:"SHELL"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceTypeEnum=xt;class St{}St.POSITIVE={type:3,value:"POSITIVE"},St.NEGATIVE={type:3,value:"NEGATIVE"},St.BOTH={type:3,value:"BOTH"},e.IfcSurfaceSide=St;class wt{}wt.BUMP={type:3,value:"BUMP"},wt.OPACITY={type:3,value:"OPACITY"},wt.REFLECTION={type:3,value:"REFLECTION"},wt.SELFILLUMINATION={type:3,value:"SELFILLUMINATION"},wt.SHININESS={type:3,value:"SHININESS"},wt.SPECULAR={type:3,value:"SPECULAR"},wt.TEXTURE={type:3,value:"TEXTURE"},wt.TRANSPARENCYMAP={type:3,value:"TRANSPARENCYMAP"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceTextureEnum=wt;class Mt{}Mt.CONTACTOR={type:3,value:"CONTACTOR"},Mt.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Mt.STARTER={type:3,value:"STARTER"},Mt.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Mt.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=Mt;class Bt{}Bt.PREFORMED={type:3,value:"PREFORMED"},Bt.SECTIONAL={type:3,value:"SECTIONAL"},Bt.EXPANSION={type:3,value:"EXPANSION"},Bt.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=Bt;class Ft{}Ft.STRAND={type:3,value:"STRAND"},Ft.WIRE={type:3,value:"WIRE"},Ft.BAR={type:3,value:"BAR"},Ft.COATED={type:3,value:"COATED"},Ft.USERDEFINED={type:3,value:"USERDEFINED"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=Ft;class Lt{}Lt.LEFT={type:3,value:"LEFT"},Lt.RIGHT={type:3,value:"RIGHT"},Lt.UP={type:3,value:"UP"},Lt.DOWN={type:3,value:"DOWN"},e.IfcTextPath=Lt;class Ut{}Ut.PEOPLE={type:3,value:"PEOPLE"},Ut.LIGHTING={type:3,value:"LIGHTING"},Ut.EQUIPMENT={type:3,value:"EQUIPMENT"},Ut.VENTILATIONINDOORAIR={type:3,value:"VENTILATIONINDOORAIR"},Ut.VENTILATIONOUTSIDEAIR={type:3,value:"VENTILATIONOUTSIDEAIR"},Ut.RECIRCULATEDAIR={type:3,value:"RECIRCULATEDAIR"},Ut.EXHAUSTAIR={type:3,value:"EXHAUSTAIR"},Ut.AIREXCHANGERATE={type:3,value:"AIREXCHANGERATE"},Ut.DRYBULBTEMPERATURE={type:3,value:"DRYBULBTEMPERATURE"},Ut.RELATIVEHUMIDITY={type:3,value:"RELATIVEHUMIDITY"},Ut.INFILTRATION={type:3,value:"INFILTRATION"},Ut.USERDEFINED={type:3,value:"USERDEFINED"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcThermalLoadSourceEnum=Ut;class Ht{}Ht.SENSIBLE={type:3,value:"SENSIBLE"},Ht.LATENT={type:3,value:"LATENT"},Ht.RADIANT={type:3,value:"RADIANT"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcThermalLoadTypeEnum=Ht;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 kt{}kt.ANNUAL={type:3,value:"ANNUAL"},kt.MONTHLY={type:3,value:"MONTHLY"},kt.WEEKLY={type:3,value:"WEEKLY"},kt.DAILY={type:3,value:"DAILY"},kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesScheduleTypeEnum=kt;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 jt{}jt.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},jt.CONTINUOUS={type:3,value:"CONTINUOUS"},jt.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},jt.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},e.IfcTransitionCode=jt;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 Zt{}Zt.COMPRESSION={type:3,value:"COMPRESSION"},Zt.SPRING={type:3,value:"SPRING"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=Zt;class qt{}qt.STANDARD={type:3,value:"STANDARD"},qt.POLYGONAL={type:3,value:"POLYGONAL"},qt.SHEAR={type:3,value:"SHEAR"},qt.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},qt.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=qt;class Jt{}Jt.FLOORTRAP={type:3,value:"FLOORTRAP"},Jt.FLOORWASTE={type:3,value:"FLOORWASTE"},Jt.GULLYSUMP={type:3,value:"GULLYSUMP"},Jt.GULLYTRAP={type:3,value:"GULLYTRAP"},Jt.GREASEINTERCEPTOR={type:3,value:"GREASEINTERCEPTOR"},Jt.OILINTERCEPTOR={type:3,value:"OILINTERCEPTOR"},Jt.PETROLINTERCEPTOR={type:3,value:"PETROLINTERCEPTOR"},Jt.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Jt.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Jt.WASTETRAP={type:3,value:"WASTETRAP"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Jt;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 is{}is.ACTUAL={type:3,value:"ACTUAL"},is.BASELINE={type:3,value:"BASELINE"},is.PLANNED={type:3,value:"PLANNED"},is.USERDEFINED={type:3,value:"USERDEFINED"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkControlTypeEnum=is;e.IfcActorRole=class extends TI{constructor(e,t,s,i){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=i,this.type=3630933823}};class rs extends TI{constructor(e,t,s,i){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.type=618182010}}e.IfcAddress=rs;e.IfcApplication=class extends TI{constructor(e,t,s,i,r){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=i,this.ApplicationIdentifier=r,this.type=639542469}};class os extends TI{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.type=411424972}}e.IfcAppliedValue=os;e.IfcAppliedValueRelationship=class extends TI{constructor(e,t,s,i,r,o){super(e),this.ComponentOfTotal=t,this.Components=s,this.ArithmeticOperator=i,this.Name=r,this.Description=o,this.type=1110488051}};e.IfcApproval=class extends TI{constructor(e,t,s,i,r,o,n,a){super(e),this.Description=t,this.ApprovalDateTime=s,this.ApprovalStatus=i,this.ApprovalLevel=r,this.ApprovalQualifier=o,this.Name=n,this.Identifier=a,this.type=130549933}};e.IfcApprovalActorRelationship=class extends TI{constructor(e,t,s,i){super(e),this.Actor=t,this.Approval=s,this.Role=i,this.type=2080292479}};e.IfcApprovalPropertyRelationship=class extends TI{constructor(e,t,s){super(e),this.ApprovedProperties=t,this.Approval=s,this.type=390851274}};e.IfcApprovalRelationship=class extends TI{constructor(e,t,s,i,r){super(e),this.RelatedApproval=t,this.RelatingApproval=s,this.Description=i,this.Name=r,this.type=3869604511}};class ns extends TI{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=ns;e.IfcBoundaryEdgeCondition=class extends ns{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearStiffnessByLengthX=s,this.LinearStiffnessByLengthY=i,this.LinearStiffnessByLengthZ=r,this.RotationalStiffnessByLengthX=o,this.RotationalStiffnessByLengthY=n,this.RotationalStiffnessByLengthZ=a,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends ns{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.LinearStiffnessByAreaX=s,this.LinearStiffnessByAreaY=i,this.LinearStiffnessByAreaZ=r,this.type=3367102660}};class as extends ns{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearStiffnessX=s,this.LinearStiffnessY=i,this.LinearStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.type=1387855156}}e.IfcBoundaryNodeCondition=as;e.IfcBoundaryNodeConditionWarping=class extends as{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.LinearStiffnessX=s,this.LinearStiffnessY=i,this.LinearStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.WarpingStiffness=l,this.type=2069777674}};e.IfcCalendarDate=class extends TI{constructor(e,t,s,i){super(e),this.DayComponent=t,this.MonthComponent=s,this.YearComponent=i,this.type=622194075}};e.IfcClassification=class extends TI{constructor(e,t,s,i,r){super(e),this.Source=t,this.Edition=s,this.EditionDate=i,this.Name=r,this.type=747523909}};e.IfcClassificationItem=class extends TI{constructor(e,t,s,i){super(e),this.Notation=t,this.ItemOf=s,this.Title=i,this.type=1767535486}};e.IfcClassificationItemRelationship=class extends TI{constructor(e,t,s){super(e),this.RelatingItem=t,this.RelatedItems=s,this.type=1098599126}};e.IfcClassificationNotation=class extends TI{constructor(e,t){super(e),this.NotationFacets=t,this.type=938368621}};e.IfcClassificationNotationFacet=class extends TI{constructor(e,t){super(e),this.NotationValue=t,this.type=3639012971}};class ls extends TI{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=ls;class hs extends TI{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=hs;class cs extends hs{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=cs;e.IfcConnectionPortGeometry=class extends hs{constructor(e,t,s,i){super(e),this.LocationAtRelatingElement=t,this.LocationAtRelatedElement=s,this.ProfileOfPort=i,this.type=4257277454}};e.IfcConnectionSurfaceGeometry=class extends hs{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};class us extends TI{constructor(e,t,s,i,r,o,n,a){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.type=1959218052}}e.IfcConstraint=us;e.IfcConstraintAggregationRelationship=class extends TI{constructor(e,t,s,i,r,o){super(e),this.Name=t,this.Description=s,this.RelatingConstraint=i,this.RelatedConstraints=r,this.LogicalAggregator=o,this.type=1658513725}};e.IfcConstraintClassificationRelationship=class extends TI{constructor(e,t,s){super(e),this.ClassifiedConstraint=t,this.RelatedClassifications=s,this.type=613356794}};e.IfcConstraintRelationship=class extends TI{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.RelatingConstraint=i,this.RelatedConstraints=r,this.type=347226245}};e.IfcCoordinatedUniversalTimeOffset=class extends TI{constructor(e,t,s,i){super(e),this.HourOffset=t,this.MinuteOffset=s,this.Sense=i,this.type=1065062679}};e.IfcCostValue=class extends os{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.CostType=a,this.Condition=l,this.type=602808272}};e.IfcCurrencyRelationship=class extends TI{constructor(e,t,s,i,r,o){super(e),this.RelatingMonetaryUnit=t,this.RelatedMonetaryUnit=s,this.ExchangeRate=i,this.RateDateTime=r,this.RateSource=o,this.type=539742890}};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,i){super(e),this.Name=t,this.CurveFont=s,this.CurveFontScaling=i,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends TI{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};e.IfcDateAndTime=class extends TI{constructor(e,t,s){super(e),this.DateComponent=t,this.TimeComponent=s,this.type=1072939445}};e.IfcDerivedUnit=class extends TI{constructor(e,t,s,i){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=i,this.type=1765591967}};e.IfcDerivedUnitElement=class extends TI{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends TI{constructor(e,t,s,i,r,o,n,a){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=i,this.ElectricCurrentExponent=r,this.ThermodynamicTemperatureExponent=o,this.AmountOfSubstanceExponent=n,this.LuminousIntensityExponent=a,this.type=2949456006}};e.IfcDocumentElectronicFormat=class extends TI{constructor(e,t,s,i){super(e),this.FileExtension=t,this.MimeContentType=s,this.MimeSubtype=i,this.type=1376555844}};e.IfcDocumentInformation=class extends TI{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e),this.DocumentId=t,this.Name=s,this.Description=i,this.DocumentReferences=r,this.Purpose=o,this.IntendedUse=n,this.Scope=a,this.Revision=l,this.DocumentOwner=h,this.Editors=c,this.CreationTime=u,this.LastRevisionTime=A,this.ElectronicFormat=p,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=m,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends TI{constructor(e,t,s,i){super(e),this.RelatingDocument=t,this.RelatedDocuments=s,this.RelationshipType=i,this.type=770865208}};class As extends TI{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=i,this.RelatedDraughtingCallout=r,this.type=3796139169}}e.IfcDraughtingCalloutRelationship=As;e.IfcEnvironmentalImpactValue=class extends os{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.ImpactType=a,this.Category=l,this.UserDefinedCategory=h,this.type=1648886627}};class ps extends TI{constructor(e,t,s,i){super(e),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3200245327}}e.IfcExternalReference=ps;e.IfcExternallyDefinedHatchStyle=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=1040185647}};e.IfcExternallyDefinedSymbol=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3207319532}};e.IfcExternallyDefinedTextFont=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3548104201}};e.IfcGridAxis=class extends TI{constructor(e,t,s,i){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=i,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends TI{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends TI{constructor(e,t,s,i,r,o){super(e),this.Name=t,this.Version=s,this.Publisher=i,this.VersionDate=r,this.LibraryReference=o,this.type=2655187982}};e.IfcLibraryReference=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3452421091}};e.IfcLightDistributionData=class extends TI{constructor(e,t,s,i){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=i,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends TI{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcLocalTime=class extends TI{constructor(e,t,s,i,r,o){super(e),this.HourComponent=t,this.MinuteComponent=s,this.SecondComponent=i,this.Zone=r,this.DaylightSavingOffset=o,this.type=30780891}};e.IfcMaterial=class extends TI{constructor(e,t){super(e),this.Name=t,this.type=1838606355}};e.IfcMaterialClassificationRelationship=class extends TI{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};e.IfcMaterialLayer=class extends TI{constructor(e,t,s,i){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.type=248100487}};e.IfcMaterialLayerSet=class extends TI{constructor(e,t,s){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.type=3303938423}};e.IfcMaterialLayerSetUsage=class extends TI{constructor(e,t,s,i,r){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=i,this.OffsetFromReferenceLine=r,this.type=1303795690}};e.IfcMaterialList=class extends TI{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class ds extends TI{constructor(e,t){super(e),this.Material=t,this.type=3265635763}}e.IfcMaterialProperties=ds;e.IfcMeasureWithUnit=class extends TI{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};class fs extends ds{constructor(e,t,s,i,r,o,n){super(e,t),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=i,this.ShearModulus=r,this.PoissonRatio=o,this.ThermalExpansionCoefficient=n,this.type=4256014907}}e.IfcMechanicalMaterialProperties=fs;e.IfcMechanicalSteelMaterialProperties=class extends fs{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=i,this.ShearModulus=r,this.PoissonRatio=o,this.ThermalExpansionCoefficient=n,this.YieldStress=a,this.UltimateStress=l,this.UltimateStrain=h,this.HardeningModule=c,this.ProportionalStress=u,this.PlasticStrain=A,this.Relaxations=p,this.type=677618848}};e.IfcMetric=class extends us{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.Benchmark=l,this.ValueSource=h,this.DataValue=c,this.type=3368373690}};e.IfcMonetaryUnit=class extends TI{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class ms extends TI{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=ms;class ys extends TI{constructor(e){super(e),this.type=3701648758}}e.IfcObjectPlacement=ys;e.IfcObjective=class extends us{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.BenchmarkValues=l,this.ResultValues=h,this.ObjectiveQualifier=c,this.UserDefinedQualifier=u,this.type=2251480897}};e.IfcOpticalMaterialProperties=class extends ds{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t),this.Material=t,this.VisibleTransmittance=s,this.SolarTransmittance=i,this.ThermalIrTransmittance=r,this.ThermalIrEmissivityBack=o,this.ThermalIrEmissivityFront=n,this.VisibleReflectanceBack=a,this.VisibleReflectanceFront=l,this.SolarReflectanceFront=h,this.SolarReflectanceBack=c,this.type=1227763645}};e.IfcOrganization=class extends TI{constructor(e,t,s,i,r,o){super(e),this.Id=t,this.Name=s,this.Description=i,this.Roles=r,this.Addresses=o,this.type=4251960020}};e.IfcOrganizationRelationship=class extends TI{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.RelatingOrganization=i,this.RelatedOrganizations=r,this.type=1411181986}};e.IfcOwnerHistory=class extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=i,this.ChangeAction=r,this.LastModifiedDate=o,this.LastModifyingUser=n,this.LastModifyingApplication=a,this.CreationDate=l,this.type=1207048766}};e.IfcPerson=class extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Id=t,this.FamilyName=s,this.GivenName=i,this.MiddleNames=r,this.PrefixTitles=o,this.SuffixTitles=n,this.Roles=a,this.Addresses=l,this.type=2077209135}};e.IfcPersonAndOrganization=class extends TI{constructor(e,t,s,i){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=i,this.type=101040310}};class Es extends TI{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=Es;class gs extends Es{constructor(e,t,s,i){super(e,t,s),this.Name=t,this.Description=s,this.Unit=i,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=gs;e.IfcPostalAddress=class extends rs{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.InternalLocation=r,this.AddressLines=o,this.PostalBox=n,this.Town=a,this.Region=l,this.PostalCode=h,this.Country=c,this.type=3355820592}};class vs extends TI{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=vs;class Is extends vs{constructor(e,t){super(e,t),this.Name=t,this.type=990879717}}e.IfcPreDefinedSymbol=Is;e.IfcPreDefinedTerminatorSymbol=class extends Is{constructor(e,t){super(e,t),this.Name=t,this.type=3213052703}};class _s extends vs{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=_s;class Ts extends TI{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.type=2022622350}}e.IfcPresentationLayerAssignment=Ts;e.IfcPresentationLayerWithStyle=class extends Ts{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.LayerOn=o,this.LayerFrozen=n,this.LayerBlocked=a,this.LayerStyles=l,this.type=1304840413}};class Ps extends TI{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=Ps;e.IfcPresentationStyleAssignment=class extends TI{constructor(e,t){super(e),this.Styles=t,this.type=2417041796}};class bs extends TI{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Representations=i,this.type=2095639259}}e.IfcProductRepresentation=bs;e.IfcProductsOfCombustionProperties=class extends ds{constructor(e,t,s,i,r,o){super(e,t),this.Material=t,this.SpecificHeatCapacity=s,this.N20Content=i,this.COContent=r,this.CO2Content=o,this.type=2267347899}};class Rs extends TI{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=Rs;class Ds extends TI{constructor(e,t,s){super(e),this.ProfileName=t,this.ProfileDefinition=s,this.type=2802850158}}e.IfcProfileProperties=Ds;class Cs extends TI{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2598011224}}e.IfcProperty=Cs;e.IfcPropertyConstraintRelationship=class extends TI{constructor(e,t,s,i,r){super(e),this.RelatingConstraint=t,this.RelatedProperties=s,this.Name=i,this.Description=r,this.type=3896028662}};e.IfcPropertyDependencyRelationship=class extends TI{constructor(e,t,s,i,r,o){super(e),this.DependingProperty=t,this.DependantProperty=s,this.Name=i,this.Description=r,this.Expression=o,this.type=148025276}};e.IfcPropertyEnumeration=class extends TI{constructor(e,t,s,i){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=i,this.type=3710013099}};e.IfcQuantityArea=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.AreaValue=r,this.type=2044713172}};e.IfcQuantityCount=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.CountValue=r,this.type=2093928680}};e.IfcQuantityLength=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.LengthValue=r,this.type=931644368}};e.IfcQuantityTime=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.TimeValue=r,this.type=3252649465}};e.IfcQuantityVolume=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.VolumeValue=r,this.type=2405470396}};e.IfcQuantityWeight=class extends gs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.WeightValue=r,this.type=825690147}};e.IfcReferencesValueDocument=class extends TI{constructor(e,t,s,i,r){super(e),this.ReferencedDocument=t,this.ReferencingValues=s,this.Name=i,this.Description=r,this.type=2692823254}};e.IfcReinforcementBarProperties=class extends TI{constructor(e,t,s,i,r,o,n){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=i,this.EffectiveDepth=r,this.NominalBarDiameter=o,this.BarCount=n,this.type=1580146022}};e.IfcRelaxation=class extends TI{constructor(e,t,s){super(e),this.RelaxationValue=t,this.InitialStress=s,this.type=1222501353}};class Ns extends TI{constructor(e,t,s,i,r){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1076942058}}e.IfcRepresentation=Ns;class Os extends TI{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=Os;class xs extends TI{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=xs;e.IfcRepresentationMap=class extends TI{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};e.IfcRibPlateProfileProperties=class extends Ds{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.ProfileName=t,this.ProfileDefinition=s,this.Thickness=i,this.RibHeight=r,this.RibWidth=o,this.RibSpacing=n,this.Direction=a,this.type=3679540991}};class Ss extends TI{constructor(e,t,s,i,r){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2341007311}}e.IfcRoot=Ss;e.IfcSIUnit=class extends ms{constructor(e,t,s,i){super(e,new _I(0),t),this.UnitType=t,this.Prefix=s,this.Name=i,this.type=448429030}};e.IfcSectionProperties=class extends TI{constructor(e,t,s,i){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=i,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends TI{constructor(e,t,s,i,r,o,n){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=i,this.ReinforcementRole=r,this.SectionDefinition=o,this.CrossSectionReinforcementDefinitions=n,this.type=4165799628}};e.IfcShapeAspect=class extends TI{constructor(e,t,s,i,r,o){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=i,this.ProductDefinitional=r,this.PartOfProductDefinitionShape=o,this.type=867548509}};class ws extends Ns{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3982875396}}e.IfcShapeModel=ws;e.IfcShapeRepresentation=class extends ws{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=4240577450}};class Ms extends Cs{constructor(e,t,s){super(e,t,s),this.Name=t,this.Description=s,this.type=3692461612}}e.IfcSimpleProperty=Ms;class Bs extends TI{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=Bs;class Fs extends TI{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=Fs;class Ls extends Fs{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=Ls;e.IfcStructuralLoadTemperature=class extends Ls{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.DeltaT_Constant=s,this.DeltaT_Y=i,this.DeltaT_Z=r,this.type=3408363356}};class Us extends Ns{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=2830218821}}e.IfcStyleModel=Us;class Hs extends xs{constructor(e,t,s,i){super(e),this.Item=t,this.Styles=s,this.Name=i,this.type=3958052878}}e.IfcStyledItem=Hs;e.IfcStyledRepresentation=class extends Us{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3049322572}};e.IfcSurfaceStyle=class extends Ps{constructor(e,t,s,i){super(e,t),this.Name=t,this.Side=s,this.Styles=i,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends TI{constructor(e,t,s,i,r){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=i,this.ReflectanceColour=r,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends TI{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class Gs extends TI{constructor(e,t){super(e),this.SurfaceColour=t,this.type=846575682}}e.IfcSurfaceStyleShading=Gs;e.IfcSurfaceStyleWithTextures=class extends TI{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class ks extends TI{constructor(e,t,s,i,r){super(e),this.RepeatS=t,this.RepeatT=s,this.TextureType=i,this.TextureTransform=r,this.type=626085974}}e.IfcSurfaceTexture=ks;e.IfcSymbolStyle=class extends Ps{constructor(e,t,s){super(e,t),this.Name=t,this.StyleOfSymbol=s,this.type=1290481447}};e.IfcTable=class extends TI{constructor(e,t,s){super(e),this.Name=t,this.Rows=s,this.type=985171141}};e.IfcTableRow=class extends TI{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};e.IfcTelecomAddress=class extends rs{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.TelephoneNumbers=r,this.FacsimileNumbers=o,this.PagerNumber=n,this.ElectronicMailAddresses=a,this.WWWHomePageURL=l,this.type=912023232}};e.IfcTextStyle=class extends Ps{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=i,this.TextFontStyle=r,this.type=1447204868}};e.IfcTextStyleFontModel=class extends _s{constructor(e,t,s,i,r,o,n){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=i,this.FontVariant=r,this.FontWeight=o,this.FontSize=n,this.type=1983826977}};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,i,r,o,n,a){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=i,this.LetterSpacing=r,this.WordSpacing=o,this.TextTransform=n,this.LineHeight=a,this.type=1640371178}};e.IfcTextStyleWithBoxCharacteristics=class extends TI{constructor(e,t,s,i,r,o){super(e),this.BoxHeight=t,this.BoxWidth=s,this.BoxSlantAngle=i,this.BoxRotateAngle=r,this.CharacterSpacing=o,this.type=1484833681}};class Vs extends TI{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 TI{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcThermalMaterialProperties=class extends ds{constructor(e,t,s,i,r,o){super(e,t),this.Material=t,this.SpecificHeatCapacity=s,this.BoilingPoint=i,this.FreezingPoint=r,this.ThermalConductivity=o,this.type=3317419933}};class js extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.type=3101149627}}e.IfcTimeSeries=js;e.IfcTimeSeriesReferenceRelationship=class extends TI{constructor(e,t,s){super(e),this.ReferencedTimeSeries=t,this.TimeSeriesReferences=s,this.type=1718945513}};e.IfcTimeSeriesValue=class extends TI{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Qs extends xs{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Qs;e.IfcTopologyRepresentation=class extends ws{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1735638870}};e.IfcUnitAssignment=class extends TI{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 TI{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 TI{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWaterProperties=class extends ds{constructor(e,t,s,i,r,o,n,a,l){super(e,t),this.Material=t,this.IsPotable=s,this.Hardness=i,this.AlkalinityConcentration=r,this.AcidityConcentration=o,this.ImpuritiesContent=n,this.PHLevel=a,this.DissolvedSolidsContent=l,this.type=1065908215}};class zs extends Hs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=2442683028}}e.IfcAnnotationOccurrence=zs;e.IfcAnnotationSurfaceOccurrence=class extends zs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=962685235}};class Ks extends zs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=3612888222}}e.IfcAnnotationSymbolOccurrence=Ks;e.IfcAnnotationTextOccurrence=class extends zs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=2297822566}};class Ys extends Rs{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Ys;class Xs extends Rs{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Xs;e.IfcArbitraryProfileDefWithVoids=class extends Ys{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.InnerCurves=r,this.type=2705031697}};e.IfcBlobTexture=class extends ks{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.RepeatS=t,this.RepeatT=s,this.TextureType=i,this.TextureTransform=r,this.RasterFormat=o,this.RasterCode=n,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Xs{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.Thickness=r,this.type=3150382593}};e.IfcClassificationReference=class extends ps{constructor(e,t,s,i,r){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.ReferencedSource=r,this.type=647927063}};e.IfcColourRgb=class extends ls{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.Red=s,this.Green=i,this.Blue=r,this.type=776857604}};e.IfcComplexProperty=class extends Cs{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=i,this.HasProperties=r,this.type=2542286263}};e.IfcCompositeProfileDef=class extends Rs{constructor(e,t,s,i,r){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=i,this.Label=r,this.type=1485152156}};class Zs extends Qs{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=Zs;e.IfcConnectionCurveGeometry=class extends hs{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends cs{constructor(e,t,s,i,r,o){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=i,this.EccentricityInY=r,this.EccentricityInZ=o,this.type=45288368}};e.IfcContextDependentUnit=class extends ms{constructor(e,t,s,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.type=3050246964}};e.IfcConversionBasedUnit=class extends ms{constructor(e,t,s,i,r){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.type=2889183280}};e.IfcCurveStyle=class extends Ps{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=i,this.CurveColour=r,this.type=3800577675}};e.IfcDerivedProfileDef=class extends Rs{constructor(e,t,s,i,r,o){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Operator=r,this.Label=o,this.type=3632507154}};e.IfcDimensionCalloutRelationship=class extends As{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=i,this.RelatedDraughtingCallout=r,this.type=2273265877}};e.IfcDimensionPair=class extends As{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.Description=s,this.RelatingDraughtingCallout=i,this.RelatedDraughtingCallout=r,this.type=1694125774}};e.IfcDocumentReference=class extends ps{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.ItemReference=s,this.Name=i,this.type=3732053477}};e.IfcDraughtingPreDefinedTextFont=class extends _s{constructor(e,t){super(e,t),this.Name=t,this.type=4170525392}};class qs extends Qs{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=qs;e.IfcEdgeCurve=class extends qs{constructor(e,t,s,i,r){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=i,this.SameSense=r,this.type=476780140}};e.IfcExtendedMaterialProperties=class extends ds{constructor(e,t,s,i,r){super(e,t),this.Material=t,this.ExtendedProperties=s,this.Description=i,this.Name=r,this.type=1860660968}};class Js extends Qs{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Js;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 Js{constructor(e,t,s,i){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3008276851}};e.IfcFailureConnectionCondition=class extends Bs{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=i,this.TensionFailureZ=r,this.CompressionFailureX=o,this.CompressionFailureY=n,this.CompressionFailureZ=a,this.type=4219587988}};e.IfcFillAreaStyle=class extends Ps{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,i,r,o){super(e,t),this.Material=t,this.CombustionTemperature=s,this.CarbonContent=i,this.LowerHeatingValue=r,this.HigherHeatingValue=o,this.type=3857492461}};e.IfcGeneralMaterialProperties=class extends ds{constructor(e,t,s,i,r){super(e,t),this.Material=t,this.MolecularWeight=s,this.Porosity=i,this.MassDensity=r,this.type=803998398}};class ei extends Ds{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=i,this.Perimeter=r,this.MinimumPlateThickness=o,this.MaximumPlateThickness=n,this.CrossSectionArea=a,this.type=1446786286}}e.IfcGeneralProfileProperties=ei;class ti extends Os{constructor(e,t,s,i,r,o,n){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=i,this.Precision=r,this.WorldCoordinateSystem=o,this.TrueNorth=n,this.type=3448662350}}e.IfcGeometricRepresentationContext=ti;class si extends xs{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=si;e.IfcGeometricRepresentationSubContext=class extends ti{constructor(e,s,i,r,o,n,a){super(e,s,i,new t(0),null,new _I(0),null),this.ContextIdentifier=s,this.ContextType=i,this.ParentContext=r,this.TargetScale=o,this.TargetView=n,this.UserDefinedTargetView=a,this.type=4142052618}};class ii extends si{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=ii;e.IfcGridPlacement=class extends ys{constructor(e,t,s){super(e),this.PlacementLocation=t,this.PlacementRefDirection=s,this.type=178086475}};class ri extends si{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=ri;e.IfcHygroscopicMaterialProperties=class extends ds{constructor(e,t,s,i,r,o,n){super(e,t),this.Material=t,this.UpperVaporResistanceFactor=s,this.LowerVaporResistanceFactor=i,this.IsothermalMoistureCapacity=r,this.VaporPermeability=o,this.MoistureDiffusivity=n,this.type=2445078500}};e.IfcImageTexture=class extends ks{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.RepeatS=t,this.RepeatT=s,this.TextureType=i,this.TextureTransform=r,this.UrlReference=o,this.type=3905492369}};e.IfcIrregularTimeSeries=class extends js{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.Values=h,this.type=3741457305}};class oi extends si{constructor(e,t,s,i,r){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=1402838566}}e.IfcLightSource=oi;e.IfcLightSourceAmbient=class extends oi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=125510826}};e.IfcLightSourceDirectional=class extends oi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Orientation=o,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends oi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.ColourAppearance=n,this.ColourTemperature=a,this.LuminousFlux=l,this.LightEmissionSource=h,this.LightDistributionDataSource=c,this.type=4266656042}};class ni extends oi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.type=1520743889}}e.IfcLightSourcePositional=ni;e.IfcLightSourceSpot=class extends ni{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.Orientation=c,this.ConcentrationExponent=u,this.SpreadAngle=A,this.BeamWidthAngle=p,this.type=3422422726}};e.IfcLocalPlacement=class extends ys{constructor(e,t,s){super(e),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class ai extends Qs{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=ai;e.IfcMappedItem=class extends xs{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterialDefinitionRepresentation=class extends bs{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.RepresentedMaterial=r,this.type=2022407955}};e.IfcMechanicalConcreteMaterialProperties=class extends fs{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n),this.Material=t,this.DynamicViscosity=s,this.YoungModulus=i,this.ShearModulus=r,this.PoissonRatio=o,this.ThermalExpansionCoefficient=n,this.CompressiveStrength=a,this.MaxAggregateSize=l,this.AdmixturesDescription=h,this.Workability=c,this.ProtectivePoreRatio=u,this.WaterImpermeability=A,this.type=1430189142}};class li extends Ss{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=219451334}}e.IfcObjectDefinition=li;class hi extends si{constructor(e,t){super(e),this.RepeatFactor=t,this.type=2833995503}}e.IfcOneDirectionRepeatFactor=hi;e.IfcOpenShell=class extends Zs{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrientedEdge=class extends qs{constructor(e,t,s){super(e,new _I(0),new _I(0)),this.EdgeElement=t,this.Orientation=s,this.type=1029017970}};class ci extends Rs{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.type=2529465313}}e.IfcParameterizedProfileDef=ci;e.IfcPath=class extends Qs{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends Es{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=i,this.Discrimination=r,this.Quality=o,this.Usage=n,this.type=3021840470}};e.IfcPixelTexture=class extends ks{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.RepeatS=t,this.RepeatT=s,this.TextureType=i,this.TextureTransform=r,this.Width=o,this.Height=n,this.ColourComponents=a,this.Pixel=l,this.type=597895409}};class ui extends si{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=ui;class Ai extends si{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=Ai;class pi extends si{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=pi;e.IfcPointOnCurve=class extends pi{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends pi{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=i,this.type=1423911732}};e.IfcPolyLoop=class extends ai{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends ri{constructor(e,t,s,i,r){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=i,this.PolygonalBoundary=r,this.type=2775532180}};class di extends vs{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=di;class fi extends vs{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=fi;e.IfcPreDefinedDimensionSymbol=class extends Is{constructor(e,t){super(e,t),this.Name=t,this.type=433424934}};e.IfcPreDefinedPointMarkerSymbol=class extends Is{constructor(e,t){super(e,t),this.Name=t,this.type=179317114}};e.IfcProductDefinitionShape=class extends bs{constructor(e,t,s,i){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.type=673634403}};e.IfcPropertyBoundedValue=class extends Ms{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.UpperBoundValue=i,this.LowerBoundValue=r,this.Unit=o,this.type=871118103}};class mi extends Ss{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1680319473}}e.IfcPropertyDefinition=mi;e.IfcPropertyEnumeratedValue=class extends Ms{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.EnumerationValues=i,this.EnumerationReference=r,this.type=4166981789}};e.IfcPropertyListValue=class extends Ms{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.ListValues=i,this.Unit=r,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends Ms{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=i,this.PropertyReference=r,this.type=941946838}};class yi extends mi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3357820518}}e.IfcPropertySetDefinition=yi;e.IfcPropertySingleValue=class extends Ms{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.NominalValue=i,this.Unit=r,this.type=3650150729}};e.IfcPropertyTableValue=class extends Ms{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.Name=t,this.Description=s,this.DefiningValues=i,this.DefinedValues=r,this.Expression=o,this.DefiningUnit=n,this.DefinedUnit=a,this.type=110355661}};class Ei extends ci{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.type=3615266464}}e.IfcRectangleProfileDef=Ei;e.IfcRegularTimeSeries=class extends js{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.TimeStep=h,this.Values=c,this.type=3413951693}};e.IfcReinforcementDefinitionProperties=class extends yi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.DefinitionType=o,this.ReinforcementSectionDefinitions=n,this.type=3765753017}};class gi extends Ss{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=478536968}}e.IfcRelationship=gi;e.IfcRoundedRectangleProfileDef=class extends Ei{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.RoundingRadius=n,this.type=2778083089}};e.IfcSectionedSpine=class extends si{constructor(e,t,s,i){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=i,this.type=1509187699}};e.IfcServiceLifeFactor=class extends yi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PredefinedType=o,this.UpperValue=n,this.MostUsedValue=a,this.LowerValue=l,this.type=2411513650}};e.IfcShellBasedSurfaceModel=class extends si{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};e.IfcSlippageConnectionCondition=class extends Bs{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=i,this.SlippageZ=r,this.type=2609359061}};class vi extends si{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=vi;e.IfcSoundProperties=class extends yi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.IsAttenuating=o,this.SoundScale=n,this.SoundValues=a,this.type=2485662743}};e.IfcSoundValue=class extends yi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.SoundLevelTimeSeries=o,this.Frequency=n,this.SoundLevelSingleValue=a,this.type=1202362311}};e.IfcSpaceThermalLoadProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableValueRatio=o,this.ThermalLoadSource=n,this.PropertySource=a,this.SourceDescription=l,this.MaximumValue=h,this.MinimumValue=c,this.ThermalLoadTimeSeriesValues=u,this.UserDefinedThermalLoadSource=A,this.UserDefinedPropertySource=p,this.ThermalLoadType=d,this.type=390701378}};e.IfcStructuralLoadLinearForce=class extends Ls{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=i,this.LinearForceZ=r,this.LinearMomentX=o,this.LinearMomentY=n,this.LinearMomentZ=a,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends Ls{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=i,this.PlanarForceZ=r,this.type=2668620305}};class Ii extends Ls{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=Ii;e.IfcStructuralLoadSingleDisplacementDistortion=class extends Ii{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.Distortion=l,this.type=1973038258}};class _i extends Ls{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.type=1597423693}}e.IfcStructuralLoadSingleForce=_i;e.IfcStructuralLoadSingleForceWarping=class extends _i{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.WarpingMoment=l,this.type=1190533807}};class Ti extends ei{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T){super(e,t,s,i,r,o,n,a),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=i,this.Perimeter=r,this.MinimumPlateThickness=o,this.MaximumPlateThickness=n,this.CrossSectionArea=a,this.TorsionalConstantX=l,this.MomentOfInertiaYZ=h,this.MomentOfInertiaY=c,this.MomentOfInertiaZ=u,this.WarpingConstant=A,this.ShearCentreZ=p,this.ShearCentreY=d,this.ShearDeformationAreaZ=f,this.ShearDeformationAreaY=m,this.MaximumSectionModulusY=y,this.MinimumSectionModulusY=E,this.MaximumSectionModulusZ=g,this.MinimumSectionModulusZ=v,this.TorsionalSectionModulus=I,this.CentreOfGravityInX=_,this.CentreOfGravityInY=T,this.type=3843319758}}e.IfcStructuralProfileProperties=Ti;e.IfcStructuralSteelProfileProperties=class extends Ti{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T,P,b,R,D){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T),this.ProfileName=t,this.ProfileDefinition=s,this.PhysicalWeight=i,this.Perimeter=r,this.MinimumPlateThickness=o,this.MaximumPlateThickness=n,this.CrossSectionArea=a,this.TorsionalConstantX=l,this.MomentOfInertiaYZ=h,this.MomentOfInertiaY=c,this.MomentOfInertiaZ=u,this.WarpingConstant=A,this.ShearCentreZ=p,this.ShearCentreY=d,this.ShearDeformationAreaZ=f,this.ShearDeformationAreaY=m,this.MaximumSectionModulusY=y,this.MinimumSectionModulusY=E,this.MaximumSectionModulusZ=g,this.MinimumSectionModulusZ=v,this.TorsionalSectionModulus=I,this.CentreOfGravityInX=_,this.CentreOfGravityInY=T,this.ShearAreaZ=P,this.ShearAreaY=b,this.PlasticShapeFactorY=R,this.PlasticShapeFactorZ=D,this.type=3653947884}};e.IfcSubedge=class extends qs{constructor(e,t,s,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=i,this.type=2233826070}};class Pi extends si{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Pi;e.IfcSurfaceStyleRendering=class extends Gs{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=i,this.TransmissionColour=r,this.DiffuseTransmissionColour=o,this.ReflectionColour=n,this.SpecularColour=a,this.SpecularHighlight=l,this.ReflectanceMethod=h,this.type=1878645084}};class bi extends vi{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=bi;e.IfcSweptDiskSolid=class extends vi{constructor(e,t,s,i,r,o){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.type=1260650574}};class Ri extends Pi{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=Ri;e.IfcTShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.WebEdgeRadius=c,this.WebSlope=u,this.FlangeSlope=A,this.CentreOfGravityInY=p,this.type=3071757647}};class Di extends Ks{constructor(e,t,s,i,r){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.AnnotatedCurve=r,this.type=3028897424}}e.IfcTerminatorSymbol=Di;class Ci extends si{constructor(e,t,s,i){super(e),this.Literal=t,this.Placement=s,this.Path=i,this.type=4282788508}}e.IfcTextLiteral=Ci;e.IfcTextLiteralWithExtent=class extends Ci{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Literal=t,this.Placement=s,this.Path=i,this.Extent=r,this.BoxAlignment=o,this.type=3124975700}};e.IfcTrapeziumProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomXDim=r,this.TopXDim=o,this.YDim=n,this.TopXOffset=a,this.type=2715220739}};e.IfcTwoDirectionRepeatFactor=class extends hi{constructor(e,t,s){super(e,t),this.RepeatFactor=t,this.SecondRepeatFactor=s,this.type=1345879162}};class Ni extends li{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.type=1628702193}}e.IfcTypeObject=Ni;class Oi extends Ni{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.type=2347495698}}e.IfcTypeProduct=Oi;e.IfcUShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.FlangeSlope=c,this.CentreOfGravityInX=u,this.type=427810014}};e.IfcVector=class extends si{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends ai{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcWindowLiningProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.TransomThickness=a,this.MullionThickness=l,this.FirstTransomOffset=h,this.SecondTransomOffset=c,this.FirstMullionOffset=u,this.SecondMullionOffset=A,this.ShapeAspectStyle=p,this.type=336235671}};e.IfcWindowPanelProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=512836454}};e.IfcWindowStyle=class extends Oi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ConstructionType=h,this.OperationType=c,this.ParameterTakesPrecedence=u,this.Sizeable=A,this.type=1299126871}};e.IfcZShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.type=2543172580}};class xi extends zs{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=3288037868}}e.IfcAnnotationCurveOccurrence=xi;e.IfcAnnotationFillArea=class extends si{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAnnotationFillAreaOccurrence=class extends zs{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.FillStyleTarget=r,this.GlobalOrLocal=o,this.type=2265737646}};e.IfcAnnotationSurface=class extends si{constructor(e,t,s){super(e),this.Item=t,this.TextureCoordinates=s,this.type=1302238472}};e.IfcAxis1Placement=class extends ui{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends ui{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends ui{constructor(e,t,s,i){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=i,this.type=2740243338}};class Si extends si{constructor(e,t,s,i){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=2736907675}}e.IfcBooleanResult=Si;class wi extends Pi{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=wi;e.IfcBoundingBox=class extends si{constructor(e,t,s,i,r){super(e),this.Corner=t,this.XDim=s,this.YDim=i,this.ZDim=r,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends ri{constructor(e,t,s,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=i,this.type=2713105998}};e.IfcCShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.WallThickness=n,this.Girth=a,this.InternalFilletRadius=l,this.CentreOfGravityInX=h,this.type=2898889636}};e.IfcCartesianPoint=class extends pi{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Mi extends si{constructor(e,t,s,i,r){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=59481748}}e.IfcCartesianTransformationOperator=Mi;class Bi extends Mi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Bi;e.IfcCartesianTransformationOperator2DnonUniform=class extends Bi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Scale2=o,this.type=3486308946}};class Fi extends Mi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Fi;e.IfcCartesianTransformationOperator3DnonUniform=class extends Fi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.Scale2=n,this.Scale3=a,this.type=1416205885}};class Li extends ci{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.type=1383045692}}e.IfcCircleProfileDef=Li;e.IfcClosedShell=class extends Zs{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcCompositeCurveSegment=class extends si{constructor(e,t,s,i){super(e),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.type=2485617015}};e.IfcCraneRailAShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallHeight=r,this.BaseWidth2=o,this.Radius=n,this.HeadWidth=a,this.HeadDepth2=l,this.HeadDepth3=h,this.WebThickness=c,this.BaseWidth4=u,this.BaseDepth1=A,this.BaseDepth2=p,this.BaseDepth3=d,this.CentreOfGravityInY=f,this.type=4133800736}};e.IfcCraneRailFShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallHeight=r,this.HeadWidth=o,this.Radius=n,this.HeadDepth2=a,this.HeadDepth3=l,this.WebThickness=h,this.BaseDepth1=c,this.BaseDepth2=u,this.CentreOfGravityInY=A,this.type=194851669}};class Ui extends si{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=Ui;e.IfcCsgSolid=class extends vi{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class Hi extends si{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=Hi;e.IfcCurveBoundedPlane=class extends wi{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=i,this.type=2827736869}};e.IfcDefinedSymbol=class extends si{constructor(e,t,s){super(e),this.Definition=t,this.Target=s,this.type=693772133}};e.IfcDimensionCurve=class extends xi{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=606661476}};e.IfcDimensionCurveTerminator=class extends Di{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Item=t,this.Styles=s,this.Name=i,this.AnnotatedCurve=r,this.Role=o,this.type=4054601972}};e.IfcDirection=class extends si{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};e.IfcDoorLiningProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.ThresholdDepth=a,this.ThresholdThickness=l,this.TransomThickness=h,this.TransomOffset=c,this.LiningOffset=u,this.ThresholdOffset=A,this.CasingThickness=p,this.CasingDepth=d,this.ShapeAspectStyle=f,this.type=2963535650}};e.IfcDoorPanelProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PanelDepth=o,this.PanelOperation=n,this.PanelWidth=a,this.PanelPosition=l,this.ShapeAspectStyle=h,this.type=1714330368}};e.IfcDoorStyle=class extends Oi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.OperationType=h,this.ConstructionType=c,this.ParameterTakesPrecedence=u,this.Sizeable=A,this.type=526551008}};class Gi extends si{constructor(e,t){super(e),this.Contents=t,this.type=3073041342}}e.IfcDraughtingCallout=Gi;e.IfcDraughtingPreDefinedColour=class extends di{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends fi{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};e.IfcEdgeLoop=class extends ai{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends yi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.MethodOfMeasurement=o,this.Quantities=n,this.type=1883228015}};class ki extends Oi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=339256511}}e.IfcElementType=ki;class Vi extends Pi{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=Vi;e.IfcEllipseProfileDef=class extends ci{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.SemiAxis1=r,this.SemiAxis2=o,this.type=2835456948}};class ji extends yi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.EnergySequence=o,this.UserDefinedEnergySequence=n,this.type=80994333}}e.IfcEnergyProperties=ji;e.IfcExtrudedAreaSolid=class extends bi{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=477187591}};e.IfcFaceBasedSurfaceModel=class extends si{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends si{constructor(e,t,s,i,r,o){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=i,this.PatternStart=r,this.HatchLineAngle=o,this.type=374418227}};e.IfcFillAreaStyleTileSymbolWithStyle=class extends si{constructor(e,t){super(e),this.Symbol=t,this.type=4203026998}};e.IfcFillAreaStyleTiles=class extends si{constructor(e,t,s,i){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=i,this.type=315944413}};e.IfcFluidFlowProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PropertySource=o,this.FlowConditionTimeSeries=n,this.VelocityTimeSeries=a,this.FlowrateTimeSeries=l,this.Fluid=h,this.PressureTimeSeries=c,this.UserDefinedPropertySource=u,this.TemperatureSingleValue=A,this.WetBulbTemperatureSingleValue=p,this.WetBulbTemperatureTimeSeries=d,this.TemperatureTimeSeries=f,this.FlowrateSingleValue=m,this.FlowConditionSingleValue=y,this.VelocitySingleValue=E,this.PressureSingleValue=g,this.type=3455213021}};class Qi extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=4238390223}}e.IfcFurnishingElementType=Qi;e.IfcFurnitureType=class extends Qi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.AssemblyPlace=c,this.type=1268542332}};e.IfcGeometricCurveSet=class extends ii{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};class Wi extends ci{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallWidth=r,this.OverallDepth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.type=1484403080}}e.IfcIShapeProfileDef=Wi;e.IfcLShapeProfileDef=class extends ci{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.Thickness=n,this.FilletRadius=a,this.EdgeRadius=l,this.LegSlope=h,this.CentreOfGravityInX=c,this.CentreOfGravityInY=u,this.type=572779678}};e.IfcLine=class extends Hi{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class zi extends vi{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=zi;class Ki extends li{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3888040117}}e.IfcObject=Ki;e.IfcOffsetCurve2D=class extends Hi{constructor(e,t,s,i){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Hi{constructor(e,t,s,i,r){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.RefDirection=r,this.type=3505215534}};e.IfcPermeableCoveringProperties=class extends yi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=3566463478}};e.IfcPlanarBox=class extends Ai{constructor(e,t,s,i){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=i,this.type=603570806}};e.IfcPlane=class extends Vi{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};class Yi extends Ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2945172077}}e.IfcProcess=Yi;class Xi extends Ki{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=4208778838}}e.IfcProduct=Xi;e.IfcProject=class extends Ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=103090709}};e.IfcProjectionCurve=class extends xi{constructor(e,t,s,i){super(e,t,s,i),this.Item=t,this.Styles=s,this.Name=i,this.type=4194566429}};e.IfcPropertySet=class extends yi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.HasProperties=o,this.type=1451395588}};e.IfcProxy=class extends Xi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.ProxyType=l,this.Tag=h,this.type=3219374653}};e.IfcRectangleHollowProfileDef=class extends Ei{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.WallThickness=n,this.InnerFilletRadius=a,this.OuterFilletRadius=l,this.type=2770003689}};e.IfcRectangularPyramid=class extends Ui{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.Height=r,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends wi{constructor(e,t,s,i,r,o,n,a){super(e),this.BasisSurface=t,this.U1=s,this.V1=i,this.U2=r,this.V2=o,this.Usense=n,this.Vsense=a,this.type=3454111270}};class Zi extends gi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.type=3939117080}}e.IfcRelAssigns=Zi;class qi extends Zi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingActor=a,this.ActingRole=l,this.type=1683148259}}e.IfcRelAssignsToActor=qi;class Ji extends Zi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=2495723537}}e.IfcRelAssignsToControl=Ji;e.IfcRelAssignsToGroup=class extends Zi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.type=1307041759}};e.IfcRelAssignsToProcess=class extends Zi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProcess=a,this.QuantityInProcess=l,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends Zi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProduct=a,this.type=2857406711}};e.IfcRelAssignsToProjectOrder=class extends Ji{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=3372526763}};e.IfcRelAssignsToResource=class extends Zi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingResource=a,this.type=205026976}};class $i extends gi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.type=1865459582}}e.IfcRelAssociates=$i;e.IfcRelAssociatesAppliedValue=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingAppliedValue=n,this.type=1327628568}};e.IfcRelAssociatesApproval=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingApproval=n,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingClassification=n,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends $i{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.Intent=n,this.RelatingConstraint=a,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingDocument=n,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingLibrary=n,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends $i{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingMaterial=n,this.type=2655215786}};e.IfcRelAssociatesProfileProperties=class extends $i{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingProfileProperties=n,this.ProfileSectionLocation=a,this.ProfileOrientation=l,this.type=2851387026}};class er extends gi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=826625072}}e.IfcRelConnects=er;class tr extends er{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.type=1204542856}}e.IfcRelConnectsElements=tr;e.IfcRelConnectsPathElements=class extends tr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RelatingPriorities=l,this.RelatedPriorities=h,this.RelatedConnectionType=c,this.RelatingConnectionType=u,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedElement=n,this.type=4201705270}};e.IfcRelConnectsPorts=class extends er{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedPort=n,this.RealizingElement=a,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedStructuralActivity=n,this.type=2127690289}};e.IfcRelConnectsStructuralElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedStructuralMember=n,this.type=3912681535}};class sr extends er{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.type=1638771189}}e.IfcRelConnectsStructuralMember=sr;e.IfcRelConnectsWithEccentricity=class extends sr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.ConnectionConstraint=u,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends tr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RealizingElements=l,this.ConnectionType=h,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedCoverings=n,this.type=886880790}};e.IfcRelCoversSpaces=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedSpace=o,this.RelatedCoverings=n,this.type=2802773753}};class ir extends gi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=2551354335}}e.IfcRelDecomposes=ir;class rr extends gi{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.type=693640335}}e.IfcRelDefines=rr;class or extends rr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingPropertyDefinition=n,this.type=4186316022}}e.IfcRelDefinesByProperties=or;e.IfcRelDefinesByType=class extends rr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingType=n,this.type=781010003}};e.IfcRelFillsElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingOpeningElement=o,this.RelatedBuildingElement=n,this.type=3940055652}};e.IfcRelFlowControlElements=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedControlElements=o,this.RelatingFlowElement=n,this.type=279856033}};e.IfcRelInteractionRequirements=class extends er{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.DailyInteraction=o,this.ImportanceRating=n,this.LocationOfInteraction=a,this.RelatedSpaceProgram=l,this.RelatingSpaceProgram=h,this.type=4189434867}};e.IfcRelNests=class extends ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=3268803585}};e.IfcRelOccupiesSpaces=class extends qi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingActor=a,this.ActingRole=l,this.type=2051452291}};e.IfcRelOverridesProperties=class extends or{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingPropertyDefinition=n,this.OverridingProperties=a,this.type=202636808}};e.IfcRelProjectsElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedFeatureElement=n,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=1245217292}};e.IfcRelSchedulesCostItems=class extends Ji{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=1058617721}};e.IfcRelSequence=class extends er{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingProcess=o,this.RelatedProcess=n,this.TimeLag=a,this.SequenceType=l,this.type=4122056220}};e.IfcRelServicesBuildings=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSystem=o,this.RelatedBuildings=n,this.type=366585022}};e.IfcRelSpaceBoundary=class extends er{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.type=3451746338}};e.IfcRelVoidsElement=class extends er{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedOpeningElement=n,this.type=1401173127}};class nr extends Ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2914609552}}e.IfcResource=nr;e.IfcRevolvedAreaSolid=class extends bi{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.type=1856042241}};e.IfcRightCircularCone=class extends Ui{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=i,this.type=4158566097}};e.IfcRightCircularCylinder=class extends Ui{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.Radius=i,this.type=3626867408}};class ar extends Xi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.type=2706606064}}e.IfcSpatialStructureElement=ar;class lr extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893378262}}e.IfcSpatialStructureElementType=lr;e.IfcSphere=class extends Ui{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};class hr extends Xi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3544373492}}e.IfcStructuralActivity=hr;class cr extends Xi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3136571912}}e.IfcStructuralItem=cr;class ur extends cr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=530289379}}e.IfcStructuralMember=ur;class Ar extends hr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3689010777}}e.IfcStructuralReaction=Ar;class pr extends ur{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=3979015343}}e.IfcStructuralSurfaceMember=pr;e.IfcStructuralSurfaceMemberVarying=class extends pr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.SubsequentThickness=c,this.VaryingThicknessLocation=u,this.type=2218152070}};e.IfcStructuredDimensionCallout=class extends Gi{constructor(e,t){super(e,t),this.Contents=t,this.type=4070609034}};e.IfcSurfaceCurveSweptAreaSolid=class extends bi{constructor(e,t,s,i,r,o,n){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.ReferenceSurface=n,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends Ri{constructor(e,t,s,i,r){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends Ri{constructor(e,t,s,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=i,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Qi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1580310250}};class dr extends Yi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TaskId=n,this.Status=a,this.WorkMethod=l,this.IsMilestone=h,this.Priority=c,this.type=3473067441}}e.IfcTask=dr;e.IfcTransportElementType=class extends ki{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2097647324}};class fr extends Ki{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.type=2296667514}}e.IfcActor=fr;e.IfcAnnotation=class extends Xi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1674181508}};e.IfcAsymmetricIShapeProfileDef=class extends Wi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallWidth=r,this.OverallDepth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.TopFlangeWidth=h,this.TopFlangeThickness=c,this.TopFlangeFilletRadius=u,this.CentreOfGravityInY=A,this.type=3207858831}};e.IfcBlock=class extends Ui{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.ZLength=r,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Si{constructor(e,t,s,i){super(e,t,s,i),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=3649129432}};class mr extends Hi{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=mr;e.IfcBuilding=class extends ar{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.ElevationOfRefHeight=c,this.ElevationOfTerrain=u,this.BuildingAddress=A,this.type=4031249490}};class yr extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1950629157}}e.IfcBuildingElementType=yr;e.IfcBuildingStorey=class extends ar{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.Elevation=c,this.type=3124254112}};e.IfcCircleHollowProfileDef=class extends Li{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.WallThickness=o,this.type=2937912522}};e.IfcColumnType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=300633059}};class Er extends mr{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=Er;class gr extends Hi{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=gr;class vr extends nr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.type=2559216714}}e.IfcConstructionResource=vr;class Ir extends Ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3293443760}}e.IfcControl=Ir;e.IfcCostItem=class extends Ir{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3895139033}};e.IfcCostSchedule=class extends Ir{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.SubmittedBy=n,this.PreparedBy=a,this.SubmittedOn=l,this.Status=h,this.TargetUsers=c,this.UpdateDate=u,this.ID=A,this.PredefinedType=p,this.type=1419761937}};e.IfcCoveringType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1916426348}};e.IfcCrewResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.type=3295246426}};e.IfcCurtainWallType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1457835157}};class _r extends Gi{constructor(e,t){super(e,t),this.Contents=t,this.type=681481545}}e.IfcDimensionCurveDirectedCallout=_r;class Tr extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3256556792}}e.IfcDistributionElementType=Tr;class Pr extends Tr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3849074793}}e.IfcDistributionFlowElementType=Pr;e.IfcElectricalBaseProperties=class extends ji{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.EnergySequence=o,this.UserDefinedEnergySequence=n,this.ElectricCurrentType=a,this.InputVoltage=l,this.InputFrequency=h,this.FullLoadCurrent=c,this.MinimumCircuitCurrent=u,this.MaximumPowerInput=A,this.RatedPowerInput=p,this.InputPhase=d,this.type=360485395}};class br extends Xi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1758889154}}e.IfcElement=br;e.IfcElementAssembly=class extends br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.AssemblyPlace=h,this.PredefinedType=c,this.type=4123344466}};class Rr extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1623761950}}e.IfcElementComponent=Rr;class Dr extends ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2590856083}}e.IfcElementComponentType=Dr;e.IfcEllipse=class extends gr{constructor(e,t,s,i){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=i,this.type=1704287377}};class Cr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2107101300}}e.IfcEnergyConversionDeviceType=Cr;e.IfcEquipmentElement=class extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1962604670}};e.IfcEquipmentStandard=class extends Ir{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3272907226}};e.IfcEvaporativeCoolerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3174744832}};e.IfcEvaporatorType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3390157468}};e.IfcFacetedBrep=class extends zi{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}};e.IfcFacetedBrepWithVoids=class extends zi{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};class Nr extends Rr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=647756555}}e.IfcFastener=Nr;class Or extends Dr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2489546625}}e.IfcFastenerType=Or;class xr extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2827207264}}e.IfcFeatureElement=xr;class Sr extends xr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2143335405}}e.IfcFeatureElementAddition=Sr;class wr extends xr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1287392070}}e.IfcFeatureElementSubtraction=wr;class Mr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3907093117}}e.IfcFlowControllerType=Mr;class Br extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3198132628}}e.IfcFlowFittingType=Br;e.IfcFlowMeterType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3815607619}};class Fr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1482959167}}e.IfcFlowMovingDeviceType=Fr;class Lr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1834744321}}e.IfcFlowSegmentType=Lr;class Ur extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1339347760}}e.IfcFlowStorageDeviceType=Ur;class Hr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2297155007}}e.IfcFlowTerminalType=Hr;class Gr extends Pr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=Gr;e.IfcFurnishingElement=class extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=263784265}};e.IfcFurnitureStandard=class extends Ir{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=814719939}};e.IfcGasTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=200128114}};e.IfcGrid=class extends Xi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.UAxes=l,this.VAxes=h,this.WAxes=c,this.type=3009204131}};class kr extends Ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2706460486}}e.IfcGroup=kr;e.IfcHeatExchangerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1251058090}};e.IfcHumidifierType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1806887404}};e.IfcInventory=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.InventoryType=n,this.Jurisdiction=a,this.ResponsiblePersons=l,this.LastUpdateDate=h,this.CurrentValue=c,this.OriginalValue=u,this.type=2391368822}};e.IfcJunctionBoxType=class extends Br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4288270099}};e.IfcLaborResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.SkillSet=c,this.type=3827777499}};e.IfcLampType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1051575348}};e.IfcLightFixtureType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1161773419}};e.IfcLinearDimension=class extends _r{constructor(e,t){super(e,t),this.Contents=t,this.type=2506943328}};e.IfcMechanicalFastener=class extends Nr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NominalDiameter=h,this.NominalLength=c,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Or{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2108223431}};e.IfcMemberType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3181161470}};e.IfcMotorConnectionType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=977012517}};e.IfcMove=class extends dr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TaskId=n,this.Status=a,this.WorkMethod=l,this.IsMilestone=h,this.Priority=c,this.MoveFrom=u,this.MoveTo=A,this.PunchList=p,this.type=1916936684}};e.IfcOccupant=class extends fr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.PredefinedType=a,this.type=4143007308}};e.IfcOpeningElement=class extends wr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3588315303}};e.IfcOrderAction=class extends dr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TaskId=n,this.Status=a,this.WorkMethod=l,this.IsMilestone=h,this.Priority=c,this.ActionID=u,this.type=3425660407}};e.IfcOutletType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2837617999}};e.IfcPerformanceHistory=class extends Ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LifeCyclePhase=n,this.type=2382730787}};e.IfcPermit=class extends Ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PermitID=n,this.type=3327091369}};e.IfcPipeFittingType=class extends Br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=804291784}};e.IfcPipeSegmentType=class extends Lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4231323485}};e.IfcPlateType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4017108033}};e.IfcPolyline=class extends mr{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class Vr extends Xi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3740093272}}e.IfcPort=Vr;e.IfcProcedure=class extends Yi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ProcedureID=n,this.ProcedureType=a,this.UserDefinedProcedureType=l,this.type=2744685151}};e.IfcProjectOrder=class extends Ir{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ID=n,this.PredefinedType=a,this.Status=l,this.type=2904328755}};e.IfcProjectOrderRecord=class extends Ir{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Records=n,this.PredefinedType=a,this.type=3642467123}};e.IfcProjectionElement=class extends Sr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1842657554}};e.IfcPumpType=class extends Fr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2250791053}};e.IfcRadiusDimension=class extends _r{constructor(e,t){super(e,t),this.Contents=t,this.type=3248260540}};e.IfcRailingType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2893384427}};e.IfcRampFlightType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2324767716}};e.IfcRelAggregates=class extends ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=160246688}};e.IfcRelAssignsTasks=class extends Ji{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.TimeForTask=l,this.type=2863920197}};e.IfcSanitaryTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1768891740}};e.IfcScheduleTimeControl=class extends Ir{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I,_,T){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ActualStart=n,this.EarlyStart=a,this.LateStart=l,this.ScheduleStart=h,this.ActualFinish=c,this.EarlyFinish=u,this.LateFinish=A,this.ScheduleFinish=p,this.ScheduleDuration=d,this.ActualDuration=f,this.RemainingTime=m,this.FreeFloat=y,this.TotalFloat=E,this.IsCritical=g,this.StatusTime=v,this.StartFloat=I,this.FinishFloat=_,this.Completion=T,this.type=3517283431}};e.IfcServiceLife=class extends Ir{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ServiceLifeType=n,this.ServiceLifeDuration=a,this.type=4105383287}};e.IfcSite=class extends ar{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.RefLatitude=c,this.RefLongitude=u,this.RefElevation=A,this.LandTitleNumber=p,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2533589738}};e.IfcSpace=class extends ar{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.InteriorOrExteriorSpace=c,this.ElevationWithFlooring=u,this.type=3856911033}};e.IfcSpaceHeaterType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1305183839}};e.IfcSpaceProgram=class extends Ir{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.SpaceProgramIdentifier=n,this.MaxRequiredArea=a,this.MinRequiredArea=l,this.RequestedLocation=h,this.StandardRequiredArea=c,this.type=652456506}};e.IfcSpaceType=class extends lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3812236995}};e.IfcStackTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3112655638}};e.IfcStairFlightType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1039846685}};class jr extends hr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.type=682877961}}e.IfcStructuralAction=jr;class Qr extends cr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1179482911}}e.IfcStructuralConnection=Qr;e.IfcStructuralCurveConnection=class extends Qr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=4243806635}};class Wr extends ur{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=214636428}}e.IfcStructuralCurveMember=Wr;e.IfcStructuralCurveMemberVarying=class extends Wr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=2445595289}};class zr extends jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.ProjectedOrTrue=A,this.type=1807405624}}e.IfcStructuralLinearAction=zr;e.IfcStructuralLinearActionVarying=class extends zr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.ProjectedOrTrue=A,this.VaryingAppliedLoadLocation=p,this.SubsequentAppliedLoads=d,this.type=1721250024}};e.IfcStructuralLoadGroup=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.type=1252848954}};class Kr extends jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.ProjectedOrTrue=A,this.type=1621171031}}e.IfcStructuralPlanarAction=Kr;e.IfcStructuralPlanarActionVarying=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.ProjectedOrTrue=A,this.VaryingAppliedLoadLocation=p,this.SubsequentAppliedLoads=d,this.type=3987759626}};e.IfcStructuralPointAction=class extends jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.CausedBy=u,this.type=2082059205}};e.IfcStructuralPointConnection=class extends Qr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=734778138}};e.IfcStructuralPointReaction=class extends Ar{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=1235345126}};e.IfcStructuralResultGroup=class extends kr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheoryType=n,this.ResultForLoadGroup=a,this.IsLinear=l,this.type=2986769608}};e.IfcStructuralSurfaceConnection=class extends Qr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1975003073}};e.IfcSubContractResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.SubContractor=c,this.JobDescription=u,this.type=148013059}};e.IfcSwitchingDeviceType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2315554128}};class Yr extends kr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2254336722}}e.IfcSystem=Yr;e.IfcTankType=class extends Ur{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=5716631}};e.IfcTimeSeriesSchedule=class extends Ir{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ApplicableDates=n,this.TimeSeriesScheduleType=a,this.TimeSeries=l,this.type=1637806684}};e.IfcTransformerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1692211062}};e.IfcTransportElement=class extends br{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OperationType=h,this.CapacityByWeight=c,this.CapacityByNumber=u,this.type=1620046519}};e.IfcTrimmedCurve=class extends mr{constructor(e,t,s,i,r,o){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=i,this.SenseAgreement=r,this.MasterRepresentation=o,this.type=3593883385}};e.IfcTubeBundleType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1911125066}};e.IfcValveType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=728799441}};e.IfcVirtualElement=class extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2769231204}};e.IfcWallType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1898987631}};e.IfcWasteTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1133259667}};class Xr extends Ir{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identifier=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=1028945134}}e.IfcWorkControl=Xr;e.IfcWorkPlan=class extends Xr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identifier=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=4218914973}};e.IfcWorkSchedule=class extends Xr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identifier=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.WorkControlType=d,this.UserDefinedControlType=f,this.type=3342526732}};e.IfcZone=class extends kr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=1033361043}};e.Ifc2DCompositeCurve=class extends Er{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1213861670}};e.IfcActionRequest=class extends Ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.RequestID=n,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1411407467}};e.IfcAirTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1871374353}};e.IfcAngularDimension=class extends _r{constructor(e,t){super(e,t),this.Contents=t,this.type=2470393545}};e.IfcAsset=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.AssetID=n,this.OriginalValue=a,this.CurrentValue=l,this.TotalReplacementCost=h,this.Owner=c,this.User=u,this.ResponsiblePerson=A,this.IncorporationDate=p,this.DepreciatedValue=d,this.type=3460190687}};class Zr extends mr{constructor(e,t,s,i,r,o){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.type=1967976161}}e.IfcBSplineCurve=Zr;e.IfcBeamType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=819618141}};class qr extends Zr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.type=1916977116}}e.IfcBezierCurve=qr;e.IfcBoilerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=231477066}};class Jr extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3299480353}}e.IfcBuildingElement=Jr;class $r extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=52481810}}e.IfcBuildingElementComponent=$r;e.IfcBuildingElementPart=class extends $r{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2979338954}};e.IfcBuildingElementProxy=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.CompositionType=h,this.type=1095909175}};e.IfcBuildingElementProxyType=class extends yr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1909888760}};e.IfcCableCarrierFittingType=class extends Br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3293546465}};e.IfcCableSegmentType=class extends Lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1285652485}};e.IfcChillerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2951183804}};e.IfcCircle=class extends gr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCoilType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2301859152}};e.IfcColumn=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=843113511}};e.IfcCompressorType=class extends Fr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3850581409}};e.IfcCondenserType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2816379211}};e.IfcCondition=class extends kr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2188551683}};e.IfcConditionCriterion=class extends Ir{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Criterion=n,this.CriterionDateTime=a,this.type=1163958913}};e.IfcConstructionEquipmentResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.Suppliers=c,this.UsageRatio=u,this.type=1060000209}};e.IfcConstructionProductResource=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ResourceIdentifier=n,this.ResourceGroup=a,this.ResourceConsumption=l,this.BaseQuantity=h,this.type=488727124}};e.IfcCooledBeamType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=335055490}};e.IfcCoolingTowerType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2954562838}};e.IfcCovering=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1973544240}};e.IfcCurtainWall=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3495092785}};e.IfcDamperType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3961806047}};e.IfcDiameterDimension=class extends _r{constructor(e,t){super(e,t),this.Contents=t,this.type=4147604152}};e.IfcDiscreteAccessory=class extends Rr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1335981549}};class eo extends Dr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2635815018}}e.IfcDiscreteAccessoryType=eo;e.IfcDistributionChamberElementType=class extends Pr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1599208980}};class to extends Tr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2063403501}}e.IfcDistributionControlElementType=to;class so extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1945004755}}e.IfcDistributionElement=so;class io extends so{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3040386961}}e.IfcDistributionFlowElement=io;e.IfcDistributionPort=class extends Vr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.FlowDirection=l,this.type=3041715199}};e.IfcDoor=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.type=395920057}};e.IfcDuctFittingType=class extends Br{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=869906466}};e.IfcDuctSegmentType=class extends Lr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3760055223}};e.IfcDuctSilencerType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2030761528}};class ro extends wr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.FeatureLength=h,this.type=855621170}}e.IfcEdgeFeature=ro;e.IfcElectricApplianceType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=663422040}};e.IfcElectricFlowStorageDeviceType=class extends Ur{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3277789161}};e.IfcElectricGeneratorType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1534661035}};e.IfcElectricHeaterType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1365060375}};e.IfcElectricMotorType=class extends Cr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Mr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=712377611}};e.IfcElectricalCircuit=class extends Yr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=1634875225}};e.IfcElectricalElement=class extends br{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=857184966}};e.IfcEnergyConversionDevice=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1658829314}};e.IfcFanType=class extends Fr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=346874300}};e.IfcFilterType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends Hr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4222183408}};class oo extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2058353004}}e.IfcFlowController=oo;e.IfcFlowFitting=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=4278956645}};e.IfcFlowInstrumentType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4037862832}};e.IfcFlowMovingDevice=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3132237377}};e.IfcFlowSegment=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=987401354}};e.IfcFlowStorageDevice=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=707683696}};e.IfcFlowTerminal=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2223149337}};e.IfcFlowTreatmentDevice=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3508470533}};e.IfcFooting=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=900683007}};e.IfcMember=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1073191201}};e.IfcPile=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.ConstructionType=c,this.type=1687234759}};e.IfcPlate=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3171933400}};e.IfcRailing=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2262370178}};e.IfcRamp=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.ShapeType=h,this.type=3024970846}};e.IfcRampFlight=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3283111854}};e.IfcRationalBezierCurve=class extends qr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.WeightsData=n,this.type=3055160366}};class no extends $r{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.type=3027567501}}e.IfcReinforcingElement=no;e.IfcReinforcingMesh=class extends no{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.MeshLength=c,this.MeshWidth=u,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=p,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=m,this.TransverseBarSpacing=y,this.type=2320036040}};e.IfcRoof=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.ShapeType=h,this.type=2016517767}};e.IfcRoundedEdgeFeature=class extends ro{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.FeatureLength=h,this.Radius=c,this.type=1376911519}};e.IfcSensorType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1783015770}};e.IfcSlab=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1529196076}};e.IfcStair=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.ShapeType=h,this.type=331165859}};e.IfcStairFlight=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NumberOfRiser=h,this.NumberOfTreads=c,this.RiserHeight=u,this.TreadLength=A,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends Yr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.OrientationOf2DPlane=a,this.LoadedBy=l,this.HasResults=h,this.type=2515109513}};e.IfcTendon=class extends no{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.TensionForce=p,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=m,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends no{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.type=2347447852}};e.IfcVibrationIsolatorType=class extends eo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3313531582}};class ao extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2391406946}}e.IfcWall=ao;e.IfcWallStandardCase=class extends ao{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3512223829}};e.IfcWindow=class extends Jr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.type=3304561284}};e.IfcActuatorType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2874132201}};e.IfcAlarmType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3001207471}};e.IfcBeam=class extends Jr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=753842376}};e.IfcChamferEdgeFeature=class extends ro{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.FeatureLength=h,this.Width=c,this.Height=u,this.type=2454782716}};e.IfcControllerType=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=578613899}};e.IfcDistributionChamberElement=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1052013943}};e.IfcDistributionControlElement=class extends so{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.ControlElementId=h,this.type=1062813311}};e.IfcElectricDistributionPoint=class extends oo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.DistributionPointFunction=h,this.UserDefinedFunction=c,this.type=3700593921}};e.IfcReinforcingBar=class extends no{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.NominalDiameter=c,this.CrossSectionArea=u,this.BarLength=A,this.BarRole=p,this.BarSurface=d,this.type=979691226}}}(dI||(dI={})),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 i{}i.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},i.COMPLETION_G1={type:3,value:"COMPLETION_G1"},i.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},i.SNOW_S={type:3,value:"SNOW_S"},i.WIND_W={type:3,value:"WIND_W"},i.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},i.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},i.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},i.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},i.FIRE={type:3,value:"FIRE"},i.IMPULSE={type:3,value:"IMPULSE"},i.IMPACT={type:3,value:"IMPACT"},i.TRANSPORT={type:3,value:"TRANSPORT"},i.ERECTION={type:3,value:"ERECTION"},i.PROPPING={type:3,value:"PROPPING"},i.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},i.SHRINKAGE={type:3,value:"SHRINKAGE"},i.CREEP={type:3,value:"CREEP"},i.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},i.BUOYANCY={type:3,value:"BUOYANCY"},i.ICE={type:3,value:"ICE"},i.CURRENT={type:3,value:"CURRENT"},i.WAVE={type:3,value:"WAVE"},i.RAIN={type:3,value:"RAIN"},i.BRAKES={type:3,value:"BRAKES"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=i;class r{}r.PERMANENT_G={type:3,value:"PERMANENT_G"},r.VARIABLE_Q={type:3,value:"VARIABLE_Q"},r.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},r.USERDEFINED={type:3,value:"USERDEFINED"},r.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=r;class o{}o.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},o.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},o.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},o.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},o.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=o;class n{}n.OFFICE={type:3,value:"OFFICE"},n.SITE={type:3,value:"SITE"},n.HOME={type:3,value:"HOME"},n.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},n.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=n;class a{}a.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},a.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},a.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=a;class l{}l.DIFFUSER={type:3,value:"DIFFUSER"},l.GRILLE={type:3,value:"GRILLE"},l.LOUVRE={type:3,value:"LOUVRE"},l.REGISTER={type:3,value:"REGISTER"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=l;class h{}h.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},h.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},h.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},h.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},h.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},h.HEATPIPE={type:3,value:"HEATPIPE"},h.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},h.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},h.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=h;class c{}c.BELL={type:3,value:"BELL"},c.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},c.LIGHT={type:3,value:"LIGHT"},c.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},c.SIREN={type:3,value:"SIREN"},c.WHISTLE={type:3,value:"WHISTLE"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=c;class u{}u.IN_PLANE_LOADING_2D={type:3,value:"IN_PLANE_LOADING_2D"},u.OUT_PLANE_LOADING_2D={type:3,value:"OUT_PLANE_LOADING_2D"},u.LOADING_3D={type:3,value:"LOADING_3D"},u.USERDEFINED={type:3,value:"USERDEFINED"},u.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisModelTypeEnum=u;class A{}A.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},A.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},A.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},A.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},A.USERDEFINED={type:3,value:"USERDEFINED"},A.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=A;class p{}p.ADD={type:3,value:"ADD"},p.DIVIDE={type:3,value:"DIVIDE"},p.MULTIPLY={type:3,value:"MULTIPLY"},p.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=p;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 m{}m.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},m.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},m.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},m.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},m.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},m.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=m;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 E{}E.BEAM={type:3,value:"BEAM"},E.JOIST={type:3,value:"JOIST"},E.HOLLOWCORE={type:3,value:"HOLLOWCORE"},E.LINTEL={type:3,value:"LINTEL"},E.SPANDREL={type:3,value:"SPANDREL"},E.T_BEAM={type:3,value:"T_BEAM"},E.USERDEFINED={type:3,value:"USERDEFINED"},E.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBeamTypeEnum=E;class g{}g.GREATERTHAN={type:3,value:"GREATERTHAN"},g.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},g.LESSTHAN={type:3,value:"LESSTHAN"},g.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},g.EQUALTO={type:3,value:"EQUALTO"},g.NOTEQUALTO={type:3,value:"NOTEQUALTO"},g.INCLUDES={type:3,value:"INCLUDES"},g.NOTINCLUDES={type:3,value:"NOTINCLUDES"},g.INCLUDEDIN={type:3,value:"INCLUDEDIN"},g.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"},e.IfcBenchmarkEnum=g;class v{}v.WATER={type:3,value:"WATER"},v.STEAM={type:3,value:"STEAM"},v.USERDEFINED={type:3,value:"USERDEFINED"},v.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=v;class I{}I.UNION={type:3,value:"UNION"},I.INTERSECTION={type:3,value:"INTERSECTION"},I.DIFFERENCE={type:3,value:"DIFFERENCE"},e.IfcBooleanOperator=I;class _{}_.INSULATION={type:3,value:"INSULATION"},_.PRECASTPANEL={type:3,value:"PRECASTPANEL"},_.USERDEFINED={type:3,value:"USERDEFINED"},_.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementPartTypeEnum=_;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 P{}P.FENESTRATION={type:3,value:"FENESTRATION"},P.FOUNDATION={type:3,value:"FOUNDATION"},P.LOADBEARING={type:3,value:"LOADBEARING"},P.OUTERSHELL={type:3,value:"OUTERSHELL"},P.SHADING={type:3,value:"SHADING"},P.TRANSPORT={type:3,value:"TRANSPORT"},P.USERDEFINED={type:3,value:"USERDEFINED"},P.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingSystemTypeEnum=P;class b{}b.USERDEFINED={type:3,value:"USERDEFINED"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBurnerTypeEnum=b;class R{}R.BEND={type:3,value:"BEND"},R.CROSS={type:3,value:"CROSS"},R.REDUCER={type:3,value:"REDUCER"},R.TEE={type:3,value:"TEE"},R.USERDEFINED={type:3,value:"USERDEFINED"},R.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=R;class D{}D.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},D.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},D.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},D.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=D;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 N{}N.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},N.CABLESEGMENT={type:3,value:"CABLESEGMENT"},N.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},N.CORESEGMENT={type:3,value:"CORESEGMENT"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=N;class O{}O.NOCHANGE={type:3,value:"NOCHANGE"},O.MODIFIED={type:3,value:"MODIFIED"},O.ADDED={type:3,value:"ADDED"},O.DELETED={type:3,value:"DELETED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChangeActionEnum=O;class x{}x.AIRCOOLED={type:3,value:"AIRCOOLED"},x.WATERCOOLED={type:3,value:"WATERCOOLED"},x.HEATRECOVERY={type:3,value:"HEATRECOVERY"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChillerTypeEnum=x;class S{}S.USERDEFINED={type:3,value:"USERDEFINED"},S.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChimneyTypeEnum=S;class w{}w.DXCOOLINGCOIL={type:3,value:"DXCOOLINGCOIL"},w.ELECTRICHEATINGCOIL={type:3,value:"ELECTRICHEATINGCOIL"},w.GASHEATINGCOIL={type:3,value:"GASHEATINGCOIL"},w.HYDRONICCOIL={type:3,value:"HYDRONICCOIL"},w.STEAMHEATINGCOIL={type:3,value:"STEAMHEATINGCOIL"},w.WATERCOOLINGCOIL={type:3,value:"WATERCOOLINGCOIL"},w.WATERHEATINGCOIL={type:3,value:"WATERHEATINGCOIL"},w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoilTypeEnum=w;class M{}M.COLUMN={type:3,value:"COLUMN"},M.PILASTER={type:3,value:"PILASTER"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcColumnTypeEnum=M;class B{}B.ANTENNA={type:3,value:"ANTENNA"},B.COMPUTER={type:3,value:"COMPUTER"},B.FAX={type:3,value:"FAX"},B.GATEWAY={type:3,value:"GATEWAY"},B.MODEM={type:3,value:"MODEM"},B.NETWORKAPPLIANCE={type:3,value:"NETWORKAPPLIANCE"},B.NETWORKBRIDGE={type:3,value:"NETWORKBRIDGE"},B.NETWORKHUB={type:3,value:"NETWORKHUB"},B.PRINTER={type:3,value:"PRINTER"},B.REPEATER={type:3,value:"REPEATER"},B.ROUTER={type:3,value:"ROUTER"},B.SCANNER={type:3,value:"SCANNER"},B.USERDEFINED={type:3,value:"USERDEFINED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCommunicationsApplianceTypeEnum=B;class F{}F.P_COMPLEX={type:3,value:"P_COMPLEX"},F.Q_COMPLEX={type:3,value:"Q_COMPLEX"},e.IfcComplexPropertyTemplateTypeEnum=F;class L{}L.DYNAMIC={type:3,value:"DYNAMIC"},L.RECIPROCATING={type:3,value:"RECIPROCATING"},L.ROTARY={type:3,value:"ROTARY"},L.SCROLL={type:3,value:"SCROLL"},L.TROCHOIDAL={type:3,value:"TROCHOIDAL"},L.SINGLESTAGE={type:3,value:"SINGLESTAGE"},L.BOOSTER={type:3,value:"BOOSTER"},L.OPENTYPE={type:3,value:"OPENTYPE"},L.HERMETIC={type:3,value:"HERMETIC"},L.SEMIHERMETIC={type:3,value:"SEMIHERMETIC"},L.WELDEDSHELLHERMETIC={type:3,value:"WELDEDSHELLHERMETIC"},L.ROLLINGPISTON={type:3,value:"ROLLINGPISTON"},L.ROTARYVANE={type:3,value:"ROTARYVANE"},L.SINGLESCREW={type:3,value:"SINGLESCREW"},L.TWINSCREW={type:3,value:"TWINSCREW"},L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCompressorTypeEnum=L;class U{}U.AIRCOOLED={type:3,value:"AIRCOOLED"},U.EVAPORATIVECOOLED={type:3,value:"EVAPORATIVECOOLED"},U.WATERCOOLED={type:3,value:"WATERCOOLED"},U.WATERCOOLEDBRAZEDPLATE={type:3,value:"WATERCOOLEDBRAZEDPLATE"},U.WATERCOOLEDSHELLCOIL={type:3,value:"WATERCOOLEDSHELLCOIL"},U.WATERCOOLEDSHELLTUBE={type:3,value:"WATERCOOLEDSHELLTUBE"},U.WATERCOOLEDTUBEINTUBE={type:3,value:"WATERCOOLEDTUBEINTUBE"},U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCondenserTypeEnum=U;class H{}H.ATPATH={type:3,value:"ATPATH"},H.ATSTART={type:3,value:"ATSTART"},H.ATEND={type:3,value:"ATEND"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=H;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 k{}k.DEMOLISHING={type:3,value:"DEMOLISHING"},k.EARTHMOVING={type:3,value:"EARTHMOVING"},k.ERECTING={type:3,value:"ERECTING"},k.HEATING={type:3,value:"HEATING"},k.LIGHTING={type:3,value:"LIGHTING"},k.PAVING={type:3,value:"PAVING"},k.PUMPING={type:3,value:"PUMPING"},k.TRANSPORTING={type:3,value:"TRANSPORTING"},k.USERDEFINED={type:3,value:"USERDEFINED"},k.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionEquipmentResourceTypeEnum=k;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 j{}j.ASSEMBLY={type:3,value:"ASSEMBLY"},j.FORMWORK={type:3,value:"FORMWORK"},j.USERDEFINED={type:3,value:"USERDEFINED"},j.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstructionProductResourceTypeEnum=j;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 Z{}Z.OFFICE={type:3,value:"OFFICE"},Z.SITE={type:3,value:"SITE"},Z.USERDEFINED={type:3,value:"USERDEFINED"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCrewResourceTypeEnum=Z;class q{}q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=q;class J{}J.LINEAR={type:3,value:"LINEAR"},J.LOG_LINEAR={type:3,value:"LOG_LINEAR"},J.LOG_LOG={type:3,value:"LOG_LOG"},J.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurveInterpolationEnum=J;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 ie{}ie.ANCHORPLATE={type:3,value:"ANCHORPLATE"},ie.BRACKET={type:3,value:"BRACKET"},ie.SHOE={type:3,value:"SHOE"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDiscreteAccessoryTypeEnum=ie;class re{}re.FORMEDDUCT={type:3,value:"FORMEDDUCT"},re.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},re.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},re.MANHOLE={type:3,value:"MANHOLE"},re.METERCHAMBER={type:3,value:"METERCHAMBER"},re.SUMP={type:3,value:"SUMP"},re.TRENCH={type:3,value:"TRENCH"},re.VALVECHAMBER={type:3,value:"VALVECHAMBER"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=re;class oe{}oe.CABLE={type:3,value:"CABLE"},oe.CABLECARRIER={type:3,value:"CABLECARRIER"},oe.DUCT={type:3,value:"DUCT"},oe.PIPE={type:3,value:"PIPE"},oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionPortTypeEnum=oe;class ne{}ne.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},ne.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},ne.CHEMICAL={type:3,value:"CHEMICAL"},ne.CHILLEDWATER={type:3,value:"CHILLEDWATER"},ne.COMMUNICATION={type:3,value:"COMMUNICATION"},ne.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},ne.CONDENSERWATER={type:3,value:"CONDENSERWATER"},ne.CONTROL={type:3,value:"CONTROL"},ne.CONVEYING={type:3,value:"CONVEYING"},ne.DATA={type:3,value:"DATA"},ne.DISPOSAL={type:3,value:"DISPOSAL"},ne.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},ne.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},ne.DRAINAGE={type:3,value:"DRAINAGE"},ne.EARTHING={type:3,value:"EARTHING"},ne.ELECTRICAL={type:3,value:"ELECTRICAL"},ne.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},ne.EXHAUST={type:3,value:"EXHAUST"},ne.FIREPROTECTION={type:3,value:"FIREPROTECTION"},ne.FUEL={type:3,value:"FUEL"},ne.GAS={type:3,value:"GAS"},ne.HAZARDOUS={type:3,value:"HAZARDOUS"},ne.HEATING={type:3,value:"HEATING"},ne.LIGHTING={type:3,value:"LIGHTING"},ne.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},ne.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},ne.OIL={type:3,value:"OIL"},ne.OPERATIONAL={type:3,value:"OPERATIONAL"},ne.POWERGENERATION={type:3,value:"POWERGENERATION"},ne.RAINWATER={type:3,value:"RAINWATER"},ne.REFRIGERATION={type:3,value:"REFRIGERATION"},ne.SECURITY={type:3,value:"SECURITY"},ne.SEWAGE={type:3,value:"SEWAGE"},ne.SIGNAL={type:3,value:"SIGNAL"},ne.STORMWATER={type:3,value:"STORMWATER"},ne.TELEPHONE={type:3,value:"TELEPHONE"},ne.TV={type:3,value:"TV"},ne.VACUUM={type:3,value:"VACUUM"},ne.VENT={type:3,value:"VENT"},ne.VENTILATION={type:3,value:"VENTILATION"},ne.WASTEWATER={type:3,value:"WASTEWATER"},ne.WATERSUPPLY={type:3,value:"WATERSUPPLY"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionSystemEnum=ne;class ae{}ae.PUBLIC={type:3,value:"PUBLIC"},ae.RESTRICTED={type:3,value:"RESTRICTED"},ae.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},ae.PERSONAL={type:3,value:"PERSONAL"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=ae;class le{}le.DRAFT={type:3,value:"DRAFT"},le.FINALDRAFT={type:3,value:"FINALDRAFT"},le.FINAL={type:3,value:"FINAL"},le.REVISION={type:3,value:"REVISION"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=le;class he{}he.SWINGING={type:3,value:"SWINGING"},he.DOUBLE_ACTING={type:3,value:"DOUBLE_ACTING"},he.SLIDING={type:3,value:"SLIDING"},he.FOLDING={type:3,value:"FOLDING"},he.REVOLVING={type:3,value:"REVOLVING"},he.ROLLINGUP={type:3,value:"ROLLINGUP"},he.FIXEDPANEL={type:3,value:"FIXEDPANEL"},he.USERDEFINED={type:3,value:"USERDEFINED"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelOperationEnum=he;class ce{}ce.LEFT={type:3,value:"LEFT"},ce.MIDDLE={type:3,value:"MIDDLE"},ce.RIGHT={type:3,value:"RIGHT"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=ce;class ue{}ue.ALUMINIUM={type:3,value:"ALUMINIUM"},ue.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},ue.STEEL={type:3,value:"STEEL"},ue.WOOD={type:3,value:"WOOD"},ue.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},ue.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},ue.PLASTIC={type:3,value:"PLASTIC"},ue.USERDEFINED={type:3,value:"USERDEFINED"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=ue;class Ae{}Ae.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Ae.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Ae.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Ae.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Ae.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Ae.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Ae.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Ae.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Ae.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Ae.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Ae.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Ae.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Ae.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Ae.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Ae.REVOLVING={type:3,value:"REVOLVING"},Ae.ROLLINGUP={type:3,value:"ROLLINGUP"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=Ae;class pe{}pe.DOOR={type:3,value:"DOOR"},pe.GATE={type:3,value:"GATE"},pe.TRAPDOOR={type:3,value:"TRAPDOOR"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeEnum=pe;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 me{}me.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},me.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=me;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 Ee{}Ee.DISHWASHER={type:3,value:"DISHWASHER"},Ee.ELECTRICCOOKER={type:3,value:"ELECTRICCOOKER"},Ee.FREESTANDINGELECTRICHEATER={type:3,value:"FREESTANDINGELECTRICHEATER"},Ee.FREESTANDINGFAN={type:3,value:"FREESTANDINGFAN"},Ee.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},Ee.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},Ee.FREEZER={type:3,value:"FREEZER"},Ee.FRIDGE_FREEZER={type:3,value:"FRIDGE_FREEZER"},Ee.HANDDRYER={type:3,value:"HANDDRYER"},Ee.KITCHENMACHINE={type:3,value:"KITCHENMACHINE"},Ee.MICROWAVE={type:3,value:"MICROWAVE"},Ee.PHOTOCOPIER={type:3,value:"PHOTOCOPIER"},Ee.REFRIGERATOR={type:3,value:"REFRIGERATOR"},Ee.TUMBLEDRYER={type:3,value:"TUMBLEDRYER"},Ee.VENDINGMACHINE={type:3,value:"VENDINGMACHINE"},Ee.WASHINGMACHINE={type:3,value:"WASHINGMACHINE"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricApplianceTypeEnum=Ee;class ge{}ge.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},ge.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},ge.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},ge.SWITCHBOARD={type:3,value:"SWITCHBOARD"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionBoardTypeEnum=ge;class ve{}ve.BATTERY={type:3,value:"BATTERY"},ve.CAPACITORBANK={type:3,value:"CAPACITORBANK"},ve.HARMONICFILTER={type:3,value:"HARMONICFILTER"},ve.INDUCTORBANK={type:3,value:"INDUCTORBANK"},ve.UPS={type:3,value:"UPS"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=ve;class Ie{}Ie.CHP={type:3,value:"CHP"},Ie.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},Ie.STANDALONE={type:3,value:"STANDALONE"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=Ie;class _e{}_e.DC={type:3,value:"DC"},_e.INDUCTION={type:3,value:"INDUCTION"},_e.POLYPHASE={type:3,value:"POLYPHASE"},_e.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},_e.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},_e.USERDEFINED={type:3,value:"USERDEFINED"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=_e;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 Pe{}Pe.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},Pe.ARCH={type:3,value:"ARCH"},Pe.BEAM_GRID={type:3,value:"BEAM_GRID"},Pe.BRACED_FRAME={type:3,value:"BRACED_FRAME"},Pe.GIRDER={type:3,value:"GIRDER"},Pe.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},Pe.RIGID_FRAME={type:3,value:"RIGID_FRAME"},Pe.SLAB_FIELD={type:3,value:"SLAB_FIELD"},Pe.TRUSS={type:3,value:"TRUSS"},Pe.USERDEFINED={type:3,value:"USERDEFINED"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=Pe;class be{}be.COMPLEX={type:3,value:"COMPLEX"},be.ELEMENT={type:3,value:"ELEMENT"},be.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=be;class Re{}Re.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},Re.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEngineTypeEnum=Re;class De{}De.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER"},De.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER={type:3,value:"DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER"},De.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER={type:3,value:"DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER"},De.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER={type:3,value:"DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER"},De.DIRECTEVAPORATIVEAIRWASHER={type:3,value:"DIRECTEVAPORATIVEAIRWASHER"},De.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER={type:3,value:"INDIRECTEVAPORATIVEPACKAGEAIRCOOLER"},De.INDIRECTEVAPORATIVEWETCOIL={type:3,value:"INDIRECTEVAPORATIVEWETCOIL"},De.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER={type:3,value:"INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER"},De.INDIRECTDIRECTCOMBINATION={type:3,value:"INDIRECTDIRECTCOMBINATION"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEvaporativeCoolerTypeEnum=De;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 Ne{}Ne.EVENTRULE={type:3,value:"EVENTRULE"},Ne.EVENTMESSAGE={type:3,value:"EVENTMESSAGE"},Ne.EVENTTIME={type:3,value:"EVENTTIME"},Ne.EVENTCOMPLEX={type:3,value:"EVENTCOMPLEX"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTriggerTypeEnum=Ne;class Oe{}Oe.STARTEVENT={type:3,value:"STARTEVENT"},Oe.ENDEVENT={type:3,value:"ENDEVENT"},Oe.INTERMEDIATEEVENT={type:3,value:"INTERMEDIATEEVENT"},Oe.USERDEFINED={type:3,value:"USERDEFINED"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEventTypeEnum=Oe;class xe{}xe.EXTERNAL={type:3,value:"EXTERNAL"},xe.EXTERNAL_EARTH={type:3,value:"EXTERNAL_EARTH"},xe.EXTERNAL_WATER={type:3,value:"EXTERNAL_WATER"},xe.EXTERNAL_FIRE={type:3,value:"EXTERNAL_FIRE"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcExternalSpatialElementTypeEnum=xe;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 we{}we.GLUE={type:3,value:"GLUE"},we.MORTAR={type:3,value:"MORTAR"},we.WELD={type:3,value:"WELD"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFastenerTypeEnum=we;class Me{}Me.AIRPARTICLEFILTER={type:3,value:"AIRPARTICLEFILTER"},Me.COMPRESSEDAIRFILTER={type:3,value:"COMPRESSEDAIRFILTER"},Me.ODORFILTER={type:3,value:"ODORFILTER"},Me.OILFILTER={type:3,value:"OILFILTER"},Me.STRAINER={type:3,value:"STRAINER"},Me.WATERFILTER={type:3,value:"WATERFILTER"},Me.USERDEFINED={type:3,value:"USERDEFINED"},Me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFilterTypeEnum=Me;class Be{}Be.BREECHINGINLET={type:3,value:"BREECHINGINLET"},Be.FIREHYDRANT={type:3,value:"FIREHYDRANT"},Be.HOSEREEL={type:3,value:"HOSEREEL"},Be.SPRINKLER={type:3,value:"SPRINKLER"},Be.SPRINKLERDEFLECTOR={type:3,value:"SPRINKLERDEFLECTOR"},Be.USERDEFINED={type:3,value:"USERDEFINED"},Be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFireSuppressionTerminalTypeEnum=Be;class Fe{}Fe.SOURCE={type:3,value:"SOURCE"},Fe.SINK={type:3,value:"SINK"},Fe.SOURCEANDSINK={type:3,value:"SOURCEANDSINK"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowDirectionEnum=Fe;class Le{}Le.PRESSUREGAUGE={type:3,value:"PRESSUREGAUGE"},Le.THERMOMETER={type:3,value:"THERMOMETER"},Le.AMMETER={type:3,value:"AMMETER"},Le.FREQUENCYMETER={type:3,value:"FREQUENCYMETER"},Le.POWERFACTORMETER={type:3,value:"POWERFACTORMETER"},Le.PHASEANGLEMETER={type:3,value:"PHASEANGLEMETER"},Le.VOLTMETER_PEAK={type:3,value:"VOLTMETER_PEAK"},Le.VOLTMETER_RMS={type:3,value:"VOLTMETER_RMS"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowInstrumentTypeEnum=Le;class Ue{}Ue.ENERGYMETER={type:3,value:"ENERGYMETER"},Ue.GASMETER={type:3,value:"GASMETER"},Ue.OILMETER={type:3,value:"OILMETER"},Ue.WATERMETER={type:3,value:"WATERMETER"},Ue.USERDEFINED={type:3,value:"USERDEFINED"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=Ue;class He{}He.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},He.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},He.PAD_FOOTING={type:3,value:"PAD_FOOTING"},He.PILE_CAP={type:3,value:"PILE_CAP"},He.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},He.USERDEFINED={type:3,value:"USERDEFINED"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=He;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 ke{}ke.TERRAIN={type:3,value:"TERRAIN"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeographicElementTypeEnum=ke;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 je{}je.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},je.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=je;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 Ze{}Ze.DATA={type:3,value:"DATA"},Ze.POWER={type:3,value:"POWER"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcJunctionBoxTypeEnum=Ze;class qe{}qe.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},qe.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},qe.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},qe.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcKnotType=qe;class Je{}Je.ADMINISTRATION={type:3,value:"ADMINISTRATION"},Je.CARPENTRY={type:3,value:"CARPENTRY"},Je.CLEANING={type:3,value:"CLEANING"},Je.CONCRETE={type:3,value:"CONCRETE"},Je.DRYWALL={type:3,value:"DRYWALL"},Je.ELECTRIC={type:3,value:"ELECTRIC"},Je.FINISHING={type:3,value:"FINISHING"},Je.FLOORING={type:3,value:"FLOORING"},Je.GENERAL={type:3,value:"GENERAL"},Je.HVAC={type:3,value:"HVAC"},Je.LANDSCAPING={type:3,value:"LANDSCAPING"},Je.MASONRY={type:3,value:"MASONRY"},Je.PAINTING={type:3,value:"PAINTING"},Je.PAVING={type:3,value:"PAVING"},Je.PLUMBING={type:3,value:"PLUMBING"},Je.ROOFING={type:3,value:"ROOFING"},Je.SITEGRADING={type:3,value:"SITEGRADING"},Je.STEELWORK={type:3,value:"STEELWORK"},Je.SURVEYING={type:3,value:"SURVEYING"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLaborResourceTypeEnum=Je;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 it{}it.POINTSOURCE={type:3,value:"POINTSOURCE"},it.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},it.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=it;class rt{}rt.LOAD_GROUP={type:3,value:"LOAD_GROUP"},rt.LOAD_CASE={type:3,value:"LOAD_CASE"},rt.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=rt;class ot{}ot.LOGICALAND={type:3,value:"LOGICALAND"},ot.LOGICALOR={type:3,value:"LOGICALOR"},ot.LOGICALXOR={type:3,value:"LOGICALXOR"},ot.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},ot.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"},e.IfcLogicalOperatorEnum=ot;class nt{}nt.ANCHORBOLT={type:3,value:"ANCHORBOLT"},nt.BOLT={type:3,value:"BOLT"},nt.DOWEL={type:3,value:"DOWEL"},nt.NAIL={type:3,value:"NAIL"},nt.NAILPLATE={type:3,value:"NAILPLATE"},nt.RIVET={type:3,value:"RIVET"},nt.SCREW={type:3,value:"SCREW"},nt.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},nt.STAPLE={type:3,value:"STAPLE"},nt.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMechanicalFastenerTypeEnum=nt;class at{}at.AIRSTATION={type:3,value:"AIRSTATION"},at.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},at.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},at.OXYGENPLANT={type:3,value:"OXYGENPLANT"},at.VACUUMSTATION={type:3,value:"VACUUMSTATION"},at.USERDEFINED={type:3,value:"USERDEFINED"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMedicalDeviceTypeEnum=at;class lt{}lt.BRACE={type:3,value:"BRACE"},lt.CHORD={type:3,value:"CHORD"},lt.COLLAR={type:3,value:"COLLAR"},lt.MEMBER={type:3,value:"MEMBER"},lt.MULLION={type:3,value:"MULLION"},lt.PLATE={type:3,value:"PLATE"},lt.POST={type:3,value:"POST"},lt.PURLIN={type:3,value:"PURLIN"},lt.RAFTER={type:3,value:"RAFTER"},lt.STRINGER={type:3,value:"STRINGER"},lt.STRUT={type:3,value:"STRUT"},lt.STUD={type:3,value:"STUD"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMemberTypeEnum=lt;class ht{}ht.BELTDRIVE={type:3,value:"BELTDRIVE"},ht.COUPLING={type:3,value:"COUPLING"},ht.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},ht.USERDEFINED={type:3,value:"USERDEFINED"},ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=ht;class ct{}ct.NULL={type:3,value:"NULL"},e.IfcNullStyle=ct;class ut{}ut.PRODUCT={type:3,value:"PRODUCT"},ut.PROCESS={type:3,value:"PROCESS"},ut.CONTROL={type:3,value:"CONTROL"},ut.RESOURCE={type:3,value:"RESOURCE"},ut.ACTOR={type:3,value:"ACTOR"},ut.GROUP={type:3,value:"GROUP"},ut.PROJECT={type:3,value:"PROJECT"},ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=ut;class At{}At.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},At.CODEWAIVER={type:3,value:"CODEWAIVER"},At.DESIGNINTENT={type:3,value:"DESIGNINTENT"},At.EXTERNAL={type:3,value:"EXTERNAL"},At.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},At.MERGECONFLICT={type:3,value:"MERGECONFLICT"},At.MODELVIEW={type:3,value:"MODELVIEW"},At.PARAMETER={type:3,value:"PARAMETER"},At.REQUIREMENT={type:3,value:"REQUIREMENT"},At.SPECIFICATION={type:3,value:"SPECIFICATION"},At.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},At.USERDEFINED={type:3,value:"USERDEFINED"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=At;class pt{}pt.ASSIGNEE={type:3,value:"ASSIGNEE"},pt.ASSIGNOR={type:3,value:"ASSIGNOR"},pt.LESSEE={type:3,value:"LESSEE"},pt.LESSOR={type:3,value:"LESSOR"},pt.LETTINGAGENT={type:3,value:"LETTINGAGENT"},pt.OWNER={type:3,value:"OWNER"},pt.TENANT={type:3,value:"TENANT"},pt.USERDEFINED={type:3,value:"USERDEFINED"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=pt;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 mt{}mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPerformanceHistoryTypeEnum=mt;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 Et{}Et.ACCESS={type:3,value:"ACCESS"},Et.BUILDING={type:3,value:"BUILDING"},Et.WORK={type:3,value:"WORK"},Et.USERDEFINED={type:3,value:"USERDEFINED"},Et.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPermitTypeEnum=Et;class gt{}gt.PHYSICAL={type:3,value:"PHYSICAL"},gt.VIRTUAL={type:3,value:"VIRTUAL"},gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPhysicalOrVirtualEnum=gt;class vt{}vt.CAST_IN_PLACE={type:3,value:"CAST_IN_PLACE"},vt.COMPOSITE={type:3,value:"COMPOSITE"},vt.PRECAST_CONCRETE={type:3,value:"PRECAST_CONCRETE"},vt.PREFAB_STEEL={type:3,value:"PREFAB_STEEL"},vt.USERDEFINED={type:3,value:"USERDEFINED"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileConstructionEnum=vt;class It{}It.BORED={type:3,value:"BORED"},It.DRIVEN={type:3,value:"DRIVEN"},It.JETGROUTING={type:3,value:"JETGROUTING"},It.COHESION={type:3,value:"COHESION"},It.FRICTION={type:3,value:"FRICTION"},It.SUPPORT={type:3,value:"SUPPORT"},It.USERDEFINED={type:3,value:"USERDEFINED"},It.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPileTypeEnum=It;class _t{}_t.BEND={type:3,value:"BEND"},_t.CONNECTOR={type:3,value:"CONNECTOR"},_t.ENTRY={type:3,value:"ENTRY"},_t.EXIT={type:3,value:"EXIT"},_t.JUNCTION={type:3,value:"JUNCTION"},_t.OBSTRUCTION={type:3,value:"OBSTRUCTION"},_t.TRANSITION={type:3,value:"TRANSITION"},_t.USERDEFINED={type:3,value:"USERDEFINED"},_t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeFittingTypeEnum=_t;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 Pt{}Pt.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},Pt.SHEET={type:3,value:"SHEET"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=Pt;class bt{}bt.CURVE3D={type:3,value:"CURVE3D"},bt.PCURVE_S1={type:3,value:"PCURVE_S1"},bt.PCURVE_S2={type:3,value:"PCURVE_S2"},e.IfcPreferredSurfaceCurveRepresentation=bt;class Rt{}Rt.ADVICE_CAUTION={type:3,value:"ADVICE_CAUTION"},Rt.ADVICE_NOTE={type:3,value:"ADVICE_NOTE"},Rt.ADVICE_WARNING={type:3,value:"ADVICE_WARNING"},Rt.CALIBRATION={type:3,value:"CALIBRATION"},Rt.DIAGNOSTIC={type:3,value:"DIAGNOSTIC"},Rt.SHUTDOWN={type:3,value:"SHUTDOWN"},Rt.STARTUP={type:3,value:"STARTUP"},Rt.USERDEFINED={type:3,value:"USERDEFINED"},Rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProcedureTypeEnum=Rt;class Dt{}Dt.CURVE={type:3,value:"CURVE"},Dt.AREA={type:3,value:"AREA"},e.IfcProfileTypeEnum=Dt;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 Nt{}Nt.PROJECTED_LENGTH={type:3,value:"PROJECTED_LENGTH"},Nt.TRUE_LENGTH={type:3,value:"TRUE_LENGTH"},e.IfcProjectedOrTrueLengthEnum=Nt;class Ot{}Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectionElementTypeEnum=Ot;class xt{}xt.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},xt.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},xt.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},xt.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},xt.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},xt.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},xt.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPropertySetTemplateTypeEnum=xt;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 wt{}wt.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},wt.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},wt.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},wt.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},wt.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},wt.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},wt.VARISTOR={type:3,value:"VARISTOR"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=wt;class Mt{}Mt.CIRCULATOR={type:3,value:"CIRCULATOR"},Mt.ENDSUCTION={type:3,value:"ENDSUCTION"},Mt.SPLITCASE={type:3,value:"SPLITCASE"},Mt.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},Mt.SUMPPUMP={type:3,value:"SUMPPUMP"},Mt.VERTICALINLINE={type:3,value:"VERTICALINLINE"},Mt.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=Mt;class Bt{}Bt.HANDRAIL={type:3,value:"HANDRAIL"},Bt.GUARDRAIL={type:3,value:"GUARDRAIL"},Bt.BALUSTRADE={type:3,value:"BALUSTRADE"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=Bt;class Ft{}Ft.STRAIGHT={type:3,value:"STRAIGHT"},Ft.SPIRAL={type:3,value:"SPIRAL"},Ft.USERDEFINED={type:3,value:"USERDEFINED"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=Ft;class Lt{}Lt.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},Lt.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},Lt.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},Lt.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},Lt.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},Lt.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},Lt.USERDEFINED={type:3,value:"USERDEFINED"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=Lt;class Ut{}Ut.DAILY={type:3,value:"DAILY"},Ut.WEEKLY={type:3,value:"WEEKLY"},Ut.MONTHLY_BY_DAY_OF_MONTH={type:3,value:"MONTHLY_BY_DAY_OF_MONTH"},Ut.MONTHLY_BY_POSITION={type:3,value:"MONTHLY_BY_POSITION"},Ut.BY_DAY_COUNT={type:3,value:"BY_DAY_COUNT"},Ut.BY_WEEKDAY_COUNT={type:3,value:"BY_WEEKDAY_COUNT"},Ut.YEARLY_BY_DAY_OF_MONTH={type:3,value:"YEARLY_BY_DAY_OF_MONTH"},Ut.YEARLY_BY_POSITION={type:3,value:"YEARLY_BY_POSITION"},e.IfcRecurrenceTypeEnum=Ut;class Ht{}Ht.BLINN={type:3,value:"BLINN"},Ht.FLAT={type:3,value:"FLAT"},Ht.GLASS={type:3,value:"GLASS"},Ht.MATT={type:3,value:"MATT"},Ht.METAL={type:3,value:"METAL"},Ht.MIRROR={type:3,value:"MIRROR"},Ht.PHONG={type:3,value:"PHONG"},Ht.PLASTIC={type:3,value:"PLASTIC"},Ht.STRAUSS={type:3,value:"STRAUSS"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=Ht;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 kt{}kt.PLAIN={type:3,value:"PLAIN"},kt.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=kt;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 jt{}jt.USERDEFINED={type:3,value:"USERDEFINED"},jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingMeshTypeEnum=jt;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 Zt{}Zt.COSENSOR={type:3,value:"COSENSOR"},Zt.CO2SENSOR={type:3,value:"CO2SENSOR"},Zt.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},Zt.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},Zt.FIRESENSOR={type:3,value:"FIRESENSOR"},Zt.FLOWSENSOR={type:3,value:"FLOWSENSOR"},Zt.FROSTSENSOR={type:3,value:"FROSTSENSOR"},Zt.GASSENSOR={type:3,value:"GASSENSOR"},Zt.HEATSENSOR={type:3,value:"HEATSENSOR"},Zt.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},Zt.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},Zt.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},Zt.LEVELSENSOR={type:3,value:"LEVELSENSOR"},Zt.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},Zt.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},Zt.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},Zt.PHSENSOR={type:3,value:"PHSENSOR"},Zt.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},Zt.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},Zt.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},Zt.SMOKESENSOR={type:3,value:"SMOKESENSOR"},Zt.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},Zt.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},Zt.WINDSENSOR={type:3,value:"WINDSENSOR"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=Zt;class qt{}qt.START_START={type:3,value:"START_START"},qt.START_FINISH={type:3,value:"START_FINISH"},qt.FINISH_START={type:3,value:"FINISH_START"},qt.FINISH_FINISH={type:3,value:"FINISH_FINISH"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=qt;class Jt{}Jt.JALOUSIE={type:3,value:"JALOUSIE"},Jt.SHUTTER={type:3,value:"SHUTTER"},Jt.AWNING={type:3,value:"AWNING"},Jt.USERDEFINED={type:3,value:"USERDEFINED"},Jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcShadingDeviceTypeEnum=Jt;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 is{}is.SPACE={type:3,value:"SPACE"},is.PARKING={type:3,value:"PARKING"},is.GFA={type:3,value:"GFA"},is.INTERNAL={type:3,value:"INTERNAL"},is.EXTERNAL={type:3,value:"EXTERNAL"},is.USERDEFINED={type:3,value:"USERDEFINED"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=is;class rs{}rs.CONSTRUCTION={type:3,value:"CONSTRUCTION"},rs.FIRESAFETY={type:3,value:"FIRESAFETY"},rs.LIGHTING={type:3,value:"LIGHTING"},rs.OCCUPANCY={type:3,value:"OCCUPANCY"},rs.SECURITY={type:3,value:"SECURITY"},rs.THERMAL={type:3,value:"THERMAL"},rs.TRANSPORT={type:3,value:"TRANSPORT"},rs.VENTILATION={type:3,value:"VENTILATION"},rs.USERDEFINED={type:3,value:"USERDEFINED"},rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpatialZoneTypeEnum=rs;class os{}os.BIRDCAGE={type:3,value:"BIRDCAGE"},os.COWL={type:3,value:"COWL"},os.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},os.USERDEFINED={type:3,value:"USERDEFINED"},os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=os;class ns{}ns.STRAIGHT={type:3,value:"STRAIGHT"},ns.WINDER={type:3,value:"WINDER"},ns.SPIRAL={type:3,value:"SPIRAL"},ns.CURVED={type:3,value:"CURVED"},ns.FREEFORM={type:3,value:"FREEFORM"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairFlightTypeEnum=ns;class as{}as.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},as.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},as.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},as.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},as.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},as.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},as.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},as.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},as.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},as.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},as.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},as.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},as.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},as.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},as.USERDEFINED={type:3,value:"USERDEFINED"},as.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=as;class ls{}ls.READWRITE={type:3,value:"READWRITE"},ls.READONLY={type:3,value:"READONLY"},ls.LOCKED={type:3,value:"LOCKED"},ls.READWRITELOCKED={type:3,value:"READWRITELOCKED"},ls.READONLYLOCKED={type:3,value:"READONLYLOCKED"},e.IfcStateEnum=ls;class hs{}hs.CONST={type:3,value:"CONST"},hs.LINEAR={type:3,value:"LINEAR"},hs.POLYGONAL={type:3,value:"POLYGONAL"},hs.EQUIDISTANT={type:3,value:"EQUIDISTANT"},hs.SINUS={type:3,value:"SINUS"},hs.PARABOLA={type:3,value:"PARABOLA"},hs.DISCRETE={type:3,value:"DISCRETE"},hs.USERDEFINED={type:3,value:"USERDEFINED"},hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveActivityTypeEnum=hs;class cs{}cs.RIGID_JOINED_MEMBER={type:3,value:"RIGID_JOINED_MEMBER"},cs.PIN_JOINED_MEMBER={type:3,value:"PIN_JOINED_MEMBER"},cs.CABLE={type:3,value:"CABLE"},cs.TENSION_MEMBER={type:3,value:"TENSION_MEMBER"},cs.COMPRESSION_MEMBER={type:3,value:"COMPRESSION_MEMBER"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralCurveMemberTypeEnum=cs;class us{}us.CONST={type:3,value:"CONST"},us.BILINEAR={type:3,value:"BILINEAR"},us.DISCRETE={type:3,value:"DISCRETE"},us.ISOCONTOUR={type:3,value:"ISOCONTOUR"},us.USERDEFINED={type:3,value:"USERDEFINED"},us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceActivityTypeEnum=us;class As{}As.BENDING_ELEMENT={type:3,value:"BENDING_ELEMENT"},As.MEMBRANE_ELEMENT={type:3,value:"MEMBRANE_ELEMENT"},As.SHELL={type:3,value:"SHELL"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStructuralSurfaceMemberTypeEnum=As;class ps{}ps.PURCHASE={type:3,value:"PURCHASE"},ps.WORK={type:3,value:"WORK"},ps.USERDEFINED={type:3,value:"USERDEFINED"},ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSubContractResourceTypeEnum=ps;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 ms{}ms.CONTACTOR={type:3,value:"CONTACTOR"},ms.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},ms.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},ms.KEYPAD={type:3,value:"KEYPAD"},ms.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},ms.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},ms.STARTER={type:3,value:"STARTER"},ms.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},ms.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},ms.USERDEFINED={type:3,value:"USERDEFINED"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=ms;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 Es{}Es.BASIN={type:3,value:"BASIN"},Es.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},Es.EXPANSION={type:3,value:"EXPANSION"},Es.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},Es.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},Es.STORAGE={type:3,value:"STORAGE"},Es.VESSEL={type:3,value:"VESSEL"},Es.USERDEFINED={type:3,value:"USERDEFINED"},Es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=Es;class gs{}gs.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},gs.WORKTIME={type:3,value:"WORKTIME"},gs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskDurationEnum=gs;class vs{}vs.ATTENDANCE={type:3,value:"ATTENDANCE"},vs.CONSTRUCTION={type:3,value:"CONSTRUCTION"},vs.DEMOLITION={type:3,value:"DEMOLITION"},vs.DISMANTLE={type:3,value:"DISMANTLE"},vs.DISPOSAL={type:3,value:"DISPOSAL"},vs.INSTALLATION={type:3,value:"INSTALLATION"},vs.LOGISTIC={type:3,value:"LOGISTIC"},vs.MAINTENANCE={type:3,value:"MAINTENANCE"},vs.MOVE={type:3,value:"MOVE"},vs.OPERATION={type:3,value:"OPERATION"},vs.REMOVAL={type:3,value:"REMOVAL"},vs.RENOVATION={type:3,value:"RENOVATION"},vs.USERDEFINED={type:3,value:"USERDEFINED"},vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskTypeEnum=vs;class Is{}Is.COUPLER={type:3,value:"COUPLER"},Is.FIXED_END={type:3,value:"FIXED_END"},Is.TENSIONING_END={type:3,value:"TENSIONING_END"},Is.USERDEFINED={type:3,value:"USERDEFINED"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonAnchorTypeEnum=Is;class _s{}_s.BAR={type:3,value:"BAR"},_s.COATED={type:3,value:"COATED"},_s.STRAND={type:3,value:"STRAND"},_s.WIRE={type:3,value:"WIRE"},_s.USERDEFINED={type:3,value:"USERDEFINED"},_s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=_s;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 Ps{}Ps.CONTINUOUS={type:3,value:"CONTINUOUS"},Ps.DISCRETE={type:3,value:"DISCRETE"},Ps.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},Ps.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},Ps.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},Ps.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},Ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=Ps;class bs{}bs.CURRENT={type:3,value:"CURRENT"},bs.FREQUENCY={type:3,value:"FREQUENCY"},bs.INVERTER={type:3,value:"INVERTER"},bs.RECTIFIER={type:3,value:"RECTIFIER"},bs.VOLTAGE={type:3,value:"VOLTAGE"},bs.USERDEFINED={type:3,value:"USERDEFINED"},bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=bs;class Rs{}Rs.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},Rs.CONTINUOUS={type:3,value:"CONTINUOUS"},Rs.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},Rs.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},e.IfcTransitionCode=Rs;class Ds{}Ds.ELEVATOR={type:3,value:"ELEVATOR"},Ds.ESCALATOR={type:3,value:"ESCALATOR"},Ds.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},Ds.CRANEWAY={type:3,value:"CRANEWAY"},Ds.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},Ds.USERDEFINED={type:3,value:"USERDEFINED"},Ds.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=Ds;class Cs{}Cs.CARTESIAN={type:3,value:"CARTESIAN"},Cs.PARAMETER={type:3,value:"PARAMETER"},Cs.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=Cs;class Ns{}Ns.FINNED={type:3,value:"FINNED"},Ns.USERDEFINED={type:3,value:"USERDEFINED"},Ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=Ns;class Os{}Os.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},Os.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},Os.AREAUNIT={type:3,value:"AREAUNIT"},Os.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},Os.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},Os.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},Os.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},Os.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},Os.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},Os.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},Os.ENERGYUNIT={type:3,value:"ENERGYUNIT"},Os.FORCEUNIT={type:3,value:"FORCEUNIT"},Os.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},Os.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},Os.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},Os.LENGTHUNIT={type:3,value:"LENGTHUNIT"},Os.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},Os.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},Os.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},Os.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},Os.MASSUNIT={type:3,value:"MASSUNIT"},Os.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},Os.POWERUNIT={type:3,value:"POWERUNIT"},Os.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},Os.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},Os.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},Os.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},Os.TIMEUNIT={type:3,value:"TIMEUNIT"},Os.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},Os.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=Os;class xs{}xs.ALARMPANEL={type:3,value:"ALARMPANEL"},xs.CONTROLPANEL={type:3,value:"CONTROLPANEL"},xs.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},xs.INDICATORPANEL={type:3,value:"INDICATORPANEL"},xs.MIMICPANEL={type:3,value:"MIMICPANEL"},xs.HUMIDISTAT={type:3,value:"HUMIDISTAT"},xs.THERMOSTAT={type:3,value:"THERMOSTAT"},xs.WEATHERSTATION={type:3,value:"WEATHERSTATION"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryControlElementTypeEnum=xs;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 ws{}ws.AIRRELEASE={type:3,value:"AIRRELEASE"},ws.ANTIVACUUM={type:3,value:"ANTIVACUUM"},ws.CHANGEOVER={type:3,value:"CHANGEOVER"},ws.CHECK={type:3,value:"CHECK"},ws.COMMISSIONING={type:3,value:"COMMISSIONING"},ws.DIVERTING={type:3,value:"DIVERTING"},ws.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},ws.DOUBLECHECK={type:3,value:"DOUBLECHECK"},ws.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},ws.FAUCET={type:3,value:"FAUCET"},ws.FLUSHING={type:3,value:"FLUSHING"},ws.GASCOCK={type:3,value:"GASCOCK"},ws.GASTAP={type:3,value:"GASTAP"},ws.ISOLATING={type:3,value:"ISOLATING"},ws.MIXING={type:3,value:"MIXING"},ws.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},ws.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},ws.REGULATING={type:3,value:"REGULATING"},ws.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},ws.STEAMTRAP={type:3,value:"STEAMTRAP"},ws.STOPCOCK={type:3,value:"STOPCOCK"},ws.USERDEFINED={type:3,value:"USERDEFINED"},ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=ws;class Ms{}Ms.COMPRESSION={type:3,value:"COMPRESSION"},Ms.SPRING={type:3,value:"SPRING"},Ms.USERDEFINED={type:3,value:"USERDEFINED"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=Ms;class Bs{}Bs.CUTOUT={type:3,value:"CUTOUT"},Bs.NOTCH={type:3,value:"NOTCH"},Bs.HOLE={type:3,value:"HOLE"},Bs.MITER={type:3,value:"MITER"},Bs.CHAMFER={type:3,value:"CHAMFER"},Bs.EDGE={type:3,value:"EDGE"},Bs.USERDEFINED={type:3,value:"USERDEFINED"},Bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVoidingFeatureTypeEnum=Bs;class Fs{}Fs.MOVABLE={type:3,value:"MOVABLE"},Fs.PARAPET={type:3,value:"PARAPET"},Fs.PARTITIONING={type:3,value:"PARTITIONING"},Fs.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},Fs.SHEAR={type:3,value:"SHEAR"},Fs.SOLIDWALL={type:3,value:"SOLIDWALL"},Fs.STANDARD={type:3,value:"STANDARD"},Fs.POLYGONAL={type:3,value:"POLYGONAL"},Fs.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},Fs.USERDEFINED={type:3,value:"USERDEFINED"},Fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=Fs;class Ls{}Ls.FLOORTRAP={type:3,value:"FLOORTRAP"},Ls.FLOORWASTE={type:3,value:"FLOORWASTE"},Ls.GULLYSUMP={type:3,value:"GULLYSUMP"},Ls.GULLYTRAP={type:3,value:"GULLYTRAP"},Ls.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Ls.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Ls.WASTETRAP={type:3,value:"WASTETRAP"},Ls.USERDEFINED={type:3,value:"USERDEFINED"},Ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Ls;class Us{}Us.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},Us.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},Us.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},Us.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},Us.TOPHUNG={type:3,value:"TOPHUNG"},Us.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},Us.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},Us.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},Us.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},Us.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},Us.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},Us.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},Us.OTHEROPERATION={type:3,value:"OTHEROPERATION"},Us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=Us;class Hs{}Hs.LEFT={type:3,value:"LEFT"},Hs.MIDDLE={type:3,value:"MIDDLE"},Hs.RIGHT={type:3,value:"RIGHT"},Hs.BOTTOM={type:3,value:"BOTTOM"},Hs.TOP={type:3,value:"TOP"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=Hs;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 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.IfcWindowStyleOperationEnum=ks;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 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.IfcWindowTypePartitioningEnum=js;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 TI{constructor(e,t,s,i){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=i,this.type=3630933823}};class Ks extends TI{constructor(e,t,s,i){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.type=618182010}}e.IfcAddress=Ks;e.IfcApplication=class extends TI{constructor(e,t,s,i,r){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=i,this.ApplicationIdentifier=r,this.type=639542469}};class Ys extends TI{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.Category=a,this.Condition=l,this.ArithmeticOperator=h,this.Components=c,this.type=411424972}}e.IfcAppliedValue=Ys;e.IfcApproval=class extends TI{constructor(e,t,s,i,r,o,n,a,l,h){super(e),this.Identifier=t,this.Name=s,this.Description=i,this.TimeOfApproval=r,this.Status=o,this.Level=n,this.Qualifier=a,this.RequestingApproval=l,this.GivingApproval=h,this.type=130549933}};class Xs extends TI{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=Xs;e.IfcBoundaryEdgeCondition=class extends Xs{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TranslationalStiffnessByLengthX=s,this.TranslationalStiffnessByLengthY=i,this.TranslationalStiffnessByLengthZ=r,this.RotationalStiffnessByLengthX=o,this.RotationalStiffnessByLengthY=n,this.RotationalStiffnessByLengthZ=a,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends Xs{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.TranslationalStiffnessByAreaX=s,this.TranslationalStiffnessByAreaY=i,this.TranslationalStiffnessByAreaZ=r,this.type=3367102660}};class Zs extends Xs{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=i,this.TranslationalStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.type=1387855156}}e.IfcBoundaryNodeCondition=Zs;e.IfcBoundaryNodeConditionWarping=class extends Zs{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=i,this.TranslationalStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.WarpingStiffness=l,this.type=2069777674}};class qs extends TI{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=qs;class Js extends qs{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=Js;e.IfcConnectionSurfaceGeometry=class extends qs{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};e.IfcConnectionVolumeGeometry=class extends qs{constructor(e,t,s){super(e),this.VolumeOnRelatingElement=t,this.VolumeOnRelatedElement=s,this.type=775493141}};class $s extends TI{constructor(e,t,s,i,r,o,n,a){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.type=1959218052}}e.IfcConstraint=$s;class ei extends TI{constructor(e,t,s){super(e),this.SourceCRS=t,this.TargetCRS=s,this.type=1785450214}}e.IfcCoordinateOperation=ei;class ti extends TI{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.GeodeticDatum=i,this.VerticalDatum=r,this.type=1466758467}}e.IfcCoordinateReferenceSystem=ti;e.IfcCostValue=class extends Ys{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h,c),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.Category=a,this.Condition=l,this.ArithmeticOperator=h,this.Components=c,this.type=602808272}};e.IfcDerivedUnit=class extends TI{constructor(e,t,s,i){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=i,this.type=1765591967}};e.IfcDerivedUnitElement=class extends TI{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends TI{constructor(e,t,s,i,r,o,n,a){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=i,this.ElectricCurrentExponent=r,this.ThermodynamicTemperatureExponent=o,this.AmountOfSubstanceExponent=n,this.LuminousIntensityExponent=a,this.type=2949456006}};class si extends TI{constructor(e){super(e),this.type=4294318154}}e.IfcExternalInformation=si;class ii extends TI{constructor(e,t,s,i){super(e),this.Location=t,this.Identification=s,this.Name=i,this.type=3200245327}}e.IfcExternalReference=ii;e.IfcExternallyDefinedHatchStyle=class extends ii{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends ii{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=1040185647}};e.IfcExternallyDefinedTextFont=class extends ii{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=3548104201}};e.IfcGridAxis=class extends TI{constructor(e,t,s,i){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=i,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends TI{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends si{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Version=s,this.Publisher=i,this.VersionDate=r,this.Location=o,this.Description=n,this.type=2655187982}};e.IfcLibraryReference=class extends ii{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.Description=r,this.Language=o,this.ReferencedLibrary=n,this.type=3452421091}};e.IfcLightDistributionData=class extends TI{constructor(e,t,s,i){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=i,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends TI{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcMapConversion=class extends ei{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s),this.SourceCRS=t,this.TargetCRS=s,this.Eastings=i,this.Northings=r,this.OrthogonalHeight=o,this.XAxisAbscissa=n,this.XAxisOrdinate=a,this.Scale=l,this.type=3057273783}};e.IfcMaterialClassificationRelationship=class extends TI{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};class ri extends TI{constructor(e){super(e),this.type=760658860}}e.IfcMaterialDefinition=ri;class oi extends ri{constructor(e,t,s,i,r,o,n,a){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.Name=r,this.Description=o,this.Category=n,this.Priority=a,this.type=248100487}}e.IfcMaterialLayer=oi;e.IfcMaterialLayerSet=class extends ri{constructor(e,t,s,i){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.Description=i,this.type=3303938423}};e.IfcMaterialLayerWithOffsets=class extends oi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.Name=r,this.Description=o,this.Category=n,this.Priority=a,this.OffsetDirection=l,this.OffsetValues=h,this.type=1847252529}};e.IfcMaterialList=class extends TI{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class ni extends ri{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Description=s,this.Material=i,this.Profile=r,this.Priority=o,this.Category=n,this.type=2235152071}}e.IfcMaterialProfile=ni;e.IfcMaterialProfileSet=class extends ri{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.MaterialProfiles=i,this.CompositeProfile=r,this.type=164193824}};e.IfcMaterialProfileWithOffsets=class extends ni{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.Name=t,this.Description=s,this.Material=i,this.Profile=r,this.Priority=o,this.Category=n,this.OffsetValues=a,this.type=552965576}};class ai extends TI{constructor(e){super(e),this.type=1507914824}}e.IfcMaterialUsageDefinition=ai;e.IfcMeasureWithUnit=class extends TI{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};e.IfcMetric=class extends $s{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.Benchmark=l,this.ValueSource=h,this.DataValue=c,this.ReferencePath=u,this.type=3368373690}};e.IfcMonetaryUnit=class extends TI{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class li extends TI{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=li;class hi extends TI{constructor(e){super(e),this.type=3701648758}}e.IfcObjectPlacement=hi;e.IfcObjective=class extends $s{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.BenchmarkValues=l,this.LogicalAggregator=h,this.ObjectiveQualifier=c,this.UserDefinedQualifier=u,this.type=2251480897}};e.IfcOrganization=class extends TI{constructor(e,t,s,i,r,o){super(e),this.Identification=t,this.Name=s,this.Description=i,this.Roles=r,this.Addresses=o,this.type=4251960020}};e.IfcOwnerHistory=class extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=i,this.ChangeAction=r,this.LastModifiedDate=o,this.LastModifyingUser=n,this.LastModifyingApplication=a,this.CreationDate=l,this.type=1207048766}};e.IfcPerson=class extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Identification=t,this.FamilyName=s,this.GivenName=i,this.MiddleNames=r,this.PrefixTitles=o,this.SuffixTitles=n,this.Roles=a,this.Addresses=l,this.type=2077209135}};e.IfcPersonAndOrganization=class extends TI{constructor(e,t,s,i){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=i,this.type=101040310}};class ci extends TI{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=ci;class ui extends ci{constructor(e,t,s,i){super(e,t,s),this.Name=t,this.Description=s,this.Unit=i,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=ui;e.IfcPostalAddress=class extends Ks{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.InternalLocation=r,this.AddressLines=o,this.PostalBox=n,this.Town=a,this.Region=l,this.PostalCode=h,this.Country=c,this.type=3355820592}};class Ai extends TI{constructor(e){super(e),this.type=677532197}}e.IfcPresentationItem=Ai;class pi extends TI{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.type=2022622350}}e.IfcPresentationLayerAssignment=pi;e.IfcPresentationLayerWithStyle=class extends pi{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.LayerOn=o,this.LayerFrozen=n,this.LayerBlocked=a,this.LayerStyles=l,this.type=1304840413}};class di extends TI{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=di;e.IfcPresentationStyleAssignment=class extends TI{constructor(e,t){super(e),this.Styles=t,this.type=2417041796}};class fi extends TI{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Representations=i,this.type=2095639259}}e.IfcProductRepresentation=fi;class mi extends TI{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=mi;e.IfcProjectedCRS=class extends ti{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.Name=t,this.Description=s,this.GeodeticDatum=i,this.VerticalDatum=r,this.MapProjection=o,this.MapZone=n,this.MapUnit=a,this.type=3843373140}};class yi extends TI{constructor(e){super(e),this.type=986844984}}e.IfcPropertyAbstraction=yi;e.IfcPropertyEnumeration=class extends yi{constructor(e,t,s,i){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=i,this.type=3710013099}};e.IfcQuantityArea=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.AreaValue=r,this.Formula=o,this.type=2044713172}};e.IfcQuantityCount=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.CountValue=r,this.Formula=o,this.type=2093928680}};e.IfcQuantityLength=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.LengthValue=r,this.Formula=o,this.type=931644368}};e.IfcQuantityTime=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.TimeValue=r,this.Formula=o,this.type=3252649465}};e.IfcQuantityVolume=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.VolumeValue=r,this.Formula=o,this.type=2405470396}};e.IfcQuantityWeight=class extends ui{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.WeightValue=r,this.Formula=o,this.type=825690147}};e.IfcRecurrencePattern=class extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.RecurrenceType=t,this.DayComponent=s,this.WeekdayComponent=i,this.MonthComponent=r,this.Position=o,this.Interval=n,this.Occurrences=a,this.TimePeriods=l,this.type=3915482550}};e.IfcReference=class extends TI{constructor(e,t,s,i,r,o){super(e),this.TypeIdentifier=t,this.AttributeIdentifier=s,this.InstanceName=i,this.ListPositions=r,this.InnerReference=o,this.type=2433181523}};class Ei extends TI{constructor(e,t,s,i,r){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1076942058}}e.IfcRepresentation=Ei;class gi extends TI{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=gi;class vi extends TI{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=vi;e.IfcRepresentationMap=class extends TI{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};class Ii extends TI{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2439245199}}e.IfcResourceLevelRelationship=Ii;class _i extends TI{constructor(e,t,s,i,r){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2341007311}}e.IfcRoot=_i;e.IfcSIUnit=class extends li{constructor(e,t,s,i){super(e,new _I(0),t),this.UnitType=t,this.Prefix=s,this.Name=i,this.type=448429030}};class Ti extends TI{constructor(e,t,s,i){super(e),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.type=1054537805}}e.IfcSchedulingTime=Ti;e.IfcShapeAspect=class extends TI{constructor(e,t,s,i,r,o){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=i,this.ProductDefinitional=r,this.PartOfProductDefinitionShape=o,this.type=867548509}};class Pi extends Ei{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3982875396}}e.IfcShapeModel=Pi;e.IfcShapeRepresentation=class extends Pi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=4240577450}};class bi extends TI{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=bi;class Ri extends TI{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=Ri;e.IfcStructuralLoadConfiguration=class extends Ri{constructor(e,t,s,i){super(e,t),this.Name=t,this.Values=s,this.Locations=i,this.type=3478079324}};class Di extends Ri{constructor(e,t){super(e,t),this.Name=t,this.type=609421318}}e.IfcStructuralLoadOrResult=Di;class Ci extends Di{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=Ci;e.IfcStructuralLoadTemperature=class extends Ci{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.DeltaTConstant=s,this.DeltaTY=i,this.DeltaTZ=r,this.type=3408363356}};class Ni extends Ei{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=2830218821}}e.IfcStyleModel=Ni;e.IfcStyledItem=class extends vi{constructor(e,t,s,i){super(e),this.Item=t,this.Styles=s,this.Name=i,this.type=3958052878}};e.IfcStyledRepresentation=class extends Ni{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3049322572}};e.IfcSurfaceReinforcementArea=class extends Di{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SurfaceReinforcement1=s,this.SurfaceReinforcement2=i,this.ShearReinforcement=r,this.type=2934153892}};e.IfcSurfaceStyle=class extends di{constructor(e,t,s,i){super(e,t),this.Name=t,this.Side=s,this.Styles=i,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends Ai{constructor(e,t,s,i,r){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=i,this.ReflectanceColour=r,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends Ai{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class Oi extends Ai{constructor(e,t,s){super(e),this.SurfaceColour=t,this.Transparency=s,this.type=846575682}}e.IfcSurfaceStyleShading=Oi;e.IfcSurfaceStyleWithTextures=class extends Ai{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class xi extends Ai{constructor(e,t,s,i,r,o){super(e),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.type=626085974}}e.IfcSurfaceTexture=xi;e.IfcTable=class extends TI{constructor(e,t,s,i){super(e),this.Name=t,this.Rows=s,this.Columns=i,this.type=985171141}};e.IfcTableColumn=class extends TI{constructor(e,t,s,i,r,o){super(e),this.Identifier=t,this.Name=s,this.Description=i,this.Unit=r,this.ReferencePath=o,this.type=2043862942}};e.IfcTableRow=class extends TI{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};class Si extends Ti{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.DurationType=r,this.ScheduleDuration=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.EarlyStart=l,this.EarlyFinish=h,this.LateStart=c,this.LateFinish=u,this.FreeFloat=A,this.TotalFloat=p,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=m,this.ActualStart=y,this.ActualFinish=E,this.RemainingTime=g,this.Completion=v,this.type=1549132990}}e.IfcTaskTime=Si;e.IfcTaskTimeRecurring=class extends Si{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.DurationType=r,this.ScheduleDuration=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.EarlyStart=l,this.EarlyFinish=h,this.LateStart=c,this.LateFinish=u,this.FreeFloat=A,this.TotalFloat=p,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=m,this.ActualStart=y,this.ActualFinish=E,this.RemainingTime=g,this.Completion=v,this.Recurrence=I,this.type=2771591690}};e.IfcTelecomAddress=class extends Ks{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.TelephoneNumbers=r,this.FacsimileNumbers=o,this.PagerNumber=n,this.ElectronicMailAddresses=a,this.WWWHomePageURL=l,this.MessagingIDs=h,this.type=912023232}};e.IfcTextStyle=class extends di{constructor(e,t,s,i,r,o){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=i,this.TextFontStyle=r,this.ModelOrDraughting=o,this.type=1447204868}};e.IfcTextStyleForDefinedFont=class extends Ai{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends Ai{constructor(e,t,s,i,r,o,n,a){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=i,this.LetterSpacing=r,this.WordSpacing=o,this.TextTransform=n,this.LineHeight=a,this.type=1640371178}};class wi extends Ai{constructor(e,t){super(e),this.Maps=t,this.type=280115917}}e.IfcTextureCoordinate=wi;e.IfcTextureCoordinateGenerator=class extends wi{constructor(e,t,s,i){super(e,t),this.Maps=t,this.Mode=s,this.Parameter=i,this.type=1742049831}};e.IfcTextureMap=class extends wi{constructor(e,t,s,i){super(e,t),this.Maps=t,this.Vertices=s,this.MappedTo=i,this.type=2552916305}};e.IfcTextureVertex=class extends Ai{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcTextureVertexList=class extends Ai{constructor(e,t){super(e),this.TexCoordsList=t,this.type=3611470254}};e.IfcTimePeriod=class extends TI{constructor(e,t,s){super(e),this.StartTime=t,this.EndTime=s,this.type=1199560280}};class Mi extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.type=3101149627}}e.IfcTimeSeries=Mi;e.IfcTimeSeriesValue=class extends TI{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Bi extends vi{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Bi;e.IfcTopologyRepresentation=class extends Pi{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1735638870}};e.IfcUnitAssignment=class extends TI{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class Fi extends Bi{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=Fi;e.IfcVertexPoint=class extends Fi{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends TI{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWorkTime=class extends Ti{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.RecurrencePattern=r,this.Start=o,this.Finish=n,this.type=1236880293}};e.IfcApprovalRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingApproval=i,this.RelatedApprovals=r,this.type=3869604511}};class Li extends mi{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Li;class Ui extends mi{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Ui;e.IfcArbitraryProfileDefWithVoids=class extends Li{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.InnerCurves=r,this.type=2705031697}};e.IfcBlobTexture=class extends xi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.RasterFormat=n,this.RasterCode=a,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Ui{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.Thickness=r,this.type=3150382593}};e.IfcClassification=class extends si{constructor(e,t,s,i,r,o,n,a){super(e),this.Source=t,this.Edition=s,this.EditionDate=i,this.Name=r,this.Description=o,this.Location=n,this.ReferenceTokens=a,this.type=747523909}};e.IfcClassificationReference=class extends ii{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.ReferencedSource=r,this.Description=o,this.Sort=n,this.type=647927063}};e.IfcColourRgbList=class extends Ai{constructor(e,t){super(e),this.ColourList=t,this.type=3285139300}};class Hi extends Ai{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=Hi;e.IfcCompositeProfileDef=class extends mi{constructor(e,t,s,i,r){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=i,this.Label=r,this.type=1485152156}};class Gi extends Bi{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=Gi;e.IfcConnectionCurveGeometry=class extends qs{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends Js{constructor(e,t,s,i,r,o){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=i,this.EccentricityInY=r,this.EccentricityInZ=o,this.type=45288368}};e.IfcContextDependentUnit=class extends li{constructor(e,t,s,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.type=3050246964}};class ki extends li{constructor(e,t,s,i,r){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.type=2889183280}}e.IfcConversionBasedUnit=ki;e.IfcConversionBasedUnitWithOffset=class extends ki{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.ConversionOffset=o,this.type=2713554722}};e.IfcCurrencyRelationship=class extends Ii{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMonetaryUnit=i,this.RelatedMonetaryUnit=r,this.ExchangeRate=o,this.RateDateTime=n,this.RateSource=a,this.type=539742890}};e.IfcCurveStyle=class extends di{constructor(e,t,s,i,r,o){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=i,this.CurveColour=r,this.ModelOrDraughting=o,this.type=3800577675}};e.IfcCurveStyleFont=class extends Ai{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends Ai{constructor(e,t,s,i){super(e),this.Name=t,this.CurveFont=s,this.CurveFontScaling=i,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends Ai{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};class Vi extends mi{constructor(e,t,s,i,r,o){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Operator=r,this.Label=o,this.type=3632507154}}e.IfcDerivedProfileDef=Vi;e.IfcDocumentInformation=class extends si{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e),this.Identification=t,this.Name=s,this.Description=i,this.Location=r,this.Purpose=o,this.IntendedUse=n,this.Scope=a,this.Revision=l,this.DocumentOwner=h,this.Editors=c,this.CreationTime=u,this.LastRevisionTime=A,this.ElectronicFormat=p,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=m,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends Ii{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.RelatingDocument=i,this.RelatedDocuments=r,this.RelationshipType=o,this.type=770865208}};e.IfcDocumentReference=class extends ii{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.Description=r,this.ReferencedDocument=o,this.type=3732053477}};class ji extends Bi{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=ji;e.IfcEdgeCurve=class extends ji{constructor(e,t,s,i,r){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=i,this.SameSense=r,this.type=476780140}};e.IfcEventTime=class extends Ti{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.ActualDate=r,this.EarlyDate=o,this.LateDate=n,this.ScheduleDate=a,this.type=211053100}};class Qi extends yi{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Properties=i,this.type=297599258}}e.IfcExtendedProperties=Qi;e.IfcExternalReferenceRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingReference=i,this.RelatedResourceObjects=r,this.type=1437805879}};class Wi extends Bi{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Wi;class zi extends Bi{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=zi;e.IfcFaceOuterBound=class extends zi{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};class Ki extends Wi{constructor(e,t,s,i){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3008276851}}e.IfcFaceSurface=Ki;e.IfcFailureConnectionCondition=class extends bi{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=i,this.TensionFailureZ=r,this.CompressionFailureX=o,this.CompressionFailureY=n,this.CompressionFailureZ=a,this.type=4219587988}};e.IfcFillAreaStyle=class extends di{constructor(e,t,s,i){super(e,t),this.Name=t,this.FillStyles=s,this.ModelorDraughting=i,this.type=738692330}};class Yi extends gi{constructor(e,t,s,i,r,o,n){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=i,this.Precision=r,this.WorldCoordinateSystem=o,this.TrueNorth=n,this.type=3448662350}}e.IfcGeometricRepresentationContext=Yi;class Xi extends vi{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=Xi;e.IfcGeometricRepresentationSubContext=class extends Yi{constructor(e,s,i,r,o,n,a){super(e,s,i,new t(0),null,new _I(0),null),this.ContextIdentifier=s,this.ContextType=i,this.ParentContext=r,this.TargetScale=o,this.TargetView=n,this.UserDefinedTargetView=a,this.type=4142052618}};class Zi extends Xi{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=Zi;e.IfcGridPlacement=class extends hi{constructor(e,t,s){super(e),this.PlacementLocation=t,this.PlacementRefDirection=s,this.type=178086475}};class qi extends Xi{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=qi;e.IfcImageTexture=class extends xi{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.URLReference=n,this.type=3905492369}};e.IfcIndexedColourMap=class extends Ai{constructor(e,t,s,i,r){super(e),this.MappedTo=t,this.Opacity=s,this.Colours=i,this.ColourIndex=r,this.type=3570813810}};class Ji extends wi{constructor(e,t,s,i){super(e,t),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.type=1437953363}}e.IfcIndexedTextureMap=Ji;e.IfcIndexedTriangleTextureMap=class extends Ji{constructor(e,t,s,i,r){super(e,t,s,i),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.TexCoordIndex=r,this.type=2133299955}};e.IfcIrregularTimeSeries=class extends Mi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.Values=h,this.type=3741457305}};e.IfcLagTime=class extends Ti{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.LagValue=r,this.DurationType=o,this.type=1585845231}};class $i extends Xi{constructor(e,t,s,i,r){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=1402838566}}e.IfcLightSource=$i;e.IfcLightSourceAmbient=class extends $i{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=125510826}};e.IfcLightSourceDirectional=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Orientation=o,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends $i{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.ColourAppearance=n,this.ColourTemperature=a,this.LuminousFlux=l,this.LightEmissionSource=h,this.LightDistributionDataSource=c,this.type=4266656042}};class er extends $i{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.type=1520743889}}e.IfcLightSourcePositional=er;e.IfcLightSourceSpot=class extends er{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.Orientation=c,this.ConcentrationExponent=u,this.SpreadAngle=A,this.BeamWidthAngle=p,this.type=3422422726}};e.IfcLocalPlacement=class extends hi{constructor(e,t,s){super(e),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class tr extends Bi{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=tr;e.IfcMappedItem=class extends vi{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterial=class extends ri{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Category=i,this.type=1838606355}};e.IfcMaterialConstituent=class extends ri{constructor(e,t,s,i,r,o){super(e),this.Name=t,this.Description=s,this.Material=i,this.Fraction=r,this.Category=o,this.type=3708119e3}};e.IfcMaterialConstituentSet=class extends ri{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.MaterialConstituents=i,this.type=2852063980}};e.IfcMaterialDefinitionRepresentation=class extends fi{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.RepresentedMaterial=r,this.type=2022407955}};e.IfcMaterialLayerSetUsage=class extends ai{constructor(e,t,s,i,r,o){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=i,this.OffsetFromReferenceLine=r,this.ReferenceExtent=o,this.type=1303795690}};class sr extends ai{constructor(e,t,s,i){super(e),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=i,this.type=3079605661}}e.IfcMaterialProfileSetUsage=sr;e.IfcMaterialProfileSetUsageTapering=class extends sr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=i,this.ForProfileEndSet=r,this.CardinalEndPoint=o,this.type=3404854881}};e.IfcMaterialProperties=class extends Qi{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Properties=i,this.Material=r,this.type=3265635763}};e.IfcMaterialRelationship=class extends Ii{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMaterial=i,this.RelatedMaterials=r,this.Expression=o,this.type=853536259}};e.IfcMirroredProfileDef=class extends Vi{constructor(e,t,s,i,r){super(e,t,s,i,new _I(0),r),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Label=r,this.type=2998442950}};class ir extends _i{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=219451334}}e.IfcObjectDefinition=ir;e.IfcOpenShell=class extends Gi{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrganizationRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingOrganization=i,this.RelatedOrganizations=r,this.type=1411181986}};e.IfcOrientedEdge=class extends ji{constructor(e,t,s){super(e,new _I(0),new _I(0)),this.EdgeElement=t,this.Orientation=s,this.type=1029017970}};class rr extends mi{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.type=2529465313}}e.IfcParameterizedProfileDef=rr;e.IfcPath=class extends Bi{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends ci{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=i,this.Discrimination=r,this.Quality=o,this.Usage=n,this.type=3021840470}};e.IfcPixelTexture=class extends xi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.Width=n,this.Height=a,this.ColourComponents=l,this.Pixel=h,this.type=597895409}};class or extends Xi{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=or;class nr extends Xi{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=nr;class ar extends Xi{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=ar;e.IfcPointOnCurve=class extends ar{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends ar{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=i,this.type=1423911732}};e.IfcPolyLoop=class extends tr{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends qi{constructor(e,t,s,i,r){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=i,this.PolygonalBoundary=r,this.type=2775532180}};class lr extends Ai{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=lr;class hr extends yi{constructor(e){super(e),this.type=3778827333}}e.IfcPreDefinedProperties=hr;class cr extends lr{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=cr;e.IfcProductDefinitionShape=class extends fi{constructor(e,t,s,i){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.type=673634403}};e.IfcProfileProperties=class extends Qi{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Properties=i,this.ProfileDefinition=r,this.type=2802850158}};class ur extends yi{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2598011224}}e.IfcProperty=ur;class Ar extends _i{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1680319473}}e.IfcPropertyDefinition=Ar;e.IfcPropertyDependencyRelationship=class extends Ii{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.DependingProperty=i,this.DependantProperty=r,this.Expression=o,this.type=148025276}};class pr extends Ar{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3357820518}}e.IfcPropertySetDefinition=pr;class dr extends Ar{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1482703590}}e.IfcPropertyTemplateDefinition=dr;class fr extends pr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2090586900}}e.IfcQuantitySet=fr;class mr extends rr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.type=3615266464}}e.IfcRectangleProfileDef=mr;e.IfcRegularTimeSeries=class extends Mi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.TimeStep=h,this.Values=c,this.type=3413951693}};e.IfcReinforcementBarProperties=class extends hr{constructor(e,t,s,i,r,o,n){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=i,this.EffectiveDepth=r,this.NominalBarDiameter=o,this.BarCount=n,this.type=1580146022}};class yr extends _i{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=478536968}}e.IfcRelationship=yr;e.IfcResourceApprovalRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatedResourceObjects=i,this.RelatingApproval=r,this.type=2943643501}};e.IfcResourceConstraintRelationship=class extends Ii{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingConstraint=i,this.RelatedResourceObjects=r,this.type=1608871552}};e.IfcResourceTime=class extends Ti{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.ScheduleWork=r,this.ScheduleUsage=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.ScheduleContour=l,this.LevelingDelay=h,this.IsOverAllocated=c,this.StatusTime=u,this.ActualWork=A,this.ActualUsage=p,this.ActualStart=d,this.ActualFinish=f,this.RemainingWork=m,this.RemainingUsage=y,this.Completion=E,this.type=1042787934}};e.IfcRoundedRectangleProfileDef=class extends mr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.RoundingRadius=n,this.type=2778083089}};e.IfcSectionProperties=class extends hr{constructor(e,t,s,i){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=i,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends hr{constructor(e,t,s,i,r,o,n){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=i,this.ReinforcementRole=r,this.SectionDefinition=o,this.CrossSectionReinforcementDefinitions=n,this.type=4165799628}};e.IfcSectionedSpine=class extends Xi{constructor(e,t,s,i){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=i,this.type=1509187699}};e.IfcShellBasedSurfaceModel=class extends Xi{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};class Er extends ur{constructor(e,t,s){super(e,t,s),this.Name=t,this.Description=s,this.type=3692461612}}e.IfcSimpleProperty=Er;e.IfcSlippageConnectionCondition=class extends bi{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=i,this.SlippageZ=r,this.type=2609359061}};class gr extends Xi{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=gr;e.IfcStructuralLoadLinearForce=class extends Ci{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=i,this.LinearForceZ=r,this.LinearMomentX=o,this.LinearMomentY=n,this.LinearMomentZ=a,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends Ci{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=i,this.PlanarForceZ=r,this.type=2668620305}};class vr extends Ci{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=vr;e.IfcStructuralLoadSingleDisplacementDistortion=class extends vr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.Distortion=l,this.type=1973038258}};class Ir extends Ci{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.type=1597423693}}e.IfcStructuralLoadSingleForce=Ir;e.IfcStructuralLoadSingleForceWarping=class extends Ir{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.WarpingMoment=l,this.type=1190533807}};e.IfcSubedge=class extends ji{constructor(e,t,s,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=i,this.type=2233826070}};class _r extends Xi{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=_r;e.IfcSurfaceStyleRendering=class extends Oi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=i,this.TransmissionColour=r,this.DiffuseTransmissionColour=o,this.ReflectionColour=n,this.SpecularColour=a,this.SpecularHighlight=l,this.ReflectanceMethod=h,this.type=1878645084}};class Tr extends gr{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=Tr;class Pr extends gr{constructor(e,t,s,i,r,o){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.type=1260650574}}e.IfcSweptDiskSolid=Pr;e.IfcSweptDiskSolidPolygonal=class extends Pr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.FilletRadius=n,this.type=1096409881}};class br extends _r{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=br;e.IfcTShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.WebEdgeRadius=c,this.WebSlope=u,this.FlangeSlope=A,this.type=3071757647}};class Rr extends Xi{constructor(e){super(e),this.type=901063453}}e.IfcTessellatedItem=Rr;class Dr extends Xi{constructor(e,t,s,i){super(e),this.Literal=t,this.Placement=s,this.Path=i,this.type=4282788508}}e.IfcTextLiteral=Dr;e.IfcTextLiteralWithExtent=class extends Dr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Literal=t,this.Placement=s,this.Path=i,this.Extent=r,this.BoxAlignment=o,this.type=3124975700}};e.IfcTextStyleFontModel=class extends cr{constructor(e,t,s,i,r,o,n){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=i,this.FontVariant=r,this.FontWeight=o,this.FontSize=n,this.type=1983826977}};e.IfcTrapeziumProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomXDim=r,this.TopXDim=o,this.YDim=n,this.TopXOffset=a,this.type=2715220739}};class Cr extends ir{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.type=1628702193}}e.IfcTypeObject=Cr;class Nr extends Cr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.type=3736923433}}e.IfcTypeProcess=Nr;class Or extends Cr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.type=2347495698}}e.IfcTypeProduct=Or;class xr extends Cr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.type=3698973494}}e.IfcTypeResource=xr;e.IfcUShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.FlangeSlope=c,this.type=427810014}};e.IfcVector=class extends Xi{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends tr{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcWindowStyle=class extends Or{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ConstructionType=h,this.OperationType=c,this.ParameterTakesPrecedence=u,this.Sizeable=A,this.type=1299126871}};e.IfcZShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.type=2543172580}};e.IfcAdvancedFace=class extends Ki{constructor(e,t,s,i){super(e,t,s,i),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3406155212}};e.IfcAnnotationFillArea=class extends Xi{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAsymmetricIShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomFlangeWidth=r,this.OverallDepth=o,this.WebThickness=n,this.BottomFlangeThickness=a,this.BottomFlangeFilletRadius=l,this.TopFlangeWidth=h,this.TopFlangeThickness=c,this.TopFlangeFilletRadius=u,this.BottomFlangeEdgeRadius=A,this.BottomFlangeSlope=p,this.TopFlangeEdgeRadius=d,this.TopFlangeSlope=f,this.type=3207858831}};e.IfcAxis1Placement=class extends or{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends or{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends or{constructor(e,t,s,i){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=i,this.type=2740243338}};class Sr extends Xi{constructor(e,t,s,i){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=2736907675}}e.IfcBooleanResult=Sr;class wr extends _r{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=wr;e.IfcBoundingBox=class extends Xi{constructor(e,t,s,i,r){super(e),this.Corner=t,this.XDim=s,this.YDim=i,this.ZDim=r,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends qi{constructor(e,t,s,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=i,this.type=2713105998}};e.IfcCShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.WallThickness=n,this.Girth=a,this.InternalFilletRadius=l,this.type=2898889636}};e.IfcCartesianPoint=class extends ar{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class Mr extends Xi{constructor(e){super(e),this.type=574549367}}e.IfcCartesianPointList=Mr;e.IfcCartesianPointList2D=class extends Mr{constructor(e,t){super(e),this.CoordList=t,this.type=1675464909}};e.IfcCartesianPointList3D=class extends Mr{constructor(e,t){super(e),this.CoordList=t,this.type=2059837836}};class Br extends Xi{constructor(e,t,s,i,r){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=59481748}}e.IfcCartesianTransformationOperator=Br;class Fr extends Br{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Fr;e.IfcCartesianTransformationOperator2DnonUniform=class extends Fr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Scale2=o,this.type=3486308946}};class Lr extends Br{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Lr;e.IfcCartesianTransformationOperator3DnonUniform=class extends Lr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.Scale2=n,this.Scale3=a,this.type=1416205885}};class Ur extends rr{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.type=1383045692}}e.IfcCircleProfileDef=Ur;e.IfcClosedShell=class extends Gi{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcColourRgb=class extends Hi{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.Red=s,this.Green=i,this.Blue=r,this.type=776857604}};e.IfcComplexProperty=class extends ur{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=i,this.HasProperties=r,this.type=2542286263}};class Hr extends Xi{constructor(e,t,s,i){super(e),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.type=2485617015}}e.IfcCompositeCurveSegment=Hr;class Gr extends xr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.type=2574617495}}e.IfcConstructionResourceType=Gr;class kr extends ir{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=3419103109}}e.IfcContext=kr;e.IfcCrewResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=1815067380}};class Vr extends Xi{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=Vr;e.IfcCsgSolid=class extends gr{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class jr extends Xi{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=jr;e.IfcCurveBoundedPlane=class extends wr{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=i,this.type=2827736869}};e.IfcCurveBoundedSurface=class extends wr{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.Boundaries=s,this.ImplicitOuter=i,this.type=2629017746}};e.IfcDirection=class extends Xi{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};e.IfcDoorStyle=class extends Or{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.OperationType=h,this.ConstructionType=c,this.ParameterTakesPrecedence=u,this.Sizeable=A,this.type=526551008}};e.IfcEdgeLoop=class extends tr{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends fr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.MethodOfMeasurement=o,this.Quantities=n,this.type=1883228015}};class Qr extends Or{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=339256511}}e.IfcElementType=Qr;class Wr extends _r{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=Wr;e.IfcEllipseProfileDef=class extends rr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.SemiAxis1=r,this.SemiAxis2=o,this.type=2835456948}};e.IfcEventType=class extends Nr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.EventTriggerType=u,this.UserDefinedEventTriggerType=A,this.type=4024345920}};class zr extends Tr{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=477187591}}e.IfcExtrudedAreaSolid=zr;e.IfcExtrudedAreaSolidTapered=class extends zr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.EndSweptArea=o,this.type=2804161546}};e.IfcFaceBasedSurfaceModel=class extends Xi{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends Xi{constructor(e,t,s,i,r,o){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=i,this.PatternStart=r,this.HatchLineAngle=o,this.type=374418227}};e.IfcFillAreaStyleTiles=class extends Xi{constructor(e,t,s,i){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=i,this.type=315944413}};e.IfcFixedReferenceSweptAreaSolid=class extends Tr{constructor(e,t,s,i,r,o,n){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.FixedReference=n,this.type=2652556860}};class Kr extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=4238390223}}e.IfcFurnishingElementType=Kr;e.IfcFurnitureType=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.AssemblyPlace=c,this.PredefinedType=u,this.type=1268542332}};e.IfcGeographicElementType=class extends Qr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4095422895}};e.IfcGeometricCurveSet=class extends Zi{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};e.IfcIShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallWidth=r,this.OverallDepth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.FlangeSlope=c,this.type=1484403080}};class Yr extends Rr{constructor(e,t){super(e),this.CoordIndex=t,this.type=178912537}}e.IfcIndexedPolygonalFace=Yr;e.IfcIndexedPolygonalFaceWithVoids=class extends Yr{constructor(e,t,s){super(e,t),this.CoordIndex=t,this.InnerCoordIndices=s,this.type=2294589976}};e.IfcLShapeProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.Thickness=n,this.FilletRadius=a,this.EdgeRadius=l,this.LegSlope=h,this.type=572779678}};e.IfcLaborResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=428585644}};e.IfcLine=class extends jr{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class Xr extends gr{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=Xr;class Zr extends ir{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3888040117}}e.IfcObject=Zr;e.IfcOffsetCurve2D=class extends jr{constructor(e,t,s,i){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.type=3388369263}};e.IfcOffsetCurve3D=class extends jr{constructor(e,t,s,i,r){super(e),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.RefDirection=r,this.type=3505215534}};e.IfcPcurve=class extends jr{constructor(e,t,s){super(e),this.BasisSurface=t,this.ReferenceCurve=s,this.type=1682466193}};e.IfcPlanarBox=class extends nr{constructor(e,t,s,i){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=i,this.type=603570806}};e.IfcPlane=class extends Wr{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};class qr extends lr{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=qr;class Jr extends lr{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=Jr;class $r extends pr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3967405729}}e.IfcPreDefinedPropertySet=$r;e.IfcProcedureType=class extends Nr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.type=569719735}};class eo extends Zr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.type=2945172077}}e.IfcProcess=eo;class to extends Zr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=4208778838}}e.IfcProduct=to;e.IfcProject=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=103090709}};e.IfcProjectLibrary=class extends kr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=653396225}};e.IfcPropertyBoundedValue=class extends Er{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Description=s,this.UpperBoundValue=i,this.LowerBoundValue=r,this.Unit=o,this.SetPointValue=n,this.type=871118103}};e.IfcPropertyEnumeratedValue=class extends Er{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.EnumerationValues=i,this.EnumerationReference=r,this.type=4166981789}};e.IfcPropertyListValue=class extends Er{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.ListValues=i,this.Unit=r,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends Er{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.UsageName=i,this.PropertyReference=r,this.type=941946838}};e.IfcPropertySet=class extends pr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.HasProperties=o,this.type=1451395588}};e.IfcPropertySetTemplate=class extends dr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.TemplateType=o,this.ApplicableEntity=n,this.HasPropertyTemplates=a,this.type=492091185}};e.IfcPropertySingleValue=class extends Er{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.NominalValue=i,this.Unit=r,this.type=3650150729}};e.IfcPropertyTableValue=class extends Er{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s),this.Name=t,this.Description=s,this.DefiningValues=i,this.DefinedValues=r,this.Expression=o,this.DefiningUnit=n,this.DefinedUnit=a,this.CurveInterpolation=l,this.type=110355661}};class so extends dr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3521284610}}e.IfcPropertyTemplate=so;e.IfcProxy=class extends to{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.ProxyType=l,this.Tag=h,this.type=3219374653}};e.IfcRectangleHollowProfileDef=class extends mr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.WallThickness=n,this.InnerFilletRadius=a,this.OuterFilletRadius=l,this.type=2770003689}};e.IfcRectangularPyramid=class extends Vr{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.Height=r,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends wr{constructor(e,t,s,i,r,o,n,a){super(e),this.BasisSurface=t,this.U1=s,this.V1=i,this.U2=r,this.V2=o,this.Usense=n,this.Vsense=a,this.type=3454111270}};e.IfcReinforcementDefinitionProperties=class extends $r{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.DefinitionType=o,this.ReinforcementSectionDefinitions=n,this.type=3765753017}};class io extends yr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.type=3939117080}}e.IfcRelAssigns=io;e.IfcRelAssignsToActor=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingActor=a,this.ActingRole=l,this.type=1683148259}};e.IfcRelAssignsToControl=class extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=2495723537}};class ro extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.type=1307041759}}e.IfcRelAssignsToGroup=ro;e.IfcRelAssignsToGroupByFactor=class extends ro{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.Factor=l,this.type=1027710054}};e.IfcRelAssignsToProcess=class extends io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProcess=a,this.QuantityInProcess=l,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProduct=a,this.type=2857406711}};e.IfcRelAssignsToResource=class extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingResource=a,this.type=205026976}};class oo extends yr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.type=1865459582}}e.IfcRelAssociates=oo;e.IfcRelAssociatesApproval=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingApproval=n,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingClassification=n,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends oo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.Intent=n,this.RelatingConstraint=a,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingDocument=n,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingLibrary=n,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingMaterial=n,this.type=2655215786}};class no extends yr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=826625072}}e.IfcRelConnects=no;class ao extends no{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.type=1204542856}}e.IfcRelConnectsElements=ao;e.IfcRelConnectsPathElements=class extends ao{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RelatingPriorities=l,this.RelatedPriorities=h,this.RelatedConnectionType=c,this.RelatingConnectionType=u,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedElement=n,this.type=4201705270}};e.IfcRelConnectsPorts=class extends no{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedPort=n,this.RealizingElement=a,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedStructuralActivity=n,this.type=2127690289}};class lo extends no{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.type=1638771189}}e.IfcRelConnectsStructuralMember=lo;e.IfcRelConnectsWithEccentricity=class extends lo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.ConnectionConstraint=u,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends ao{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RealizingElements=l,this.ConnectionType=h,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedCoverings=n,this.type=886880790}};e.IfcRelCoversSpaces=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedCoverings=n,this.type=2802773753}};e.IfcRelDeclares=class extends yr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingContext=o,this.RelatedDefinitions=n,this.type=2565941209}};class ho extends yr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2551354335}}e.IfcRelDecomposes=ho;class co extends yr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=693640335}}e.IfcRelDefines=co;e.IfcRelDefinesByObject=class extends co{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingObject=n,this.type=1462361463}};e.IfcRelDefinesByProperties=class extends co{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingPropertyDefinition=n,this.type=4186316022}};e.IfcRelDefinesByTemplate=class extends co{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedPropertySets=o,this.RelatingTemplate=n,this.type=307848117}};e.IfcRelDefinesByType=class extends co{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingType=n,this.type=781010003}};e.IfcRelFillsElement=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingOpeningElement=o,this.RelatedBuildingElement=n,this.type=3940055652}};e.IfcRelFlowControlElements=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedControlElements=o,this.RelatingFlowElement=n,this.type=279856033}};e.IfcRelInterferesElements=class extends no{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedElement=n,this.InterferenceGeometry=a,this.InterferenceType=l,this.ImpliedOrder=h,this.type=427948657}};e.IfcRelNests=class extends ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=3268803585}};e.IfcRelProjectsElement=class extends ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedFeatureElement=n,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=1245217292}};e.IfcRelSequence=class extends no{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingProcess=o,this.RelatedProcess=n,this.TimeLag=a,this.SequenceType=l,this.UserDefinedSequenceType=h,this.type=4122056220}};e.IfcRelServicesBuildings=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSystem=o,this.RelatedBuildings=n,this.type=366585022}};class uo extends no{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.type=3451746338}}e.IfcRelSpaceBoundary=uo;class Ao extends uo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.ParentBoundary=c,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=Ao;e.IfcRelSpaceBoundary2ndLevel=class extends Ao{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.ParentBoundary=c,this.CorrespondingBoundary=u,this.type=1521410863}};e.IfcRelVoidsElement=class extends ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedOpeningElement=n,this.type=1401173127}};e.IfcReparametrisedCompositeCurveSegment=class extends Hr{constructor(e,t,s,i,r){super(e,t,s,i),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.ParamLength=r,this.type=816062949}};class po extends Zr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.type=2914609552}}e.IfcResource=po;class fo extends Tr{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.type=1856042241}}e.IfcRevolvedAreaSolid=fo;e.IfcRevolvedAreaSolidTapered=class extends fo{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.EndSweptArea=o,this.type=3243963512}};e.IfcRightCircularCone=class extends Vr{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=i,this.type=4158566097}};e.IfcRightCircularCylinder=class extends Vr{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.Radius=i,this.type=3626867408}};e.IfcSimplePropertyTemplate=class extends so{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.TemplateType=o,this.PrimaryMeasureType=n,this.SecondaryMeasureType=a,this.Enumerators=l,this.PrimaryUnit=h,this.SecondaryUnit=c,this.Expression=u,this.AccessState=A,this.type=3663146110}};class mo extends to{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.type=1412071761}}e.IfcSpatialElement=mo;class yo extends Or{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=710998568}}e.IfcSpatialElementType=yo;class Eo extends mo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.type=2706606064}}e.IfcSpatialStructureElement=Eo;class go extends yo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893378262}}e.IfcSpatialStructureElementType=go;e.IfcSpatialZone=class extends mo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.PredefinedType=h,this.type=463610769}};e.IfcSpatialZoneType=class extends yo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.LongName=u,this.type=2481509218}};e.IfcSphere=class extends Vr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};e.IfcSphericalSurface=class extends Wr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=4015995234}};class vo extends to{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3544373492}}e.IfcStructuralActivity=vo;class Io extends to{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3136571912}}e.IfcStructuralItem=Io;class _o extends Io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=530289379}}e.IfcStructuralMember=_o;class To extends vo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3689010777}}e.IfcStructuralReaction=To;class Po extends _o{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=3979015343}}e.IfcStructuralSurfaceMember=Po;e.IfcStructuralSurfaceMemberVarying=class extends Po{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=2218152070}};e.IfcStructuralSurfaceReaction=class extends To{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.PredefinedType=c,this.type=603775116}};e.IfcSubContractResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=4095615324}};class bo extends jr{constructor(e,t,s,i){super(e),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=699246055}}e.IfcSurfaceCurve=bo;e.IfcSurfaceCurveSweptAreaSolid=class extends Tr{constructor(e,t,s,i,r,o,n){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.ReferenceSurface=n,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends br{constructor(e,t,s,i,r){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends br{constructor(e,t,s,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=i,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1580310250}};e.IfcTask=class extends eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Status=l,this.WorkMethod=h,this.IsMilestone=c,this.Priority=u,this.TaskTime=A,this.PredefinedType=p,this.type=3473067441}};e.IfcTaskType=class extends Nr{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.WorkMethod=u,this.type=3206491090}};class Ro extends Rr{constructor(e,t){super(e),this.Coordinates=t,this.type=2387106220}}e.IfcTessellatedFaceSet=Ro;e.IfcToroidalSurface=class extends Wr{constructor(e,t,s,i){super(e,t),this.Position=t,this.MajorRadius=s,this.MinorRadius=i,this.type=1935646853}};e.IfcTransportElementType=class extends Qr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2097647324}};e.IfcTriangulatedFaceSet=class extends Ro{constructor(e,t,s,i,r,o){super(e,t),this.Coordinates=t,this.Normals=s,this.Closed=i,this.CoordIndex=r,this.PnIndex=o,this.type=2916149573}};e.IfcWindowLiningProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.TransomThickness=a,this.MullionThickness=l,this.FirstTransomOffset=h,this.SecondTransomOffset=c,this.FirstMullionOffset=u,this.SecondMullionOffset=A,this.ShapeAspectStyle=p,this.LiningOffset=d,this.LiningToPanelOffsetX=f,this.LiningToPanelOffsetY=m,this.type=336235671}};e.IfcWindowPanelProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=512836454}};class Do extends Zr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.type=2296667514}}e.IfcActor=Do;class Co extends Xr{constructor(e,t){super(e,t),this.Outer=t,this.type=1635779807}}e.IfcAdvancedBrep=Co;e.IfcAdvancedBrepWithVoids=class extends Co{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=2603310189}};e.IfcAnnotation=class extends to{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1674181508}};class No extends wr{constructor(e,t,s,i,r,o,n,a){super(e),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.type=2887950389}}e.IfcBSplineSurface=No;class Oo extends No{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.UMultiplicities=l,this.VMultiplicities=h,this.UKnots=c,this.VKnots=u,this.KnotSpec=A,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=Oo;e.IfcBlock=class extends Vr{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.ZLength=r,this.type=1334484129}};e.IfcBooleanClippingResult=class extends Sr{constructor(e,t,s,i){super(e,t,s,i),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=3649129432}};class xo extends jr{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=xo;e.IfcBuilding=class extends Eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.ElevationOfRefHeight=c,this.ElevationOfTerrain=u,this.BuildingAddress=A,this.type=4031249490}};class So extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1950629157}}e.IfcBuildingElementType=So;e.IfcBuildingStorey=class extends Eo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.Elevation=c,this.type=3124254112}};e.IfcChimneyType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2197970202}};e.IfcCircleHollowProfileDef=class extends Ur{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.WallThickness=o,this.type=2937912522}};e.IfcCivilElementType=class extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893394355}};e.IfcColumnType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=300633059}};e.IfcComplexPropertyTemplate=class extends so{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.UsageName=o,this.TemplateType=n,this.HasPropertyTemplates=a,this.type=3875453745}};class wo extends xo{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=wo;class Mo extends wo{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=15328376}}e.IfcCompositeCurveOnSurface=Mo;class Bo extends jr{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=Bo;e.IfcConstructionEquipmentResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=2185764099}};e.IfcConstructionMaterialResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=4105962743}};e.IfcConstructionProductResourceType=class extends Gr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=1525564444}};class Fo extends po{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.type=2559216714}}e.IfcConstructionResource=Fo;class Lo extends Zr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.type=3293443760}}e.IfcControl=Lo;e.IfcCostItem=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.CostValues=l,this.CostQuantities=h,this.type=3895139033}};e.IfcCostSchedule=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.SubmittedOn=h,this.UpdateDate=c,this.type=1419761937}};e.IfcCoveringType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1916426348}};e.IfcCrewResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3295246426}};e.IfcCurtainWallType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1457835157}};e.IfcCylindricalSurface=class extends Wr{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=1213902940}};class Uo extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3256556792}}e.IfcDistributionElementType=Uo;class Ho extends Uo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3849074793}}e.IfcDistributionFlowElementType=Ho;e.IfcDoorLiningProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.ThresholdDepth=a,this.ThresholdThickness=l,this.TransomThickness=h,this.TransomOffset=c,this.LiningOffset=u,this.ThresholdOffset=A,this.CasingThickness=p,this.CasingDepth=d,this.ShapeAspectStyle=f,this.LiningToPanelOffsetX=m,this.LiningToPanelOffsetY=y,this.type=2963535650}};e.IfcDoorPanelProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PanelDepth=o,this.PanelOperation=n,this.PanelWidth=a,this.PanelPosition=l,this.ShapeAspectStyle=h,this.type=1714330368}};e.IfcDoorType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.OperationType=u,this.ParameterTakesPrecedence=A,this.UserDefinedOperationType=p,this.type=2323601079}};e.IfcDraughtingPreDefinedColour=class extends qr{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends Jr{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};class Go extends to{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1758889154}}e.IfcElement=Go;e.IfcElementAssembly=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.AssemblyPlace=h,this.PredefinedType=c,this.type=4123344466}};e.IfcElementAssemblyType=class extends Qr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2397081782}};class ko extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1623761950}}e.IfcElementComponent=ko;class Vo extends Qr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2590856083}}e.IfcElementComponentType=Vo;e.IfcEllipse=class extends Bo{constructor(e,t,s,i){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=i,this.type=1704287377}};class jo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2107101300}}e.IfcEnergyConversionDeviceType=jo;e.IfcEngineType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=132023988}};e.IfcEvaporativeCoolerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3174744832}};e.IfcEvaporatorType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3390157468}};e.IfcEvent=class extends eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.PredefinedType=l,this.EventTriggerType=h,this.UserDefinedEventTriggerType=c,this.EventOccurenceTime=u,this.type=4148101412}};class Qo extends mo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.type=2853485674}}e.IfcExternalSpatialStructureElement=Qo;class Wo extends Xr{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}}e.IfcFacetedBrep=Wo;e.IfcFacetedBrepWithVoids=class extends Wo{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};e.IfcFastener=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=647756555}};e.IfcFastenerType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2489546625}};class zo extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2827207264}}e.IfcFeatureElement=zo;class Ko extends zo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2143335405}}e.IfcFeatureElementAddition=Ko;class Yo extends zo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1287392070}}e.IfcFeatureElementSubtraction=Yo;class Xo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3907093117}}e.IfcFlowControllerType=Xo;class Zo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3198132628}}e.IfcFlowFittingType=Zo;e.IfcFlowMeterType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3815607619}};class qo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1482959167}}e.IfcFlowMovingDeviceType=qo;class Jo extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1834744321}}e.IfcFlowSegmentType=Jo;class $o extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1339347760}}e.IfcFlowStorageDeviceType=$o;class en extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2297155007}}e.IfcFlowTerminalType=en;class tn extends Ho{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=tn;e.IfcFootingType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1893162501}};class sn extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=263784265}}e.IfcFurnishingElement=sn;e.IfcFurniture=class extends sn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1509553395}};e.IfcGeographicElement=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3493046030}};e.IfcGrid=class extends to{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.UAxes=l,this.VAxes=h,this.WAxes=c,this.PredefinedType=u,this.type=3009204131}};class rn extends Zr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2706460486}}e.IfcGroup=rn;e.IfcHeatExchangerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1251058090}};e.IfcHumidifierType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1806887404}};e.IfcIndexedPolyCurve=class extends xo{constructor(e,t,s,i){super(e),this.Points=t,this.Segments=s,this.SelfIntersect=i,this.type=2571569899}};e.IfcInterceptorType=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3946677679}};e.IfcIntersectionCurve=class extends bo{constructor(e,t,s,i){super(e,t,s,i),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=3113134337}};e.IfcInventory=class extends rn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.Jurisdiction=a,this.ResponsiblePersons=l,this.LastUpdateDate=h,this.CurrentValue=c,this.OriginalValue=u,this.type=2391368822}};e.IfcJunctionBoxType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4288270099}};e.IfcLaborResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3827777499}};e.IfcLampType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1051575348}};e.IfcLightFixtureType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1161773419}};e.IfcMechanicalFastener=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NominalDiameter=h,this.NominalLength=c,this.PredefinedType=u,this.type=377706215}};e.IfcMechanicalFastenerType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.NominalLength=A,this.type=2108223431}};e.IfcMedicalDeviceType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1114901282}};e.IfcMemberType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3181161470}};e.IfcMotorConnectionType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=977012517}};e.IfcOccupant=class extends Do{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.PredefinedType=a,this.type=4143007308}};class on extends Yo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3588315303}}e.IfcOpeningElement=on;e.IfcOpeningStandardCase=class extends on{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3079942009}};e.IfcOutletType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2837617999}};e.IfcPerformanceHistory=class extends Lo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LifeCyclePhase=a,this.PredefinedType=l,this.type=2382730787}};e.IfcPermeableCoveringProperties=class extends $r{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=3566463478}};e.IfcPermit=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=3327091369}};e.IfcPileType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1158309216}};e.IfcPipeFittingType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=804291784}};e.IfcPipeSegmentType=class extends Jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4231323485}};e.IfcPlateType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4017108033}};e.IfcPolygonalFaceSet=class extends Ro{constructor(e,t,s,i,r){super(e,t),this.Coordinates=t,this.Closed=s,this.Faces=i,this.PnIndex=r,this.type=2839578677}};e.IfcPolyline=class extends xo{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class nn extends to{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3740093272}}e.IfcPort=nn;e.IfcProcedure=class extends eo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.PredefinedType=l,this.type=2744685151}};e.IfcProjectOrder=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=2904328755}};e.IfcProjectionElement=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1842657554}};e.IfcPumpType=class extends qo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2250791053}};e.IfcRailingType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2893384427}};e.IfcRampFlightType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2324767716}};e.IfcRampType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1469900589}};e.IfcRationalBSplineSurfaceWithKnots=class extends Oo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.UMultiplicities=l,this.VMultiplicities=h,this.UKnots=c,this.VKnots=u,this.KnotSpec=A,this.WeightsData=p,this.type=683857671}};class an extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.type=3027567501}}e.IfcReinforcingElement=an;class ln extends Vo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=964333572}}e.IfcReinforcingElementType=ln;e.IfcReinforcingMesh=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.MeshLength=c,this.MeshWidth=u,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=p,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=m,this.TransverseBarSpacing=y,this.PredefinedType=E,this.type=2320036040}};e.IfcReinforcingMeshType=class extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.MeshLength=u,this.MeshWidth=A,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=d,this.LongitudinalBarCrossSectionArea=f,this.TransverseBarCrossSectionArea=m,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=E,this.BendingShapeCode=g,this.BendingParameters=v,this.type=2310774935}};e.IfcRelAggregates=class extends ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=160246688}};e.IfcRoofType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2781568857}};e.IfcSanitaryTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1768891740}};e.IfcSeamCurve=class extends bo{constructor(e,t,s,i){super(e,t,s,i),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=2157484638}};e.IfcShadingDeviceType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4074543187}};e.IfcSite=class extends Eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.RefLatitude=c,this.RefLongitude=u,this.RefElevation=A,this.LandTitleNumber=p,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2533589738}};e.IfcSolarDeviceType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1072016465}};e.IfcSpace=class extends Eo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.ElevationWithFlooring=u,this.type=3856911033}};e.IfcSpaceHeaterType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1305183839}};e.IfcSpaceType=class extends go{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.LongName=u,this.type=3812236995}};e.IfcStackTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3112655638}};e.IfcStairFlightType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1039846685}};e.IfcStairType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=338393293}};class hn extends vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.type=682877961}}e.IfcStructuralAction=hn;class cn extends Io{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1179482911}}e.IfcStructuralConnection=cn;class un extends hn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1004757350}}e.IfcStructuralCurveAction=un;e.IfcStructuralCurveConnection=class extends cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.Axis=h,this.type=4243806635}};class An extends _o{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Axis=h,this.type=214636428}}e.IfcStructuralCurveMember=An;e.IfcStructuralCurveMemberVarying=class extends An{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Axis=h,this.type=2445595289}};e.IfcStructuralCurveReaction=class extends To{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.PredefinedType=c,this.type=2757150158}};e.IfcStructuralLinearAction=class extends un{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1807405624}};class pn extends rn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.type=1252848954}}e.IfcStructuralLoadGroup=pn;e.IfcStructuralPointAction=class extends hn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.type=2082059205}};e.IfcStructuralPointConnection=class extends cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.ConditionCoordinateSystem=h,this.type=734778138}};e.IfcStructuralPointReaction=class extends To{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=1235345126}};e.IfcStructuralResultGroup=class extends rn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheoryType=n,this.ResultForLoadGroup=a,this.IsLinear=l,this.type=2986769608}};class dn extends hn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=3657597509}}e.IfcStructuralSurfaceAction=dn;e.IfcStructuralSurfaceConnection=class extends cn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1975003073}};e.IfcSubContractResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=148013059}};e.IfcSurfaceFeature=class extends zo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3101698114}};e.IfcSwitchingDeviceType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2315554128}};class fn extends rn{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2254336722}}e.IfcSystem=fn;e.IfcSystemFurnitureElement=class extends sn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=413509423}};e.IfcTankType=class extends $o{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=5716631}};e.IfcTendon=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.TensionForce=p,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=m,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.type=2347447852}};e.IfcTendonAnchorType=class extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3081323446}};e.IfcTendonType=class extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.SheathDiameter=p,this.type=2415094496}};e.IfcTransformerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1692211062}};e.IfcTransportElement=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1620046519}};e.IfcTrimmedCurve=class extends xo{constructor(e,t,s,i,r,o){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=i,this.SenseAgreement=r,this.MasterRepresentation=o,this.type=3593883385}};e.IfcTubeBundleType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1911125066}};e.IfcValveType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=728799441}};e.IfcVibrationIsolator=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2391383451}};e.IfcVibrationIsolatorType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3313531582}};e.IfcVirtualElement=class extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2769231204}};e.IfcVoidingFeature=class extends Yo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=926996030}};e.IfcWallType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1898987631}};e.IfcWasteTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1133259667}};e.IfcWindowType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.PartitioningType=u,this.ParameterTakesPrecedence=A,this.UserDefinedPartitioningType=p,this.type=4009809668}};e.IfcWorkCalendar=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.WorkingTimes=a,this.ExceptionTimes=l,this.PredefinedType=h,this.type=4088093105}};class mn extends Lo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.type=1028945134}}e.IfcWorkControl=mn;e.IfcWorkPlan=class extends mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.PredefinedType=d,this.type=4218914973}};e.IfcWorkSchedule=class extends mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.PredefinedType=d,this.type=3342526732}};e.IfcZone=class extends fn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.type=1033361043}};e.IfcActionRequest=class extends Lo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1411407467}};e.IfcAirTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1871374353}};e.IfcAsset=class extends rn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.OriginalValue=a,this.CurrentValue=l,this.TotalReplacementCost=h,this.Owner=c,this.User=u,this.ResponsiblePerson=A,this.IncorporationDate=p,this.DepreciatedValue=d,this.type=3460190687}};e.IfcAudioVisualApplianceType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1532957894}};class yn extends xo{constructor(e,t,s,i,r,o){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.type=1967976161}}e.IfcBSplineCurve=yn;class En extends yn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.KnotMultiplicities=n,this.Knots=a,this.KnotSpec=l,this.type=2461110595}}e.IfcBSplineCurveWithKnots=En;e.IfcBeamType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=819618141}};e.IfcBoilerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=231477066}};class gn extends Mo{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1136057603}}e.IfcBoundaryCurve=gn;class vn extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3299480353}}e.IfcBuildingElement=vn;e.IfcBuildingElementPart=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2979338954}};e.IfcBuildingElementPartType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=39481116}};e.IfcBuildingElementProxy=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1095909175}};e.IfcBuildingElementProxyType=class extends So{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1909888760}};e.IfcBuildingSystem=class extends fn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.LongName=a,this.type=1177604601}};e.IfcBurnerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2188180465}};e.IfcCableCarrierFittingType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends Jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3293546465}};e.IfcCableFittingType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2674252688}};e.IfcCableSegmentType=class extends Jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1285652485}};e.IfcChillerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2951183804}};e.IfcChimney=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3296154744}};e.IfcCircle=class extends Bo{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCivilElement=class extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1677625105}};e.IfcCoilType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2301859152}};class In extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=843113511}}e.IfcColumn=In;e.IfcColumnStandardCase=class extends In{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=905975707}};e.IfcCommunicationsApplianceType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=400855858}};e.IfcCompressorType=class extends qo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3850581409}};e.IfcCondenserType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2816379211}};e.IfcConstructionEquipmentResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=1060000209}};e.IfcConstructionProductResource=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=488727124}};e.IfcCooledBeamType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=335055490}};e.IfcCoolingTowerType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2954562838}};e.IfcCovering=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1973544240}};e.IfcCurtainWall=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3495092785}};e.IfcDamperType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3961806047}};e.IfcDiscreteAccessory=class extends ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1335981549}};e.IfcDiscreteAccessoryType=class extends Vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2635815018}};e.IfcDistributionChamberElementType=class extends Ho{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1599208980}};class _n extends Uo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2063403501}}e.IfcDistributionControlElementType=_n;class Tn extends Go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1945004755}}e.IfcDistributionElement=Tn;class Pn extends Tn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3040386961}}e.IfcDistributionFlowElement=Pn;e.IfcDistributionPort=class extends nn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.FlowDirection=l,this.PredefinedType=h,this.SystemType=c,this.type=3041715199}};class bn extends fn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.PredefinedType=a,this.type=3205830791}}e.IfcDistributionSystem=bn;class Rn extends vn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.OperationType=A,this.UserDefinedOperationType=p,this.type=395920057}}e.IfcDoor=Rn;e.IfcDoorStandardCase=class extends Rn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.OperationType=A,this.UserDefinedOperationType=p,this.type=3242481149}};e.IfcDuctFittingType=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=869906466}};e.IfcDuctSegmentType=class extends Jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3760055223}};e.IfcDuctSilencerType=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2030761528}};e.IfcElectricApplianceType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=663422040}};e.IfcElectricDistributionBoardType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2417008758}};e.IfcElectricFlowStorageDeviceType=class extends $o{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3277789161}};e.IfcElectricGeneratorType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1534661035}};e.IfcElectricMotorType=class extends jo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Xo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=712377611}};class Dn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1658829314}}e.IfcEnergyConversionDevice=Dn;e.IfcEngine=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2814081492}};e.IfcEvaporativeCooler=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3747195512}};e.IfcEvaporator=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=484807127}};e.IfcExternalSpatialElement=class extends Qo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.PredefinedType=h,this.type=1209101575}};e.IfcFanType=class extends qo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=346874300}};e.IfcFilterType=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4222183408}};class Cn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2058353004}}e.IfcFlowController=Cn;class Nn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=4278956645}}e.IfcFlowFitting=Nn;e.IfcFlowInstrumentType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4037862832}};e.IfcFlowMeter=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2188021234}};class On extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3132237377}}e.IfcFlowMovingDevice=On;class xn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=987401354}}e.IfcFlowSegment=xn;class Sn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=707683696}}e.IfcFlowStorageDevice=Sn;class wn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2223149337}}e.IfcFlowTerminal=wn;class Mn extends Pn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3508470533}}e.IfcFlowTreatmentDevice=Mn;e.IfcFooting=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=900683007}};e.IfcHeatExchanger=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3319311131}};e.IfcHumidifier=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2068733104}};e.IfcInterceptor=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4175244083}};e.IfcJunctionBox=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2176052936}};e.IfcLamp=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=76236018}};e.IfcLightFixture=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=629592764}};e.IfcMedicalDevice=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1437502449}};class Bn extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1073191201}}e.IfcMember=Bn;e.IfcMemberStandardCase=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1911478936}};e.IfcMotorConnection=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2474470126}};e.IfcOuterBoundaryCurve=class extends gn{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=144952367}};e.IfcOutlet=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3694346114}};e.IfcPile=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.ConstructionType=c,this.type=1687234759}};e.IfcPipeFitting=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=310824031}};e.IfcPipeSegment=class extends xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3612865200}};class Fn extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3171933400}}e.IfcPlate=Fn;e.IfcPlateStandardCase=class extends Fn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1156407060}};e.IfcProtectiveDevice=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=738039164}};e.IfcProtectiveDeviceTrippingUnitType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=655969474}};e.IfcPump=class extends On{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=90941305}};e.IfcRailing=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2262370178}};e.IfcRamp=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3024970846}};e.IfcRampFlight=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3283111854}};e.IfcRationalBSplineCurveWithKnots=class extends En{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.KnotMultiplicities=n,this.Knots=a,this.KnotSpec=l,this.WeightsData=h,this.type=1232101972}};e.IfcReinforcingBar=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.NominalDiameter=c,this.CrossSectionArea=u,this.BarLength=A,this.PredefinedType=p,this.BarSurface=d,this.type=979691226}};e.IfcReinforcingBarType=class extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.BarLength=p,this.BarSurface=d,this.BendingShapeCode=f,this.BendingParameters=m,this.type=2572171363}};e.IfcRoof=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2016517767}};e.IfcSanitaryTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3053780830}};e.IfcSensorType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1783015770}};e.IfcShadingDevice=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1329646415}};class Ln extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1529196076}}e.IfcSlab=Ln;e.IfcSlabElementedCase=class extends Ln{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3127900445}};e.IfcSlabStandardCase=class extends Ln{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3027962421}};e.IfcSolarDevice=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3420628829}};e.IfcSpaceHeater=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1999602285}};e.IfcStackTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1404847402}};e.IfcStair=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=331165859}};e.IfcStairFlight=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NumberOfRisers=h,this.NumberOfTreads=c,this.RiserHeight=u,this.TreadLength=A,this.PredefinedType=p,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends fn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.OrientationOf2DPlane=a,this.LoadedBy=l,this.HasResults=h,this.SharedPlacement=c,this.type=2515109513}};e.IfcStructuralLoadCase=class extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.SelfWeightCoefficients=u,this.type=385403989}};e.IfcStructuralPlanarAction=class extends dn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1621171031}};e.IfcSwitchingDevice=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1162798199}};e.IfcTank=class extends Sn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=812556717}};e.IfcTransformer=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3825984169}};e.IfcTubeBundle=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3026737570}};e.IfcUnitaryControlElementType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3179687236}};e.IfcUnitaryEquipment=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4292641817}};e.IfcValve=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4207607924}};class Un extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2391406946}}e.IfcWall=Un;e.IfcWallElementedCase=class extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4156078855}};e.IfcWallStandardCase=class extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3512223829}};e.IfcWasteTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4237592921}};class Hn extends vn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.PartitioningType=A,this.UserDefinedPartitioningType=p,this.type=3304561284}}e.IfcWindow=Hn;e.IfcWindowStandardCase=class extends Hn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.PartitioningType=A,this.UserDefinedPartitioningType=p,this.type=486154966}};e.IfcActuatorType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2874132201}};e.IfcAirTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1634111441}};e.IfcAirTerminalBox=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=177149247}};e.IfcAirToAirHeatRecovery=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2056796094}};e.IfcAlarmType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3001207471}};e.IfcAudioVisualAppliance=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=277319702}};class Gn extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=753842376}}e.IfcBeam=Gn;e.IfcBeamStandardCase=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2906023776}};e.IfcBoiler=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=32344328}};e.IfcBurner=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2938176219}};e.IfcCableCarrierFitting=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=635142910}};e.IfcCableCarrierSegment=class extends xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3758799889}};e.IfcCableFitting=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1051757585}};e.IfcCableSegment=class extends xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4217484030}};e.IfcChiller=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3902619387}};e.IfcCoil=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=639361253}};e.IfcCommunicationsAppliance=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3221913625}};e.IfcCompressor=class extends On{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3571504051}};e.IfcCondenser=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2272882330}};e.IfcControllerType=class extends _n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=578613899}};e.IfcCooledBeam=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4136498852}};e.IfcCoolingTower=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3640358203}};e.IfcDamper=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4074379575}};e.IfcDistributionChamberElement=class extends Pn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1052013943}};e.IfcDistributionCircuit=class extends bn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.PredefinedType=a,this.type=562808652}};class kn extends Tn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1062813311}}e.IfcDistributionControlElement=kn;e.IfcDuctFitting=class extends Nn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=342316401}};e.IfcDuctSegment=class extends xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3518393246}};e.IfcDuctSilencer=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1360408905}};e.IfcElectricAppliance=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1904799276}};e.IfcElectricDistributionBoard=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=862014818}};e.IfcElectricFlowStorageDevice=class extends Sn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3310460725}};e.IfcElectricGenerator=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=264262732}};e.IfcElectricMotor=class extends Dn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=402227799}};e.IfcElectricTimeControl=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1003880860}};e.IfcFan=class extends On{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3415622556}};e.IfcFilter=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=819412036}};e.IfcFireSuppressionTerminal=class extends wn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1426591983}};e.IfcFlowInstrument=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=182646315}};e.IfcProtectiveDeviceTrippingUnit=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2295281155}};e.IfcSensor=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4086658281}};e.IfcUnitaryControlElement=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=630975310}};e.IfcActuator=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4288193352}};e.IfcAlarm=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3087945054}};e.IfcController=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=25142252}}}(fI||(fI={})),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 i{}i.BRAKES={type:3,value:"BRAKES"},i.BUOYANCY={type:3,value:"BUOYANCY"},i.COMPLETION_G1={type:3,value:"COMPLETION_G1"},i.CREEP={type:3,value:"CREEP"},i.CURRENT={type:3,value:"CURRENT"},i.DEAD_LOAD_G={type:3,value:"DEAD_LOAD_G"},i.EARTHQUAKE_E={type:3,value:"EARTHQUAKE_E"},i.ERECTION={type:3,value:"ERECTION"},i.FIRE={type:3,value:"FIRE"},i.ICE={type:3,value:"ICE"},i.IMPACT={type:3,value:"IMPACT"},i.IMPULSE={type:3,value:"IMPULSE"},i.LACK_OF_FIT={type:3,value:"LACK_OF_FIT"},i.LIVE_LOAD_Q={type:3,value:"LIVE_LOAD_Q"},i.PRESTRESSING_P={type:3,value:"PRESTRESSING_P"},i.PROPPING={type:3,value:"PROPPING"},i.RAIN={type:3,value:"RAIN"},i.SETTLEMENT_U={type:3,value:"SETTLEMENT_U"},i.SHRINKAGE={type:3,value:"SHRINKAGE"},i.SNOW_S={type:3,value:"SNOW_S"},i.SYSTEM_IMPERFECTION={type:3,value:"SYSTEM_IMPERFECTION"},i.TEMPERATURE_T={type:3,value:"TEMPERATURE_T"},i.TRANSPORT={type:3,value:"TRANSPORT"},i.WAVE={type:3,value:"WAVE"},i.WIND_W={type:3,value:"WIND_W"},i.USERDEFINED={type:3,value:"USERDEFINED"},i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionSourceTypeEnum=i;class r{}r.EXTRAORDINARY_A={type:3,value:"EXTRAORDINARY_A"},r.PERMANENT_G={type:3,value:"PERMANENT_G"},r.VARIABLE_Q={type:3,value:"VARIABLE_Q"},r.USERDEFINED={type:3,value:"USERDEFINED"},r.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActionTypeEnum=r;class o{}o.ELECTRICACTUATOR={type:3,value:"ELECTRICACTUATOR"},o.HANDOPERATEDACTUATOR={type:3,value:"HANDOPERATEDACTUATOR"},o.HYDRAULICACTUATOR={type:3,value:"HYDRAULICACTUATOR"},o.PNEUMATICACTUATOR={type:3,value:"PNEUMATICACTUATOR"},o.THERMOSTATICACTUATOR={type:3,value:"THERMOSTATICACTUATOR"},o.USERDEFINED={type:3,value:"USERDEFINED"},o.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcActuatorTypeEnum=o;class n{}n.DISTRIBUTIONPOINT={type:3,value:"DISTRIBUTIONPOINT"},n.HOME={type:3,value:"HOME"},n.OFFICE={type:3,value:"OFFICE"},n.SITE={type:3,value:"SITE"},n.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcAddressTypeEnum=n;class a{}a.CONSTANTFLOW={type:3,value:"CONSTANTFLOW"},a.VARIABLEFLOWPRESSUREDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREDEPENDANT"},a.VARIABLEFLOWPRESSUREINDEPENDANT={type:3,value:"VARIABLEFLOWPRESSUREINDEPENDANT"},a.USERDEFINED={type:3,value:"USERDEFINED"},a.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalBoxTypeEnum=a;class l{}l.DIFFUSER={type:3,value:"DIFFUSER"},l.GRILLE={type:3,value:"GRILLE"},l.LOUVRE={type:3,value:"LOUVRE"},l.REGISTER={type:3,value:"REGISTER"},l.USERDEFINED={type:3,value:"USERDEFINED"},l.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirTerminalTypeEnum=l;class h{}h.FIXEDPLATECOUNTERFLOWEXCHANGER={type:3,value:"FIXEDPLATECOUNTERFLOWEXCHANGER"},h.FIXEDPLATECROSSFLOWEXCHANGER={type:3,value:"FIXEDPLATECROSSFLOWEXCHANGER"},h.FIXEDPLATEPARALLELFLOWEXCHANGER={type:3,value:"FIXEDPLATEPARALLELFLOWEXCHANGER"},h.HEATPIPE={type:3,value:"HEATPIPE"},h.ROTARYWHEEL={type:3,value:"ROTARYWHEEL"},h.RUNAROUNDCOILLOOP={type:3,value:"RUNAROUNDCOILLOOP"},h.THERMOSIPHONCOILTYPEHEATEXCHANGERS={type:3,value:"THERMOSIPHONCOILTYPEHEATEXCHANGERS"},h.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS={type:3,value:"THERMOSIPHONSEALEDTUBEHEATEXCHANGERS"},h.TWINTOWERENTHALPYRECOVERYLOOPS={type:3,value:"TWINTOWERENTHALPYRECOVERYLOOPS"},h.USERDEFINED={type:3,value:"USERDEFINED"},h.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAirToAirHeatRecoveryTypeEnum=h;class c{}c.BELL={type:3,value:"BELL"},c.BREAKGLASSBUTTON={type:3,value:"BREAKGLASSBUTTON"},c.LIGHT={type:3,value:"LIGHT"},c.MANUALPULLBOX={type:3,value:"MANUALPULLBOX"},c.RAILWAYCROCODILE={type:3,value:"RAILWAYCROCODILE"},c.RAILWAYDETONATOR={type:3,value:"RAILWAYDETONATOR"},c.SIREN={type:3,value:"SIREN"},c.WHISTLE={type:3,value:"WHISTLE"},c.USERDEFINED={type:3,value:"USERDEFINED"},c.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlarmTypeEnum=c;class u{}u.BLOSSCURVE={type:3,value:"BLOSSCURVE"},u.CONSTANTCANT={type:3,value:"CONSTANTCANT"},u.COSINECURVE={type:3,value:"COSINECURVE"},u.HELMERTCURVE={type:3,value:"HELMERTCURVE"},u.LINEARTRANSITION={type:3,value:"LINEARTRANSITION"},u.SINECURVE={type:3,value:"SINECURVE"},u.VIENNESEBEND={type:3,value:"VIENNESEBEND"},e.IfcAlignmentCantSegmentTypeEnum=u;class A{}A.BLOSSCURVE={type:3,value:"BLOSSCURVE"},A.CIRCULARARC={type:3,value:"CIRCULARARC"},A.CLOTHOID={type:3,value:"CLOTHOID"},A.COSINECURVE={type:3,value:"COSINECURVE"},A.CUBIC={type:3,value:"CUBIC"},A.HELMERTCURVE={type:3,value:"HELMERTCURVE"},A.LINE={type:3,value:"LINE"},A.SINECURVE={type:3,value:"SINECURVE"},A.VIENNESEBEND={type:3,value:"VIENNESEBEND"},e.IfcAlignmentHorizontalSegmentTypeEnum=A;class p{}p.USERDEFINED={type:3,value:"USERDEFINED"},p.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAlignmentTypeEnum=p;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 m{}m.FIRST_ORDER_THEORY={type:3,value:"FIRST_ORDER_THEORY"},m.FULL_NONLINEAR_THEORY={type:3,value:"FULL_NONLINEAR_THEORY"},m.SECOND_ORDER_THEORY={type:3,value:"SECOND_ORDER_THEORY"},m.THIRD_ORDER_THEORY={type:3,value:"THIRD_ORDER_THEORY"},m.USERDEFINED={type:3,value:"USERDEFINED"},m.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAnalysisTheoryTypeEnum=m;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 E{}E.ADD={type:3,value:"ADD"},E.DIVIDE={type:3,value:"DIVIDE"},E.MULTIPLY={type:3,value:"MULTIPLY"},E.SUBTRACT={type:3,value:"SUBTRACT"},e.IfcArithmeticOperatorEnum=E;class g{}g.FACTORY={type:3,value:"FACTORY"},g.SITE={type:3,value:"SITE"},g.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAssemblyPlaceEnum=g;class v{}v.AMPLIFIER={type:3,value:"AMPLIFIER"},v.CAMERA={type:3,value:"CAMERA"},v.COMMUNICATIONTERMINAL={type:3,value:"COMMUNICATIONTERMINAL"},v.DISPLAY={type:3,value:"DISPLAY"},v.MICROPHONE={type:3,value:"MICROPHONE"},v.PLAYER={type:3,value:"PLAYER"},v.PROJECTOR={type:3,value:"PROJECTOR"},v.RECEIVER={type:3,value:"RECEIVER"},v.RECORDINGEQUIPMENT={type:3,value:"RECORDINGEQUIPMENT"},v.SPEAKER={type:3,value:"SPEAKER"},v.SWITCHER={type:3,value:"SWITCHER"},v.TELEPHONE={type:3,value:"TELEPHONE"},v.TUNER={type:3,value:"TUNER"},v.USERDEFINED={type:3,value:"USERDEFINED"},v.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcAudioVisualApplianceTypeEnum=v;class I{}I.CIRCULAR_ARC={type:3,value:"CIRCULAR_ARC"},I.ELLIPTIC_ARC={type:3,value:"ELLIPTIC_ARC"},I.HYPERBOLIC_ARC={type:3,value:"HYPERBOLIC_ARC"},I.PARABOLIC_ARC={type:3,value:"PARABOLIC_ARC"},I.POLYLINE_FORM={type:3,value:"POLYLINE_FORM"},I.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineCurveForm=I;class _{}_.CONICAL_SURF={type:3,value:"CONICAL_SURF"},_.CYLINDRICAL_SURF={type:3,value:"CYLINDRICAL_SURF"},_.GENERALISED_CONE={type:3,value:"GENERALISED_CONE"},_.PLANE_SURF={type:3,value:"PLANE_SURF"},_.QUADRIC_SURF={type:3,value:"QUADRIC_SURF"},_.RULED_SURF={type:3,value:"RULED_SURF"},_.SPHERICAL_SURF={type:3,value:"SPHERICAL_SURF"},_.SURF_OF_LINEAR_EXTRUSION={type:3,value:"SURF_OF_LINEAR_EXTRUSION"},_.SURF_OF_REVOLUTION={type:3,value:"SURF_OF_REVOLUTION"},_.TOROIDAL_SURF={type:3,value:"TOROIDAL_SURF"},_.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcBSplineSurfaceForm=_;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 P{}P.FIXED_MOVEMENT={type:3,value:"FIXED_MOVEMENT"},P.FREE_MOVEMENT={type:3,value:"FREE_MOVEMENT"},P.GUIDED_LONGITUDINAL={type:3,value:"GUIDED_LONGITUDINAL"},P.GUIDED_TRANSVERSAL={type:3,value:"GUIDED_TRANSVERSAL"},P.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBearingTypeDisplacementEnum=P;class b{}b.CYLINDRICAL={type:3,value:"CYLINDRICAL"},b.DISK={type:3,value:"DISK"},b.ELASTOMERIC={type:3,value:"ELASTOMERIC"},b.GUIDE={type:3,value:"GUIDE"},b.POT={type:3,value:"POT"},b.ROCKER={type:3,value:"ROCKER"},b.ROLLER={type:3,value:"ROLLER"},b.SPHERICAL={type:3,value:"SPHERICAL"},b.USERDEFINED={type:3,value:"USERDEFINED"},b.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBearingTypeEnum=b;class R{}R.EQUALTO={type:3,value:"EQUALTO"},R.GREATERTHAN={type:3,value:"GREATERTHAN"},R.GREATERTHANOREQUALTO={type:3,value:"GREATERTHANOREQUALTO"},R.INCLUDEDIN={type:3,value:"INCLUDEDIN"},R.INCLUDES={type:3,value:"INCLUDES"},R.LESSTHAN={type:3,value:"LESSTHAN"},R.LESSTHANOREQUALTO={type:3,value:"LESSTHANOREQUALTO"},R.NOTEQUALTO={type:3,value:"NOTEQUALTO"},R.NOTINCLUDEDIN={type:3,value:"NOTINCLUDEDIN"},R.NOTINCLUDES={type:3,value:"NOTINCLUDES"},e.IfcBenchmarkEnum=R;class D{}D.STEAM={type:3,value:"STEAM"},D.WATER={type:3,value:"WATER"},D.USERDEFINED={type:3,value:"USERDEFINED"},D.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBoilerTypeEnum=D;class C{}C.DIFFERENCE={type:3,value:"DIFFERENCE"},C.INTERSECTION={type:3,value:"INTERSECTION"},C.UNION={type:3,value:"UNION"},e.IfcBooleanOperator=C;class N{}N.ABUTMENT={type:3,value:"ABUTMENT"},N.DECK={type:3,value:"DECK"},N.DECK_SEGMENT={type:3,value:"DECK_SEGMENT"},N.FOUNDATION={type:3,value:"FOUNDATION"},N.PIER={type:3,value:"PIER"},N.PIER_SEGMENT={type:3,value:"PIER_SEGMENT"},N.PYLON={type:3,value:"PYLON"},N.SUBSTRUCTURE={type:3,value:"SUBSTRUCTURE"},N.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},N.SURFACESTRUCTURE={type:3,value:"SURFACESTRUCTURE"},N.USERDEFINED={type:3,value:"USERDEFINED"},N.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBridgePartTypeEnum=N;class O{}O.ARCHED={type:3,value:"ARCHED"},O.CABLE_STAYED={type:3,value:"CABLE_STAYED"},O.CANTILEVER={type:3,value:"CANTILEVER"},O.CULVERT={type:3,value:"CULVERT"},O.FRAMEWORK={type:3,value:"FRAMEWORK"},O.GIRDER={type:3,value:"GIRDER"},O.SUSPENSION={type:3,value:"SUSPENSION"},O.TRUSS={type:3,value:"TRUSS"},O.USERDEFINED={type:3,value:"USERDEFINED"},O.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBridgeTypeEnum=O;class x{}x.APRON={type:3,value:"APRON"},x.ARMOURUNIT={type:3,value:"ARMOURUNIT"},x.INSULATION={type:3,value:"INSULATION"},x.PRECASTPANEL={type:3,value:"PRECASTPANEL"},x.SAFETYCAGE={type:3,value:"SAFETYCAGE"},x.USERDEFINED={type:3,value:"USERDEFINED"},x.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingElementPartTypeEnum=x;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 w{}w.EROSIONPREVENTION={type:3,value:"EROSIONPREVENTION"},w.FENESTRATION={type:3,value:"FENESTRATION"},w.FOUNDATION={type:3,value:"FOUNDATION"},w.LOADBEARING={type:3,value:"LOADBEARING"},w.OUTERSHELL={type:3,value:"OUTERSHELL"},w.PRESTRESSING={type:3,value:"PRESTRESSING"},w.REINFORCING={type:3,value:"REINFORCING"},w.SHADING={type:3,value:"SHADING"},w.TRANSPORT={type:3,value:"TRANSPORT"},w.USERDEFINED={type:3,value:"USERDEFINED"},w.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuildingSystemTypeEnum=w;class M{}M.EROSIONPREVENTION={type:3,value:"EROSIONPREVENTION"},M.FENESTRATION={type:3,value:"FENESTRATION"},M.FOUNDATION={type:3,value:"FOUNDATION"},M.LOADBEARING={type:3,value:"LOADBEARING"},M.MOORING={type:3,value:"MOORING"},M.OUTERSHELL={type:3,value:"OUTERSHELL"},M.PRESTRESSING={type:3,value:"PRESTRESSING"},M.RAILWAYLINE={type:3,value:"RAILWAYLINE"},M.RAILWAYTRACK={type:3,value:"RAILWAYTRACK"},M.REINFORCING={type:3,value:"REINFORCING"},M.SHADING={type:3,value:"SHADING"},M.TRACKCIRCUIT={type:3,value:"TRACKCIRCUIT"},M.TRANSPORT={type:3,value:"TRANSPORT"},M.USERDEFINED={type:3,value:"USERDEFINED"},M.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBuiltSystemTypeEnum=M;class B{}B.USERDEFINED={type:3,value:"USERDEFINED"},B.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcBurnerTypeEnum=B;class F{}F.BEND={type:3,value:"BEND"},F.CONNECTOR={type:3,value:"CONNECTOR"},F.CROSS={type:3,value:"CROSS"},F.JUNCTION={type:3,value:"JUNCTION"},F.TEE={type:3,value:"TEE"},F.TRANSITION={type:3,value:"TRANSITION"},F.USERDEFINED={type:3,value:"USERDEFINED"},F.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierFittingTypeEnum=F;class L{}L.CABLEBRACKET={type:3,value:"CABLEBRACKET"},L.CABLELADDERSEGMENT={type:3,value:"CABLELADDERSEGMENT"},L.CABLETRAYSEGMENT={type:3,value:"CABLETRAYSEGMENT"},L.CABLETRUNKINGSEGMENT={type:3,value:"CABLETRUNKINGSEGMENT"},L.CATENARYWIRE={type:3,value:"CATENARYWIRE"},L.CONDUITSEGMENT={type:3,value:"CONDUITSEGMENT"},L.DROPPER={type:3,value:"DROPPER"},L.USERDEFINED={type:3,value:"USERDEFINED"},L.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableCarrierSegmentTypeEnum=L;class U{}U.CONNECTOR={type:3,value:"CONNECTOR"},U.ENTRY={type:3,value:"ENTRY"},U.EXIT={type:3,value:"EXIT"},U.FANOUT={type:3,value:"FANOUT"},U.JUNCTION={type:3,value:"JUNCTION"},U.TRANSITION={type:3,value:"TRANSITION"},U.USERDEFINED={type:3,value:"USERDEFINED"},U.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableFittingTypeEnum=U;class H{}H.BUSBARSEGMENT={type:3,value:"BUSBARSEGMENT"},H.CABLESEGMENT={type:3,value:"CABLESEGMENT"},H.CONDUCTORSEGMENT={type:3,value:"CONDUCTORSEGMENT"},H.CONTACTWIRESEGMENT={type:3,value:"CONTACTWIRESEGMENT"},H.CORESEGMENT={type:3,value:"CORESEGMENT"},H.FIBERSEGMENT={type:3,value:"FIBERSEGMENT"},H.FIBERTUBE={type:3,value:"FIBERTUBE"},H.OPTICALCABLESEGMENT={type:3,value:"OPTICALCABLESEGMENT"},H.STITCHWIRE={type:3,value:"STITCHWIRE"},H.WIREPAIRSEGMENT={type:3,value:"WIREPAIRSEGMENT"},H.USERDEFINED={type:3,value:"USERDEFINED"},H.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCableSegmentTypeEnum=H;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 k{}k.ADDED={type:3,value:"ADDED"},k.DELETED={type:3,value:"DELETED"},k.MODIFIED={type:3,value:"MODIFIED"},k.NOCHANGE={type:3,value:"NOCHANGE"},k.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChangeActionEnum=k;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 j{}j.USERDEFINED={type:3,value:"USERDEFINED"},j.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcChimneyTypeEnum=j;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 Z{}Z.ATEND={type:3,value:"ATEND"},Z.ATPATH={type:3,value:"ATPATH"},Z.ATSTART={type:3,value:"ATSTART"},Z.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConnectionTypeEnum=Z;class q{}q.ADVISORY={type:3,value:"ADVISORY"},q.HARD={type:3,value:"HARD"},q.SOFT={type:3,value:"SOFT"},q.USERDEFINED={type:3,value:"USERDEFINED"},q.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcConstraintEnum=q;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 ${}$.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 ie{}ie.ACTIVE={type:3,value:"ACTIVE"},ie.PASSIVE={type:3,value:"PASSIVE"},ie.USERDEFINED={type:3,value:"USERDEFINED"},ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCooledBeamTypeEnum=ie;class re{}re.MECHANICALFORCEDDRAFT={type:3,value:"MECHANICALFORCEDDRAFT"},re.MECHANICALINDUCEDDRAFT={type:3,value:"MECHANICALINDUCEDDRAFT"},re.NATURALDRAFT={type:3,value:"NATURALDRAFT"},re.USERDEFINED={type:3,value:"USERDEFINED"},re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoolingTowerTypeEnum=re;class oe{}oe.USERDEFINED={type:3,value:"USERDEFINED"},oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostItemTypeEnum=oe;class ne{}ne.BUDGET={type:3,value:"BUDGET"},ne.COSTPLAN={type:3,value:"COSTPLAN"},ne.ESTIMATE={type:3,value:"ESTIMATE"},ne.PRICEDBILLOFQUANTITIES={type:3,value:"PRICEDBILLOFQUANTITIES"},ne.SCHEDULEOFRATES={type:3,value:"SCHEDULEOFRATES"},ne.TENDER={type:3,value:"TENDER"},ne.UNPRICEDBILLOFQUANTITIES={type:3,value:"UNPRICEDBILLOFQUANTITIES"},ne.USERDEFINED={type:3,value:"USERDEFINED"},ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCostScheduleTypeEnum=ne;class ae{}ae.ARMOUR={type:3,value:"ARMOUR"},ae.BALLASTBED={type:3,value:"BALLASTBED"},ae.CORE={type:3,value:"CORE"},ae.FILTER={type:3,value:"FILTER"},ae.PAVEMENT={type:3,value:"PAVEMENT"},ae.PROTECTION={type:3,value:"PROTECTION"},ae.USERDEFINED={type:3,value:"USERDEFINED"},ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCourseTypeEnum=ae;class le{}le.CEILING={type:3,value:"CEILING"},le.CLADDING={type:3,value:"CLADDING"},le.COPING={type:3,value:"COPING"},le.FLOORING={type:3,value:"FLOORING"},le.INSULATION={type:3,value:"INSULATION"},le.MEMBRANE={type:3,value:"MEMBRANE"},le.MOLDING={type:3,value:"MOLDING"},le.ROOFING={type:3,value:"ROOFING"},le.SKIRTINGBOARD={type:3,value:"SKIRTINGBOARD"},le.SLEEVING={type:3,value:"SLEEVING"},le.TOPPING={type:3,value:"TOPPING"},le.WRAPPING={type:3,value:"WRAPPING"},le.USERDEFINED={type:3,value:"USERDEFINED"},le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCoveringTypeEnum=le;class he{}he.OFFICE={type:3,value:"OFFICE"},he.SITE={type:3,value:"SITE"},he.USERDEFINED={type:3,value:"USERDEFINED"},he.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCrewResourceTypeEnum=he;class ce{}ce.USERDEFINED={type:3,value:"USERDEFINED"},ce.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurtainWallTypeEnum=ce;class ue{}ue.LINEAR={type:3,value:"LINEAR"},ue.LOG_LINEAR={type:3,value:"LOG_LINEAR"},ue.LOG_LOG={type:3,value:"LOG_LOG"},ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcCurveInterpolationEnum=ue;class Ae{}Ae.BACKDRAFTDAMPER={type:3,value:"BACKDRAFTDAMPER"},Ae.BALANCINGDAMPER={type:3,value:"BALANCINGDAMPER"},Ae.BLASTDAMPER={type:3,value:"BLASTDAMPER"},Ae.CONTROLDAMPER={type:3,value:"CONTROLDAMPER"},Ae.FIREDAMPER={type:3,value:"FIREDAMPER"},Ae.FIRESMOKEDAMPER={type:3,value:"FIRESMOKEDAMPER"},Ae.FUMEHOODEXHAUST={type:3,value:"FUMEHOODEXHAUST"},Ae.GRAVITYDAMPER={type:3,value:"GRAVITYDAMPER"},Ae.GRAVITYRELIEFDAMPER={type:3,value:"GRAVITYRELIEFDAMPER"},Ae.RELIEFDAMPER={type:3,value:"RELIEFDAMPER"},Ae.SMOKEDAMPER={type:3,value:"SMOKEDAMPER"},Ae.USERDEFINED={type:3,value:"USERDEFINED"},Ae.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDamperTypeEnum=Ae;class pe{}pe.MEASURED={type:3,value:"MEASURED"},pe.PREDICTED={type:3,value:"PREDICTED"},pe.SIMULATED={type:3,value:"SIMULATED"},pe.USERDEFINED={type:3,value:"USERDEFINED"},pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDataOriginEnum=pe;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 me{}me.ANCHORPLATE={type:3,value:"ANCHORPLATE"},me.BIRDPROTECTION={type:3,value:"BIRDPROTECTION"},me.BRACKET={type:3,value:"BRACKET"},me.CABLEARRANGER={type:3,value:"CABLEARRANGER"},me.ELASTIC_CUSHION={type:3,value:"ELASTIC_CUSHION"},me.EXPANSION_JOINT_DEVICE={type:3,value:"EXPANSION_JOINT_DEVICE"},me.FILLER={type:3,value:"FILLER"},me.FLASHING={type:3,value:"FLASHING"},me.INSULATOR={type:3,value:"INSULATOR"},me.LOCK={type:3,value:"LOCK"},me.PANEL_STRENGTHENING={type:3,value:"PANEL_STRENGTHENING"},me.POINTMACHINEMOUNTINGDEVICE={type:3,value:"POINTMACHINEMOUNTINGDEVICE"},me.POINT_MACHINE_LOCKING_DEVICE={type:3,value:"POINT_MACHINE_LOCKING_DEVICE"},me.RAILBRACE={type:3,value:"RAILBRACE"},me.RAILPAD={type:3,value:"RAILPAD"},me.RAIL_LUBRICATION={type:3,value:"RAIL_LUBRICATION"},me.RAIL_MECHANICAL_EQUIPMENT={type:3,value:"RAIL_MECHANICAL_EQUIPMENT"},me.SHOE={type:3,value:"SHOE"},me.SLIDINGCHAIR={type:3,value:"SLIDINGCHAIR"},me.SOUNDABSORPTION={type:3,value:"SOUNDABSORPTION"},me.TENSIONINGEQUIPMENT={type:3,value:"TENSIONINGEQUIPMENT"},me.USERDEFINED={type:3,value:"USERDEFINED"},me.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDiscreteAccessoryTypeEnum=me;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 Ee{}Ee.FORMEDDUCT={type:3,value:"FORMEDDUCT"},Ee.INSPECTIONCHAMBER={type:3,value:"INSPECTIONCHAMBER"},Ee.INSPECTIONPIT={type:3,value:"INSPECTIONPIT"},Ee.MANHOLE={type:3,value:"MANHOLE"},Ee.METERCHAMBER={type:3,value:"METERCHAMBER"},Ee.SUMP={type:3,value:"SUMP"},Ee.TRENCH={type:3,value:"TRENCH"},Ee.VALVECHAMBER={type:3,value:"VALVECHAMBER"},Ee.USERDEFINED={type:3,value:"USERDEFINED"},Ee.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionChamberElementTypeEnum=Ee;class ge{}ge.CABLE={type:3,value:"CABLE"},ge.CABLECARRIER={type:3,value:"CABLECARRIER"},ge.DUCT={type:3,value:"DUCT"},ge.PIPE={type:3,value:"PIPE"},ge.WIRELESS={type:3,value:"WIRELESS"},ge.USERDEFINED={type:3,value:"USERDEFINED"},ge.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionPortTypeEnum=ge;class ve{}ve.AIRCONDITIONING={type:3,value:"AIRCONDITIONING"},ve.AUDIOVISUAL={type:3,value:"AUDIOVISUAL"},ve.CATENARY_SYSTEM={type:3,value:"CATENARY_SYSTEM"},ve.CHEMICAL={type:3,value:"CHEMICAL"},ve.CHILLEDWATER={type:3,value:"CHILLEDWATER"},ve.COMMUNICATION={type:3,value:"COMMUNICATION"},ve.COMPRESSEDAIR={type:3,value:"COMPRESSEDAIR"},ve.CONDENSERWATER={type:3,value:"CONDENSERWATER"},ve.CONTROL={type:3,value:"CONTROL"},ve.CONVEYING={type:3,value:"CONVEYING"},ve.DATA={type:3,value:"DATA"},ve.DISPOSAL={type:3,value:"DISPOSAL"},ve.DOMESTICCOLDWATER={type:3,value:"DOMESTICCOLDWATER"},ve.DOMESTICHOTWATER={type:3,value:"DOMESTICHOTWATER"},ve.DRAINAGE={type:3,value:"DRAINAGE"},ve.EARTHING={type:3,value:"EARTHING"},ve.ELECTRICAL={type:3,value:"ELECTRICAL"},ve.ELECTROACOUSTIC={type:3,value:"ELECTROACOUSTIC"},ve.EXHAUST={type:3,value:"EXHAUST"},ve.FIREPROTECTION={type:3,value:"FIREPROTECTION"},ve.FIXEDTRANSMISSIONNETWORK={type:3,value:"FIXEDTRANSMISSIONNETWORK"},ve.FUEL={type:3,value:"FUEL"},ve.GAS={type:3,value:"GAS"},ve.HAZARDOUS={type:3,value:"HAZARDOUS"},ve.HEATING={type:3,value:"HEATING"},ve.LIGHTING={type:3,value:"LIGHTING"},ve.LIGHTNINGPROTECTION={type:3,value:"LIGHTNINGPROTECTION"},ve.MOBILENETWORK={type:3,value:"MOBILENETWORK"},ve.MONITORINGSYSTEM={type:3,value:"MONITORINGSYSTEM"},ve.MUNICIPALSOLIDWASTE={type:3,value:"MUNICIPALSOLIDWASTE"},ve.OIL={type:3,value:"OIL"},ve.OPERATIONAL={type:3,value:"OPERATIONAL"},ve.OPERATIONALTELEPHONYSYSTEM={type:3,value:"OPERATIONALTELEPHONYSYSTEM"},ve.OVERHEAD_CONTACTLINE_SYSTEM={type:3,value:"OVERHEAD_CONTACTLINE_SYSTEM"},ve.POWERGENERATION={type:3,value:"POWERGENERATION"},ve.RAINWATER={type:3,value:"RAINWATER"},ve.REFRIGERATION={type:3,value:"REFRIGERATION"},ve.RETURN_CIRCUIT={type:3,value:"RETURN_CIRCUIT"},ve.SECURITY={type:3,value:"SECURITY"},ve.SEWAGE={type:3,value:"SEWAGE"},ve.SIGNAL={type:3,value:"SIGNAL"},ve.STORMWATER={type:3,value:"STORMWATER"},ve.TELEPHONE={type:3,value:"TELEPHONE"},ve.TV={type:3,value:"TV"},ve.VACUUM={type:3,value:"VACUUM"},ve.VENT={type:3,value:"VENT"},ve.VENTILATION={type:3,value:"VENTILATION"},ve.WASTEWATER={type:3,value:"WASTEWATER"},ve.WATERSUPPLY={type:3,value:"WATERSUPPLY"},ve.USERDEFINED={type:3,value:"USERDEFINED"},ve.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDistributionSystemEnum=ve;class Ie{}Ie.CONFIDENTIAL={type:3,value:"CONFIDENTIAL"},Ie.PERSONAL={type:3,value:"PERSONAL"},Ie.PUBLIC={type:3,value:"PUBLIC"},Ie.RESTRICTED={type:3,value:"RESTRICTED"},Ie.USERDEFINED={type:3,value:"USERDEFINED"},Ie.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentConfidentialityEnum=Ie;class _e{}_e.DRAFT={type:3,value:"DRAFT"},_e.FINAL={type:3,value:"FINAL"},_e.FINALDRAFT={type:3,value:"FINALDRAFT"},_e.REVISION={type:3,value:"REVISION"},_e.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDocumentStatusEnum=_e;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 Pe{}Pe.LEFT={type:3,value:"LEFT"},Pe.MIDDLE={type:3,value:"MIDDLE"},Pe.RIGHT={type:3,value:"RIGHT"},Pe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorPanelPositionEnum=Pe;class be{}be.ALUMINIUM={type:3,value:"ALUMINIUM"},be.ALUMINIUM_PLASTIC={type:3,value:"ALUMINIUM_PLASTIC"},be.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},be.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},be.PLASTIC={type:3,value:"PLASTIC"},be.STEEL={type:3,value:"STEEL"},be.WOOD={type:3,value:"WOOD"},be.USERDEFINED={type:3,value:"USERDEFINED"},be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleConstructionEnum=be;class Re{}Re.DOUBLE_DOOR_DOUBLE_SWING={type:3,value:"DOUBLE_DOOR_DOUBLE_SWING"},Re.DOUBLE_DOOR_FOLDING={type:3,value:"DOUBLE_DOOR_FOLDING"},Re.DOUBLE_DOOR_SINGLE_SWING={type:3,value:"DOUBLE_DOOR_SINGLE_SWING"},Re.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT"},Re.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT={type:3,value:"DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT"},Re.DOUBLE_DOOR_SLIDING={type:3,value:"DOUBLE_DOOR_SLIDING"},Re.DOUBLE_SWING_LEFT={type:3,value:"DOUBLE_SWING_LEFT"},Re.DOUBLE_SWING_RIGHT={type:3,value:"DOUBLE_SWING_RIGHT"},Re.FOLDING_TO_LEFT={type:3,value:"FOLDING_TO_LEFT"},Re.FOLDING_TO_RIGHT={type:3,value:"FOLDING_TO_RIGHT"},Re.REVOLVING={type:3,value:"REVOLVING"},Re.ROLLINGUP={type:3,value:"ROLLINGUP"},Re.SINGLE_SWING_LEFT={type:3,value:"SINGLE_SWING_LEFT"},Re.SINGLE_SWING_RIGHT={type:3,value:"SINGLE_SWING_RIGHT"},Re.SLIDING_TO_LEFT={type:3,value:"SLIDING_TO_LEFT"},Re.SLIDING_TO_RIGHT={type:3,value:"SLIDING_TO_RIGHT"},Re.USERDEFINED={type:3,value:"USERDEFINED"},Re.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorStyleOperationEnum=Re;class De{}De.BOOM_BARRIER={type:3,value:"BOOM_BARRIER"},De.DOOR={type:3,value:"DOOR"},De.GATE={type:3,value:"GATE"},De.TRAPDOOR={type:3,value:"TRAPDOOR"},De.TURNSTILE={type:3,value:"TURNSTILE"},De.USERDEFINED={type:3,value:"USERDEFINED"},De.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDoorTypeEnum=De;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 Ne{}Ne.BEND={type:3,value:"BEND"},Ne.CONNECTOR={type:3,value:"CONNECTOR"},Ne.ENTRY={type:3,value:"ENTRY"},Ne.EXIT={type:3,value:"EXIT"},Ne.JUNCTION={type:3,value:"JUNCTION"},Ne.OBSTRUCTION={type:3,value:"OBSTRUCTION"},Ne.TRANSITION={type:3,value:"TRANSITION"},Ne.USERDEFINED={type:3,value:"USERDEFINED"},Ne.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctFittingTypeEnum=Ne;class Oe{}Oe.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Oe.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Oe.USERDEFINED={type:3,value:"USERDEFINED"},Oe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSegmentTypeEnum=Oe;class xe{}xe.FLATOVAL={type:3,value:"FLATOVAL"},xe.RECTANGULAR={type:3,value:"RECTANGULAR"},xe.ROUND={type:3,value:"ROUND"},xe.USERDEFINED={type:3,value:"USERDEFINED"},xe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcDuctSilencerTypeEnum=xe;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 we{}we.BACKFILL={type:3,value:"BACKFILL"},we.COUNTERWEIGHT={type:3,value:"COUNTERWEIGHT"},we.EMBANKMENT={type:3,value:"EMBANKMENT"},we.SLOPEFILL={type:3,value:"SLOPEFILL"},we.SUBGRADE={type:3,value:"SUBGRADE"},we.SUBGRADEBED={type:3,value:"SUBGRADEBED"},we.TRANSITIONSECTION={type:3,value:"TRANSITIONSECTION"},we.USERDEFINED={type:3,value:"USERDEFINED"},we.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEarthworksFillTypeEnum=we;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.FREESTANDINGWATERCOOLER={type:3,value:"FREESTANDINGWATERCOOLER"},Me.FREESTANDINGWATERHEATER={type:3,value:"FREESTANDINGWATERHEATER"},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 Be{}Be.CONSUMERUNIT={type:3,value:"CONSUMERUNIT"},Be.DISTRIBUTIONBOARD={type:3,value:"DISTRIBUTIONBOARD"},Be.MOTORCONTROLCENTRE={type:3,value:"MOTORCONTROLCENTRE"},Be.SWITCHBOARD={type:3,value:"SWITCHBOARD"},Be.USERDEFINED={type:3,value:"USERDEFINED"},Be.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricDistributionBoardTypeEnum=Be;class Fe{}Fe.BATTERY={type:3,value:"BATTERY"},Fe.CAPACITOR={type:3,value:"CAPACITOR"},Fe.CAPACITORBANK={type:3,value:"CAPACITORBANK"},Fe.COMPENSATOR={type:3,value:"COMPENSATOR"},Fe.HARMONICFILTER={type:3,value:"HARMONICFILTER"},Fe.INDUCTOR={type:3,value:"INDUCTOR"},Fe.INDUCTORBANK={type:3,value:"INDUCTORBANK"},Fe.RECHARGER={type:3,value:"RECHARGER"},Fe.UPS={type:3,value:"UPS"},Fe.USERDEFINED={type:3,value:"USERDEFINED"},Fe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowStorageDeviceTypeEnum=Fe;class Le{}Le.ELECTRONICFILTER={type:3,value:"ELECTRONICFILTER"},Le.USERDEFINED={type:3,value:"USERDEFINED"},Le.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricFlowTreatmentDeviceTypeEnum=Le;class Ue{}Ue.CHP={type:3,value:"CHP"},Ue.ENGINEGENERATOR={type:3,value:"ENGINEGENERATOR"},Ue.STANDALONE={type:3,value:"STANDALONE"},Ue.USERDEFINED={type:3,value:"USERDEFINED"},Ue.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricGeneratorTypeEnum=Ue;class He{}He.DC={type:3,value:"DC"},He.INDUCTION={type:3,value:"INDUCTION"},He.POLYPHASE={type:3,value:"POLYPHASE"},He.RELUCTANCESYNCHRONOUS={type:3,value:"RELUCTANCESYNCHRONOUS"},He.SYNCHRONOUS={type:3,value:"SYNCHRONOUS"},He.USERDEFINED={type:3,value:"USERDEFINED"},He.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElectricMotorTypeEnum=He;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 ke{}ke.ABUTMENT={type:3,value:"ABUTMENT"},ke.ACCESSORY_ASSEMBLY={type:3,value:"ACCESSORY_ASSEMBLY"},ke.ARCH={type:3,value:"ARCH"},ke.BEAM_GRID={type:3,value:"BEAM_GRID"},ke.BRACED_FRAME={type:3,value:"BRACED_FRAME"},ke.CROSS_BRACING={type:3,value:"CROSS_BRACING"},ke.DECK={type:3,value:"DECK"},ke.DILATATIONPANEL={type:3,value:"DILATATIONPANEL"},ke.ENTRANCEWORKS={type:3,value:"ENTRANCEWORKS"},ke.GIRDER={type:3,value:"GIRDER"},ke.GRID={type:3,value:"GRID"},ke.MAST={type:3,value:"MAST"},ke.PIER={type:3,value:"PIER"},ke.PYLON={type:3,value:"PYLON"},ke.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY={type:3,value:"RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY"},ke.REINFORCEMENT_UNIT={type:3,value:"REINFORCEMENT_UNIT"},ke.RIGID_FRAME={type:3,value:"RIGID_FRAME"},ke.SHELTER={type:3,value:"SHELTER"},ke.SIGNALASSEMBLY={type:3,value:"SIGNALASSEMBLY"},ke.SLAB_FIELD={type:3,value:"SLAB_FIELD"},ke.SUMPBUSTER={type:3,value:"SUMPBUSTER"},ke.SUPPORTINGASSEMBLY={type:3,value:"SUPPORTINGASSEMBLY"},ke.SUSPENSIONASSEMBLY={type:3,value:"SUSPENSIONASSEMBLY"},ke.TRACKPANEL={type:3,value:"TRACKPANEL"},ke.TRACTION_SWITCHING_ASSEMBLY={type:3,value:"TRACTION_SWITCHING_ASSEMBLY"},ke.TRAFFIC_CALMING_DEVICE={type:3,value:"TRAFFIC_CALMING_DEVICE"},ke.TRUSS={type:3,value:"TRUSS"},ke.TURNOUTPANEL={type:3,value:"TURNOUTPANEL"},ke.USERDEFINED={type:3,value:"USERDEFINED"},ke.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcElementAssemblyTypeEnum=ke;class Ve{}Ve.COMPLEX={type:3,value:"COMPLEX"},Ve.ELEMENT={type:3,value:"ELEMENT"},Ve.PARTIAL={type:3,value:"PARTIAL"},e.IfcElementCompositionEnum=Ve;class je{}je.EXTERNALCOMBUSTION={type:3,value:"EXTERNALCOMBUSTION"},je.INTERNALCOMBUSTION={type:3,value:"INTERNALCOMBUSTION"},je.USERDEFINED={type:3,value:"USERDEFINED"},je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcEngineTypeEnum=je;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 Ze{}Ze.LATERAL={type:3,value:"LATERAL"},Ze.LONGITUDINAL={type:3,value:"LONGITUDINAL"},Ze.REGION={type:3,value:"REGION"},Ze.VERTICAL={type:3,value:"VERTICAL"},Ze.USERDEFINED={type:3,value:"USERDEFINED"},Ze.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFacilityUsageEnum=Ze;class qe{}qe.CENTRIFUGALAIRFOIL={type:3,value:"CENTRIFUGALAIRFOIL"},qe.CENTRIFUGALBACKWARDINCLINEDCURVED={type:3,value:"CENTRIFUGALBACKWARDINCLINEDCURVED"},qe.CENTRIFUGALFORWARDCURVED={type:3,value:"CENTRIFUGALFORWARDCURVED"},qe.CENTRIFUGALRADIAL={type:3,value:"CENTRIFUGALRADIAL"},qe.PROPELLORAXIAL={type:3,value:"PROPELLORAXIAL"},qe.TUBEAXIAL={type:3,value:"TUBEAXIAL"},qe.VANEAXIAL={type:3,value:"VANEAXIAL"},qe.USERDEFINED={type:3,value:"USERDEFINED"},qe.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFanTypeEnum=qe;class Je{}Je.GLUE={type:3,value:"GLUE"},Je.MORTAR={type:3,value:"MORTAR"},Je.WELD={type:3,value:"WELD"},Je.USERDEFINED={type:3,value:"USERDEFINED"},Je.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFastenerTypeEnum=Je;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 it{}it.ENERGYMETER={type:3,value:"ENERGYMETER"},it.GASMETER={type:3,value:"GASMETER"},it.OILMETER={type:3,value:"OILMETER"},it.WATERMETER={type:3,value:"WATERMETER"},it.USERDEFINED={type:3,value:"USERDEFINED"},it.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFlowMeterTypeEnum=it;class rt{}rt.CAISSON_FOUNDATION={type:3,value:"CAISSON_FOUNDATION"},rt.FOOTING_BEAM={type:3,value:"FOOTING_BEAM"},rt.PAD_FOOTING={type:3,value:"PAD_FOOTING"},rt.PILE_CAP={type:3,value:"PILE_CAP"},rt.STRIP_FOOTING={type:3,value:"STRIP_FOOTING"},rt.USERDEFINED={type:3,value:"USERDEFINED"},rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFootingTypeEnum=rt;class ot{}ot.BED={type:3,value:"BED"},ot.CHAIR={type:3,value:"CHAIR"},ot.DESK={type:3,value:"DESK"},ot.FILECABINET={type:3,value:"FILECABINET"},ot.SHELF={type:3,value:"SHELF"},ot.SOFA={type:3,value:"SOFA"},ot.TABLE={type:3,value:"TABLE"},ot.TECHNICALCABINET={type:3,value:"TECHNICALCABINET"},ot.USERDEFINED={type:3,value:"USERDEFINED"},ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcFurnitureTypeEnum=ot;class nt{}nt.SOIL_BORING_POINT={type:3,value:"SOIL_BORING_POINT"},nt.TERRAIN={type:3,value:"TERRAIN"},nt.VEGETATION={type:3,value:"VEGETATION"},nt.USERDEFINED={type:3,value:"USERDEFINED"},nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeographicElementTypeEnum=nt;class at{}at.ELEVATION_VIEW={type:3,value:"ELEVATION_VIEW"},at.GRAPH_VIEW={type:3,value:"GRAPH_VIEW"},at.MODEL_VIEW={type:3,value:"MODEL_VIEW"},at.PLAN_VIEW={type:3,value:"PLAN_VIEW"},at.REFLECTED_PLAN_VIEW={type:3,value:"REFLECTED_PLAN_VIEW"},at.SECTION_VIEW={type:3,value:"SECTION_VIEW"},at.SKETCH_VIEW={type:3,value:"SKETCH_VIEW"},at.USERDEFINED={type:3,value:"USERDEFINED"},at.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeometricProjectionEnum=at;class lt{}lt.SOLID={type:3,value:"SOLID"},lt.VOID={type:3,value:"VOID"},lt.WATER={type:3,value:"WATER"},lt.USERDEFINED={type:3,value:"USERDEFINED"},lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGeotechnicalStratumTypeEnum=lt;class ht{}ht.GLOBAL_COORDS={type:3,value:"GLOBAL_COORDS"},ht.LOCAL_COORDS={type:3,value:"LOCAL_COORDS"},e.IfcGlobalOrLocalEnum=ht;class ct{}ct.IRREGULAR={type:3,value:"IRREGULAR"},ct.RADIAL={type:3,value:"RADIAL"},ct.RECTANGULAR={type:3,value:"RECTANGULAR"},ct.TRIANGULAR={type:3,value:"TRIANGULAR"},ct.USERDEFINED={type:3,value:"USERDEFINED"},ct.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcGridTypeEnum=ct;class ut{}ut.PLATE={type:3,value:"PLATE"},ut.SHELLANDTUBE={type:3,value:"SHELLANDTUBE"},ut.TURNOUTHEATING={type:3,value:"TURNOUTHEATING"},ut.USERDEFINED={type:3,value:"USERDEFINED"},ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHeatExchangerTypeEnum=ut;class At{}At.ADIABATICAIRWASHER={type:3,value:"ADIABATICAIRWASHER"},At.ADIABATICATOMIZING={type:3,value:"ADIABATICATOMIZING"},At.ADIABATICCOMPRESSEDAIRNOZZLE={type:3,value:"ADIABATICCOMPRESSEDAIRNOZZLE"},At.ADIABATICPAN={type:3,value:"ADIABATICPAN"},At.ADIABATICRIGIDMEDIA={type:3,value:"ADIABATICRIGIDMEDIA"},At.ADIABATICULTRASONIC={type:3,value:"ADIABATICULTRASONIC"},At.ADIABATICWETTEDELEMENT={type:3,value:"ADIABATICWETTEDELEMENT"},At.ASSISTEDBUTANE={type:3,value:"ASSISTEDBUTANE"},At.ASSISTEDELECTRIC={type:3,value:"ASSISTEDELECTRIC"},At.ASSISTEDNATURALGAS={type:3,value:"ASSISTEDNATURALGAS"},At.ASSISTEDPROPANE={type:3,value:"ASSISTEDPROPANE"},At.ASSISTEDSTEAM={type:3,value:"ASSISTEDSTEAM"},At.STEAMINJECTION={type:3,value:"STEAMINJECTION"},At.USERDEFINED={type:3,value:"USERDEFINED"},At.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcHumidifierTypeEnum=At;class pt{}pt.BUMPER={type:3,value:"BUMPER"},pt.CRASHCUSHION={type:3,value:"CRASHCUSHION"},pt.DAMPINGSYSTEM={type:3,value:"DAMPINGSYSTEM"},pt.FENDER={type:3,value:"FENDER"},pt.USERDEFINED={type:3,value:"USERDEFINED"},pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcImpactProtectionDeviceTypeEnum=pt;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 mt{}mt.ASSETINVENTORY={type:3,value:"ASSETINVENTORY"},mt.FURNITUREINVENTORY={type:3,value:"FURNITUREINVENTORY"},mt.SPACEINVENTORY={type:3,value:"SPACEINVENTORY"},mt.USERDEFINED={type:3,value:"USERDEFINED"},mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcInventoryTypeEnum=mt;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 Et{}Et.PIECEWISE_BEZIER_KNOTS={type:3,value:"PIECEWISE_BEZIER_KNOTS"},Et.QUASI_UNIFORM_KNOTS={type:3,value:"QUASI_UNIFORM_KNOTS"},Et.UNIFORM_KNOTS={type:3,value:"UNIFORM_KNOTS"},Et.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcKnotType=Et;class gt{}gt.ADMINISTRATION={type:3,value:"ADMINISTRATION"},gt.CARPENTRY={type:3,value:"CARPENTRY"},gt.CLEANING={type:3,value:"CLEANING"},gt.CONCRETE={type:3,value:"CONCRETE"},gt.DRYWALL={type:3,value:"DRYWALL"},gt.ELECTRIC={type:3,value:"ELECTRIC"},gt.FINISHING={type:3,value:"FINISHING"},gt.FLOORING={type:3,value:"FLOORING"},gt.GENERAL={type:3,value:"GENERAL"},gt.HVAC={type:3,value:"HVAC"},gt.LANDSCAPING={type:3,value:"LANDSCAPING"},gt.MASONRY={type:3,value:"MASONRY"},gt.PAINTING={type:3,value:"PAINTING"},gt.PAVING={type:3,value:"PAVING"},gt.PLUMBING={type:3,value:"PLUMBING"},gt.ROOFING={type:3,value:"ROOFING"},gt.SITEGRADING={type:3,value:"SITEGRADING"},gt.STEELWORK={type:3,value:"STEELWORK"},gt.SURVEYING={type:3,value:"SURVEYING"},gt.USERDEFINED={type:3,value:"USERDEFINED"},gt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLaborResourceTypeEnum=gt;class vt{}vt.COMPACTFLUORESCENT={type:3,value:"COMPACTFLUORESCENT"},vt.FLUORESCENT={type:3,value:"FLUORESCENT"},vt.HALOGEN={type:3,value:"HALOGEN"},vt.HIGHPRESSUREMERCURY={type:3,value:"HIGHPRESSUREMERCURY"},vt.HIGHPRESSURESODIUM={type:3,value:"HIGHPRESSURESODIUM"},vt.LED={type:3,value:"LED"},vt.METALHALIDE={type:3,value:"METALHALIDE"},vt.OLED={type:3,value:"OLED"},vt.TUNGSTENFILAMENT={type:3,value:"TUNGSTENFILAMENT"},vt.USERDEFINED={type:3,value:"USERDEFINED"},vt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLampTypeEnum=vt;class It{}It.AXIS1={type:3,value:"AXIS1"},It.AXIS2={type:3,value:"AXIS2"},It.AXIS3={type:3,value:"AXIS3"},e.IfcLayerSetDirectionEnum=It;class _t{}_t.TYPE_A={type:3,value:"TYPE_A"},_t.TYPE_B={type:3,value:"TYPE_B"},_t.TYPE_C={type:3,value:"TYPE_C"},_t.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightDistributionCurveEnum=_t;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 Pt{}Pt.DIRECTIONSOURCE={type:3,value:"DIRECTIONSOURCE"},Pt.POINTSOURCE={type:3,value:"POINTSOURCE"},Pt.SECURITYLIGHTING={type:3,value:"SECURITYLIGHTING"},Pt.USERDEFINED={type:3,value:"USERDEFINED"},Pt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLightFixtureTypeEnum=Pt;class bt{}bt.HOSEREEL={type:3,value:"HOSEREEL"},bt.LOADINGARM={type:3,value:"LOADINGARM"},bt.USERDEFINED={type:3,value:"USERDEFINED"},bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLiquidTerminalTypeEnum=bt;class Rt{}Rt.LOAD_CASE={type:3,value:"LOAD_CASE"},Rt.LOAD_COMBINATION={type:3,value:"LOAD_COMBINATION"},Rt.LOAD_GROUP={type:3,value:"LOAD_GROUP"},Rt.USERDEFINED={type:3,value:"USERDEFINED"},Rt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcLoadGroupTypeEnum=Rt;class Dt{}Dt.LOGICALAND={type:3,value:"LOGICALAND"},Dt.LOGICALNOTAND={type:3,value:"LOGICALNOTAND"},Dt.LOGICALNOTOR={type:3,value:"LOGICALNOTOR"},Dt.LOGICALOR={type:3,value:"LOGICALOR"},Dt.LOGICALXOR={type:3,value:"LOGICALXOR"},e.IfcLogicalOperatorEnum=Dt;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 Nt{}Nt.ABOVEWATERLINE={type:3,value:"ABOVEWATERLINE"},Nt.ANCHORAGE={type:3,value:"ANCHORAGE"},Nt.APPROACHCHANNEL={type:3,value:"APPROACHCHANNEL"},Nt.BELOWWATERLINE={type:3,value:"BELOWWATERLINE"},Nt.BERTHINGSTRUCTURE={type:3,value:"BERTHINGSTRUCTURE"},Nt.CHAMBER={type:3,value:"CHAMBER"},Nt.CILL_LEVEL={type:3,value:"CILL_LEVEL"},Nt.COPELEVEL={type:3,value:"COPELEVEL"},Nt.CORE={type:3,value:"CORE"},Nt.CREST={type:3,value:"CREST"},Nt.GATEHEAD={type:3,value:"GATEHEAD"},Nt.GUDINGSTRUCTURE={type:3,value:"GUDINGSTRUCTURE"},Nt.HIGHWATERLINE={type:3,value:"HIGHWATERLINE"},Nt.LANDFIELD={type:3,value:"LANDFIELD"},Nt.LEEWARDSIDE={type:3,value:"LEEWARDSIDE"},Nt.LOWWATERLINE={type:3,value:"LOWWATERLINE"},Nt.MANUFACTURING={type:3,value:"MANUFACTURING"},Nt.NAVIGATIONALAREA={type:3,value:"NAVIGATIONALAREA"},Nt.PROTECTION={type:3,value:"PROTECTION"},Nt.SHIPTRANSFER={type:3,value:"SHIPTRANSFER"},Nt.STORAGEAREA={type:3,value:"STORAGEAREA"},Nt.VEHICLESERVICING={type:3,value:"VEHICLESERVICING"},Nt.WATERFIELD={type:3,value:"WATERFIELD"},Nt.WEATHERSIDE={type:3,value:"WEATHERSIDE"},Nt.USERDEFINED={type:3,value:"USERDEFINED"},Nt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMarinePartTypeEnum=Nt;class Ot{}Ot.ANCHORBOLT={type:3,value:"ANCHORBOLT"},Ot.BOLT={type:3,value:"BOLT"},Ot.CHAIN={type:3,value:"CHAIN"},Ot.COUPLER={type:3,value:"COUPLER"},Ot.DOWEL={type:3,value:"DOWEL"},Ot.NAIL={type:3,value:"NAIL"},Ot.NAILPLATE={type:3,value:"NAILPLATE"},Ot.RAILFASTENING={type:3,value:"RAILFASTENING"},Ot.RAILJOINT={type:3,value:"RAILJOINT"},Ot.RIVET={type:3,value:"RIVET"},Ot.ROPE={type:3,value:"ROPE"},Ot.SCREW={type:3,value:"SCREW"},Ot.SHEARCONNECTOR={type:3,value:"SHEARCONNECTOR"},Ot.STAPLE={type:3,value:"STAPLE"},Ot.STUDSHEARCONNECTOR={type:3,value:"STUDSHEARCONNECTOR"},Ot.USERDEFINED={type:3,value:"USERDEFINED"},Ot.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMechanicalFastenerTypeEnum=Ot;class xt{}xt.AIRSTATION={type:3,value:"AIRSTATION"},xt.FEEDAIRUNIT={type:3,value:"FEEDAIRUNIT"},xt.OXYGENGENERATOR={type:3,value:"OXYGENGENERATOR"},xt.OXYGENPLANT={type:3,value:"OXYGENPLANT"},xt.VACUUMSTATION={type:3,value:"VACUUMSTATION"},xt.USERDEFINED={type:3,value:"USERDEFINED"},xt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMedicalDeviceTypeEnum=xt;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 wt{}wt.ACCESSPOINT={type:3,value:"ACCESSPOINT"},wt.BASEBANDUNIT={type:3,value:"BASEBANDUNIT"},wt.BASETRANSCEIVERSTATION={type:3,value:"BASETRANSCEIVERSTATION"},wt.E_UTRAN_NODE_B={type:3,value:"E_UTRAN_NODE_B"},wt.GATEWAY_GPRS_SUPPORT_NODE={type:3,value:"GATEWAY_GPRS_SUPPORT_NODE"},wt.MASTERUNIT={type:3,value:"MASTERUNIT"},wt.MOBILESWITCHINGCENTER={type:3,value:"MOBILESWITCHINGCENTER"},wt.MSCSERVER={type:3,value:"MSCSERVER"},wt.PACKETCONTROLUNIT={type:3,value:"PACKETCONTROLUNIT"},wt.REMOTERADIOUNIT={type:3,value:"REMOTERADIOUNIT"},wt.REMOTEUNIT={type:3,value:"REMOTEUNIT"},wt.SERVICE_GPRS_SUPPORT_NODE={type:3,value:"SERVICE_GPRS_SUPPORT_NODE"},wt.SUBSCRIBERSERVER={type:3,value:"SUBSCRIBERSERVER"},wt.USERDEFINED={type:3,value:"USERDEFINED"},wt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMobileTelecommunicationsApplianceTypeEnum=wt;class Mt{}Mt.BOLLARD={type:3,value:"BOLLARD"},Mt.LINETENSIONER={type:3,value:"LINETENSIONER"},Mt.MAGNETICDEVICE={type:3,value:"MAGNETICDEVICE"},Mt.MOORINGHOOKS={type:3,value:"MOORINGHOOKS"},Mt.VACUUMDEVICE={type:3,value:"VACUUMDEVICE"},Mt.USERDEFINED={type:3,value:"USERDEFINED"},Mt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMooringDeviceTypeEnum=Mt;class Bt{}Bt.BELTDRIVE={type:3,value:"BELTDRIVE"},Bt.COUPLING={type:3,value:"COUPLING"},Bt.DIRECTDRIVE={type:3,value:"DIRECTDRIVE"},Bt.USERDEFINED={type:3,value:"USERDEFINED"},Bt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcMotorConnectionTypeEnum=Bt;class Ft{}Ft.BEACON={type:3,value:"BEACON"},Ft.BUOY={type:3,value:"BUOY"},Ft.USERDEFINED={type:3,value:"USERDEFINED"},Ft.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcNavigationElementTypeEnum=Ft;class Lt{}Lt.ACTOR={type:3,value:"ACTOR"},Lt.CONTROL={type:3,value:"CONTROL"},Lt.GROUP={type:3,value:"GROUP"},Lt.PROCESS={type:3,value:"PROCESS"},Lt.PRODUCT={type:3,value:"PRODUCT"},Lt.PROJECT={type:3,value:"PROJECT"},Lt.RESOURCE={type:3,value:"RESOURCE"},Lt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectTypeEnum=Lt;class Ut{}Ut.CODECOMPLIANCE={type:3,value:"CODECOMPLIANCE"},Ut.CODEWAIVER={type:3,value:"CODEWAIVER"},Ut.DESIGNINTENT={type:3,value:"DESIGNINTENT"},Ut.EXTERNAL={type:3,value:"EXTERNAL"},Ut.HEALTHANDSAFETY={type:3,value:"HEALTHANDSAFETY"},Ut.MERGECONFLICT={type:3,value:"MERGECONFLICT"},Ut.MODELVIEW={type:3,value:"MODELVIEW"},Ut.PARAMETER={type:3,value:"PARAMETER"},Ut.REQUIREMENT={type:3,value:"REQUIREMENT"},Ut.SPECIFICATION={type:3,value:"SPECIFICATION"},Ut.TRIGGERCONDITION={type:3,value:"TRIGGERCONDITION"},Ut.USERDEFINED={type:3,value:"USERDEFINED"},Ut.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcObjectiveEnum=Ut;class Ht{}Ht.ASSIGNEE={type:3,value:"ASSIGNEE"},Ht.ASSIGNOR={type:3,value:"ASSIGNOR"},Ht.LESSEE={type:3,value:"LESSEE"},Ht.LESSOR={type:3,value:"LESSOR"},Ht.LETTINGAGENT={type:3,value:"LETTINGAGENT"},Ht.OWNER={type:3,value:"OWNER"},Ht.TENANT={type:3,value:"TENANT"},Ht.USERDEFINED={type:3,value:"USERDEFINED"},Ht.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOccupantTypeEnum=Ht;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 kt{}kt.AUDIOVISUALOUTLET={type:3,value:"AUDIOVISUALOUTLET"},kt.COMMUNICATIONSOUTLET={type:3,value:"COMMUNICATIONSOUTLET"},kt.DATAOUTLET={type:3,value:"DATAOUTLET"},kt.POWEROUTLET={type:3,value:"POWEROUTLET"},kt.TELEPHONEOUTLET={type:3,value:"TELEPHONEOUTLET"},kt.USERDEFINED={type:3,value:"USERDEFINED"},kt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcOutletTypeEnum=kt;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 jt{}jt.USERDEFINED={type:3,value:"USERDEFINED"},jt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPerformanceHistoryTypeEnum=jt;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 Zt{}Zt.CULVERT={type:3,value:"CULVERT"},Zt.FLEXIBLESEGMENT={type:3,value:"FLEXIBLESEGMENT"},Zt.GUTTER={type:3,value:"GUTTER"},Zt.RIGIDSEGMENT={type:3,value:"RIGIDSEGMENT"},Zt.SPOOL={type:3,value:"SPOOL"},Zt.USERDEFINED={type:3,value:"USERDEFINED"},Zt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPipeSegmentTypeEnum=Zt;class qt{}qt.BASE_PLATE={type:3,value:"BASE_PLATE"},qt.COVER_PLATE={type:3,value:"COVER_PLATE"},qt.CURTAIN_PANEL={type:3,value:"CURTAIN_PANEL"},qt.FLANGE_PLATE={type:3,value:"FLANGE_PLATE"},qt.GUSSET_PLATE={type:3,value:"GUSSET_PLATE"},qt.SHEET={type:3,value:"SHEET"},qt.SPLICE_PLATE={type:3,value:"SPLICE_PLATE"},qt.STIFFENER_PLATE={type:3,value:"STIFFENER_PLATE"},qt.WEB_PLATE={type:3,value:"WEB_PLATE"},qt.USERDEFINED={type:3,value:"USERDEFINED"},qt.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPlateTypeEnum=qt;class Jt{}Jt.CURVE3D={type:3,value:"CURVE3D"},Jt.PCURVE_S1={type:3,value:"PCURVE_S1"},Jt.PCURVE_S2={type:3,value:"PCURVE_S2"},e.IfcPreferredSurfaceCurveRepresentation=Jt;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 is{}is.BLISTER={type:3,value:"BLISTER"},is.DEVIATOR={type:3,value:"DEVIATOR"},is.USERDEFINED={type:3,value:"USERDEFINED"},is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProjectionElementTypeEnum=is;class rs{}rs.PSET_MATERIALDRIVEN={type:3,value:"PSET_MATERIALDRIVEN"},rs.PSET_OCCURRENCEDRIVEN={type:3,value:"PSET_OCCURRENCEDRIVEN"},rs.PSET_PERFORMANCEDRIVEN={type:3,value:"PSET_PERFORMANCEDRIVEN"},rs.PSET_PROFILEDRIVEN={type:3,value:"PSET_PROFILEDRIVEN"},rs.PSET_TYPEDRIVENONLY={type:3,value:"PSET_TYPEDRIVENONLY"},rs.PSET_TYPEDRIVENOVERRIDE={type:3,value:"PSET_TYPEDRIVENOVERRIDE"},rs.QTO_OCCURRENCEDRIVEN={type:3,value:"QTO_OCCURRENCEDRIVEN"},rs.QTO_TYPEDRIVENONLY={type:3,value:"QTO_TYPEDRIVENONLY"},rs.QTO_TYPEDRIVENOVERRIDE={type:3,value:"QTO_TYPEDRIVENOVERRIDE"},rs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPropertySetTemplateTypeEnum=rs;class os{}os.ELECTROMAGNETIC={type:3,value:"ELECTROMAGNETIC"},os.ELECTRONIC={type:3,value:"ELECTRONIC"},os.RESIDUALCURRENT={type:3,value:"RESIDUALCURRENT"},os.THERMAL={type:3,value:"THERMAL"},os.USERDEFINED={type:3,value:"USERDEFINED"},os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTrippingUnitTypeEnum=os;class ns{}ns.ANTI_ARCING_DEVICE={type:3,value:"ANTI_ARCING_DEVICE"},ns.CIRCUITBREAKER={type:3,value:"CIRCUITBREAKER"},ns.EARTHINGSWITCH={type:3,value:"EARTHINGSWITCH"},ns.EARTHLEAKAGECIRCUITBREAKER={type:3,value:"EARTHLEAKAGECIRCUITBREAKER"},ns.FUSEDISCONNECTOR={type:3,value:"FUSEDISCONNECTOR"},ns.RESIDUALCURRENTCIRCUITBREAKER={type:3,value:"RESIDUALCURRENTCIRCUITBREAKER"},ns.RESIDUALCURRENTSWITCH={type:3,value:"RESIDUALCURRENTSWITCH"},ns.SPARKGAP={type:3,value:"SPARKGAP"},ns.VARISTOR={type:3,value:"VARISTOR"},ns.VOLTAGELIMITER={type:3,value:"VOLTAGELIMITER"},ns.USERDEFINED={type:3,value:"USERDEFINED"},ns.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcProtectiveDeviceTypeEnum=ns;class as{}as.CIRCULATOR={type:3,value:"CIRCULATOR"},as.ENDSUCTION={type:3,value:"ENDSUCTION"},as.SPLITCASE={type:3,value:"SPLITCASE"},as.SUBMERSIBLEPUMP={type:3,value:"SUBMERSIBLEPUMP"},as.SUMPPUMP={type:3,value:"SUMPPUMP"},as.VERTICALINLINE={type:3,value:"VERTICALINLINE"},as.VERTICALTURBINE={type:3,value:"VERTICALTURBINE"},as.USERDEFINED={type:3,value:"USERDEFINED"},as.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcPumpTypeEnum=as;class ls{}ls.BLADE={type:3,value:"BLADE"},ls.CHECKRAIL={type:3,value:"CHECKRAIL"},ls.GUARDRAIL={type:3,value:"GUARDRAIL"},ls.RACKRAIL={type:3,value:"RACKRAIL"},ls.RAIL={type:3,value:"RAIL"},ls.STOCKRAIL={type:3,value:"STOCKRAIL"},ls.USERDEFINED={type:3,value:"USERDEFINED"},ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailTypeEnum=ls;class hs{}hs.BALUSTRADE={type:3,value:"BALUSTRADE"},hs.FENCE={type:3,value:"FENCE"},hs.GUARDRAIL={type:3,value:"GUARDRAIL"},hs.HANDRAIL={type:3,value:"HANDRAIL"},hs.USERDEFINED={type:3,value:"USERDEFINED"},hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailingTypeEnum=hs;class cs{}cs.DILATATIONSUPERSTRUCTURE={type:3,value:"DILATATIONSUPERSTRUCTURE"},cs.LINESIDESTRUCTURE={type:3,value:"LINESIDESTRUCTURE"},cs.LINESIDESTRUCTUREPART={type:3,value:"LINESIDESTRUCTUREPART"},cs.PLAINTRACKSUPERSTRUCTURE={type:3,value:"PLAINTRACKSUPERSTRUCTURE"},cs.SUPERSTRUCTURE={type:3,value:"SUPERSTRUCTURE"},cs.TRACKSTRUCTURE={type:3,value:"TRACKSTRUCTURE"},cs.TRACKSTRUCTUREPART={type:3,value:"TRACKSTRUCTUREPART"},cs.TURNOUTSUPERSTRUCTURE={type:3,value:"TURNOUTSUPERSTRUCTURE"},cs.USERDEFINED={type:3,value:"USERDEFINED"},cs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailwayPartTypeEnum=cs;class us{}us.USERDEFINED={type:3,value:"USERDEFINED"},us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRailwayTypeEnum=us;class As{}As.SPIRAL={type:3,value:"SPIRAL"},As.STRAIGHT={type:3,value:"STRAIGHT"},As.USERDEFINED={type:3,value:"USERDEFINED"},As.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampFlightTypeEnum=As;class ps{}ps.HALF_TURN_RAMP={type:3,value:"HALF_TURN_RAMP"},ps.QUARTER_TURN_RAMP={type:3,value:"QUARTER_TURN_RAMP"},ps.SPIRAL_RAMP={type:3,value:"SPIRAL_RAMP"},ps.STRAIGHT_RUN_RAMP={type:3,value:"STRAIGHT_RUN_RAMP"},ps.TWO_QUARTER_TURN_RAMP={type:3,value:"TWO_QUARTER_TURN_RAMP"},ps.TWO_STRAIGHT_RUN_RAMP={type:3,value:"TWO_STRAIGHT_RUN_RAMP"},ps.USERDEFINED={type:3,value:"USERDEFINED"},ps.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRampTypeEnum=ps;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 ms{}ms.BLINN={type:3,value:"BLINN"},ms.FLAT={type:3,value:"FLAT"},ms.GLASS={type:3,value:"GLASS"},ms.MATT={type:3,value:"MATT"},ms.METAL={type:3,value:"METAL"},ms.MIRROR={type:3,value:"MIRROR"},ms.PHONG={type:3,value:"PHONG"},ms.PHYSICAL={type:3,value:"PHYSICAL"},ms.PLASTIC={type:3,value:"PLASTIC"},ms.STRAUSS={type:3,value:"STRAUSS"},ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReflectanceMethodEnum=ms;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 Es{}Es.ANCHORING={type:3,value:"ANCHORING"},Es.EDGE={type:3,value:"EDGE"},Es.LIGATURE={type:3,value:"LIGATURE"},Es.MAIN={type:3,value:"MAIN"},Es.PUNCHING={type:3,value:"PUNCHING"},Es.RING={type:3,value:"RING"},Es.SHEAR={type:3,value:"SHEAR"},Es.STUD={type:3,value:"STUD"},Es.USERDEFINED={type:3,value:"USERDEFINED"},Es.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarRoleEnum=Es;class gs{}gs.PLAIN={type:3,value:"PLAIN"},gs.TEXTURED={type:3,value:"TEXTURED"},e.IfcReinforcingBarSurfaceEnum=gs;class vs{}vs.ANCHORING={type:3,value:"ANCHORING"},vs.EDGE={type:3,value:"EDGE"},vs.LIGATURE={type:3,value:"LIGATURE"},vs.MAIN={type:3,value:"MAIN"},vs.PUNCHING={type:3,value:"PUNCHING"},vs.RING={type:3,value:"RING"},vs.SHEAR={type:3,value:"SHEAR"},vs.SPACEBAR={type:3,value:"SPACEBAR"},vs.STUD={type:3,value:"STUD"},vs.USERDEFINED={type:3,value:"USERDEFINED"},vs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingBarTypeEnum=vs;class Is{}Is.USERDEFINED={type:3,value:"USERDEFINED"},Is.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcReinforcingMeshTypeEnum=Is;class _s{}_s.BICYCLECROSSING={type:3,value:"BICYCLECROSSING"},_s.BUS_STOP={type:3,value:"BUS_STOP"},_s.CARRIAGEWAY={type:3,value:"CARRIAGEWAY"},_s.CENTRALISLAND={type:3,value:"CENTRALISLAND"},_s.CENTRALRESERVE={type:3,value:"CENTRALRESERVE"},_s.HARDSHOULDER={type:3,value:"HARDSHOULDER"},_s.INTERSECTION={type:3,value:"INTERSECTION"},_s.LAYBY={type:3,value:"LAYBY"},_s.PARKINGBAY={type:3,value:"PARKINGBAY"},_s.PASSINGBAY={type:3,value:"PASSINGBAY"},_s.PEDESTRIAN_CROSSING={type:3,value:"PEDESTRIAN_CROSSING"},_s.RAILWAYCROSSING={type:3,value:"RAILWAYCROSSING"},_s.REFUGEISLAND={type:3,value:"REFUGEISLAND"},_s.ROADSEGMENT={type:3,value:"ROADSEGMENT"},_s.ROADSIDE={type:3,value:"ROADSIDE"},_s.ROADSIDEPART={type:3,value:"ROADSIDEPART"},_s.ROADWAYPLATEAU={type:3,value:"ROADWAYPLATEAU"},_s.ROUNDABOUT={type:3,value:"ROUNDABOUT"},_s.SHOULDER={type:3,value:"SHOULDER"},_s.SIDEWALK={type:3,value:"SIDEWALK"},_s.SOFTSHOULDER={type:3,value:"SOFTSHOULDER"},_s.TOLLPLAZA={type:3,value:"TOLLPLAZA"},_s.TRAFFICISLAND={type:3,value:"TRAFFICISLAND"},_s.TRAFFICLANE={type:3,value:"TRAFFICLANE"},_s.USERDEFINED={type:3,value:"USERDEFINED"},_s.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoadPartTypeEnum=_s;class Ts{}Ts.USERDEFINED={type:3,value:"USERDEFINED"},Ts.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoadTypeEnum=Ts;class Ps{}Ps.ARCHITECT={type:3,value:"ARCHITECT"},Ps.BUILDINGOPERATOR={type:3,value:"BUILDINGOPERATOR"},Ps.BUILDINGOWNER={type:3,value:"BUILDINGOWNER"},Ps.CIVILENGINEER={type:3,value:"CIVILENGINEER"},Ps.CLIENT={type:3,value:"CLIENT"},Ps.COMMISSIONINGENGINEER={type:3,value:"COMMISSIONINGENGINEER"},Ps.CONSTRUCTIONMANAGER={type:3,value:"CONSTRUCTIONMANAGER"},Ps.CONSULTANT={type:3,value:"CONSULTANT"},Ps.CONTRACTOR={type:3,value:"CONTRACTOR"},Ps.COSTENGINEER={type:3,value:"COSTENGINEER"},Ps.ELECTRICALENGINEER={type:3,value:"ELECTRICALENGINEER"},Ps.ENGINEER={type:3,value:"ENGINEER"},Ps.FACILITIESMANAGER={type:3,value:"FACILITIESMANAGER"},Ps.FIELDCONSTRUCTIONMANAGER={type:3,value:"FIELDCONSTRUCTIONMANAGER"},Ps.MANUFACTURER={type:3,value:"MANUFACTURER"},Ps.MECHANICALENGINEER={type:3,value:"MECHANICALENGINEER"},Ps.OWNER={type:3,value:"OWNER"},Ps.PROJECTMANAGER={type:3,value:"PROJECTMANAGER"},Ps.RESELLER={type:3,value:"RESELLER"},Ps.STRUCTURALENGINEER={type:3,value:"STRUCTURALENGINEER"},Ps.SUBCONTRACTOR={type:3,value:"SUBCONTRACTOR"},Ps.SUPPLIER={type:3,value:"SUPPLIER"},Ps.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcRoleEnum=Ps;class bs{}bs.BARREL_ROOF={type:3,value:"BARREL_ROOF"},bs.BUTTERFLY_ROOF={type:3,value:"BUTTERFLY_ROOF"},bs.DOME_ROOF={type:3,value:"DOME_ROOF"},bs.FLAT_ROOF={type:3,value:"FLAT_ROOF"},bs.FREEFORM={type:3,value:"FREEFORM"},bs.GABLE_ROOF={type:3,value:"GABLE_ROOF"},bs.GAMBREL_ROOF={type:3,value:"GAMBREL_ROOF"},bs.HIPPED_GABLE_ROOF={type:3,value:"HIPPED_GABLE_ROOF"},bs.HIP_ROOF={type:3,value:"HIP_ROOF"},bs.MANSARD_ROOF={type:3,value:"MANSARD_ROOF"},bs.PAVILION_ROOF={type:3,value:"PAVILION_ROOF"},bs.RAINBOW_ROOF={type:3,value:"RAINBOW_ROOF"},bs.SHED_ROOF={type:3,value:"SHED_ROOF"},bs.USERDEFINED={type:3,value:"USERDEFINED"},bs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcRoofTypeEnum=bs;class Rs{}Rs.ATTO={type:3,value:"ATTO"},Rs.CENTI={type:3,value:"CENTI"},Rs.DECA={type:3,value:"DECA"},Rs.DECI={type:3,value:"DECI"},Rs.EXA={type:3,value:"EXA"},Rs.FEMTO={type:3,value:"FEMTO"},Rs.GIGA={type:3,value:"GIGA"},Rs.HECTO={type:3,value:"HECTO"},Rs.KILO={type:3,value:"KILO"},Rs.MEGA={type:3,value:"MEGA"},Rs.MICRO={type:3,value:"MICRO"},Rs.MILLI={type:3,value:"MILLI"},Rs.NANO={type:3,value:"NANO"},Rs.PETA={type:3,value:"PETA"},Rs.PICO={type:3,value:"PICO"},Rs.TERA={type:3,value:"TERA"},e.IfcSIPrefix=Rs;class Ds{}Ds.AMPERE={type:3,value:"AMPERE"},Ds.BECQUEREL={type:3,value:"BECQUEREL"},Ds.CANDELA={type:3,value:"CANDELA"},Ds.COULOMB={type:3,value:"COULOMB"},Ds.CUBIC_METRE={type:3,value:"CUBIC_METRE"},Ds.DEGREE_CELSIUS={type:3,value:"DEGREE_CELSIUS"},Ds.FARAD={type:3,value:"FARAD"},Ds.GRAM={type:3,value:"GRAM"},Ds.GRAY={type:3,value:"GRAY"},Ds.HENRY={type:3,value:"HENRY"},Ds.HERTZ={type:3,value:"HERTZ"},Ds.JOULE={type:3,value:"JOULE"},Ds.KELVIN={type:3,value:"KELVIN"},Ds.LUMEN={type:3,value:"LUMEN"},Ds.LUX={type:3,value:"LUX"},Ds.METRE={type:3,value:"METRE"},Ds.MOLE={type:3,value:"MOLE"},Ds.NEWTON={type:3,value:"NEWTON"},Ds.OHM={type:3,value:"OHM"},Ds.PASCAL={type:3,value:"PASCAL"},Ds.RADIAN={type:3,value:"RADIAN"},Ds.SECOND={type:3,value:"SECOND"},Ds.SIEMENS={type:3,value:"SIEMENS"},Ds.SIEVERT={type:3,value:"SIEVERT"},Ds.SQUARE_METRE={type:3,value:"SQUARE_METRE"},Ds.STERADIAN={type:3,value:"STERADIAN"},Ds.TESLA={type:3,value:"TESLA"},Ds.VOLT={type:3,value:"VOLT"},Ds.WATT={type:3,value:"WATT"},Ds.WEBER={type:3,value:"WEBER"},e.IfcSIUnitName=Ds;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 Ns{}Ns.TAPERED={type:3,value:"TAPERED"},Ns.UNIFORM={type:3,value:"UNIFORM"},e.IfcSectionTypeEnum=Ns;class Os{}Os.CO2SENSOR={type:3,value:"CO2SENSOR"},Os.CONDUCTANCESENSOR={type:3,value:"CONDUCTANCESENSOR"},Os.CONTACTSENSOR={type:3,value:"CONTACTSENSOR"},Os.COSENSOR={type:3,value:"COSENSOR"},Os.EARTHQUAKESENSOR={type:3,value:"EARTHQUAKESENSOR"},Os.FIRESENSOR={type:3,value:"FIRESENSOR"},Os.FLOWSENSOR={type:3,value:"FLOWSENSOR"},Os.FOREIGNOBJECTDETECTIONSENSOR={type:3,value:"FOREIGNOBJECTDETECTIONSENSOR"},Os.FROSTSENSOR={type:3,value:"FROSTSENSOR"},Os.GASSENSOR={type:3,value:"GASSENSOR"},Os.HEATSENSOR={type:3,value:"HEATSENSOR"},Os.HUMIDITYSENSOR={type:3,value:"HUMIDITYSENSOR"},Os.IDENTIFIERSENSOR={type:3,value:"IDENTIFIERSENSOR"},Os.IONCONCENTRATIONSENSOR={type:3,value:"IONCONCENTRATIONSENSOR"},Os.LEVELSENSOR={type:3,value:"LEVELSENSOR"},Os.LIGHTSENSOR={type:3,value:"LIGHTSENSOR"},Os.MOISTURESENSOR={type:3,value:"MOISTURESENSOR"},Os.MOVEMENTSENSOR={type:3,value:"MOVEMENTSENSOR"},Os.OBSTACLESENSOR={type:3,value:"OBSTACLESENSOR"},Os.PHSENSOR={type:3,value:"PHSENSOR"},Os.PRESSURESENSOR={type:3,value:"PRESSURESENSOR"},Os.RADIATIONSENSOR={type:3,value:"RADIATIONSENSOR"},Os.RADIOACTIVITYSENSOR={type:3,value:"RADIOACTIVITYSENSOR"},Os.RAINSENSOR={type:3,value:"RAINSENSOR"},Os.SMOKESENSOR={type:3,value:"SMOKESENSOR"},Os.SNOWDEPTHSENSOR={type:3,value:"SNOWDEPTHSENSOR"},Os.SOUNDSENSOR={type:3,value:"SOUNDSENSOR"},Os.TEMPERATURESENSOR={type:3,value:"TEMPERATURESENSOR"},Os.TRAINSENSOR={type:3,value:"TRAINSENSOR"},Os.TURNOUTCLOSURESENSOR={type:3,value:"TURNOUTCLOSURESENSOR"},Os.WHEELSENSOR={type:3,value:"WHEELSENSOR"},Os.WINDSENSOR={type:3,value:"WINDSENSOR"},Os.USERDEFINED={type:3,value:"USERDEFINED"},Os.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSensorTypeEnum=Os;class xs{}xs.FINISH_FINISH={type:3,value:"FINISH_FINISH"},xs.FINISH_START={type:3,value:"FINISH_START"},xs.START_FINISH={type:3,value:"START_FINISH"},xs.START_START={type:3,value:"START_START"},xs.USERDEFINED={type:3,value:"USERDEFINED"},xs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSequenceEnum=xs;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 ws{}ws.MARKER={type:3,value:"MARKER"},ws.MIRROR={type:3,value:"MIRROR"},ws.PICTORAL={type:3,value:"PICTORAL"},ws.USERDEFINED={type:3,value:"USERDEFINED"},ws.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSignTypeEnum=ws;class Ms{}Ms.AUDIO={type:3,value:"AUDIO"},Ms.MIXED={type:3,value:"MIXED"},Ms.VISUAL={type:3,value:"VISUAL"},Ms.USERDEFINED={type:3,value:"USERDEFINED"},Ms.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSignalTypeEnum=Ms;class Bs{}Bs.P_BOUNDEDVALUE={type:3,value:"P_BOUNDEDVALUE"},Bs.P_ENUMERATEDVALUE={type:3,value:"P_ENUMERATEDVALUE"},Bs.P_LISTVALUE={type:3,value:"P_LISTVALUE"},Bs.P_REFERENCEVALUE={type:3,value:"P_REFERENCEVALUE"},Bs.P_SINGLEVALUE={type:3,value:"P_SINGLEVALUE"},Bs.P_TABLEVALUE={type:3,value:"P_TABLEVALUE"},Bs.Q_AREA={type:3,value:"Q_AREA"},Bs.Q_COUNT={type:3,value:"Q_COUNT"},Bs.Q_LENGTH={type:3,value:"Q_LENGTH"},Bs.Q_NUMBER={type:3,value:"Q_NUMBER"},Bs.Q_TIME={type:3,value:"Q_TIME"},Bs.Q_VOLUME={type:3,value:"Q_VOLUME"},Bs.Q_WEIGHT={type:3,value:"Q_WEIGHT"},e.IfcSimplePropertyTemplateTypeEnum=Bs;class Fs{}Fs.APPROACH_SLAB={type:3,value:"APPROACH_SLAB"},Fs.BASESLAB={type:3,value:"BASESLAB"},Fs.FLOOR={type:3,value:"FLOOR"},Fs.LANDING={type:3,value:"LANDING"},Fs.PAVING={type:3,value:"PAVING"},Fs.ROOF={type:3,value:"ROOF"},Fs.SIDEWALK={type:3,value:"SIDEWALK"},Fs.TRACKSLAB={type:3,value:"TRACKSLAB"},Fs.WEARING={type:3,value:"WEARING"},Fs.USERDEFINED={type:3,value:"USERDEFINED"},Fs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSlabTypeEnum=Fs;class Ls{}Ls.SOLARCOLLECTOR={type:3,value:"SOLARCOLLECTOR"},Ls.SOLARPANEL={type:3,value:"SOLARPANEL"},Ls.USERDEFINED={type:3,value:"USERDEFINED"},Ls.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSolarDeviceTypeEnum=Ls;class Us{}Us.CONVECTOR={type:3,value:"CONVECTOR"},Us.RADIATOR={type:3,value:"RADIATOR"},Us.USERDEFINED={type:3,value:"USERDEFINED"},Us.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceHeaterTypeEnum=Us;class Hs{}Hs.BERTH={type:3,value:"BERTH"},Hs.EXTERNAL={type:3,value:"EXTERNAL"},Hs.GFA={type:3,value:"GFA"},Hs.INTERNAL={type:3,value:"INTERNAL"},Hs.PARKING={type:3,value:"PARKING"},Hs.SPACE={type:3,value:"SPACE"},Hs.USERDEFINED={type:3,value:"USERDEFINED"},Hs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSpaceTypeEnum=Hs;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 ks{}ks.BIRDCAGE={type:3,value:"BIRDCAGE"},ks.COWL={type:3,value:"COWL"},ks.RAINWATERHOPPER={type:3,value:"RAINWATERHOPPER"},ks.USERDEFINED={type:3,value:"USERDEFINED"},ks.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStackTerminalTypeEnum=ks;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 js{}js.CURVED_RUN_STAIR={type:3,value:"CURVED_RUN_STAIR"},js.DOUBLE_RETURN_STAIR={type:3,value:"DOUBLE_RETURN_STAIR"},js.HALF_TURN_STAIR={type:3,value:"HALF_TURN_STAIR"},js.HALF_WINDING_STAIR={type:3,value:"HALF_WINDING_STAIR"},js.LADDER={type:3,value:"LADDER"},js.QUARTER_TURN_STAIR={type:3,value:"QUARTER_TURN_STAIR"},js.QUARTER_WINDING_STAIR={type:3,value:"QUARTER_WINDING_STAIR"},js.SPIRAL_STAIR={type:3,value:"SPIRAL_STAIR"},js.STRAIGHT_RUN_STAIR={type:3,value:"STRAIGHT_RUN_STAIR"},js.THREE_QUARTER_TURN_STAIR={type:3,value:"THREE_QUARTER_TURN_STAIR"},js.THREE_QUARTER_WINDING_STAIR={type:3,value:"THREE_QUARTER_WINDING_STAIR"},js.TWO_CURVED_RUN_STAIR={type:3,value:"TWO_CURVED_RUN_STAIR"},js.TWO_QUARTER_TURN_STAIR={type:3,value:"TWO_QUARTER_TURN_STAIR"},js.TWO_QUARTER_WINDING_STAIR={type:3,value:"TWO_QUARTER_WINDING_STAIR"},js.TWO_STRAIGHT_RUN_STAIR={type:3,value:"TWO_STRAIGHT_RUN_STAIR"},js.USERDEFINED={type:3,value:"USERDEFINED"},js.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcStairTypeEnum=js;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 Zs{}Zs.DEFECT={type:3,value:"DEFECT"},Zs.HATCHMARKING={type:3,value:"HATCHMARKING"},Zs.LINEMARKING={type:3,value:"LINEMARKING"},Zs.MARK={type:3,value:"MARK"},Zs.NONSKIDSURFACING={type:3,value:"NONSKIDSURFACING"},Zs.PAVEMENTSURFACEMARKING={type:3,value:"PAVEMENTSURFACEMARKING"},Zs.RUMBLESTRIP={type:3,value:"RUMBLESTRIP"},Zs.SYMBOLMARKING={type:3,value:"SYMBOLMARKING"},Zs.TAG={type:3,value:"TAG"},Zs.TRANSVERSERUMBLESTRIP={type:3,value:"TRANSVERSERUMBLESTRIP"},Zs.TREATMENT={type:3,value:"TREATMENT"},Zs.USERDEFINED={type:3,value:"USERDEFINED"},Zs.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSurfaceFeatureTypeEnum=Zs;class qs{}qs.BOTH={type:3,value:"BOTH"},qs.NEGATIVE={type:3,value:"NEGATIVE"},qs.POSITIVE={type:3,value:"POSITIVE"},e.IfcSurfaceSide=qs;class Js{}Js.CONTACTOR={type:3,value:"CONTACTOR"},Js.DIMMERSWITCH={type:3,value:"DIMMERSWITCH"},Js.EMERGENCYSTOP={type:3,value:"EMERGENCYSTOP"},Js.KEYPAD={type:3,value:"KEYPAD"},Js.MOMENTARYSWITCH={type:3,value:"MOMENTARYSWITCH"},Js.RELAY={type:3,value:"RELAY"},Js.SELECTORSWITCH={type:3,value:"SELECTORSWITCH"},Js.STARTER={type:3,value:"STARTER"},Js.START_AND_STOP_EQUIPMENT={type:3,value:"START_AND_STOP_EQUIPMENT"},Js.SWITCHDISCONNECTOR={type:3,value:"SWITCHDISCONNECTOR"},Js.TOGGLESWITCH={type:3,value:"TOGGLESWITCH"},Js.USERDEFINED={type:3,value:"USERDEFINED"},Js.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcSwitchingDeviceTypeEnum=Js;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 ei{}ei.BASIN={type:3,value:"BASIN"},ei.BREAKPRESSURE={type:3,value:"BREAKPRESSURE"},ei.EXPANSION={type:3,value:"EXPANSION"},ei.FEEDANDEXPANSION={type:3,value:"FEEDANDEXPANSION"},ei.OILRETENTIONTRAY={type:3,value:"OILRETENTIONTRAY"},ei.PRESSUREVESSEL={type:3,value:"PRESSUREVESSEL"},ei.STORAGE={type:3,value:"STORAGE"},ei.VESSEL={type:3,value:"VESSEL"},ei.USERDEFINED={type:3,value:"USERDEFINED"},ei.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTankTypeEnum=ei;class ti{}ti.ELAPSEDTIME={type:3,value:"ELAPSEDTIME"},ti.WORKTIME={type:3,value:"WORKTIME"},ti.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskDurationEnum=ti;class si{}si.ADJUSTMENT={type:3,value:"ADJUSTMENT"},si.ATTENDANCE={type:3,value:"ATTENDANCE"},si.CALIBRATION={type:3,value:"CALIBRATION"},si.CONSTRUCTION={type:3,value:"CONSTRUCTION"},si.DEMOLITION={type:3,value:"DEMOLITION"},si.DISMANTLE={type:3,value:"DISMANTLE"},si.DISPOSAL={type:3,value:"DISPOSAL"},si.EMERGENCY={type:3,value:"EMERGENCY"},si.INSPECTION={type:3,value:"INSPECTION"},si.INSTALLATION={type:3,value:"INSTALLATION"},si.LOGISTIC={type:3,value:"LOGISTIC"},si.MAINTENANCE={type:3,value:"MAINTENANCE"},si.MOVE={type:3,value:"MOVE"},si.OPERATION={type:3,value:"OPERATION"},si.REMOVAL={type:3,value:"REMOVAL"},si.RENOVATION={type:3,value:"RENOVATION"},si.SAFETY={type:3,value:"SAFETY"},si.SHUTDOWN={type:3,value:"SHUTDOWN"},si.STARTUP={type:3,value:"STARTUP"},si.TESTING={type:3,value:"TESTING"},si.TROUBLESHOOTING={type:3,value:"TROUBLESHOOTING"},si.USERDEFINED={type:3,value:"USERDEFINED"},si.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTaskTypeEnum=si;class ii{}ii.COUPLER={type:3,value:"COUPLER"},ii.FIXED_END={type:3,value:"FIXED_END"},ii.TENSIONING_END={type:3,value:"TENSIONING_END"},ii.USERDEFINED={type:3,value:"USERDEFINED"},ii.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonAnchorTypeEnum=ii;class ri{}ri.COUPLER={type:3,value:"COUPLER"},ri.DIABOLO={type:3,value:"DIABOLO"},ri.DUCT={type:3,value:"DUCT"},ri.GROUTING_DUCT={type:3,value:"GROUTING_DUCT"},ri.TRUMPET={type:3,value:"TRUMPET"},ri.USERDEFINED={type:3,value:"USERDEFINED"},ri.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonConduitTypeEnum=ri;class oi{}oi.BAR={type:3,value:"BAR"},oi.COATED={type:3,value:"COATED"},oi.STRAND={type:3,value:"STRAND"},oi.WIRE={type:3,value:"WIRE"},oi.USERDEFINED={type:3,value:"USERDEFINED"},oi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTendonTypeEnum=oi;class ni{}ni.DOWN={type:3,value:"DOWN"},ni.LEFT={type:3,value:"LEFT"},ni.RIGHT={type:3,value:"RIGHT"},ni.UP={type:3,value:"UP"},e.IfcTextPath=ni;class ai{}ai.CONTINUOUS={type:3,value:"CONTINUOUS"},ai.DISCRETE={type:3,value:"DISCRETE"},ai.DISCRETEBINARY={type:3,value:"DISCRETEBINARY"},ai.PIECEWISEBINARY={type:3,value:"PIECEWISEBINARY"},ai.PIECEWISECONSTANT={type:3,value:"PIECEWISECONSTANT"},ai.PIECEWISECONTINUOUS={type:3,value:"PIECEWISECONTINUOUS"},ai.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTimeSeriesDataTypeEnum=ai;class li{}li.BLOCKINGDEVICE={type:3,value:"BLOCKINGDEVICE"},li.DERAILER={type:3,value:"DERAILER"},li.FROG={type:3,value:"FROG"},li.HALF_SET_OF_BLADES={type:3,value:"HALF_SET_OF_BLADES"},li.SLEEPER={type:3,value:"SLEEPER"},li.SPEEDREGULATOR={type:3,value:"SPEEDREGULATOR"},li.TRACKENDOFALIGNMENT={type:3,value:"TRACKENDOFALIGNMENT"},li.VEHICLESTOP={type:3,value:"VEHICLESTOP"},li.USERDEFINED={type:3,value:"USERDEFINED"},li.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTrackElementTypeEnum=li;class hi{}hi.CHOPPER={type:3,value:"CHOPPER"},hi.COMBINED={type:3,value:"COMBINED"},hi.CURRENT={type:3,value:"CURRENT"},hi.FREQUENCY={type:3,value:"FREQUENCY"},hi.INVERTER={type:3,value:"INVERTER"},hi.RECTIFIER={type:3,value:"RECTIFIER"},hi.VOLTAGE={type:3,value:"VOLTAGE"},hi.USERDEFINED={type:3,value:"USERDEFINED"},hi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransformerTypeEnum=hi;class ci{}ci.CONTINUOUS={type:3,value:"CONTINUOUS"},ci.CONTSAMEGRADIENT={type:3,value:"CONTSAMEGRADIENT"},ci.CONTSAMEGRADIENTSAMECURVATURE={type:3,value:"CONTSAMEGRADIENTSAMECURVATURE"},ci.DISCONTINUOUS={type:3,value:"DISCONTINUOUS"},e.IfcTransitionCode=ci;class ui{}ui.CRANEWAY={type:3,value:"CRANEWAY"},ui.ELEVATOR={type:3,value:"ELEVATOR"},ui.ESCALATOR={type:3,value:"ESCALATOR"},ui.HAULINGGEAR={type:3,value:"HAULINGGEAR"},ui.LIFTINGGEAR={type:3,value:"LIFTINGGEAR"},ui.MOVINGWALKWAY={type:3,value:"MOVINGWALKWAY"},ui.USERDEFINED={type:3,value:"USERDEFINED"},ui.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTransportElementTypeEnum=ui;class Ai{}Ai.CARTESIAN={type:3,value:"CARTESIAN"},Ai.PARAMETER={type:3,value:"PARAMETER"},Ai.UNSPECIFIED={type:3,value:"UNSPECIFIED"},e.IfcTrimmingPreference=Ai;class pi{}pi.FINNED={type:3,value:"FINNED"},pi.USERDEFINED={type:3,value:"USERDEFINED"},pi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcTubeBundleTypeEnum=pi;class di{}di.ABSORBEDDOSEUNIT={type:3,value:"ABSORBEDDOSEUNIT"},di.AMOUNTOFSUBSTANCEUNIT={type:3,value:"AMOUNTOFSUBSTANCEUNIT"},di.AREAUNIT={type:3,value:"AREAUNIT"},di.DOSEEQUIVALENTUNIT={type:3,value:"DOSEEQUIVALENTUNIT"},di.ELECTRICCAPACITANCEUNIT={type:3,value:"ELECTRICCAPACITANCEUNIT"},di.ELECTRICCHARGEUNIT={type:3,value:"ELECTRICCHARGEUNIT"},di.ELECTRICCONDUCTANCEUNIT={type:3,value:"ELECTRICCONDUCTANCEUNIT"},di.ELECTRICCURRENTUNIT={type:3,value:"ELECTRICCURRENTUNIT"},di.ELECTRICRESISTANCEUNIT={type:3,value:"ELECTRICRESISTANCEUNIT"},di.ELECTRICVOLTAGEUNIT={type:3,value:"ELECTRICVOLTAGEUNIT"},di.ENERGYUNIT={type:3,value:"ENERGYUNIT"},di.FORCEUNIT={type:3,value:"FORCEUNIT"},di.FREQUENCYUNIT={type:3,value:"FREQUENCYUNIT"},di.ILLUMINANCEUNIT={type:3,value:"ILLUMINANCEUNIT"},di.INDUCTANCEUNIT={type:3,value:"INDUCTANCEUNIT"},di.LENGTHUNIT={type:3,value:"LENGTHUNIT"},di.LUMINOUSFLUXUNIT={type:3,value:"LUMINOUSFLUXUNIT"},di.LUMINOUSINTENSITYUNIT={type:3,value:"LUMINOUSINTENSITYUNIT"},di.MAGNETICFLUXDENSITYUNIT={type:3,value:"MAGNETICFLUXDENSITYUNIT"},di.MAGNETICFLUXUNIT={type:3,value:"MAGNETICFLUXUNIT"},di.MASSUNIT={type:3,value:"MASSUNIT"},di.PLANEANGLEUNIT={type:3,value:"PLANEANGLEUNIT"},di.POWERUNIT={type:3,value:"POWERUNIT"},di.PRESSUREUNIT={type:3,value:"PRESSUREUNIT"},di.RADIOACTIVITYUNIT={type:3,value:"RADIOACTIVITYUNIT"},di.SOLIDANGLEUNIT={type:3,value:"SOLIDANGLEUNIT"},di.THERMODYNAMICTEMPERATUREUNIT={type:3,value:"THERMODYNAMICTEMPERATUREUNIT"},di.TIMEUNIT={type:3,value:"TIMEUNIT"},di.VOLUMEUNIT={type:3,value:"VOLUMEUNIT"},di.USERDEFINED={type:3,value:"USERDEFINED"},e.IfcUnitEnum=di;class fi{}fi.ALARMPANEL={type:3,value:"ALARMPANEL"},fi.BASESTATIONCONTROLLER={type:3,value:"BASESTATIONCONTROLLER"},fi.COMBINED={type:3,value:"COMBINED"},fi.CONTROLPANEL={type:3,value:"CONTROLPANEL"},fi.GASDETECTIONPANEL={type:3,value:"GASDETECTIONPANEL"},fi.HUMIDISTAT={type:3,value:"HUMIDISTAT"},fi.INDICATORPANEL={type:3,value:"INDICATORPANEL"},fi.MIMICPANEL={type:3,value:"MIMICPANEL"},fi.THERMOSTAT={type:3,value:"THERMOSTAT"},fi.WEATHERSTATION={type:3,value:"WEATHERSTATION"},fi.USERDEFINED={type:3,value:"USERDEFINED"},fi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryControlElementTypeEnum=fi;class mi{}mi.AIRCONDITIONINGUNIT={type:3,value:"AIRCONDITIONINGUNIT"},mi.AIRHANDLER={type:3,value:"AIRHANDLER"},mi.DEHUMIDIFIER={type:3,value:"DEHUMIDIFIER"},mi.ROOFTOPUNIT={type:3,value:"ROOFTOPUNIT"},mi.SPLITSYSTEM={type:3,value:"SPLITSYSTEM"},mi.USERDEFINED={type:3,value:"USERDEFINED"},mi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcUnitaryEquipmentTypeEnum=mi;class yi{}yi.AIRRELEASE={type:3,value:"AIRRELEASE"},yi.ANTIVACUUM={type:3,value:"ANTIVACUUM"},yi.CHANGEOVER={type:3,value:"CHANGEOVER"},yi.CHECK={type:3,value:"CHECK"},yi.COMMISSIONING={type:3,value:"COMMISSIONING"},yi.DIVERTING={type:3,value:"DIVERTING"},yi.DOUBLECHECK={type:3,value:"DOUBLECHECK"},yi.DOUBLEREGULATING={type:3,value:"DOUBLEREGULATING"},yi.DRAWOFFCOCK={type:3,value:"DRAWOFFCOCK"},yi.FAUCET={type:3,value:"FAUCET"},yi.FLUSHING={type:3,value:"FLUSHING"},yi.GASCOCK={type:3,value:"GASCOCK"},yi.GASTAP={type:3,value:"GASTAP"},yi.ISOLATING={type:3,value:"ISOLATING"},yi.MIXING={type:3,value:"MIXING"},yi.PRESSUREREDUCING={type:3,value:"PRESSUREREDUCING"},yi.PRESSURERELIEF={type:3,value:"PRESSURERELIEF"},yi.REGULATING={type:3,value:"REGULATING"},yi.SAFETYCUTOFF={type:3,value:"SAFETYCUTOFF"},yi.STEAMTRAP={type:3,value:"STEAMTRAP"},yi.STOPCOCK={type:3,value:"STOPCOCK"},yi.USERDEFINED={type:3,value:"USERDEFINED"},yi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcValveTypeEnum=yi;class Ei{}Ei.CARGO={type:3,value:"CARGO"},Ei.ROLLINGSTOCK={type:3,value:"ROLLINGSTOCK"},Ei.VEHICLE={type:3,value:"VEHICLE"},Ei.VEHICLEAIR={type:3,value:"VEHICLEAIR"},Ei.VEHICLEMARINE={type:3,value:"VEHICLEMARINE"},Ei.VEHICLETRACKED={type:3,value:"VEHICLETRACKED"},Ei.VEHICLEWHEELED={type:3,value:"VEHICLEWHEELED"},Ei.USERDEFINED={type:3,value:"USERDEFINED"},Ei.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVehicleTypeEnum=Ei;class gi{}gi.AXIAL_YIELD={type:3,value:"AXIAL_YIELD"},gi.BENDING_YIELD={type:3,value:"BENDING_YIELD"},gi.FRICTION={type:3,value:"FRICTION"},gi.RUBBER={type:3,value:"RUBBER"},gi.SHEAR_YIELD={type:3,value:"SHEAR_YIELD"},gi.VISCOUS={type:3,value:"VISCOUS"},gi.USERDEFINED={type:3,value:"USERDEFINED"},gi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationDamperTypeEnum=gi;class vi{}vi.BASE={type:3,value:"BASE"},vi.COMPRESSION={type:3,value:"COMPRESSION"},vi.SPRING={type:3,value:"SPRING"},vi.USERDEFINED={type:3,value:"USERDEFINED"},vi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVibrationIsolatorTypeEnum=vi;class Ii{}Ii.BOUNDARY={type:3,value:"BOUNDARY"},Ii.CLEARANCE={type:3,value:"CLEARANCE"},Ii.PROVISIONFORVOID={type:3,value:"PROVISIONFORVOID"},Ii.USERDEFINED={type:3,value:"USERDEFINED"},Ii.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVirtualElementTypeEnum=Ii;class _i{}_i.CHAMFER={type:3,value:"CHAMFER"},_i.CUTOUT={type:3,value:"CUTOUT"},_i.EDGE={type:3,value:"EDGE"},_i.HOLE={type:3,value:"HOLE"},_i.MITER={type:3,value:"MITER"},_i.NOTCH={type:3,value:"NOTCH"},_i.USERDEFINED={type:3,value:"USERDEFINED"},_i.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcVoidingFeatureTypeEnum=_i;class Ti{}Ti.ELEMENTEDWALL={type:3,value:"ELEMENTEDWALL"},Ti.MOVABLE={type:3,value:"MOVABLE"},Ti.PARAPET={type:3,value:"PARAPET"},Ti.PARTITIONING={type:3,value:"PARTITIONING"},Ti.PLUMBINGWALL={type:3,value:"PLUMBINGWALL"},Ti.POLYGONAL={type:3,value:"POLYGONAL"},Ti.RETAININGWALL={type:3,value:"RETAININGWALL"},Ti.SHEAR={type:3,value:"SHEAR"},Ti.SOLIDWALL={type:3,value:"SOLIDWALL"},Ti.STANDARD={type:3,value:"STANDARD"},Ti.WAVEWALL={type:3,value:"WAVEWALL"},Ti.USERDEFINED={type:3,value:"USERDEFINED"},Ti.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWallTypeEnum=Ti;class Pi{}Pi.FLOORTRAP={type:3,value:"FLOORTRAP"},Pi.FLOORWASTE={type:3,value:"FLOORWASTE"},Pi.GULLYSUMP={type:3,value:"GULLYSUMP"},Pi.GULLYTRAP={type:3,value:"GULLYTRAP"},Pi.ROOFDRAIN={type:3,value:"ROOFDRAIN"},Pi.WASTEDISPOSALUNIT={type:3,value:"WASTEDISPOSALUNIT"},Pi.WASTETRAP={type:3,value:"WASTETRAP"},Pi.USERDEFINED={type:3,value:"USERDEFINED"},Pi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWasteTerminalTypeEnum=Pi;class bi{}bi.BOTTOMHUNG={type:3,value:"BOTTOMHUNG"},bi.FIXEDCASEMENT={type:3,value:"FIXEDCASEMENT"},bi.OTHEROPERATION={type:3,value:"OTHEROPERATION"},bi.PIVOTHORIZONTAL={type:3,value:"PIVOTHORIZONTAL"},bi.PIVOTVERTICAL={type:3,value:"PIVOTVERTICAL"},bi.REMOVABLECASEMENT={type:3,value:"REMOVABLECASEMENT"},bi.SIDEHUNGLEFTHAND={type:3,value:"SIDEHUNGLEFTHAND"},bi.SIDEHUNGRIGHTHAND={type:3,value:"SIDEHUNGRIGHTHAND"},bi.SLIDINGHORIZONTAL={type:3,value:"SLIDINGHORIZONTAL"},bi.SLIDINGVERTICAL={type:3,value:"SLIDINGVERTICAL"},bi.TILTANDTURNLEFTHAND={type:3,value:"TILTANDTURNLEFTHAND"},bi.TILTANDTURNRIGHTHAND={type:3,value:"TILTANDTURNRIGHTHAND"},bi.TOPHUNG={type:3,value:"TOPHUNG"},bi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelOperationEnum=bi;class Ri{}Ri.BOTTOM={type:3,value:"BOTTOM"},Ri.LEFT={type:3,value:"LEFT"},Ri.MIDDLE={type:3,value:"MIDDLE"},Ri.RIGHT={type:3,value:"RIGHT"},Ri.TOP={type:3,value:"TOP"},Ri.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowPanelPositionEnum=Ri;class Di{}Di.ALUMINIUM={type:3,value:"ALUMINIUM"},Di.ALUMINIUM_WOOD={type:3,value:"ALUMINIUM_WOOD"},Di.HIGH_GRADE_STEEL={type:3,value:"HIGH_GRADE_STEEL"},Di.OTHER_CONSTRUCTION={type:3,value:"OTHER_CONSTRUCTION"},Di.PLASTIC={type:3,value:"PLASTIC"},Di.STEEL={type:3,value:"STEEL"},Di.WOOD={type:3,value:"WOOD"},Di.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleConstructionEnum=Di;class Ci{}Ci.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},Ci.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},Ci.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},Ci.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},Ci.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},Ci.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},Ci.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},Ci.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},Ci.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},Ci.USERDEFINED={type:3,value:"USERDEFINED"},Ci.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowStyleOperationEnum=Ci;class Ni{}Ni.LIGHTDOME={type:3,value:"LIGHTDOME"},Ni.SKYLIGHT={type:3,value:"SKYLIGHT"},Ni.WINDOW={type:3,value:"WINDOW"},Ni.USERDEFINED={type:3,value:"USERDEFINED"},Ni.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypeEnum=Ni;class Oi{}Oi.DOUBLE_PANEL_HORIZONTAL={type:3,value:"DOUBLE_PANEL_HORIZONTAL"},Oi.DOUBLE_PANEL_VERTICAL={type:3,value:"DOUBLE_PANEL_VERTICAL"},Oi.SINGLE_PANEL={type:3,value:"SINGLE_PANEL"},Oi.TRIPLE_PANEL_BOTTOM={type:3,value:"TRIPLE_PANEL_BOTTOM"},Oi.TRIPLE_PANEL_HORIZONTAL={type:3,value:"TRIPLE_PANEL_HORIZONTAL"},Oi.TRIPLE_PANEL_LEFT={type:3,value:"TRIPLE_PANEL_LEFT"},Oi.TRIPLE_PANEL_RIGHT={type:3,value:"TRIPLE_PANEL_RIGHT"},Oi.TRIPLE_PANEL_TOP={type:3,value:"TRIPLE_PANEL_TOP"},Oi.TRIPLE_PANEL_VERTICAL={type:3,value:"TRIPLE_PANEL_VERTICAL"},Oi.USERDEFINED={type:3,value:"USERDEFINED"},Oi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWindowTypePartitioningEnum=Oi;class xi{}xi.FIRSTSHIFT={type:3,value:"FIRSTSHIFT"},xi.SECONDSHIFT={type:3,value:"SECONDSHIFT"},xi.THIRDSHIFT={type:3,value:"THIRDSHIFT"},xi.USERDEFINED={type:3,value:"USERDEFINED"},xi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkCalendarTypeEnum=xi;class Si{}Si.ACTUAL={type:3,value:"ACTUAL"},Si.BASELINE={type:3,value:"BASELINE"},Si.PLANNED={type:3,value:"PLANNED"},Si.USERDEFINED={type:3,value:"USERDEFINED"},Si.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkPlanTypeEnum=Si;class wi{}wi.ACTUAL={type:3,value:"ACTUAL"},wi.BASELINE={type:3,value:"BASELINE"},wi.PLANNED={type:3,value:"PLANNED"},wi.USERDEFINED={type:3,value:"USERDEFINED"},wi.NOTDEFINED={type:3,value:"NOTDEFINED"},e.IfcWorkScheduleTypeEnum=wi;e.IfcActorRole=class extends TI{constructor(e,t,s,i){super(e),this.Role=t,this.UserDefinedRole=s,this.Description=i,this.type=3630933823}};class Mi extends TI{constructor(e,t,s,i){super(e),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.type=618182010}}e.IfcAddress=Mi;class Bi extends TI{constructor(e,t,s){super(e),this.StartTag=t,this.EndTag=s,this.type=2879124712}}e.IfcAlignmentParameterSegment=Bi;e.IfcAlignmentVerticalSegment=class extends Bi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartDistAlong=i,this.HorizontalLength=r,this.StartHeight=o,this.StartGradient=n,this.EndGradient=a,this.RadiusOfCurvature=l,this.PredefinedType=h,this.type=3633395639}};e.IfcApplication=class extends TI{constructor(e,t,s,i,r){super(e),this.ApplicationDeveloper=t,this.Version=s,this.ApplicationFullName=i,this.ApplicationIdentifier=r,this.type=639542469}};class Fi extends TI{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.Category=a,this.Condition=l,this.ArithmeticOperator=h,this.Components=c,this.type=411424972}}e.IfcAppliedValue=Fi;e.IfcApproval=class extends TI{constructor(e,t,s,i,r,o,n,a,l,h){super(e),this.Identifier=t,this.Name=s,this.Description=i,this.TimeOfApproval=r,this.Status=o,this.Level=n,this.Qualifier=a,this.RequestingApproval=l,this.GivingApproval=h,this.type=130549933}};class Li extends TI{constructor(e,t){super(e),this.Name=t,this.type=4037036970}}e.IfcBoundaryCondition=Li;e.IfcBoundaryEdgeCondition=class extends Li{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TranslationalStiffnessByLengthX=s,this.TranslationalStiffnessByLengthY=i,this.TranslationalStiffnessByLengthZ=r,this.RotationalStiffnessByLengthX=o,this.RotationalStiffnessByLengthY=n,this.RotationalStiffnessByLengthZ=a,this.type=1560379544}};e.IfcBoundaryFaceCondition=class extends Li{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.TranslationalStiffnessByAreaX=s,this.TranslationalStiffnessByAreaY=i,this.TranslationalStiffnessByAreaZ=r,this.type=3367102660}};class Ui extends Li{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=i,this.TranslationalStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.type=1387855156}}e.IfcBoundaryNodeCondition=Ui;e.IfcBoundaryNodeConditionWarping=class extends Ui{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.TranslationalStiffnessX=s,this.TranslationalStiffnessY=i,this.TranslationalStiffnessZ=r,this.RotationalStiffnessX=o,this.RotationalStiffnessY=n,this.RotationalStiffnessZ=a,this.WarpingStiffness=l,this.type=2069777674}};class Hi extends TI{constructor(e){super(e),this.type=2859738748}}e.IfcConnectionGeometry=Hi;class Gi extends Hi{constructor(e,t,s){super(e),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.type=2614616156}}e.IfcConnectionPointGeometry=Gi;e.IfcConnectionSurfaceGeometry=class extends Hi{constructor(e,t,s){super(e),this.SurfaceOnRelatingElement=t,this.SurfaceOnRelatedElement=s,this.type=2732653382}};e.IfcConnectionVolumeGeometry=class extends Hi{constructor(e,t,s){super(e),this.VolumeOnRelatingElement=t,this.VolumeOnRelatedElement=s,this.type=775493141}};class ki extends TI{constructor(e,t,s,i,r,o,n,a){super(e),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.type=1959218052}}e.IfcConstraint=ki;class Vi extends TI{constructor(e,t,s){super(e),this.SourceCRS=t,this.TargetCRS=s,this.type=1785450214}}e.IfcCoordinateOperation=Vi;class ji extends TI{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.GeodeticDatum=i,this.VerticalDatum=r,this.type=1466758467}}e.IfcCoordinateReferenceSystem=ji;e.IfcCostValue=class extends Fi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h,c),this.Name=t,this.Description=s,this.AppliedValue=i,this.UnitBasis=r,this.ApplicableDate=o,this.FixedUntilDate=n,this.Category=a,this.Condition=l,this.ArithmeticOperator=h,this.Components=c,this.type=602808272}};e.IfcDerivedUnit=class extends TI{constructor(e,t,s,i,r){super(e),this.Elements=t,this.UnitType=s,this.UserDefinedType=i,this.Name=r,this.type=1765591967}};e.IfcDerivedUnitElement=class extends TI{constructor(e,t,s){super(e),this.Unit=t,this.Exponent=s,this.type=1045800335}};e.IfcDimensionalExponents=class extends TI{constructor(e,t,s,i,r,o,n,a){super(e),this.LengthExponent=t,this.MassExponent=s,this.TimeExponent=i,this.ElectricCurrentExponent=r,this.ThermodynamicTemperatureExponent=o,this.AmountOfSubstanceExponent=n,this.LuminousIntensityExponent=a,this.type=2949456006}};class Qi extends TI{constructor(e){super(e),this.type=4294318154}}e.IfcExternalInformation=Qi;class Wi extends TI{constructor(e,t,s,i){super(e),this.Location=t,this.Identification=s,this.Name=i,this.type=3200245327}}e.IfcExternalReference=Wi;e.IfcExternallyDefinedHatchStyle=class extends Wi{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=2242383968}};e.IfcExternallyDefinedSurfaceStyle=class extends Wi{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=1040185647}};e.IfcExternallyDefinedTextFont=class extends Wi{constructor(e,t,s,i){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.type=3548104201}};e.IfcGridAxis=class extends TI{constructor(e,t,s,i){super(e),this.AxisTag=t,this.AxisCurve=s,this.SameSense=i,this.type=852622518}};e.IfcIrregularTimeSeriesValue=class extends TI{constructor(e,t,s){super(e),this.TimeStamp=t,this.ListValues=s,this.type=3020489413}};e.IfcLibraryInformation=class extends Qi{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Version=s,this.Publisher=i,this.VersionDate=r,this.Location=o,this.Description=n,this.type=2655187982}};e.IfcLibraryReference=class extends Wi{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.Description=r,this.Language=o,this.ReferencedLibrary=n,this.type=3452421091}};e.IfcLightDistributionData=class extends TI{constructor(e,t,s,i){super(e),this.MainPlaneAngle=t,this.SecondaryPlaneAngle=s,this.LuminousIntensity=i,this.type=4162380809}};e.IfcLightIntensityDistribution=class extends TI{constructor(e,t,s){super(e),this.LightDistributionCurve=t,this.DistributionData=s,this.type=1566485204}};e.IfcMapConversion=class extends Vi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s),this.SourceCRS=t,this.TargetCRS=s,this.Eastings=i,this.Northings=r,this.OrthogonalHeight=o,this.XAxisAbscissa=n,this.XAxisOrdinate=a,this.Scale=l,this.ScaleY=h,this.ScaleZ=c,this.type=3057273783}};e.IfcMaterialClassificationRelationship=class extends TI{constructor(e,t,s){super(e),this.MaterialClassifications=t,this.ClassifiedMaterial=s,this.type=1847130766}};class zi extends TI{constructor(e){super(e),this.type=760658860}}e.IfcMaterialDefinition=zi;class Ki extends zi{constructor(e,t,s,i,r,o,n,a){super(e),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.Name=r,this.Description=o,this.Category=n,this.Priority=a,this.type=248100487}}e.IfcMaterialLayer=Ki;e.IfcMaterialLayerSet=class extends zi{constructor(e,t,s,i){super(e),this.MaterialLayers=t,this.LayerSetName=s,this.Description=i,this.type=3303938423}};e.IfcMaterialLayerWithOffsets=class extends Ki{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.Material=t,this.LayerThickness=s,this.IsVentilated=i,this.Name=r,this.Description=o,this.Category=n,this.Priority=a,this.OffsetDirection=l,this.OffsetValues=h,this.type=1847252529}};e.IfcMaterialList=class extends TI{constructor(e,t){super(e),this.Materials=t,this.type=2199411900}};class Yi extends zi{constructor(e,t,s,i,r,o,n){super(e),this.Name=t,this.Description=s,this.Material=i,this.Profile=r,this.Priority=o,this.Category=n,this.type=2235152071}}e.IfcMaterialProfile=Yi;e.IfcMaterialProfileSet=class extends zi{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.MaterialProfiles=i,this.CompositeProfile=r,this.type=164193824}};e.IfcMaterialProfileWithOffsets=class extends Yi{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.Name=t,this.Description=s,this.Material=i,this.Profile=r,this.Priority=o,this.Category=n,this.OffsetValues=a,this.type=552965576}};class Xi extends TI{constructor(e){super(e),this.type=1507914824}}e.IfcMaterialUsageDefinition=Xi;e.IfcMeasureWithUnit=class extends TI{constructor(e,t,s){super(e),this.ValueComponent=t,this.UnitComponent=s,this.type=2597039031}};e.IfcMetric=class extends ki{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.Benchmark=l,this.ValueSource=h,this.DataValue=c,this.ReferencePath=u,this.type=3368373690}};e.IfcMonetaryUnit=class extends TI{constructor(e,t){super(e),this.Currency=t,this.type=2706619895}};class Zi extends TI{constructor(e,t,s){super(e),this.Dimensions=t,this.UnitType=s,this.type=1918398963}}e.IfcNamedUnit=Zi;class qi extends TI{constructor(e,t){super(e),this.PlacementRelTo=t,this.type=3701648758}}e.IfcObjectPlacement=qi;e.IfcObjective=class extends ki{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.Name=t,this.Description=s,this.ConstraintGrade=i,this.ConstraintSource=r,this.CreatingActor=o,this.CreationTime=n,this.UserDefinedGrade=a,this.BenchmarkValues=l,this.LogicalAggregator=h,this.ObjectiveQualifier=c,this.UserDefinedQualifier=u,this.type=2251480897}};e.IfcOrganization=class extends TI{constructor(e,t,s,i,r,o){super(e),this.Identification=t,this.Name=s,this.Description=i,this.Roles=r,this.Addresses=o,this.type=4251960020}};e.IfcOwnerHistory=class extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.OwningUser=t,this.OwningApplication=s,this.State=i,this.ChangeAction=r,this.LastModifiedDate=o,this.LastModifyingUser=n,this.LastModifyingApplication=a,this.CreationDate=l,this.type=1207048766}};e.IfcPerson=class extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Identification=t,this.FamilyName=s,this.GivenName=i,this.MiddleNames=r,this.PrefixTitles=o,this.SuffixTitles=n,this.Roles=a,this.Addresses=l,this.type=2077209135}};e.IfcPersonAndOrganization=class extends TI{constructor(e,t,s,i){super(e),this.ThePerson=t,this.TheOrganization=s,this.Roles=i,this.type=101040310}};class Ji extends TI{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2483315170}}e.IfcPhysicalQuantity=Ji;class $i extends Ji{constructor(e,t,s,i){super(e,t,s),this.Name=t,this.Description=s,this.Unit=i,this.type=2226359599}}e.IfcPhysicalSimpleQuantity=$i;e.IfcPostalAddress=class extends Mi{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.InternalLocation=r,this.AddressLines=o,this.PostalBox=n,this.Town=a,this.Region=l,this.PostalCode=h,this.Country=c,this.type=3355820592}};class er extends TI{constructor(e){super(e),this.type=677532197}}e.IfcPresentationItem=er;class tr extends TI{constructor(e,t,s,i,r){super(e),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.type=2022622350}}e.IfcPresentationLayerAssignment=tr;e.IfcPresentationLayerWithStyle=class extends tr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r),this.Name=t,this.Description=s,this.AssignedItems=i,this.Identifier=r,this.LayerOn=o,this.LayerFrozen=n,this.LayerBlocked=a,this.LayerStyles=l,this.type=1304840413}};class sr extends TI{constructor(e,t){super(e),this.Name=t,this.type=3119450353}}e.IfcPresentationStyle=sr;class ir extends TI{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Representations=i,this.type=2095639259}}e.IfcProductRepresentation=ir;class rr extends TI{constructor(e,t,s){super(e),this.ProfileType=t,this.ProfileName=s,this.type=3958567839}}e.IfcProfileDef=rr;e.IfcProjectedCRS=class extends ji{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.Name=t,this.Description=s,this.GeodeticDatum=i,this.VerticalDatum=r,this.MapProjection=o,this.MapZone=n,this.MapUnit=a,this.type=3843373140}};class or extends TI{constructor(e){super(e),this.type=986844984}}e.IfcPropertyAbstraction=or;e.IfcPropertyEnumeration=class extends or{constructor(e,t,s,i){super(e),this.Name=t,this.EnumerationValues=s,this.Unit=i,this.type=3710013099}};e.IfcQuantityArea=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.AreaValue=r,this.Formula=o,this.type=2044713172}};e.IfcQuantityCount=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.CountValue=r,this.Formula=o,this.type=2093928680}};e.IfcQuantityLength=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.LengthValue=r,this.Formula=o,this.type=931644368}};e.IfcQuantityNumber=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.NumberValue=r,this.Formula=o,this.type=2691318326}};e.IfcQuantityTime=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.TimeValue=r,this.Formula=o,this.type=3252649465}};e.IfcQuantityVolume=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.VolumeValue=r,this.Formula=o,this.type=2405470396}};e.IfcQuantityWeight=class extends $i{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.Description=s,this.Unit=i,this.WeightValue=r,this.Formula=o,this.type=825690147}};e.IfcRecurrencePattern=class extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.RecurrenceType=t,this.DayComponent=s,this.WeekdayComponent=i,this.MonthComponent=r,this.Position=o,this.Interval=n,this.Occurrences=a,this.TimePeriods=l,this.type=3915482550}};e.IfcReference=class extends TI{constructor(e,t,s,i,r,o){super(e),this.TypeIdentifier=t,this.AttributeIdentifier=s,this.InstanceName=i,this.ListPositions=r,this.InnerReference=o,this.type=2433181523}};class nr extends TI{constructor(e,t,s,i,r){super(e),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1076942058}}e.IfcRepresentation=nr;class ar extends TI{constructor(e,t,s){super(e),this.ContextIdentifier=t,this.ContextType=s,this.type=3377609919}}e.IfcRepresentationContext=ar;class lr extends TI{constructor(e){super(e),this.type=3008791417}}e.IfcRepresentationItem=lr;e.IfcRepresentationMap=class extends TI{constructor(e,t,s){super(e),this.MappingOrigin=t,this.MappedRepresentation=s,this.type=1660063152}};class hr extends TI{constructor(e,t,s){super(e),this.Name=t,this.Description=s,this.type=2439245199}}e.IfcResourceLevelRelationship=hr;class cr extends TI{constructor(e,t,s,i,r){super(e),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2341007311}}e.IfcRoot=cr;e.IfcSIUnit=class extends Zi{constructor(e,t,s,i,r){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Prefix=i,this.Name=r,this.type=448429030}};class ur extends TI{constructor(e,t,s,i){super(e),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.type=1054537805}}e.IfcSchedulingTime=ur;e.IfcShapeAspect=class extends TI{constructor(e,t,s,i,r,o){super(e),this.ShapeRepresentations=t,this.Name=s,this.Description=i,this.ProductDefinitional=r,this.PartOfProductDefinitionShape=o,this.type=867548509}};class Ar extends nr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3982875396}}e.IfcShapeModel=Ar;e.IfcShapeRepresentation=class extends Ar{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=4240577450}};class pr extends TI{constructor(e,t){super(e),this.Name=t,this.type=2273995522}}e.IfcStructuralConnectionCondition=pr;class dr extends TI{constructor(e,t){super(e),this.Name=t,this.type=2162789131}}e.IfcStructuralLoad=dr;e.IfcStructuralLoadConfiguration=class extends dr{constructor(e,t,s,i){super(e,t),this.Name=t,this.Values=s,this.Locations=i,this.type=3478079324}};class fr extends dr{constructor(e,t){super(e,t),this.Name=t,this.type=609421318}}e.IfcStructuralLoadOrResult=fr;class mr extends fr{constructor(e,t){super(e,t),this.Name=t,this.type=2525727697}}e.IfcStructuralLoadStatic=mr;e.IfcStructuralLoadTemperature=class extends mr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.DeltaTConstant=s,this.DeltaTY=i,this.DeltaTZ=r,this.type=3408363356}};class yr extends nr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=2830218821}}e.IfcStyleModel=yr;e.IfcStyledItem=class extends lr{constructor(e,t,s,i){super(e),this.Item=t,this.Styles=s,this.Name=i,this.type=3958052878}};e.IfcStyledRepresentation=class extends yr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=3049322572}};e.IfcSurfaceReinforcementArea=class extends fr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SurfaceReinforcement1=s,this.SurfaceReinforcement2=i,this.ShearReinforcement=r,this.type=2934153892}};e.IfcSurfaceStyle=class extends sr{constructor(e,t,s,i){super(e,t),this.Name=t,this.Side=s,this.Styles=i,this.type=1300840506}};e.IfcSurfaceStyleLighting=class extends er{constructor(e,t,s,i,r){super(e),this.DiffuseTransmissionColour=t,this.DiffuseReflectionColour=s,this.TransmissionColour=i,this.ReflectanceColour=r,this.type=3303107099}};e.IfcSurfaceStyleRefraction=class extends er{constructor(e,t,s){super(e),this.RefractionIndex=t,this.DispersionFactor=s,this.type=1607154358}};class Er extends er{constructor(e,t,s){super(e),this.SurfaceColour=t,this.Transparency=s,this.type=846575682}}e.IfcSurfaceStyleShading=Er;e.IfcSurfaceStyleWithTextures=class extends er{constructor(e,t){super(e),this.Textures=t,this.type=1351298697}};class gr extends er{constructor(e,t,s,i,r,o){super(e),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.type=626085974}}e.IfcSurfaceTexture=gr;e.IfcTable=class extends TI{constructor(e,t,s,i){super(e),this.Name=t,this.Rows=s,this.Columns=i,this.type=985171141}};e.IfcTableColumn=class extends TI{constructor(e,t,s,i,r,o){super(e),this.Identifier=t,this.Name=s,this.Description=i,this.Unit=r,this.ReferencePath=o,this.type=2043862942}};e.IfcTableRow=class extends TI{constructor(e,t,s){super(e),this.RowCells=t,this.IsHeading=s,this.type=531007025}};class vr extends ur{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.DurationType=r,this.ScheduleDuration=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.EarlyStart=l,this.EarlyFinish=h,this.LateStart=c,this.LateFinish=u,this.FreeFloat=A,this.TotalFloat=p,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=m,this.ActualStart=y,this.ActualFinish=E,this.RemainingTime=g,this.Completion=v,this.type=1549132990}}e.IfcTaskTime=vr;e.IfcTaskTimeRecurring=class extends vr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v,I){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.DurationType=r,this.ScheduleDuration=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.EarlyStart=l,this.EarlyFinish=h,this.LateStart=c,this.LateFinish=u,this.FreeFloat=A,this.TotalFloat=p,this.IsCritical=d,this.StatusTime=f,this.ActualDuration=m,this.ActualStart=y,this.ActualFinish=E,this.RemainingTime=g,this.Completion=v,this.Recurrence=I,this.type=2771591690}};e.IfcTelecomAddress=class extends Mi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.Purpose=t,this.Description=s,this.UserDefinedPurpose=i,this.TelephoneNumbers=r,this.FacsimileNumbers=o,this.PagerNumber=n,this.ElectronicMailAddresses=a,this.WWWHomePageURL=l,this.MessagingIDs=h,this.type=912023232}};e.IfcTextStyle=class extends sr{constructor(e,t,s,i,r,o){super(e,t),this.Name=t,this.TextCharacterAppearance=s,this.TextStyle=i,this.TextFontStyle=r,this.ModelOrDraughting=o,this.type=1447204868}};e.IfcTextStyleForDefinedFont=class extends er{constructor(e,t,s){super(e),this.Colour=t,this.BackgroundColour=s,this.type=2636378356}};e.IfcTextStyleTextModel=class extends er{constructor(e,t,s,i,r,o,n,a){super(e),this.TextIndent=t,this.TextAlign=s,this.TextDecoration=i,this.LetterSpacing=r,this.WordSpacing=o,this.TextTransform=n,this.LineHeight=a,this.type=1640371178}};class Ir extends er{constructor(e,t){super(e),this.Maps=t,this.type=280115917}}e.IfcTextureCoordinate=Ir;e.IfcTextureCoordinateGenerator=class extends Ir{constructor(e,t,s,i){super(e,t),this.Maps=t,this.Mode=s,this.Parameter=i,this.type=1742049831}};class _r extends TI{constructor(e,t,s){super(e),this.TexCoordIndex=t,this.TexCoordsOf=s,this.type=222769930}}e.IfcTextureCoordinateIndices=_r;e.IfcTextureCoordinateIndicesWithVoids=class extends _r{constructor(e,t,s,i){super(e,t,s),this.TexCoordIndex=t,this.TexCoordsOf=s,this.InnerTexCoordIndices=i,this.type=1010789467}};e.IfcTextureMap=class extends Ir{constructor(e,t,s,i){super(e,t),this.Maps=t,this.Vertices=s,this.MappedTo=i,this.type=2552916305}};e.IfcTextureVertex=class extends er{constructor(e,t){super(e),this.Coordinates=t,this.type=1210645708}};e.IfcTextureVertexList=class extends er{constructor(e,t){super(e),this.TexCoordsList=t,this.type=3611470254}};e.IfcTimePeriod=class extends TI{constructor(e,t,s){super(e),this.StartTime=t,this.EndTime=s,this.type=1199560280}};class Tr extends TI{constructor(e,t,s,i,r,o,n,a,l){super(e),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.type=3101149627}}e.IfcTimeSeries=Tr;e.IfcTimeSeriesValue=class extends TI{constructor(e,t){super(e),this.ListValues=t,this.type=581633288}};class Pr extends lr{constructor(e){super(e),this.type=1377556343}}e.IfcTopologicalRepresentationItem=Pr;e.IfcTopologyRepresentation=class extends Ar{constructor(e,t,s,i,r){super(e,t,s,i,r),this.ContextOfItems=t,this.RepresentationIdentifier=s,this.RepresentationType=i,this.Items=r,this.type=1735638870}};e.IfcUnitAssignment=class extends TI{constructor(e,t){super(e),this.Units=t,this.type=180925521}};class br extends Pr{constructor(e){super(e),this.type=2799835756}}e.IfcVertex=br;e.IfcVertexPoint=class extends br{constructor(e,t){super(e),this.VertexGeometry=t,this.type=1907098498}};e.IfcVirtualGridIntersection=class extends TI{constructor(e,t,s){super(e),this.IntersectingAxes=t,this.OffsetDistances=s,this.type=891718957}};e.IfcWorkTime=class extends ur{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.RecurrencePattern=r,this.StartDate=o,this.FinishDate=n,this.type=1236880293}};e.IfcAlignmentCantSegment=class extends Bi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartDistAlong=i,this.HorizontalLength=r,this.StartCantLeft=o,this.EndCantLeft=n,this.StartCantRight=a,this.EndCantRight=l,this.PredefinedType=h,this.type=3752311538}};e.IfcAlignmentHorizontalSegment=class extends Bi{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.StartTag=t,this.EndTag=s,this.StartPoint=i,this.StartDirection=r,this.StartRadiusOfCurvature=o,this.EndRadiusOfCurvature=n,this.SegmentLength=a,this.GravityCenterLineHeight=l,this.PredefinedType=h,this.type=536804194}};e.IfcApprovalRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingApproval=i,this.RelatedApprovals=r,this.type=3869604511}};class Rr extends rr{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.type=3798115385}}e.IfcArbitraryClosedProfileDef=Rr;class Dr extends rr{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.type=1310608509}}e.IfcArbitraryOpenProfileDef=Dr;e.IfcArbitraryProfileDefWithVoids=class extends Rr{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.OuterCurve=i,this.InnerCurves=r,this.type=2705031697}};e.IfcBlobTexture=class extends gr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.RasterFormat=n,this.RasterCode=a,this.type=616511568}};e.IfcCenterLineProfileDef=class extends Dr{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Curve=i,this.Thickness=r,this.type=3150382593}};e.IfcClassification=class extends Qi{constructor(e,t,s,i,r,o,n,a){super(e),this.Source=t,this.Edition=s,this.EditionDate=i,this.Name=r,this.Description=o,this.Specification=n,this.ReferenceTokens=a,this.type=747523909}};e.IfcClassificationReference=class extends Wi{constructor(e,t,s,i,r,o,n){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.ReferencedSource=r,this.Description=o,this.Sort=n,this.type=647927063}};e.IfcColourRgbList=class extends er{constructor(e,t){super(e),this.ColourList=t,this.type=3285139300}};class Cr extends er{constructor(e,t){super(e),this.Name=t,this.type=3264961684}}e.IfcColourSpecification=Cr;e.IfcCompositeProfileDef=class extends rr{constructor(e,t,s,i,r){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Profiles=i,this.Label=r,this.type=1485152156}};class Nr extends Pr{constructor(e,t){super(e),this.CfsFaces=t,this.type=370225590}}e.IfcConnectedFaceSet=Nr;e.IfcConnectionCurveGeometry=class extends Hi{constructor(e,t,s){super(e),this.CurveOnRelatingElement=t,this.CurveOnRelatedElement=s,this.type=1981873012}};e.IfcConnectionPointEccentricity=class extends Gi{constructor(e,t,s,i,r,o){super(e,t,s),this.PointOnRelatingElement=t,this.PointOnRelatedElement=s,this.EccentricityInX=i,this.EccentricityInY=r,this.EccentricityInZ=o,this.type=45288368}};e.IfcContextDependentUnit=class extends Zi{constructor(e,t,s,i){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.type=3050246964}};class Or extends Zi{constructor(e,t,s,i,r){super(e,t,s),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.type=2889183280}}e.IfcConversionBasedUnit=Or;e.IfcConversionBasedUnitWithOffset=class extends Or{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Dimensions=t,this.UnitType=s,this.Name=i,this.ConversionFactor=r,this.ConversionOffset=o,this.type=2713554722}};e.IfcCurrencyRelationship=class extends hr{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMonetaryUnit=i,this.RelatedMonetaryUnit=r,this.ExchangeRate=o,this.RateDateTime=n,this.RateSource=a,this.type=539742890}};e.IfcCurveStyle=class extends sr{constructor(e,t,s,i,r,o){super(e,t),this.Name=t,this.CurveFont=s,this.CurveWidth=i,this.CurveColour=r,this.ModelOrDraughting=o,this.type=3800577675}};e.IfcCurveStyleFont=class extends er{constructor(e,t,s){super(e),this.Name=t,this.PatternList=s,this.type=1105321065}};e.IfcCurveStyleFontAndScaling=class extends er{constructor(e,t,s,i){super(e),this.Name=t,this.CurveStyleFont=s,this.CurveFontScaling=i,this.type=2367409068}};e.IfcCurveStyleFontPattern=class extends er{constructor(e,t,s){super(e),this.VisibleSegmentLength=t,this.InvisibleSegmentLength=s,this.type=3510044353}};class xr extends rr{constructor(e,t,s,i,r,o){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Operator=r,this.Label=o,this.type=3632507154}}e.IfcDerivedProfileDef=xr;e.IfcDocumentInformation=class extends Qi{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e),this.Identification=t,this.Name=s,this.Description=i,this.Location=r,this.Purpose=o,this.IntendedUse=n,this.Scope=a,this.Revision=l,this.DocumentOwner=h,this.Editors=c,this.CreationTime=u,this.LastRevisionTime=A,this.ElectronicFormat=p,this.ValidFrom=d,this.ValidUntil=f,this.Confidentiality=m,this.Status=y,this.type=1154170062}};e.IfcDocumentInformationRelationship=class extends hr{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.RelatingDocument=i,this.RelatedDocuments=r,this.RelationshipType=o,this.type=770865208}};e.IfcDocumentReference=class extends Wi{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Location=t,this.Identification=s,this.Name=i,this.Description=r,this.ReferencedDocument=o,this.type=3732053477}};class Sr extends Pr{constructor(e,t,s){super(e),this.EdgeStart=t,this.EdgeEnd=s,this.type=3900360178}}e.IfcEdge=Sr;e.IfcEdgeCurve=class extends Sr{constructor(e,t,s,i,r){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.EdgeGeometry=i,this.SameSense=r,this.type=476780140}};e.IfcEventTime=class extends ur{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.ActualDate=r,this.EarlyDate=o,this.LateDate=n,this.ScheduleDate=a,this.type=211053100}};class wr extends or{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Properties=i,this.type=297599258}}e.IfcExtendedProperties=wr;e.IfcExternalReferenceRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingReference=i,this.RelatedResourceObjects=r,this.type=1437805879}};class Mr extends Pr{constructor(e,t){super(e),this.Bounds=t,this.type=2556980723}}e.IfcFace=Mr;class Br extends Pr{constructor(e,t,s){super(e),this.Bound=t,this.Orientation=s,this.type=1809719519}}e.IfcFaceBound=Br;e.IfcFaceOuterBound=class extends Br{constructor(e,t,s){super(e,t,s),this.Bound=t,this.Orientation=s,this.type=803316827}};class Fr extends Mr{constructor(e,t,s,i){super(e,t),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3008276851}}e.IfcFaceSurface=Fr;e.IfcFailureConnectionCondition=class extends pr{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.TensionFailureX=s,this.TensionFailureY=i,this.TensionFailureZ=r,this.CompressionFailureX=o,this.CompressionFailureY=n,this.CompressionFailureZ=a,this.type=4219587988}};e.IfcFillAreaStyle=class extends sr{constructor(e,t,s,i){super(e,t),this.Name=t,this.FillStyles=s,this.ModelOrDraughting=i,this.type=738692330}};class Lr extends ar{constructor(e,t,s,i,r,o,n){super(e,t,s),this.ContextIdentifier=t,this.ContextType=s,this.CoordinateSpaceDimension=i,this.Precision=r,this.WorldCoordinateSystem=o,this.TrueNorth=n,this.type=3448662350}}e.IfcGeometricRepresentationContext=Lr;class Ur extends lr{constructor(e){super(e),this.type=2453401579}}e.IfcGeometricRepresentationItem=Ur;e.IfcGeometricRepresentationSubContext=class extends Lr{constructor(e,s,i,r,o,n,a,l){super(e,s,i,new t(0),null,r,null),this.ContextIdentifier=s,this.ContextType=i,this.WorldCoordinateSystem=r,this.ParentContext=o,this.TargetScale=n,this.TargetView=a,this.UserDefinedTargetView=l,this.type=4142052618}};class Hr extends Ur{constructor(e,t){super(e),this.Elements=t,this.type=3590301190}}e.IfcGeometricSet=Hr;e.IfcGridPlacement=class extends qi{constructor(e,t,s,i){super(e,t),this.PlacementRelTo=t,this.PlacementLocation=s,this.PlacementRefDirection=i,this.type=178086475}};class Gr extends Ur{constructor(e,t,s){super(e),this.BaseSurface=t,this.AgreementFlag=s,this.type=812098782}}e.IfcHalfSpaceSolid=Gr;e.IfcImageTexture=class extends gr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.URLReference=n,this.type=3905492369}};e.IfcIndexedColourMap=class extends er{constructor(e,t,s,i,r){super(e),this.MappedTo=t,this.Opacity=s,this.Colours=i,this.ColourIndex=r,this.type=3570813810}};class kr extends Ir{constructor(e,t,s,i){super(e,t),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.type=1437953363}}e.IfcIndexedTextureMap=kr;e.IfcIndexedTriangleTextureMap=class extends kr{constructor(e,t,s,i,r){super(e,t,s,i),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.TexCoordIndex=r,this.type=2133299955}};e.IfcIrregularTimeSeries=class extends Tr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.Values=h,this.type=3741457305}};e.IfcLagTime=class extends ur{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.LagValue=r,this.DurationType=o,this.type=1585845231}};class Vr extends Ur{constructor(e,t,s,i,r){super(e),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=1402838566}}e.IfcLightSource=Vr;e.IfcLightSourceAmbient=class extends Vr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.type=125510826}};e.IfcLightSourceDirectional=class extends Vr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Orientation=o,this.type=2604431987}};e.IfcLightSourceGoniometric=class extends Vr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.ColourAppearance=n,this.ColourTemperature=a,this.LuminousFlux=l,this.LightEmissionSource=h,this.LightDistributionDataSource=c,this.type=4266656042}};class jr extends Vr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.type=1520743889}}e.IfcLightSourcePositional=jr;e.IfcLightSourceSpot=class extends jr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.Name=t,this.LightColour=s,this.AmbientIntensity=i,this.Intensity=r,this.Position=o,this.Radius=n,this.ConstantAttenuation=a,this.DistanceAttenuation=l,this.QuadricAttenuation=h,this.Orientation=c,this.ConcentrationExponent=u,this.SpreadAngle=A,this.BeamWidthAngle=p,this.type=3422422726}};e.IfcLinearPlacement=class extends qi{constructor(e,t,s,i){super(e,t),this.PlacementRelTo=t,this.RelativePlacement=s,this.CartesianPosition=i,this.type=388784114}};e.IfcLocalPlacement=class extends qi{constructor(e,t,s){super(e,t),this.PlacementRelTo=t,this.RelativePlacement=s,this.type=2624227202}};class Qr extends Pr{constructor(e){super(e),this.type=1008929658}}e.IfcLoop=Qr;e.IfcMappedItem=class extends lr{constructor(e,t,s){super(e),this.MappingSource=t,this.MappingTarget=s,this.type=2347385850}};e.IfcMaterial=class extends zi{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.Category=i,this.type=1838606355}};e.IfcMaterialConstituent=class extends zi{constructor(e,t,s,i,r,o){super(e),this.Name=t,this.Description=s,this.Material=i,this.Fraction=r,this.Category=o,this.type=3708119e3}};e.IfcMaterialConstituentSet=class extends zi{constructor(e,t,s,i){super(e),this.Name=t,this.Description=s,this.MaterialConstituents=i,this.type=2852063980}};e.IfcMaterialDefinitionRepresentation=class extends ir{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.RepresentedMaterial=r,this.type=2022407955}};e.IfcMaterialLayerSetUsage=class extends Xi{constructor(e,t,s,i,r,o){super(e),this.ForLayerSet=t,this.LayerSetDirection=s,this.DirectionSense=i,this.OffsetFromReferenceLine=r,this.ReferenceExtent=o,this.type=1303795690}};class Wr extends Xi{constructor(e,t,s,i){super(e),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=i,this.type=3079605661}}e.IfcMaterialProfileSetUsage=Wr;e.IfcMaterialProfileSetUsageTapering=class extends Wr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ForProfileSet=t,this.CardinalPoint=s,this.ReferenceExtent=i,this.ForProfileEndSet=r,this.CardinalEndPoint=o,this.type=3404854881}};e.IfcMaterialProperties=class extends wr{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Properties=i,this.Material=r,this.type=3265635763}};e.IfcMaterialRelationship=class extends hr{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.RelatingMaterial=i,this.RelatedMaterials=r,this.MaterialExpression=o,this.type=853536259}};e.IfcMirroredProfileDef=class extends xr{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.ParentProfile=i,this.Operator=r,this.Label=o,this.type=2998442950}};class zr extends cr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=219451334}}e.IfcObjectDefinition=zr;e.IfcOpenCrossProfileDef=class extends rr{constructor(e,t,s,i,r,o,n,a){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.HorizontalWidths=i,this.Widths=r,this.Slopes=o,this.Tags=n,this.OffsetPoint=a,this.type=182550632}};e.IfcOpenShell=class extends Nr{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2665983363}};e.IfcOrganizationRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingOrganization=i,this.RelatedOrganizations=r,this.type=1411181986}};e.IfcOrientedEdge=class extends Sr{constructor(e,t,s,i){super(e,t,new _I(0)),this.EdgeStart=t,this.EdgeElement=s,this.Orientation=i,this.type=1029017970}};class Kr extends rr{constructor(e,t,s,i){super(e,t,s),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.type=2529465313}}e.IfcParameterizedProfileDef=Kr;e.IfcPath=class extends Pr{constructor(e,t){super(e),this.EdgeList=t,this.type=2519244187}};e.IfcPhysicalComplexQuantity=class extends Ji{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Description=s,this.HasQuantities=i,this.Discrimination=r,this.Quality=o,this.Usage=n,this.type=3021840470}};e.IfcPixelTexture=class extends gr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o),this.RepeatS=t,this.RepeatT=s,this.Mode=i,this.TextureTransform=r,this.Parameter=o,this.Width=n,this.Height=a,this.ColourComponents=l,this.Pixel=h,this.type=597895409}};class Yr extends Ur{constructor(e,t){super(e),this.Location=t,this.type=2004835150}}e.IfcPlacement=Yr;class Xr extends Ur{constructor(e,t,s){super(e),this.SizeInX=t,this.SizeInY=s,this.type=1663979128}}e.IfcPlanarExtent=Xr;class Zr extends Ur{constructor(e){super(e),this.type=2067069095}}e.IfcPoint=Zr;e.IfcPointByDistanceExpression=class extends Zr{constructor(e,t,s,i,r,o){super(e),this.DistanceAlong=t,this.OffsetLateral=s,this.OffsetVertical=i,this.OffsetLongitudinal=r,this.BasisCurve=o,this.type=2165702409}};e.IfcPointOnCurve=class extends Zr{constructor(e,t,s){super(e),this.BasisCurve=t,this.PointParameter=s,this.type=4022376103}};e.IfcPointOnSurface=class extends Zr{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.PointParameterU=s,this.PointParameterV=i,this.type=1423911732}};e.IfcPolyLoop=class extends Qr{constructor(e,t){super(e),this.Polygon=t,this.type=2924175390}};e.IfcPolygonalBoundedHalfSpace=class extends Gr{constructor(e,t,s,i,r){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Position=i,this.PolygonalBoundary=r,this.type=2775532180}};class qr extends er{constructor(e,t){super(e),this.Name=t,this.type=3727388367}}e.IfcPreDefinedItem=qr;class Jr extends or{constructor(e){super(e),this.type=3778827333}}e.IfcPreDefinedProperties=Jr;class $r extends qr{constructor(e,t){super(e,t),this.Name=t,this.type=1775413392}}e.IfcPreDefinedTextFont=$r;e.IfcProductDefinitionShape=class extends ir{constructor(e,t,s,i){super(e,t,s,i),this.Name=t,this.Description=s,this.Representations=i,this.type=673634403}};e.IfcProfileProperties=class extends wr{constructor(e,t,s,i,r){super(e,t,s,i),this.Name=t,this.Description=s,this.Properties=i,this.ProfileDefinition=r,this.type=2802850158}};class eo extends or{constructor(e,t,s){super(e),this.Name=t,this.Specification=s,this.type=2598011224}}e.IfcProperty=eo;class to extends cr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1680319473}}e.IfcPropertyDefinition=to;e.IfcPropertyDependencyRelationship=class extends hr{constructor(e,t,s,i,r,o){super(e,t,s),this.Name=t,this.Description=s,this.DependingProperty=i,this.DependantProperty=r,this.Expression=o,this.type=148025276}};class so extends to{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3357820518}}e.IfcPropertySetDefinition=so;class io extends to{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=1482703590}}e.IfcPropertyTemplateDefinition=io;class ro extends so{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2090586900}}e.IfcQuantitySet=ro;class oo extends Kr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.type=3615266464}}e.IfcRectangleProfileDef=oo;e.IfcRegularTimeSeries=class extends Tr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.Name=t,this.Description=s,this.StartTime=i,this.EndTime=r,this.TimeSeriesDataType=o,this.DataOrigin=n,this.UserDefinedDataOrigin=a,this.Unit=l,this.TimeStep=h,this.Values=c,this.type=3413951693}};e.IfcReinforcementBarProperties=class extends Jr{constructor(e,t,s,i,r,o,n){super(e),this.TotalCrossSectionArea=t,this.SteelGrade=s,this.BarSurface=i,this.EffectiveDepth=r,this.NominalBarDiameter=o,this.BarCount=n,this.type=1580146022}};class no extends cr{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=478536968}}e.IfcRelationship=no;e.IfcResourceApprovalRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatedResourceObjects=i,this.RelatingApproval=r,this.type=2943643501}};e.IfcResourceConstraintRelationship=class extends hr{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Description=s,this.RelatingConstraint=i,this.RelatedResourceObjects=r,this.type=1608871552}};e.IfcResourceTime=class extends ur{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E){super(e,t,s,i),this.Name=t,this.DataOrigin=s,this.UserDefinedDataOrigin=i,this.ScheduleWork=r,this.ScheduleUsage=o,this.ScheduleStart=n,this.ScheduleFinish=a,this.ScheduleContour=l,this.LevelingDelay=h,this.IsOverAllocated=c,this.StatusTime=u,this.ActualWork=A,this.ActualUsage=p,this.ActualStart=d,this.ActualFinish=f,this.RemainingWork=m,this.RemainingUsage=y,this.Completion=E,this.type=1042787934}};e.IfcRoundedRectangleProfileDef=class extends oo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.RoundingRadius=n,this.type=2778083089}};e.IfcSectionProperties=class extends Jr{constructor(e,t,s,i){super(e),this.SectionType=t,this.StartProfile=s,this.EndProfile=i,this.type=2042790032}};e.IfcSectionReinforcementProperties=class extends Jr{constructor(e,t,s,i,r,o,n){super(e),this.LongitudinalStartPosition=t,this.LongitudinalEndPosition=s,this.TransversePosition=i,this.ReinforcementRole=r,this.SectionDefinition=o,this.CrossSectionReinforcementDefinitions=n,this.type=4165799628}};e.IfcSectionedSpine=class extends Ur{constructor(e,t,s,i){super(e),this.SpineCurve=t,this.CrossSections=s,this.CrossSectionPositions=i,this.type=1509187699}};class ao extends Ur{constructor(e,t){super(e),this.Transition=t,this.type=823603102}}e.IfcSegment=ao;e.IfcShellBasedSurfaceModel=class extends Ur{constructor(e,t){super(e),this.SbsmBoundary=t,this.type=4124623270}};class lo extends eo{constructor(e,t,s){super(e,t,s),this.Name=t,this.Specification=s,this.type=3692461612}}e.IfcSimpleProperty=lo;e.IfcSlippageConnectionCondition=class extends pr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.SlippageX=s,this.SlippageY=i,this.SlippageZ=r,this.type=2609359061}};class ho extends Ur{constructor(e){super(e),this.type=723233188}}e.IfcSolidModel=ho;e.IfcStructuralLoadLinearForce=class extends mr{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.LinearForceX=s,this.LinearForceY=i,this.LinearForceZ=r,this.LinearMomentX=o,this.LinearMomentY=n,this.LinearMomentZ=a,this.type=1595516126}};e.IfcStructuralLoadPlanarForce=class extends mr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.PlanarForceX=s,this.PlanarForceY=i,this.PlanarForceZ=r,this.type=2668620305}};class co extends mr{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.type=2473145415}}e.IfcStructuralLoadSingleDisplacement=co;e.IfcStructuralLoadSingleDisplacementDistortion=class extends co{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.DisplacementX=s,this.DisplacementY=i,this.DisplacementZ=r,this.RotationalDisplacementRX=o,this.RotationalDisplacementRY=n,this.RotationalDisplacementRZ=a,this.Distortion=l,this.type=1973038258}};class uo extends mr{constructor(e,t,s,i,r,o,n,a){super(e,t),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.type=1597423693}}e.IfcStructuralLoadSingleForce=uo;e.IfcStructuralLoadSingleForceWarping=class extends uo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.Name=t,this.ForceX=s,this.ForceY=i,this.ForceZ=r,this.MomentX=o,this.MomentY=n,this.MomentZ=a,this.WarpingMoment=l,this.type=1190533807}};e.IfcSubedge=class extends Sr{constructor(e,t,s,i){super(e,t,s),this.EdgeStart=t,this.EdgeEnd=s,this.ParentEdge=i,this.type=2233826070}};class Ao extends Ur{constructor(e){super(e),this.type=2513912981}}e.IfcSurface=Ao;e.IfcSurfaceStyleRendering=class extends Er{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s),this.SurfaceColour=t,this.Transparency=s,this.DiffuseColour=i,this.TransmissionColour=r,this.DiffuseTransmissionColour=o,this.ReflectionColour=n,this.SpecularColour=a,this.SpecularHighlight=l,this.ReflectanceMethod=h,this.type=1878645084}};class po extends ho{constructor(e,t,s){super(e),this.SweptArea=t,this.Position=s,this.type=2247615214}}e.IfcSweptAreaSolid=po;class fo extends ho{constructor(e,t,s,i,r,o){super(e),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.type=1260650574}}e.IfcSweptDiskSolid=fo;e.IfcSweptDiskSolidPolygonal=class extends fo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.Directrix=t,this.Radius=s,this.InnerRadius=i,this.StartParam=r,this.EndParam=o,this.FilletRadius=n,this.type=1096409881}};class mo extends Ao{constructor(e,t,s){super(e),this.SweptCurve=t,this.Position=s,this.type=230924584}}e.IfcSweptSurface=mo;e.IfcTShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.WebEdgeRadius=c,this.WebSlope=u,this.FlangeSlope=A,this.type=3071757647}};class yo extends Ur{constructor(e){super(e),this.type=901063453}}e.IfcTessellatedItem=yo;class Eo extends Ur{constructor(e,t,s,i){super(e),this.Literal=t,this.Placement=s,this.Path=i,this.type=4282788508}}e.IfcTextLiteral=Eo;e.IfcTextLiteralWithExtent=class extends Eo{constructor(e,t,s,i,r,o){super(e,t,s,i),this.Literal=t,this.Placement=s,this.Path=i,this.Extent=r,this.BoxAlignment=o,this.type=3124975700}};e.IfcTextStyleFontModel=class extends $r{constructor(e,t,s,i,r,o,n){super(e,t),this.Name=t,this.FontFamily=s,this.FontStyle=i,this.FontVariant=r,this.FontWeight=o,this.FontSize=n,this.type=1983826977}};e.IfcTrapeziumProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomXDim=r,this.TopXDim=o,this.YDim=n,this.TopXOffset=a,this.type=2715220739}};class go extends zr{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.type=1628702193}}e.IfcTypeObject=go;class vo extends go{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.type=3736923433}}e.IfcTypeProcess=vo;class Io extends go{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.type=2347495698}}e.IfcTypeProduct=Io;class _o extends go{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.type=3698973494}}e.IfcTypeResource=_o;e.IfcUShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.FlangeSlope=c,this.type=427810014}};e.IfcVector=class extends Ur{constructor(e,t,s){super(e),this.Orientation=t,this.Magnitude=s,this.type=1417489154}};e.IfcVertexLoop=class extends Qr{constructor(e,t){super(e),this.LoopVertex=t,this.type=2759199220}};e.IfcZShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.FlangeWidth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.EdgeRadius=h,this.type=2543172580}};e.IfcAdvancedFace=class extends Fr{constructor(e,t,s,i){super(e,t,s,i),this.Bounds=t,this.FaceSurface=s,this.SameSense=i,this.type=3406155212}};e.IfcAnnotationFillArea=class extends Ur{constructor(e,t,s){super(e),this.OuterBoundary=t,this.InnerBoundaries=s,this.type=669184980}};e.IfcAsymmetricIShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.BottomFlangeWidth=r,this.OverallDepth=o,this.WebThickness=n,this.BottomFlangeThickness=a,this.BottomFlangeFilletRadius=l,this.TopFlangeWidth=h,this.TopFlangeThickness=c,this.TopFlangeFilletRadius=u,this.BottomFlangeEdgeRadius=A,this.BottomFlangeSlope=p,this.TopFlangeEdgeRadius=d,this.TopFlangeSlope=f,this.type=3207858831}};e.IfcAxis1Placement=class extends Yr{constructor(e,t,s){super(e,t),this.Location=t,this.Axis=s,this.type=4261334040}};e.IfcAxis2Placement2D=class extends Yr{constructor(e,t,s){super(e,t),this.Location=t,this.RefDirection=s,this.type=3125803723}};e.IfcAxis2Placement3D=class extends Yr{constructor(e,t,s,i){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=i,this.type=2740243338}};e.IfcAxis2PlacementLinear=class extends Yr{constructor(e,t,s,i){super(e,t),this.Location=t,this.Axis=s,this.RefDirection=i,this.type=3425423356}};class To extends Ur{constructor(e,t,s,i){super(e),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=2736907675}}e.IfcBooleanResult=To;class Po extends Ao{constructor(e){super(e),this.type=4182860854}}e.IfcBoundedSurface=Po;e.IfcBoundingBox=class extends Ur{constructor(e,t,s,i,r){super(e),this.Corner=t,this.XDim=s,this.YDim=i,this.ZDim=r,this.type=2581212453}};e.IfcBoxedHalfSpace=class extends Gr{constructor(e,t,s,i){super(e,t,s),this.BaseSurface=t,this.AgreementFlag=s,this.Enclosure=i,this.type=2713105998}};e.IfcCShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.WallThickness=n,this.Girth=a,this.InternalFilletRadius=l,this.type=2898889636}};e.IfcCartesianPoint=class extends Zr{constructor(e,t){super(e),this.Coordinates=t,this.type=1123145078}};class bo extends Ur{constructor(e){super(e),this.type=574549367}}e.IfcCartesianPointList=bo;e.IfcCartesianPointList2D=class extends bo{constructor(e,t,s){super(e),this.CoordList=t,this.TagList=s,this.type=1675464909}};e.IfcCartesianPointList3D=class extends bo{constructor(e,t,s){super(e),this.CoordList=t,this.TagList=s,this.type=2059837836}};class Ro extends Ur{constructor(e,t,s,i,r){super(e),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=59481748}}e.IfcCartesianTransformationOperator=Ro;class Do extends Ro{constructor(e,t,s,i,r){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.type=3749851601}}e.IfcCartesianTransformationOperator2D=Do;e.IfcCartesianTransformationOperator2DnonUniform=class extends Do{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Scale2=o,this.type=3486308946}};class Co extends Ro{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.type=3331915920}}e.IfcCartesianTransformationOperator3D=Co;e.IfcCartesianTransformationOperator3DnonUniform=class extends Co{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.Axis1=t,this.Axis2=s,this.LocalOrigin=i,this.Scale=r,this.Axis3=o,this.Scale2=n,this.Scale3=a,this.type=1416205885}};class No extends Kr{constructor(e,t,s,i,r){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.type=1383045692}}e.IfcCircleProfileDef=No;e.IfcClosedShell=class extends Nr{constructor(e,t){super(e,t),this.CfsFaces=t,this.type=2205249479}};e.IfcColourRgb=class extends Cr{constructor(e,t,s,i,r){super(e,t),this.Name=t,this.Red=s,this.Green=i,this.Blue=r,this.type=776857604}};e.IfcComplexProperty=class extends eo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.UsageName=i,this.HasProperties=r,this.type=2542286263}};class Oo extends ao{constructor(e,t,s,i){super(e,t),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.type=2485617015}}e.IfcCompositeCurveSegment=Oo;class xo extends _o{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.type=2574617495}}e.IfcConstructionResourceType=xo;class So extends zr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=3419103109}}e.IfcContext=So;e.IfcCrewResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=1815067380}};class wo extends Ur{constructor(e,t){super(e),this.Position=t,this.type=2506170314}}e.IfcCsgPrimitive3D=wo;e.IfcCsgSolid=class extends ho{constructor(e,t){super(e),this.TreeRootExpression=t,this.type=2147822146}};class Mo extends Ur{constructor(e){super(e),this.type=2601014836}}e.IfcCurve=Mo;e.IfcCurveBoundedPlane=class extends Po{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.OuterBoundary=s,this.InnerBoundaries=i,this.type=2827736869}};e.IfcCurveBoundedSurface=class extends Po{constructor(e,t,s,i){super(e),this.BasisSurface=t,this.Boundaries=s,this.ImplicitOuter=i,this.type=2629017746}};e.IfcCurveSegment=class extends ao{constructor(e,t,s,i,r,o){super(e,t),this.Transition=t,this.Placement=s,this.SegmentStart=i,this.SegmentLength=r,this.ParentCurve=o,this.type=4212018352}};e.IfcDirection=class extends Ur{constructor(e,t){super(e),this.DirectionRatios=t,this.type=32440307}};class Bo extends po{constructor(e,t,s,i,r,o){super(e,t,s),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.type=593015953}}e.IfcDirectrixCurveSweptAreaSolid=Bo;e.IfcEdgeLoop=class extends Qr{constructor(e,t){super(e),this.EdgeList=t,this.type=1472233963}};e.IfcElementQuantity=class extends ro{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.MethodOfMeasurement=o,this.Quantities=n,this.type=1883228015}};class Fo extends Io{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=339256511}}e.IfcElementType=Fo;class Lo extends Ao{constructor(e,t){super(e),this.Position=t,this.type=2777663545}}e.IfcElementarySurface=Lo;e.IfcEllipseProfileDef=class extends Kr{constructor(e,t,s,i,r,o){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.SemiAxis1=r,this.SemiAxis2=o,this.type=2835456948}};e.IfcEventType=class extends vo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.EventTriggerType=u,this.UserDefinedEventTriggerType=A,this.type=4024345920}};class Uo extends po{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=477187591}}e.IfcExtrudedAreaSolid=Uo;e.IfcExtrudedAreaSolidTapered=class extends Uo{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.SweptArea=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.EndSweptArea=o,this.type=2804161546}};e.IfcFaceBasedSurfaceModel=class extends Ur{constructor(e,t){super(e),this.FbsmFaces=t,this.type=2047409740}};e.IfcFillAreaStyleHatching=class extends Ur{constructor(e,t,s,i,r,o){super(e),this.HatchLineAppearance=t,this.StartOfNextHatchLine=s,this.PointOfReferenceHatchLine=i,this.PatternStart=r,this.HatchLineAngle=o,this.type=374418227}};e.IfcFillAreaStyleTiles=class extends Ur{constructor(e,t,s,i){super(e),this.TilingPattern=t,this.Tiles=s,this.TilingScale=i,this.type=315944413}};class Ho extends Bo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.FixedReference=n,this.type=2652556860}}e.IfcFixedReferenceSweptAreaSolid=Ho;class Go extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=4238390223}}e.IfcFurnishingElementType=Go;e.IfcFurnitureType=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.AssemblyPlace=c,this.PredefinedType=u,this.type=1268542332}};e.IfcGeographicElementType=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4095422895}};e.IfcGeometricCurveSet=class extends Hr{constructor(e,t){super(e,t),this.Elements=t,this.type=987898635}};e.IfcIShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.OverallWidth=r,this.OverallDepth=o,this.WebThickness=n,this.FlangeThickness=a,this.FilletRadius=l,this.FlangeEdgeRadius=h,this.FlangeSlope=c,this.type=1484403080}};class ko extends yo{constructor(e,t){super(e),this.CoordIndex=t,this.type=178912537}}e.IfcIndexedPolygonalFace=ko;e.IfcIndexedPolygonalFaceWithVoids=class extends ko{constructor(e,t,s){super(e,t),this.CoordIndex=t,this.InnerCoordIndices=s,this.type=2294589976}};e.IfcIndexedPolygonalTextureMap=class extends kr{constructor(e,t,s,i,r){super(e,t,s,i),this.Maps=t,this.MappedTo=s,this.TexCoords=i,this.TexCoordIndices=r,this.type=3465909080}};e.IfcLShapeProfileDef=class extends Kr{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Depth=r,this.Width=o,this.Thickness=n,this.FilletRadius=a,this.EdgeRadius=l,this.LegSlope=h,this.type=572779678}};e.IfcLaborResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=428585644}};e.IfcLine=class extends Mo{constructor(e,t,s){super(e),this.Pnt=t,this.Dir=s,this.type=1281925730}};class Vo extends ho{constructor(e,t){super(e),this.Outer=t,this.type=1425443689}}e.IfcManifoldSolidBrep=Vo;class jo extends zr{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=3888040117}}e.IfcObject=jo;class Qo extends Mo{constructor(e,t){super(e),this.BasisCurve=t,this.type=590820931}}e.IfcOffsetCurve=Qo;e.IfcOffsetCurve2D=class extends Qo{constructor(e,t,s,i){super(e,t),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.type=3388369263}};e.IfcOffsetCurve3D=class extends Qo{constructor(e,t,s,i,r){super(e,t),this.BasisCurve=t,this.Distance=s,this.SelfIntersect=i,this.RefDirection=r,this.type=3505215534}};e.IfcOffsetCurveByDistances=class extends Qo{constructor(e,t,s,i){super(e,t),this.BasisCurve=t,this.OffsetValues=s,this.Tag=i,this.type=2485787929}};e.IfcPcurve=class extends Mo{constructor(e,t,s){super(e),this.BasisSurface=t,this.ReferenceCurve=s,this.type=1682466193}};e.IfcPlanarBox=class extends Xr{constructor(e,t,s,i){super(e,t,s),this.SizeInX=t,this.SizeInY=s,this.Placement=i,this.type=603570806}};e.IfcPlane=class extends Lo{constructor(e,t){super(e,t),this.Position=t,this.type=220341763}};e.IfcPolynomialCurve=class extends Mo{constructor(e,t,s,i,r){super(e),this.Position=t,this.CoefficientsX=s,this.CoefficientsY=i,this.CoefficientsZ=r,this.type=3381221214}};class Wo extends qr{constructor(e,t){super(e,t),this.Name=t,this.type=759155922}}e.IfcPreDefinedColour=Wo;class zo extends qr{constructor(e,t){super(e,t),this.Name=t,this.type=2559016684}}e.IfcPreDefinedCurveFont=zo;class Ko extends so{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3967405729}}e.IfcPreDefinedPropertySet=Ko;e.IfcProcedureType=class extends vo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.type=569719735}};class Yo extends jo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.type=2945172077}}e.IfcProcess=Yo;class Xo extends jo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=4208778838}}e.IfcProduct=Xo;e.IfcProject=class extends So{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=103090709}};e.IfcProjectLibrary=class extends So{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.Phase=a,this.RepresentationContexts=l,this.UnitsInContext=h,this.type=653396225}};e.IfcPropertyBoundedValue=class extends lo{constructor(e,t,s,i,r,o,n){super(e,t,s),this.Name=t,this.Specification=s,this.UpperBoundValue=i,this.LowerBoundValue=r,this.Unit=o,this.SetPointValue=n,this.type=871118103}};e.IfcPropertyEnumeratedValue=class extends lo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.EnumerationValues=i,this.EnumerationReference=r,this.type=4166981789}};e.IfcPropertyListValue=class extends lo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.ListValues=i,this.Unit=r,this.type=2752243245}};e.IfcPropertyReferenceValue=class extends lo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.UsageName=i,this.PropertyReference=r,this.type=941946838}};e.IfcPropertySet=class extends so{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.HasProperties=o,this.type=1451395588}};e.IfcPropertySetTemplate=class extends io{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.TemplateType=o,this.ApplicableEntity=n,this.HasPropertyTemplates=a,this.type=492091185}};e.IfcPropertySingleValue=class extends lo{constructor(e,t,s,i,r){super(e,t,s),this.Name=t,this.Specification=s,this.NominalValue=i,this.Unit=r,this.type=3650150729}};e.IfcPropertyTableValue=class extends lo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s),this.Name=t,this.Specification=s,this.DefiningValues=i,this.DefinedValues=r,this.Expression=o,this.DefiningUnit=n,this.DefinedUnit=a,this.CurveInterpolation=l,this.type=110355661}};class Zo extends io{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=3521284610}}e.IfcPropertyTemplate=Zo;e.IfcRectangleHollowProfileDef=class extends oo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.XDim=r,this.YDim=o,this.WallThickness=n,this.InnerFilletRadius=a,this.OuterFilletRadius=l,this.type=2770003689}};e.IfcRectangularPyramid=class extends wo{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.Height=r,this.type=2798486643}};e.IfcRectangularTrimmedSurface=class extends Po{constructor(e,t,s,i,r,o,n,a){super(e),this.BasisSurface=t,this.U1=s,this.V1=i,this.U2=r,this.V2=o,this.Usense=n,this.Vsense=a,this.type=3454111270}};e.IfcReinforcementDefinitionProperties=class extends Ko{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.DefinitionType=o,this.ReinforcementSectionDefinitions=n,this.type=3765753017}};class qo extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.type=3939117080}}e.IfcRelAssigns=qo;e.IfcRelAssignsToActor=class extends qo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingActor=a,this.ActingRole=l,this.type=1683148259}};e.IfcRelAssignsToControl=class extends qo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingControl=a,this.type=2495723537}};class Jo extends qo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.type=1307041759}}e.IfcRelAssignsToGroup=Jo;e.IfcRelAssignsToGroupByFactor=class extends Jo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingGroup=a,this.Factor=l,this.type=1027710054}};e.IfcRelAssignsToProcess=class extends qo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProcess=a,this.QuantityInProcess=l,this.type=4278684876}};e.IfcRelAssignsToProduct=class extends qo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingProduct=a,this.type=2857406711}};e.IfcRelAssignsToResource=class extends qo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatedObjectsType=n,this.RelatingResource=a,this.type=205026976}};class $o extends no{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.type=1865459582}}e.IfcRelAssociates=$o;e.IfcRelAssociatesApproval=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingApproval=n,this.type=4095574036}};e.IfcRelAssociatesClassification=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingClassification=n,this.type=919958153}};e.IfcRelAssociatesConstraint=class extends $o{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.Intent=n,this.RelatingConstraint=a,this.type=2728634034}};e.IfcRelAssociatesDocument=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingDocument=n,this.type=982818633}};e.IfcRelAssociatesLibrary=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingLibrary=n,this.type=3840914261}};e.IfcRelAssociatesMaterial=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingMaterial=n,this.type=2655215786}};e.IfcRelAssociatesProfileDef=class extends $o{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingProfileDef=n,this.type=1033248425}};class en extends no{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=826625072}}e.IfcRelConnects=en;class tn extends en{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.type=1204542856}}e.IfcRelConnectsElements=tn;e.IfcRelConnectsPathElements=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RelatingPriorities=l,this.RelatedPriorities=h,this.RelatedConnectionType=c,this.RelatingConnectionType=u,this.type=3945020480}};e.IfcRelConnectsPortToElement=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedElement=n,this.type=4201705270}};e.IfcRelConnectsPorts=class extends en{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPort=o,this.RelatedPort=n,this.RealizingElement=a,this.type=3190031847}};e.IfcRelConnectsStructuralActivity=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedStructuralActivity=n,this.type=2127690289}};class sn extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.type=1638771189}}e.IfcRelConnectsStructuralMember=sn;e.IfcRelConnectsWithEccentricity=class extends sn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingStructuralMember=o,this.RelatedStructuralConnection=n,this.AppliedCondition=a,this.AdditionalConditions=l,this.SupportedLength=h,this.ConditionCoordinateSystem=c,this.ConnectionConstraint=u,this.type=504942748}};e.IfcRelConnectsWithRealizingElements=class extends tn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ConnectionGeometry=o,this.RelatingElement=n,this.RelatedElement=a,this.RealizingElements=l,this.ConnectionType=h,this.type=3678494232}};e.IfcRelContainedInSpatialStructure=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=3242617779}};e.IfcRelCoversBldgElements=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedCoverings=n,this.type=886880790}};e.IfcRelCoversSpaces=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedCoverings=n,this.type=2802773753}};e.IfcRelDeclares=class extends no{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingContext=o,this.RelatedDefinitions=n,this.type=2565941209}};class rn extends no{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=2551354335}}e.IfcRelDecomposes=rn;class on extends no{constructor(e,t,s,i,r){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.type=693640335}}e.IfcRelDefines=on;e.IfcRelDefinesByObject=class extends on{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingObject=n,this.type=1462361463}};e.IfcRelDefinesByProperties=class extends on{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingPropertyDefinition=n,this.type=4186316022}};e.IfcRelDefinesByTemplate=class extends on{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedPropertySets=o,this.RelatingTemplate=n,this.type=307848117}};e.IfcRelDefinesByType=class extends on{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedObjects=o,this.RelatingType=n,this.type=781010003}};e.IfcRelFillsElement=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingOpeningElement=o,this.RelatedBuildingElement=n,this.type=3940055652}};e.IfcRelFlowControlElements=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedControlElements=o,this.RelatingFlowElement=n,this.type=279856033}};e.IfcRelInterferesElements=class extends en{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedElement=n,this.InterferenceGeometry=a,this.InterferenceSpace=l,this.InterferenceType=h,this.ImpliedOrder=c,this.type=427948657}};e.IfcRelNests=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=3268803585}};e.IfcRelPositions=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingPositioningElement=o,this.RelatedProducts=n,this.type=1441486842}};e.IfcRelProjectsElement=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedFeatureElement=n,this.type=750771296}};e.IfcRelReferencedInSpatialStructure=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatedElements=o,this.RelatingStructure=n,this.type=1245217292}};e.IfcRelSequence=class extends en{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingProcess=o,this.RelatedProcess=n,this.TimeLag=a,this.SequenceType=l,this.UserDefinedSequenceType=h,this.type=4122056220}};e.IfcRelServicesBuildings=class extends en{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSystem=o,this.RelatedBuildings=n,this.type=366585022}};class nn extends en{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.type=3451746338}}e.IfcRelSpaceBoundary=nn;class an extends nn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.ParentBoundary=c,this.type=3523091289}}e.IfcRelSpaceBoundary1stLevel=an;e.IfcRelSpaceBoundary2ndLevel=class extends an{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingSpace=o,this.RelatedBuildingElement=n,this.ConnectionGeometry=a,this.PhysicalOrVirtualBoundary=l,this.InternalOrExternalBoundary=h,this.ParentBoundary=c,this.CorrespondingBoundary=u,this.type=1521410863}};e.IfcRelVoidsElement=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingBuildingElement=o,this.RelatedOpeningElement=n,this.type=1401173127}};e.IfcReparametrisedCompositeCurveSegment=class extends Oo{constructor(e,t,s,i,r){super(e,t,s,i),this.Transition=t,this.SameSense=s,this.ParentCurve=i,this.ParamLength=r,this.type=816062949}};class ln extends jo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.type=2914609552}}e.IfcResource=ln;class hn extends po{constructor(e,t,s,i,r){super(e,t,s),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.type=1856042241}}e.IfcRevolvedAreaSolid=hn;e.IfcRevolvedAreaSolidTapered=class extends hn{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.SweptArea=t,this.Position=s,this.Axis=i,this.Angle=r,this.EndSweptArea=o,this.type=3243963512}};e.IfcRightCircularCone=class extends wo{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.BottomRadius=i,this.type=4158566097}};e.IfcRightCircularCylinder=class extends wo{constructor(e,t,s,i){super(e,t),this.Position=t,this.Height=s,this.Radius=i,this.type=3626867408}};class cn extends ho{constructor(e,t,s){super(e),this.Directrix=t,this.CrossSections=s,this.type=1862484736}}e.IfcSectionedSolid=cn;e.IfcSectionedSolidHorizontal=class extends cn{constructor(e,t,s,i){super(e,t,s),this.Directrix=t,this.CrossSections=s,this.CrossSectionPositions=i,this.type=1290935644}};e.IfcSectionedSurface=class extends Ao{constructor(e,t,s,i){super(e),this.Directrix=t,this.CrossSectionPositions=s,this.CrossSections=i,this.type=1356537516}};e.IfcSimplePropertyTemplate=class extends Zo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.TemplateType=o,this.PrimaryMeasureType=n,this.SecondaryMeasureType=a,this.Enumerators=l,this.PrimaryUnit=h,this.SecondaryUnit=c,this.Expression=u,this.AccessState=A,this.type=3663146110}};class un extends Xo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.type=1412071761}}e.IfcSpatialElement=un;class An extends Io{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=710998568}}e.IfcSpatialElementType=An;class pn extends un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.type=2706606064}}e.IfcSpatialStructureElement=pn;class dn extends An{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893378262}}e.IfcSpatialStructureElementType=dn;e.IfcSpatialZone=class extends un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.PredefinedType=h,this.type=463610769}};e.IfcSpatialZoneType=class extends An{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.LongName=u,this.type=2481509218}};e.IfcSphere=class extends wo{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=451544542}};e.IfcSphericalSurface=class extends Lo{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=4015995234}};class fn extends Mo{constructor(e,t){super(e),this.Position=t,this.type=2735484536}}e.IfcSpiral=fn;class mn extends Xo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3544373492}}e.IfcStructuralActivity=mn;class yn extends Xo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3136571912}}e.IfcStructuralItem=yn;class En extends yn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=530289379}}e.IfcStructuralMember=En;class gn extends mn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=3689010777}}e.IfcStructuralReaction=gn;class vn extends En{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=3979015343}}e.IfcStructuralSurfaceMember=vn;e.IfcStructuralSurfaceMemberVarying=class extends vn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Thickness=h,this.type=2218152070}};e.IfcStructuralSurfaceReaction=class extends gn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.PredefinedType=c,this.type=603775116}};e.IfcSubContractResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=4095615324}};class In extends Mo{constructor(e,t,s,i){super(e),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=699246055}}e.IfcSurfaceCurve=In;e.IfcSurfaceCurveSweptAreaSolid=class extends Bo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.ReferenceSurface=n,this.type=2028607225}};e.IfcSurfaceOfLinearExtrusion=class extends mo{constructor(e,t,s,i,r){super(e,t,s),this.SweptCurve=t,this.Position=s,this.ExtrudedDirection=i,this.Depth=r,this.type=2809605785}};e.IfcSurfaceOfRevolution=class extends mo{constructor(e,t,s,i){super(e,t,s),this.SweptCurve=t,this.Position=s,this.AxisPosition=i,this.type=4124788165}};e.IfcSystemFurnitureElementType=class extends Go{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1580310250}};e.IfcTask=class extends Yo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Status=l,this.WorkMethod=h,this.IsMilestone=c,this.Priority=u,this.TaskTime=A,this.PredefinedType=p,this.type=3473067441}};e.IfcTaskType=class extends vo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ProcessType=h,this.PredefinedType=c,this.WorkMethod=u,this.type=3206491090}};class _n extends yo{constructor(e,t,s){super(e),this.Coordinates=t,this.Closed=s,this.type=2387106220}}e.IfcTessellatedFaceSet=_n;e.IfcThirdOrderPolynomialSpiral=class extends fn{constructor(e,t,s,i,r,o){super(e,t),this.Position=t,this.CubicTerm=s,this.QuadraticTerm=i,this.LinearTerm=r,this.ConstantTerm=o,this.type=782932809}};e.IfcToroidalSurface=class extends Lo{constructor(e,t,s,i){super(e,t),this.Position=t,this.MajorRadius=s,this.MinorRadius=i,this.type=1935646853}};class Tn extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3665877780}}e.IfcTransportationDeviceType=Tn;class Pn extends _n{constructor(e,t,s,i,r,o){super(e,t,s),this.Coordinates=t,this.Closed=s,this.Normals=i,this.CoordIndex=r,this.PnIndex=o,this.type=2916149573}}e.IfcTriangulatedFaceSet=Pn;e.IfcTriangulatedIrregularNetwork=class extends Pn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.Coordinates=t,this.Closed=s,this.Normals=i,this.CoordIndex=r,this.PnIndex=o,this.Flags=n,this.type=1229763772}};e.IfcVehicleType=class extends Tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3651464721}};e.IfcWindowLiningProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.TransomThickness=a,this.MullionThickness=l,this.FirstTransomOffset=h,this.SecondTransomOffset=c,this.FirstMullionOffset=u,this.SecondMullionOffset=A,this.ShapeAspectStyle=p,this.LiningOffset=d,this.LiningToPanelOffsetX=f,this.LiningToPanelOffsetY=m,this.type=336235671}};e.IfcWindowPanelProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=512836454}};class bn extends jo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.type=2296667514}}e.IfcActor=bn;class Rn extends Vo{constructor(e,t){super(e,t),this.Outer=t,this.type=1635779807}}e.IfcAdvancedBrep=Rn;e.IfcAdvancedBrepWithVoids=class extends Rn{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=2603310189}};e.IfcAnnotation=class extends Xo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=1674181508}};class Dn extends Po{constructor(e,t,s,i,r,o,n,a){super(e),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.type=2887950389}}e.IfcBSplineSurface=Dn;class Cn extends Dn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.UMultiplicities=l,this.VMultiplicities=h,this.UKnots=c,this.VKnots=u,this.KnotSpec=A,this.type=167062518}}e.IfcBSplineSurfaceWithKnots=Cn;e.IfcBlock=class extends wo{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.XLength=s,this.YLength=i,this.ZLength=r,this.type=1334484129}};e.IfcBooleanClippingResult=class extends To{constructor(e,t,s,i){super(e,t,s,i),this.Operator=t,this.FirstOperand=s,this.SecondOperand=i,this.type=3649129432}};class Nn extends Mo{constructor(e){super(e),this.type=1260505505}}e.IfcBoundedCurve=Nn;e.IfcBuildingStorey=class extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.Elevation=c,this.type=3124254112}};class On extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1626504194}}e.IfcBuiltElementType=On;e.IfcChimneyType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2197970202}};e.IfcCircleHollowProfileDef=class extends No{constructor(e,t,s,i,r,o){super(e,t,s,i,r),this.ProfileType=t,this.ProfileName=s,this.Position=i,this.Radius=r,this.WallThickness=o,this.type=2937912522}};e.IfcCivilElementType=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3893394355}};e.IfcClothoid=class extends fn{constructor(e,t,s){super(e,t),this.Position=t,this.ClothoidConstant=s,this.type=3497074424}};e.IfcColumnType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=300633059}};e.IfcComplexPropertyTemplate=class extends Zo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.UsageName=o,this.TemplateType=n,this.HasPropertyTemplates=a,this.type=3875453745}};class xn extends Nn{constructor(e,t,s){super(e),this.Segments=t,this.SelfIntersect=s,this.type=3732776249}}e.IfcCompositeCurve=xn;class Sn extends xn{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=15328376}}e.IfcCompositeCurveOnSurface=Sn;class wn extends Mo{constructor(e,t){super(e),this.Position=t,this.type=2510884976}}e.IfcConic=wn;e.IfcConstructionEquipmentResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=2185764099}};e.IfcConstructionMaterialResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=4105962743}};e.IfcConstructionProductResourceType=class extends xo{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.Identification=a,this.LongDescription=l,this.ResourceType=h,this.BaseCosts=c,this.BaseQuantity=u,this.PredefinedType=A,this.type=1525564444}};class Mn extends ln{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.type=2559216714}}e.IfcConstructionResource=Mn;class Bn extends jo{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.type=3293443760}}e.IfcControl=Bn;e.IfcCosineSpiral=class extends fn{constructor(e,t,s,i){super(e,t),this.Position=t,this.CosineTerm=s,this.ConstantTerm=i,this.type=2000195564}};e.IfcCostItem=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.CostValues=l,this.CostQuantities=h,this.type=3895139033}};e.IfcCostSchedule=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.SubmittedOn=h,this.UpdateDate=c,this.type=1419761937}};e.IfcCourseType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4189326743}};e.IfcCoveringType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1916426348}};e.IfcCrewResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3295246426}};e.IfcCurtainWallType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1457835157}};e.IfcCylindricalSurface=class extends Lo{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=1213902940}};class Fn extends On{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1306400036}}e.IfcDeepFoundationType=Fn;e.IfcDirectrixDerivedReferenceSweptAreaSolid=class extends Ho{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o,n),this.SweptArea=t,this.Position=s,this.Directrix=i,this.StartParam=r,this.EndParam=o,this.FixedReference=n,this.type=4234616927}};class Ln extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3256556792}}e.IfcDistributionElementType=Ln;class Un extends Ln{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3849074793}}e.IfcDistributionFlowElementType=Un;e.IfcDoorLiningProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.LiningDepth=o,this.LiningThickness=n,this.ThresholdDepth=a,this.ThresholdThickness=l,this.TransomThickness=h,this.TransomOffset=c,this.LiningOffset=u,this.ThresholdOffset=A,this.CasingThickness=p,this.CasingDepth=d,this.ShapeAspectStyle=f,this.LiningToPanelOffsetX=m,this.LiningToPanelOffsetY=y,this.type=2963535650}};e.IfcDoorPanelProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.PanelDepth=o,this.PanelOperation=n,this.PanelWidth=a,this.PanelPosition=l,this.ShapeAspectStyle=h,this.type=1714330368}};e.IfcDoorType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.OperationType=u,this.ParameterTakesPrecedence=A,this.UserDefinedOperationType=p,this.type=2323601079}};e.IfcDraughtingPreDefinedColour=class extends Wo{constructor(e,t){super(e,t),this.Name=t,this.type=445594917}};e.IfcDraughtingPreDefinedCurveFont=class extends zo{constructor(e,t){super(e,t),this.Name=t,this.type=4006246654}};class Hn extends Xo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1758889154}}e.IfcElement=Hn;e.IfcElementAssembly=class extends Hn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.AssemblyPlace=h,this.PredefinedType=c,this.type=4123344466}};e.IfcElementAssemblyType=class extends Fo{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2397081782}};class Gn extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1623761950}}e.IfcElementComponent=Gn;class kn extends Fo{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2590856083}}e.IfcElementComponentType=kn;e.IfcEllipse=class extends wn{constructor(e,t,s,i){super(e,t),this.Position=t,this.SemiAxis1=s,this.SemiAxis2=i,this.type=1704287377}};class Vn extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2107101300}}e.IfcEnergyConversionDeviceType=Vn;e.IfcEngineType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=132023988}};e.IfcEvaporativeCoolerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3174744832}};e.IfcEvaporatorType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3390157468}};e.IfcEvent=class extends Yo{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.PredefinedType=l,this.EventTriggerType=h,this.UserDefinedEventTriggerType=c,this.EventOccurenceTime=u,this.type=4148101412}};class jn extends un{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.type=2853485674}}e.IfcExternalSpatialStructureElement=jn;class Qn extends Vo{constructor(e,t){super(e,t),this.Outer=t,this.type=807026263}}e.IfcFacetedBrep=Qn;e.IfcFacetedBrepWithVoids=class extends Qn{constructor(e,t,s){super(e,t),this.Outer=t,this.Voids=s,this.type=3737207727}};class Wn extends pn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.type=24185140}}e.IfcFacility=Wn;class zn extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.type=1310830890}}e.IfcFacilityPart=zn;e.IfcFacilityPartCommon=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=4228831410}};e.IfcFastener=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=647756555}};e.IfcFastenerType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2489546625}};class Kn extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2827207264}}e.IfcFeatureElement=Kn;class Yn extends Kn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2143335405}}e.IfcFeatureElementAddition=Yn;class Xn extends Kn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1287392070}}e.IfcFeatureElementSubtraction=Xn;class Zn extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3907093117}}e.IfcFlowControllerType=Zn;class qn extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3198132628}}e.IfcFlowFittingType=qn;e.IfcFlowMeterType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3815607619}};class Jn extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1482959167}}e.IfcFlowMovingDeviceType=Jn;class $n extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1834744321}}e.IfcFlowSegmentType=$n;class ea extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=1339347760}}e.IfcFlowStorageDeviceType=ea;class ta extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2297155007}}e.IfcFlowTerminalType=ta;class sa extends Un{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=3009222698}}e.IfcFlowTreatmentDeviceType=sa;e.IfcFootingType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1893162501}};class ia extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=263784265}}e.IfcFurnishingElement=ia;e.IfcFurniture=class extends ia{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1509553395}};e.IfcGeographicElement=class extends Hn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3493046030}};class ra extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=4230923436}}e.IfcGeotechnicalElement=ra;e.IfcGeotechnicalStratum=class extends ra{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1594536857}};e.IfcGradientCurve=class extends xn{constructor(e,t,s,i,r){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.BaseCurve=i,this.EndPoint=r,this.type=2898700619}};class oa extends jo{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2706460486}}e.IfcGroup=oa;e.IfcHeatExchangerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1251058090}};e.IfcHumidifierType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1806887404}};e.IfcImpactProtectionDevice=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2568555532}};e.IfcImpactProtectionDeviceType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3948183225}};e.IfcIndexedPolyCurve=class extends Nn{constructor(e,t,s,i){super(e),this.Points=t,this.Segments=s,this.SelfIntersect=i,this.type=2571569899}};e.IfcInterceptorType=class extends sa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3946677679}};e.IfcIntersectionCurve=class extends In{constructor(e,t,s,i){super(e,t,s,i),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=3113134337}};e.IfcInventory=class extends oa{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.Jurisdiction=a,this.ResponsiblePersons=l,this.LastUpdateDate=h,this.CurrentValue=c,this.OriginalValue=u,this.type=2391368822}};e.IfcJunctionBoxType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4288270099}};e.IfcKerbType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.Mountable=c,this.type=679976338}};e.IfcLaborResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3827777499}};e.IfcLampType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1051575348}};e.IfcLightFixtureType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1161773419}};class na extends Xo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=2176059722}}e.IfcLinearElement=na;e.IfcLiquidTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1770583370}};e.IfcMarineFacility=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.type=525669439}};e.IfcMarinePart=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=976884017}};e.IfcMechanicalFastener=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NominalDiameter=h,this.NominalLength=c,this.PredefinedType=u,this.type=377706215}};e.IfcMechanicalFastenerType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.NominalLength=A,this.type=2108223431}};e.IfcMedicalDeviceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1114901282}};e.IfcMemberType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3181161470}};e.IfcMobileTelecommunicationsApplianceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1950438474}};e.IfcMooringDeviceType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=710110818}};e.IfcMotorConnectionType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=977012517}};e.IfcNavigationElementType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=506776471}};e.IfcOccupant=class extends bn{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheActor=n,this.PredefinedType=a,this.type=4143007308}};e.IfcOpeningElement=class extends Xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3588315303}};e.IfcOutletType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2837617999}};e.IfcPavementType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=514975943}};e.IfcPerformanceHistory=class extends Bn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LifeCyclePhase=a,this.PredefinedType=l,this.type=2382730787}};e.IfcPermeableCoveringProperties=class extends Ko{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.OperationType=o,this.PanelPosition=n,this.FrameDepth=a,this.FrameThickness=l,this.ShapeAspectStyle=h,this.type=3566463478}};e.IfcPermit=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=3327091369}};e.IfcPileType=class extends Fn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1158309216}};e.IfcPipeFittingType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=804291784}};e.IfcPipeSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4231323485}};e.IfcPlateType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4017108033}};e.IfcPolygonalFaceSet=class extends _n{constructor(e,t,s,i,r){super(e,t,s),this.Coordinates=t,this.Closed=s,this.Faces=i,this.PnIndex=r,this.type=2839578677}};e.IfcPolyline=class extends Nn{constructor(e,t){super(e),this.Points=t,this.type=3724593414}};class aa extends Xo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=3740093272}}e.IfcPort=aa;class la extends Xo{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1946335990}}e.IfcPositioningElement=la;e.IfcProcedure=class extends Yo{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.PredefinedType=l,this.type=2744685151}};e.IfcProjectOrder=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=2904328755}};e.IfcProjectionElement=class extends Yn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3651124850}};e.IfcProtectiveDeviceType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1842657554}};e.IfcPumpType=class extends Jn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2250791053}};e.IfcRailType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1763565496}};e.IfcRailingType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2893384427}};e.IfcRailway=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.type=3992365140}};e.IfcRailwayPart=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=1891881377}};e.IfcRampFlightType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2324767716}};e.IfcRampType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1469900589}};e.IfcRationalBSplineSurfaceWithKnots=class extends Cn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.UDegree=t,this.VDegree=s,this.ControlPointsList=i,this.SurfaceForm=r,this.UClosed=o,this.VClosed=n,this.SelfIntersect=a,this.UMultiplicities=l,this.VMultiplicities=h,this.UKnots=c,this.VKnots=u,this.KnotSpec=A,this.WeightsData=p,this.type=683857671}};e.IfcReferent=class extends la{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=4021432810}};class ha extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.type=3027567501}}e.IfcReinforcingElement=ha;class ca extends kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=964333572}}e.IfcReinforcingElementType=ca;e.IfcReinforcingMesh=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.MeshLength=c,this.MeshWidth=u,this.LongitudinalBarNominalDiameter=A,this.TransverseBarNominalDiameter=p,this.LongitudinalBarCrossSectionArea=d,this.TransverseBarCrossSectionArea=f,this.LongitudinalBarSpacing=m,this.TransverseBarSpacing=y,this.PredefinedType=E,this.type=2320036040}};e.IfcReinforcingMeshType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y,E,g,v){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.MeshLength=u,this.MeshWidth=A,this.LongitudinalBarNominalDiameter=p,this.TransverseBarNominalDiameter=d,this.LongitudinalBarCrossSectionArea=f,this.TransverseBarCrossSectionArea=m,this.LongitudinalBarSpacing=y,this.TransverseBarSpacing=E,this.BendingShapeCode=g,this.BendingParameters=v,this.type=2310774935}};e.IfcRelAdheresToElement=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingElement=o,this.RelatedSurfaceFeatures=n,this.type=3818125796}};e.IfcRelAggregates=class extends rn{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.RelatingObject=o,this.RelatedObjects=n,this.type=160246688}};e.IfcRoad=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.type=146592293}};e.IfcRoadPart=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=550521510}};e.IfcRoofType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2781568857}};e.IfcSanitaryTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1768891740}};e.IfcSeamCurve=class extends In{constructor(e,t,s,i){super(e,t,s,i),this.Curve3D=t,this.AssociatedGeometry=s,this.MasterRepresentation=i,this.type=2157484638}};e.IfcSecondOrderPolynomialSpiral=class extends fn{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.QuadraticTerm=s,this.LinearTerm=i,this.ConstantTerm=r,this.type=3649235739}};e.IfcSegmentedReferenceCurve=class extends xn{constructor(e,t,s,i,r){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.BaseCurve=i,this.EndPoint=r,this.type=544395925}};e.IfcSeventhOrderPolynomialSpiral=class extends fn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t),this.Position=t,this.SepticTerm=s,this.SexticTerm=i,this.QuinticTerm=r,this.QuarticTerm=o,this.CubicTerm=n,this.QuadraticTerm=a,this.LinearTerm=l,this.ConstantTerm=h,this.type=1027922057}};e.IfcShadingDeviceType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4074543187}};e.IfcSign=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=33720170}};e.IfcSignType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3599934289}};e.IfcSignalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1894708472}};e.IfcSineSpiral=class extends fn{constructor(e,t,s,i,r){super(e,t),this.Position=t,this.SineTerm=s,this.LinearTerm=i,this.ConstantTerm=r,this.type=42703149}};e.IfcSite=class extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.RefLatitude=c,this.RefLongitude=u,this.RefElevation=A,this.LandTitleNumber=p,this.SiteAddress=d,this.type=4097777520}};e.IfcSlabType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2533589738}};e.IfcSolarDeviceType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1072016465}};e.IfcSpace=class extends pn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.ElevationWithFlooring=u,this.type=3856911033}};e.IfcSpaceHeaterType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1305183839}};e.IfcSpaceType=class extends dn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.LongName=u,this.type=3812236995}};e.IfcStackTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3112655638}};e.IfcStairFlightType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1039846685}};e.IfcStairType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=338393293}};class ua extends mn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.type=682877961}}e.IfcStructuralAction=ua;class Aa extends yn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1179482911}}e.IfcStructuralConnection=Aa;class pa extends ua{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1004757350}}e.IfcStructuralCurveAction=pa;e.IfcStructuralCurveConnection=class extends Aa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.AxisDirection=h,this.type=4243806635}};class da extends En{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Axis=h,this.type=214636428}}e.IfcStructuralCurveMember=da;e.IfcStructuralCurveMemberVarying=class extends da{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.Axis=h,this.type=2445595289}};e.IfcStructuralCurveReaction=class extends gn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.PredefinedType=c,this.type=2757150158}};e.IfcStructuralLinearAction=class extends pa{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1807405624}};class fa extends oa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.type=1252848954}}e.IfcStructuralLoadGroup=fa;e.IfcStructuralPointAction=class extends ua{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.type=2082059205}};e.IfcStructuralPointConnection=class extends Aa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.ConditionCoordinateSystem=h,this.type=734778138}};e.IfcStructuralPointReaction=class extends gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.type=1235345126}};e.IfcStructuralResultGroup=class extends oa{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.TheoryType=n,this.ResultForLoadGroup=a,this.IsLinear=l,this.type=2986769608}};class ma extends ua{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=3657597509}}e.IfcStructuralSurfaceAction=ma;e.IfcStructuralSurfaceConnection=class extends Aa{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedCondition=l,this.type=1975003073}};e.IfcSubContractResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=148013059}};e.IfcSurfaceFeature=class extends Kn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3101698114}};e.IfcSwitchingDeviceType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2315554128}};class ya extends oa{constructor(e,t,s,i,r,o){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.type=2254336722}}e.IfcSystem=ya;e.IfcSystemFurnitureElement=class extends ia{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=413509423}};e.IfcTankType=class extends ea{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=5716631}};e.IfcTendon=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m,y){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.TensionForce=p,this.PreStress=d,this.FrictionCoefficient=f,this.AnchorageSlip=m,this.MinCurvatureRadius=y,this.type=3824725483}};e.IfcTendonAnchor=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.type=2347447852}};e.IfcTendonAnchorType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3081323446}};e.IfcTendonConduit=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.PredefinedType=c,this.type=3663046924}};e.IfcTendonConduitType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2281632017}};e.IfcTendonType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.SheathDiameter=p,this.type=2415094496}};e.IfcTrackElementType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=618700268}};e.IfcTransformerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1692211062}};e.IfcTransportElementType=class extends Tn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2097647324}};class Ea extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1953115116}}e.IfcTransportationDevice=Ea;e.IfcTrimmedCurve=class extends Nn{constructor(e,t,s,i,r,o){super(e),this.BasisCurve=t,this.Trim1=s,this.Trim2=i,this.SenseAgreement=r,this.MasterRepresentation=o,this.type=3593883385}};e.IfcTubeBundleType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1600972822}};e.IfcUnitaryEquipmentType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1911125066}};e.IfcValveType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=728799441}};e.IfcVehicle=class extends Ea{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=840318589}};e.IfcVibrationDamper=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1530820697}};e.IfcVibrationDamperType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3956297820}};e.IfcVibrationIsolator=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2391383451}};e.IfcVibrationIsolatorType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3313531582}};e.IfcVirtualElement=class extends Hn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2769231204}};e.IfcVoidingFeature=class extends Xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=926996030}};e.IfcWallType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1898987631}};e.IfcWasteTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1133259667}};e.IfcWindowType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.PartitioningType=u,this.ParameterTakesPrecedence=A,this.UserDefinedPartitioningType=p,this.type=4009809668}};e.IfcWorkCalendar=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.WorkingTimes=a,this.ExceptionTimes=l,this.PredefinedType=h,this.type=4088093105}};class ga extends Bn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.type=1028945134}}e.IfcWorkControl=ga;e.IfcWorkPlan=class extends ga{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.PredefinedType=d,this.type=4218914973}};e.IfcWorkSchedule=class extends ga{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h,c,u,A,p),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.CreationDate=a,this.Creators=l,this.Purpose=h,this.Duration=c,this.TotalFloat=u,this.StartTime=A,this.FinishTime=p,this.PredefinedType=d,this.type=3342526732}};e.IfcZone=class extends ya{constructor(e,t,s,i,r,o,n){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.type=1033361043}};e.IfcActionRequest=class extends Bn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.PredefinedType=a,this.Status=l,this.LongDescription=h,this.type=3821786052}};e.IfcAirTerminalBoxType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1411407467}};e.IfcAirTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3352864051}};e.IfcAirToAirHeatRecoveryType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1871374353}};e.IfcAlignmentCant=class extends na{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.RailHeadDistance=l,this.type=4266260250}};e.IfcAlignmentHorizontal=class extends na{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1545765605}};e.IfcAlignmentSegment=class extends na{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.DesignParameters=l,this.type=317615605}};e.IfcAlignmentVertical=class extends na{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1662888072}};e.IfcAsset=class extends oa{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.OriginalValue=a,this.CurrentValue=l,this.TotalReplacementCost=h,this.Owner=c,this.User=u,this.ResponsiblePerson=A,this.IncorporationDate=p,this.DepreciatedValue=d,this.type=3460190687}};e.IfcAudioVisualApplianceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1532957894}};class va extends Nn{constructor(e,t,s,i,r,o){super(e),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.type=1967976161}}e.IfcBSplineCurve=va;class Ia extends va{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.KnotMultiplicities=n,this.Knots=a,this.KnotSpec=l,this.type=2461110595}}e.IfcBSplineCurveWithKnots=Ia;e.IfcBeamType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=819618141}};e.IfcBearingType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3649138523}};e.IfcBoilerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=231477066}};class _a extends Sn{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=1136057603}}e.IfcBoundaryCurve=_a;e.IfcBridge=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.PredefinedType=c,this.type=644574406}};e.IfcBridgePart=class extends zn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.UsageType=c,this.PredefinedType=u,this.type=963979645}};e.IfcBuilding=class extends Wn{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.CompositionType=h,this.ElevationOfRefHeight=c,this.ElevationOfTerrain=u,this.BuildingAddress=A,this.type=4031249490}};e.IfcBuildingElementPart=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2979338954}};e.IfcBuildingElementPartType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=39481116}};e.IfcBuildingElementProxyType=class extends On{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1909888760}};e.IfcBuildingSystem=class extends ya{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.LongName=a,this.type=1177604601}};class Ta extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1876633798}}e.IfcBuiltElement=Ta;e.IfcBuiltSystem=class extends ya{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.LongName=a,this.type=3862327254}};e.IfcBurnerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2188180465}};e.IfcCableCarrierFittingType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=395041908}};e.IfcCableCarrierSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3293546465}};e.IfcCableFittingType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2674252688}};e.IfcCableSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1285652485}};e.IfcCaissonFoundationType=class extends Fn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3203706013}};e.IfcChillerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2951183804}};e.IfcChimney=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3296154744}};e.IfcCircle=class extends wn{constructor(e,t,s){super(e,t),this.Position=t,this.Radius=s,this.type=2611217952}};e.IfcCivilElement=class extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1677625105}};e.IfcCoilType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2301859152}};e.IfcColumn=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=843113511}};e.IfcCommunicationsApplianceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=400855858}};e.IfcCompressorType=class extends Jn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3850581409}};e.IfcCondenserType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2816379211}};e.IfcConstructionEquipmentResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=3898045240}};e.IfcConstructionMaterialResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=1060000209}};e.IfcConstructionProductResource=class extends Mn{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.Identification=n,this.LongDescription=a,this.Usage=l,this.BaseCosts=h,this.BaseQuantity=c,this.PredefinedType=u,this.type=488727124}};e.IfcConveyorSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2940368186}};e.IfcCooledBeamType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=335055490}};e.IfcCoolingTowerType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2954562838}};e.IfcCourse=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1502416096}};e.IfcCovering=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1973544240}};e.IfcCurtainWall=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3495092785}};e.IfcDamperType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3961806047}};class Pa extends Ta{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3426335179}}e.IfcDeepFoundation=Pa;e.IfcDiscreteAccessory=class extends Gn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1335981549}};e.IfcDiscreteAccessoryType=class extends kn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2635815018}};e.IfcDistributionBoardType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=479945903}};e.IfcDistributionChamberElementType=class extends Un{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1599208980}};class ba extends Ln{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.type=2063403501}}e.IfcDistributionControlElementType=ba;class Ra extends Hn{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1945004755}}e.IfcDistributionElement=Ra;class Da extends Ra{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3040386961}}e.IfcDistributionFlowElement=Da;e.IfcDistributionPort=class extends aa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.FlowDirection=l,this.PredefinedType=h,this.SystemType=c,this.type=3041715199}};class Ca extends ya{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.PredefinedType=a,this.type=3205830791}}e.IfcDistributionSystem=Ca;e.IfcDoor=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.OperationType=A,this.UserDefinedOperationType=p,this.type=395920057}};e.IfcDuctFittingType=class extends qn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=869906466}};e.IfcDuctSegmentType=class extends $n{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3760055223}};e.IfcDuctSilencerType=class extends sa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2030761528}};e.IfcEarthworksCut=class extends Xn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3071239417}};class Na extends Ta{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1077100507}}e.IfcEarthworksElement=Na;e.IfcEarthworksFill=class extends Na{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3376911765}};e.IfcElectricApplianceType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=663422040}};e.IfcElectricDistributionBoardType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2417008758}};e.IfcElectricFlowStorageDeviceType=class extends ea{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3277789161}};e.IfcElectricFlowTreatmentDeviceType=class extends sa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2142170206}};e.IfcElectricGeneratorType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1534661035}};e.IfcElectricMotorType=class extends Vn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1217240411}};e.IfcElectricTimeControlType=class extends Zn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=712377611}};class Oa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1658829314}}e.IfcEnergyConversionDevice=Oa;e.IfcEngine=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2814081492}};e.IfcEvaporativeCooler=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3747195512}};e.IfcEvaporator=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=484807127}};e.IfcExternalSpatialElement=class extends jn{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.LongName=l,this.PredefinedType=h,this.type=1209101575}};e.IfcFanType=class extends Jn{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=346874300}};e.IfcFilterType=class extends sa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1810631287}};e.IfcFireSuppressionTerminalType=class extends ta{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4222183408}};class xa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2058353004}}e.IfcFlowController=xa;class Sa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=4278956645}}e.IfcFlowFitting=Sa;e.IfcFlowInstrumentType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=4037862832}};e.IfcFlowMeter=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2188021234}};class wa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3132237377}}e.IfcFlowMovingDevice=wa;class Ma extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=987401354}}e.IfcFlowSegment=Ma;class Ba extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=707683696}}e.IfcFlowStorageDevice=Ba;class Fa extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2223149337}}e.IfcFlowTerminal=Fa;class La extends Da{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3508470533}}e.IfcFlowTreatmentDevice=La;e.IfcFooting=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=900683007}};class Ua extends ra{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2713699986}}e.IfcGeotechnicalAssembly=Ua;e.IfcGrid=class extends la{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.UAxes=l,this.VAxes=h,this.WAxes=c,this.PredefinedType=u,this.type=3009204131}};e.IfcHeatExchanger=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3319311131}};e.IfcHumidifier=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2068733104}};e.IfcInterceptor=class extends La{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4175244083}};e.IfcJunctionBox=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2176052936}};e.IfcKerb=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.Mountable=h,this.type=2696325953}};e.IfcLamp=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=76236018}};e.IfcLightFixture=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=629592764}};class Ha extends la{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.type=1154579445}}e.IfcLinearPositioningElement=Ha;e.IfcLiquidTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1638804497}};e.IfcMedicalDevice=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1437502449}};e.IfcMember=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1073191201}};e.IfcMobileTelecommunicationsAppliance=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2078563270}};e.IfcMooringDevice=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=234836483}};e.IfcMotorConnection=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2474470126}};e.IfcNavigationElement=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2182337498}};e.IfcOuterBoundaryCurve=class extends _a{constructor(e,t,s){super(e,t,s),this.Segments=t,this.SelfIntersect=s,this.type=144952367}};e.IfcOutlet=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3694346114}};e.IfcPavement=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1383356374}};e.IfcPile=class extends Pa{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.ConstructionType=c,this.type=1687234759}};e.IfcPipeFitting=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=310824031}};e.IfcPipeSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3612865200}};e.IfcPlate=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3171933400}};e.IfcProtectiveDevice=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=738039164}};e.IfcProtectiveDeviceTrippingUnitType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=655969474}};e.IfcPump=class extends wa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=90941305}};e.IfcRail=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3290496277}};e.IfcRailing=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2262370178}};e.IfcRamp=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3024970846}};e.IfcRampFlight=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3283111854}};e.IfcRationalBSplineCurveWithKnots=class extends Ia{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.Degree=t,this.ControlPointsList=s,this.CurveForm=i,this.ClosedCurve=r,this.SelfIntersect=o,this.KnotMultiplicities=n,this.Knots=a,this.KnotSpec=l,this.WeightsData=h,this.type=1232101972}};e.IfcReinforcedSoil=class extends Na{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3798194928}};e.IfcReinforcingBar=class extends ha{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.SteelGrade=h,this.NominalDiameter=c,this.CrossSectionArea=u,this.BarLength=A,this.PredefinedType=p,this.BarSurface=d,this.type=979691226}};e.IfcReinforcingBarType=class extends ca{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p,d,f,m){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.NominalDiameter=u,this.CrossSectionArea=A,this.BarLength=p,this.BarSurface=d,this.BendingShapeCode=f,this.BendingParameters=m,this.type=2572171363}};e.IfcRoof=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2016517767}};e.IfcSanitaryTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3053780830}};e.IfcSensorType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=1783015770}};e.IfcShadingDevice=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1329646415}};e.IfcSignal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=991950508}};e.IfcSlab=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1529196076}};e.IfcSolarDevice=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3420628829}};e.IfcSpaceHeater=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1999602285}};e.IfcStackTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1404847402}};e.IfcStair=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=331165859}};e.IfcStairFlight=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.NumberOfRisers=h,this.NumberOfTreads=c,this.RiserHeight=u,this.TreadLength=A,this.PredefinedType=p,this.type=4252922144}};e.IfcStructuralAnalysisModel=class extends ya{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.OrientationOf2DPlane=a,this.LoadedBy=l,this.HasResults=h,this.SharedPlacement=c,this.type=2515109513}};e.IfcStructuralLoadCase=class extends fa{constructor(e,t,s,i,r,o,n,a,l,h,c,u){super(e,t,s,i,r,o,n,a,l,h,c),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.PredefinedType=n,this.ActionType=a,this.ActionSource=l,this.Coefficient=h,this.Purpose=c,this.SelfWeightCoefficients=u,this.type=385403989}};e.IfcStructuralPlanarAction=class extends ma{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A){super(e,t,s,i,r,o,n,a,l,h,c,u,A),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.AppliedLoad=l,this.GlobalOrLocal=h,this.DestabilizingLoad=c,this.ProjectedOrTrue=u,this.PredefinedType=A,this.type=1621171031}};e.IfcSwitchingDevice=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1162798199}};e.IfcTank=class extends Ba{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=812556717}};e.IfcTrackElement=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3425753595}};e.IfcTransformer=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3825984169}};e.IfcTransportElement=class extends Ea{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1620046519}};e.IfcTubeBundle=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3026737570}};e.IfcUnitaryControlElementType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3179687236}};e.IfcUnitaryEquipment=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4292641817}};e.IfcValve=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4207607924}};class Ga extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2391406946}}e.IfcWall=Ga;e.IfcWallStandardCase=class extends Ga{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3512223829}};e.IfcWasteTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4237592921}};e.IfcWindow=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h,c,u,A,p){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.OverallHeight=h,this.OverallWidth=c,this.PredefinedType=u,this.PartitioningType=A,this.UserDefinedPartitioningType=p,this.type=3304561284}};e.IfcActuatorType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=2874132201}};e.IfcAirTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1634111441}};e.IfcAirTerminalBox=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=177149247}};e.IfcAirToAirHeatRecovery=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2056796094}};e.IfcAlarmType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=3001207471}};e.IfcAlignment=class extends Ha{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.PredefinedType=l,this.type=325726236}};e.IfcAudioVisualAppliance=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=277319702}};e.IfcBeam=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=753842376}};e.IfcBearing=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4196446775}};e.IfcBoiler=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=32344328}};e.IfcBorehole=class extends Ua{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=3314249567}};e.IfcBuildingElementProxy=class extends Ta{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1095909175}};e.IfcBurner=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2938176219}};e.IfcCableCarrierFitting=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=635142910}};e.IfcCableCarrierSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3758799889}};e.IfcCableFitting=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1051757585}};e.IfcCableSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4217484030}};e.IfcCaissonFoundation=class extends Pa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3999819293}};e.IfcChiller=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3902619387}};e.IfcCoil=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=639361253}};e.IfcCommunicationsAppliance=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3221913625}};e.IfcCompressor=class extends wa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3571504051}};e.IfcCondenser=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2272882330}};e.IfcControllerType=class extends ba{constructor(e,t,s,i,r,o,n,a,l,h,c){super(e,t,s,i,r,o,n,a,l,h),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ApplicableOccurrence=o,this.HasPropertySets=n,this.RepresentationMaps=a,this.Tag=l,this.ElementType=h,this.PredefinedType=c,this.type=578613899}};e.IfcConveyorSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3460952963}};e.IfcCooledBeam=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4136498852}};e.IfcCoolingTower=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3640358203}};e.IfcDamper=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4074379575}};e.IfcDistributionBoard=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3693000487}};e.IfcDistributionChamberElement=class extends Da{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1052013943}};e.IfcDistributionCircuit=class extends Ca{constructor(e,t,s,i,r,o,n,a){super(e,t,s,i,r,o,n,a),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.LongName=n,this.PredefinedType=a,this.type=562808652}};class ka extends Ra{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1062813311}}e.IfcDistributionControlElement=ka;e.IfcDuctFitting=class extends Sa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=342316401}};e.IfcDuctSegment=class extends Ma{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3518393246}};e.IfcDuctSilencer=class extends La{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1360408905}};e.IfcElectricAppliance=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1904799276}};e.IfcElectricDistributionBoard=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=862014818}};e.IfcElectricFlowStorageDevice=class extends Ba{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3310460725}};e.IfcElectricFlowTreatmentDevice=class extends La{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=24726584}};e.IfcElectricGenerator=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=264262732}};e.IfcElectricMotor=class extends Oa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=402227799}};e.IfcElectricTimeControl=class extends xa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1003880860}};e.IfcFan=class extends wa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3415622556}};e.IfcFilter=class extends La{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=819412036}};e.IfcFireSuppressionTerminal=class extends Fa{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=1426591983}};e.IfcFlowInstrument=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=182646315}};e.IfcGeomodel=class extends Ua{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=2680139844}};e.IfcGeoslice=class extends Ua{constructor(e,t,s,i,r,o,n,a,l){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.type=1971632696}};e.IfcProtectiveDeviceTrippingUnit=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=2295281155}};e.IfcSensor=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4086658281}};e.IfcUnitaryControlElement=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=630975310}};e.IfcActuator=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=4288193352}};e.IfcAlarm=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=3087945054}};e.IfcController=class extends ka{constructor(e,t,s,i,r,o,n,a,l,h){super(e,t,s,i,r,o,n,a,l),this.GlobalId=t,this.OwnerHistory=s,this.Name=i,this.Description=r,this.ObjectType=o,this.ObjectPlacement=n,this.Representation=a,this.Tag=l,this.PredefinedType=h,this.type=25142252}}}(mI||(mI={})),(EI=yI||(yI={}))[EI.LOG_LEVEL_DEBUG=0]="LOG_LEVEL_DEBUG",EI[EI.LOG_LEVEL_INFO=1]="LOG_LEVEL_INFO",EI[EI.LOG_LEVEL_WARN=2]="LOG_LEVEL_WARN",EI[EI.LOG_LEVEL_ERROR=3]="LOG_LEVEL_ERROR",EI[EI.LOG_LEVEL_OFF=4]="LOG_LEVEL_OFF","undefined"!=typeof self&&self.crossOriginIsolated)try{vI()}catch(e){II()}else II();p.vec2(),p.vec3(),p.vec3(),p.vec3();class PI{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}}class bI{constructor(e,t,s,i){this.bimViewer=e?e.bimViewer||e:this,this.server=e?e.server:s,this.viewer=e?e.viewer:i,this._children=[],e&&e._children.push(this),this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._events=null,this._eventCallDepth=0,this._enabled=null,this._active=null}fire(e,t,s){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==s&&(this._events[e]=t||!0);const i=this._eventSubs[e];let r;if(i)for(const s in i)i.hasOwnProperty(s)&&(r=i[s],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--)}on(e,t,s){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new PI),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={});let i=this._eventSubs[e];i||(i={},this._eventSubs[e]=i);const r=this._subIdMap.addItem();i[r]={callback:t,scope:s||this},this._subIdEvents[r]=e;const o=this._events[e];return void 0!==o&&t.call(s||this,o),r}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._subIdMap.removeItem(e)}}once(e,t,s){const i=this,r=this.on(e,(function(e){i.off(r),t.call(s||this,e)}),s)}log(e){e="[LOG] "+e,window.console.log(e)}warn(e){e="[WARN] "+e,window.console.warn(e)}error(e){e="[ERROR] "+e,window.console.error(e)}_mutexActivation(e){const t=e.length;for(let s=0;s
Default text
',s.appendChild(this._modal),this._modalVisible=!1,this._modal.style.display="hidden"}show(e){this._modalVisible=!0,this._modal.querySelector(".xeokit-busy-modal-message").innerText=e,this._modal.style.display="block"}hide(){this._modalVisible=!1,this._modal.style.display="none"}destroy(){super.destroy(),this._modal&&(this._modal.parentNode.removeChild(this._modal),this._modal=null)}}const DI=p.vec3();class CI extends bI{constructor(e,t={}){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement,i=this.viewer.camera;this._modelMementos={},i.eye=[.577,.577,.577],i.look=[0,0,0],i.up=[-1,1,-1],this.bimViewer._modelsExplorer.on("modelLoaded",(e=>{this._saveModelMemento(e)})),this.bimViewer._modelsExplorer.on("modelUnloaded",(e=>{this._destroyModelMemento(e)})),this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?s.classList.add("active"):s.classList.remove("active")})),s.addEventListener("click",(e=>{this.getEnabled()&&this.reset(),e.preventDefault()}))}_saveModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;const s=new Oc;s.saveObjects(this.viewer.scene,t,{visible:!0,edges:!0,xrayed:!0,highlighted:!0,selected:!0,clippable:!0,pickable:!0,colorize:!1,opacity:!1}),this._modelMementos[e]=s}_restoreModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;this._modelMementos[e].restoreObjects(this.viewer.scene,t)}_destroyModelMemento(e){delete this._modelMementos[e]}reset(){const e=this.viewer.scene.modelIds;for(var t=0,s=e.length;t{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?s.classList.add("active"):s.classList.remove("active")})),s.addEventListener("click",(e=>{this.getEnabled()&&this.fit(),e.preventDefault()}))}fit(){const e=this.viewer.scene,t=e.getAABB(e.visibleObjectIds);this.viewer.cameraFlight.flyTo({aabb:t}),this.viewer.cameraControl.pivotPos=p.getAABB3Center(t,NI)}set fov(e){this.viewer.scene.cameraFlight.fitFOV=e}get fov(){return this.viewer.scene.cameraFlight.fitFOV}set duration(e){this.viewer.scene.cameraFlight.duration=e}get duration(){return this.viewer.scene.cameraFlight.duration}}class xI extends bI{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement,i=this.viewer.cameraControl,r=t.cameraControlNavModeMediator;i.navMode="orbit",i.followPointer=!0,this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?s.classList.add("active"):s.classList.remove("active")})),this.on("active",(e=>{r.setFirstPersonModeActive(e),e?(i.followPointer=!0,i.pivoting=!1):i.pivoting=!0})),s.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class SI extends bI{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement;this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this.viewer.cameraControl.doublePickFlyTo=!1,this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.visible=!1)}))):(s.classList.remove("active"),this.viewer.cameraControl.doublePickFlyTo=!1,void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),s.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class wI extends bI{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement;this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.selected=!e.entity.selected)}))):(s.classList.remove("active"),void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),s.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class MI extends bI{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.scene.on("modelLoaded",(e=>{if(!this._active){const e=this.viewer.metaScene.getObjectIDsByType("IfcSpace");this.viewer.scene.setObjectsCulled(e,!0)}})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e){this._active!==e&&(this._active=e,e?(this._buttonElement.classList.add("active"),this._enterShowSpacesMode(),this.fire("active",this._active)):(this._buttonElement.classList.remove("active"),this._exitShowSpacesMode(),this.fire("active",this._active)))}_enterShowSpacesMode(){const e=this.viewer,t=e.scene,s=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(s,!1)}_exitShowSpacesMode(){const e=this.viewer,t=e.scene,s=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(s,!0)}}class BI extends bI{constructor(e,t){super(e)}}const FI=p.AABB3(),LI=p.vec3();class UI extends n{constructor(e={}){if(!e.sectionPlanesPlugin)throw"Missing config: sectionPlanesPlugin";super(E.apply({},e)),this._sectionPlanesPlugin=e.sectionPlanesPlugin,this._viewer=this._sectionPlanesPlugin.viewer,this._onSceneSectionPlaneCreated=this._viewer.scene.on("sectionPlaneCreated",(()=>{this._buildMenu()})),this._onSceneSectionPlaneDestroyed=this._viewer.scene.on("sectionPlaneDestroyed",(()=>{this._buildMenu()})),this._buildMenu()}_buildMenu(){const e=this._sectionPlanesPlugin,t=Object.values(e.sectionPlanes),s=[];for(let i=0,r=t.length;i`${e.viewer.localeService.translate("sectionToolContextMenu.slice")||"Slice"} #`+(i+1),doHoverEnter(t){e.hideControl(),e.showControl(r.id)},doHoverLeave(t){e.hideControl()},items:[[{getTitle:e=>r.active?e.viewer.localeService.translate("sectionToolContextMenu.deactivate")||"Disable":e.viewer.localeService.translate("sectionToolContextMenu.activate")||"Enable",doAction:e=>{r.active=!r.active}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.edit")||"Edit",getEnabled:()=>r.active,doAction:t=>{e.hideControl(),e.showControl(r.id);const s=r.pos;FI.set(this._viewer.scene.aabb),p.getAABB3Center(FI,LI),FI[0]+=s[0]-LI[0],FI[1]+=s[1]-LI[1],FI[2]+=s[2]-LI[2],FI[3]+=s[0]-LI[0],FI[4]+=s[1]-LI[1],FI[5]+=s[2]-LI[2],this._viewer.cameraFlight.flyTo({aabb:FI,fitFOV:65})}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flip")||"Flip",getEnabled:()=>r.active,doAction:e=>{r.flipDir()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.delete")||"Delete",doAction:e=>{r.destroy()}}]]})}this.items=[[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flipSlices")||"Flip Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.flipSections()}}],[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.disableAllSlices")||"Disable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.disableSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.enableAllSlices")||"Enable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.enableSections()}}],s]}destroy(){super.destroy();const e=this._viewer.scene;e.off(this._onSceneSectionPlaneCreated),e.off(this._onSceneSectionPlaneDestroyed)}}class HI extends bI{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";if(!t.menuButtonElement)throw"Missing config: menuButtonElement";this._buttonElement=t.buttonElement,this._counterElement=t.counterElement,this._menuButtonElement=t.menuButtonElement,this._menuButtonArrowElement=t.menuButtonArrowElement,this._sectionPlanesPlugin=new Ev(this.viewer,{}),this._sectionToolContextMenu=new UI({sectionPlanesPlugin:this._sectionPlanesPlugin,hideOnMouseDown:!1,hideOnAction:!1}),this._sectionPlanesPlugin.setOverviewVisible(!1),this.on("enabled",(e=>{e?(this._buttonElement.classList.remove("disabled"),this._counterElement&&this._counterElement.classList.remove("disabled"),this._menuButtonElement.classList.remove("disabled"),this._menuButtonArrowElement.classList.remove("disabled")):(this._buttonElement.classList.add("disabled"),this._counterElement&&this._counterElement.classList.add("disabled"),this._menuButtonElement.classList.add("disabled"),this._menuButtonArrowElement.classList.add("disabled"))})),this.on("active",(e=>{e?(this._buttonElement.classList.add("active"),this._counterElement&&this._counterElement.classList.add("active"),this._menuButtonElement.classList.add("active"),this._menuButtonArrowElement.classList.add("active")):(this._buttonElement.classList.remove("active"),this._counterElement&&this._counterElement.classList.remove("active"),this._menuButtonElement.classList.remove("active"),this._menuButtonArrowElement.classList.remove("active"))})),this.on("active",(e=>{e||this._sectionPlanesPlugin.hideControl()})),this._buttonElement.addEventListener("click",(e=>{if(!this.getEnabled())return;if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement)return;const t=this.getActive();this.setActive(!t),e.preventDefault()})),document.addEventListener("mousedown",(e=>{if(!e.target.classList.contains("xeokit-context-menu-item"))if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement)if(e.preventDefault(),this._sectionToolContextMenu.shown)this._sectionToolContextMenu.hide();else{this._sectionToolContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,sectionTool:this};const e=this._menuButtonElement.getBoundingClientRect();this._sectionToolContextMenu.show(e.left,e.bottom+5)}else this._sectionToolContextMenu.hide()})),this._sectionToolContextMenu.on("shown",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-down"),this._menuButtonArrowElement.classList.add("xeokit-arrow-up")})),this._sectionToolContextMenu.on("hidden",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-up"),this._menuButtonArrowElement.classList.add("xeokit-arrow-down")})),this.bimViewer.on("reset",(()=>{this.clear(),this.setActive(!1)})),this.viewer.scene.on("sectionPlaneCreated",(()=>{this._updateSectionPlanesCount()})),this.viewer.scene.on("sectionPlaneDestroyed",(()=>{this._updateSectionPlanesCount()})),this._initSectionMode()}_initSectionMode(){this.viewer.scene.input.on("mouseclicked",(e=>{if(!this.getActive()||!this.getEnabled())return;const t=this.viewer.scene.pick({canvasPos:e,pickSurface:!0});if(t){const e=this._sectionPlanesPlugin.createSectionPlane({pos:t.worldPos,dir:p.mulVec3Scalar(t.worldNormal,-1)});this._sectionPlanesPlugin.showControl(e.id)}})),this._updateSectionPlanesCount()}_updateSectionPlanesCount(){this._counterElement&&(this._counterElement.innerText=""+this.getNumSections())}getNumSections(){return Object.keys(this.viewer.scene.sectionPlanes).length}clear(){this._sectionPlanesPlugin.clear(),this._updateSectionPlanesCount()}flipSections(){this._sectionPlanesPlugin.flipSectionPlanes()}enableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!0}}disableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!1}}hideControl(){this._sectionPlanesPlugin.hideControl()}destroy(){this._sectionPlanesPlugin.destroy(),this._sectionToolContextMenu.destroy(),super.destroy()}}class GI extends bI{constructor(e,t){if(super(e,t),!t.navCubeCanvasElement)throw"Missing config: navCubeCanvasElement";const s=t.navCubeCanvasElement;this._navCube=new cv(this.viewer,{canvasElement:s,fitVisible:!0,color:"#CFCFCF"}),this._navCube.setVisible(this._active),this.on("active",(e=>{this._navCube.setVisible(e)}))}destroy(){this._navCube.destroy(),super.destroy()}}class kI extends n{constructor(e={}){const t=!!e.enableEditModels,s=!!e.enableMeasurements,i=[[{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadModel")||"Load",getEnabled:e=>!e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.loadModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadModel")||"Unload",getEnabled:e=>e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.unloadModel(e.modelId)}}]];t&&i.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.editModel")||"Edit",getEnabled:e=>!0,doAction:e=>{e.bimViewer.editModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.deleteModel")||"Delete",getEnabled:e=>!0,doAction:e=>{e.bimViewer.deleteModel(e.modelId)}}]),i.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadAllModels")||"Load All",getEnabled:e=>{const t=e.bimViewer,s=t.getModelIds();return t.getLoadedModelIds().length{e.bimViewer.loadAllModels()}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadAllModels")||"Unload All",getEnabled:e=>e.bimViewer.getLoadedModelIds().length>0,doAction:e=>{e.bimViewer.unloadAllModels()}}]),i.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}]),s&&i.push([{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]),super({hideOnAction:e.hideOnAction,context:e.context,items:i})}}const VI=p.vec3();class jI{constructor(e){this._server=e}setProjectId(e){this._projectId=e}setModelId(e){this._modelId=e}getManifest(e,t,s){this._server.getSplitModelManifest(this._projectId,this._modelId,e,t,s)}getMetaModel(e,t,s){this._server.getSplitModelMetadata(this._projectId,this._modelId,e,t,s)}getXKT(e,t,s){this._server.getSplitModelGeometry(this._projectId,this._modelId,e,t,s)}}class QI extends bI{constructor(e,t){if(super(e,t),!t.modelsTabElement)throw"Missing config: modelsTabElement";if(!t.unloadModelsButtonElement)throw"Missing config: unloadModelsButtonElement";if(!t.modelsElement)throw"Missing config: modelsElement";if(this._enableAddModels=!!t.enableEditModels,this._modelsTabElement=t.modelsTabElement,this._loadModelsButtonElement=t.loadModelsButtonElement,this._unloadModelsButtonElement=t.unloadModelsButtonElement,this._addModelButtonElement=t.addModelButtonElement,this._modelsElement=t.modelsElement,this._modelsTabButtonElement=this._modelsTabElement.querySelector(".xeokit-tab-btn"),!this._modelsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._dataSource=new jI(this.server),this._xktLoader=new cI(this.viewer,{dataSource:this._dataSource}),this._modelsContextMenu=new kI({enableEditModels:t.enableEditModels,enableMeasurements:t.enableMeasurements,hideOnAction:!0}),this._modelsInfo={},this._numModels=0,this._numModelsLoaded=0,this._projectId=null}setObjectColors(e){this._xktLoader.objectDefaults=e}loadProject(e,t,s){this.server.getProject(e,(s=>{this.unloadProject(),this._projectId=e,this._modelsInfo={},this._numModels=0,this._parseProject(s,t),this._numModelsLoaded0&&this._unloadModelsButtonElement.classList.remove("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.remove("disabled")}),(e=>{this.error(e),s&&s(e)}))}_parseProject(e,t){this._buildModelsMenu(e),this._parseViewerConfigs(e),this._parseViewerContent(e,(()=>{this._parseViewerState(e,(()=>{t()}))}))}_buildModelsMenu(e){var t="";const s=e.models||[];this._modelsInfo={},this._numModels=s.length;for(let e=0,i=s.length;e",t+=""+i.name+"",t+=""}this._modelsElement.innerHTML=t;for(let e=0,t=s.length;e{r.checked?this.loadModel(i):this.unloadModel(t.id)})),o.addEventListener("click",(()=>{!!this.viewer.scene.models[i]?this.unloadModel(t.id):this.loadModel(i)})),o.oncontextmenu=e=>{this._modelsContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,modelId:i},this._modelsContextMenu.show(e.pageX,e.pageY),e.preventDefault()}}}_parseViewerConfigs(e){const t=e.viewerConfigs;t&&this.bimViewer.setConfigs(t)}_parseViewerContent(e,t){const s=e.viewerContent;s?this._parseModelsLoaded(s,(()=>{t()})):t()}_parseModelsLoaded(e,t){const s=e.modelsLoaded;s&&0!==s.length?this._loadNextModel(s.slice(0),t):t()}_loadNextModel(e,t){if(0===e.length)return void t();const s=e.pop();this.loadModel(s,(()=>{this._loadNextModel(e,t)}),(()=>{this._loadNextModel(e,t)}))}_parseViewerState(e,t){const s=e.viewerState;s?this.bimViewer.setViewerState(s,t):t()}unloadProject(){if(!this._projectId)return;const e=this.viewer.scene.models;for(var t in e)if(e.hasOwnProperty(t)){e[t].destroy()}this._modelsElement.innerHTML="",this._numModelsLoaded=0,this._loadModelsButtonElement.classList.add("disabled"),this._unloadModelsButtonElement.classList.add("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.add("disabled");const s=this._projectId;this._projectId=null,this.fire("projectUnloaded",{projectId:s})}getLoadedProjectId(){return this._projectId}getModelIds(){return Object.keys(this._modelsInfo)}loadModel(e,t,s){if(!this._projectId){const e="No project currently loaded";return this.error(e),void(s&&s(e))}const i=this._modelsInfo[e];if(!i){const e="Model not in currently loaded project";return this.error(e),void(s&&s(e))}this.bimViewer._busyModal.show(`${this.viewer.localeService.translate("busyModal.loading")||"Loading"} ${i.name}`);this.bimViewer.getConfig("externalMetadata")&&!i.manifest?this.server.getMetadata(this._projectId,e,(r=>{this._loadGeometry(e,i,r,t,s)}),(e=>{this.bimViewer._busyModal.hide(),this.error(e),s&&s(e)})):this._loadGeometry(e,i,null,t,s)}_loadGeometry(e,t,s,i,r){const o=()=>{document.getElementById(""+e).checked=!0,this._numModelsLoaded++,this._unloadModelsButtonElement.classList.remove("disabled"),this._numModelsLoaded{this.bimViewer._busyModal.hide(),this.error(e),r&&r(e)};if(t.manifest){this._dataSource.setProjectId(this._projectId),this._dataSource.setModelId(e);const s=this._xktLoader.load({id:e,manifestSrc:t.manifest,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});s.on("loaded",o),s.on("error",n)}else this.server.getGeometry(this._projectId,e,(i=>{const r=this._xktLoader.load({id:e,metaModelData:s,xkt:i,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});r.on("loaded",o),r.on("error",n)}),n)}_jumpToInitialCamera(){const e=this.viewer,t=e.scene,s=t.getAABB(t.visibleObjectIds),i=p.getAABB3Diag(s),r=p.getAABB3Center(s,VI),o=t.camera;o.perspective.fov;const n=Math.abs(i/Math.tan(45*p.DEGTORAD)),a=p.normalizeVec3(o.yUp?[-.5,-.7071,-.5]:[-1,1,-1]),l=p.normalizeVec3(o.yUp?[-.5,.7071,-.5]:[-1,1,1]);e.cameraControl.pivotPos=r,e.cameraControl.planView=!1,e.cameraFlight.jumpTo({look:r,eye:[r[0]-n*a[0],r[1]-n*a[1],r[2]-n*a[2]],up:l,orthoScale:1.1*i})}unloadModel(e){const t=this.viewer.scene.models[e];if(!t)return void this.error("Model not loaded: "+e);t.destroy();document.getElementById(""+e).checked=!1,document.getElementById("span-"+e),this._numModelsLoaded--,this._numModelsLoaded>0?this._unloadModelsButtonElement.classList.remove("disabled"):this._unloadModelsButtonElement.classList.add("disabled"),this._numModelsLoadede.viewer.localeService.translate("treeViewContextMenu.inspectProperties")||"Inspect Properties",getShown:e=>!!e.viewer.metaScene.metaObjects[e.treeViewNode.objectId],doAction:e=>{const t=e.treeViewNode.objectId;e.bimViewer.showObjectProperties(t)}}),s.push({getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFit")||"View Fit",doAction:function(e){const t=e.viewer,s=t.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)})),s.setObjectsVisible(i,!0),s.setObjectsHighlighted(i,!0);const r=s.getAABB(i);t.cameraFlight.flyTo({aabb:r,duration:.5},(()=>{setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=p.getAABB3Center(r)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.selectedObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=p.getAABB3Center(i)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFitAll")||"View Fit All",doAction:function(e){const t=e.viewer,s=t.scene,i=s.getAABB(s.visibleObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=p.getAABB3Center(i)}}),r&&i.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,s,[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.isolate")||"Isolate",doAction:function(e){const t=e.viewer,s=t.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));const r=s.getAABB(i);t.cameraControl.pivotPos=p.getAABB3Center(r,WI),s.setObjectsXRayed(s.xrayedObjectIds,!1),s.setObjectsVisible(s.visibleObjectIds,!1),s.setObjectsSelected(s.selectedObjectIds,!1),s.setObjectsVisible(i,!0),t.cameraFlight.flyTo({aabb:r},(()=>{}))}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hide")||"Hide",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideOthers")||"Hide Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.visibleObjectIds,!1),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const s=t.objects[e.objectId];s&&(s.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideAll")||"Hide All",getEnabled:function(e){return e.viewer.scene.visibleObjectIds.length>0},doAction:function(e){e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.show")||"Show",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.visible=!0,s.xrayed&&(s.pickable=!0),s.xrayed=!1,s.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showOthers")||"Shows Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const s=t.objects[e.objectId];s&&(s.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showAll")||"Show All",getEnabled:function(e){const t=e.viewer.scene;return t.numVisibleObjects0},doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xray")||"X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.selected=!1,s.xrayed=!0,s.visible=!0,s.pickable=e.bimViewer.getConfig("xrayPickable"))}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoXray")||"Undo X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.xrayed=!1,s.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayOthers")||"X-Ray Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const s=t.objects[e.objectId];s&&(s.xrayed=!1,s.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayAll")||"X-Ray All",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayNone")||"X-Ray None",getEnabled:function(e){return e.viewer.scene.numXRayedObjects>0},doAction:function(e){const t=e.viewer.scene,s=t.xrayedObjectIds;t.setObjectsPickable(s,!0),t.setObjectsXRayed(s,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.select")||"Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.selected=!0,s.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoSelect")||"Undo Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const s=e.viewer.scene.objects[t.objectId];s&&(s.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.selectNone")||"Select None",getEnabled:function(e){return e.viewer.scene.numSelectedObjects>0},doAction:function(e){e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.clearSlices")||"Clear Slices",getEnabled:function(e){return e.bimViewer.getNumSections()>0},doAction:function(e){e.bimViewer.clearSections()}}],i]}}class KI extends bI{constructor(e,t={}){if(super(e),!t.objectsTabElement)throw"Missing config: objectsTabElement";if(!t.showAllObjectsButtonElement)throw"Missing config: showAllObjectsButtonElement";if(!t.hideAllObjectsButtonElement)throw"Missing config: hideAllObjectsButtonElement";if(!t.objectsElement)throw"Missing config: objectsElement";if(this._objectsTabElement=t.objectsTabElement,this._showAllObjectsButtonElement=t.showAllObjectsButtonElement,this._hideAllObjectsButtonElement=t.hideAllObjectsButtonElement,this._objectsTabButtonElement=this._objectsTabElement.querySelector(".xeokit-tab-btn"),!this._objectsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";const s=t.objectsElement;this._treeView=new Iv(this.viewer,{containerElement:s,hierarchy:"containment",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new zI(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!1),t.setObjectsPickable(s,!0)):(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!0),t.setObjectsPickable(s,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._objectsTabButtonElement.classList.remove("disabled"),this._showAllObjectsButtonElement.classList.remove("disabled"),this._hideAllObjectsButtonElement.classList.remove("disabled")):(this._objectsTabButtonElement.classList.add("disabled"),this._showAllObjectsButtonElement.classList.add("disabled"),this._hideAllObjectsButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}class YI extends bI{constructor(e,t={}){if(super(e),!t.classesTabElement)throw"Missing config: classesTabElement";if(!t.showAllClassesButtonElement)throw"Missing config: showAllClassesButtonElement";if(!t.hideAllClassesButtonElement)throw"Missing config: hideAllClassesButtonElement";if(!t.classesElement)throw"Missing config: classesElement";if(this._classesTabElement=t.classesTabElement,this._showAllClassesButtonElement=t.showAllClassesButtonElement,this._hideAllClassesButtonElement=t.hideAllClassesButtonElement,this._classesTabButtonElement=this._classesTabElement.querySelector(".xeokit-tab-btn"),!this._classesTabButtonElement)throw"Missing DOM element: xeokit-tab-btn";const s=t.classesElement;this._treeView=new Iv(this.viewer,{containerElement:s,hierarchy:"types",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new zI(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!1),t.setObjectsPickable(s,!0)):(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!0),t.setObjectsPickable(s,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._classesTabButtonElement.classList.remove("disabled"),this._showAllClassesButtonElement.classList.remove("disabled"),this._hideAllClassesButtonElement.classList.remove("disabled")):(this._classesTabButtonElement.classList.add("disabled"),this._showAllClassesButtonElement.classList.add("disabled"),this._hideAllClassesButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const XI=p.vec3();class ZI extends bI{constructor(e,t={}){if(super(e),!t.storeysTabElement)throw"Missing config: storeysTabElement";if(!t.showAllStoreysButtonElement)throw"Missing config: showAllStoreysButtonElement";if(!t.hideAllStoreysButtonElement)throw"Missing config: hideAllStoreysButtonElement";if(!t.storeysElement)throw"Missing config: storeysElement";if(this._storeysTabElement=t.storeysTabElement,this._showAllStoreysButtonElement=t.showAllStoreysButtonElement,this._hideAllStoreysButtonElement=t.hideAllStoreysButtonElement,this._storeysTabButtonElement=this._storeysTabElement.querySelector(".xeokit-tab-btn"),!this._storeysTabButtonElement)throw"Missing DOM element: .xeokit-tab-btn";const s=t.storeysElement;this._treeView=new Iv(this.viewer,{containerElement:s,autoAddModels:!1,hierarchy:"storeys",autoExpandDepth:1}),this._treeViewContextMenu=new zI(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode,pruneEmptyNodes:!0},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!1),t.setObjectsPickable(s,!0)):(t.setObjectsXRayed(s,!1),t.setObjectsVisible(s,!0),t.setObjectsPickable(s,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{const t=this.bimViewer._modelsExplorer.getModelInfo(e);t&&this._treeView.addModel(e,{rootName:t.name})})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse(),this._treeView.expandToDepth(1)}))}setEnabled(e){e?(this._storeysTabButtonElement.classList.remove("disabled"),this._showAllStoreysButtonElement.classList.remove("disabled"),this._hideAllStoreysButtonElement.classList.remove("disabled")):(this._storeysTabButtonElement.classList.add("disabled"),this._showAllStoreysButtonElement.classList.add("disabled"),this._hideAllStoreysButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}selectStorey(e,t){const s=this.viewer.metaScene.metaObjects[e];if(!s)return void this.error("selectStorey() - object is not found: '"+e+"'");if("IfcBuildingStorey"!==s.type)return void this.error("selectStorey() - object is not found: '"+e+"'");const i=s.getObjectIDsInSubtree();this._selectObjects(i,t)}_selectObjects(e,t){const s=this.viewer.scene,i=s.getAABB(e);this.viewer.cameraControl.pivotPos=p.getAABB3Center(i,XI),t?(s.setObjectsXRayed(s.objectIds,!0),s.setObjectsVisible(s.objectIds,!0),s.setObjectsPickable(s.objectIds,!1),s.setObjectsSelected(s.selectedObjectIds,!1),s.setObjectsXRayed(e,!1),s.setObjectsVisible(e,!0),s.setObjectsPickable(e,!0),this.viewer.cameraFlight.flyTo({aabb:i},(()=>{setTimeout((function(){s.setObjectsVisible(s.xrayedObjectIds,!1),s.setObjectsXRayed(s.xrayedObjectIds,!1)}),500),t()}))):(s.setObjectsVisible(s.objectIds,!1),s.setObjectsPickable(s.xrayedObjectIds,!0),s.setObjectsXRayed(s.xrayedObjectIds,!1),s.setObjectsSelected(s.selectedObjectIds,!1),s.setObjectsVisible(e,!0),this.viewer.cameraFlight.jumpTo({aabb:i}))}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const qI=p.vec3();class JI extends bI{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._saveOrthoActive=null,this._buttonElement=t.buttonElement,this._cameraControlNavModeMediator=t.cameraControlNavModeMediator,this._active=!1,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&(this.bimViewer._sectionTool.hideControl(),this.setActive(!this.getActive(),(()=>{}))),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!0,(()=>{}))}))}setEnabled(e){super.setEnabled(e),this._saveOrthoActive=this.bimViewer._orthoMode.getActive()}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterThreeDMode((()=>{this.fire("active",this._active),t()})):(this._enterThreeDMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitThreeDMode((()=>{this.fire("active",this._active),t()})):(this._exitThreeDMode(),this.fire("active",this._active)))):t&&t()}_enterThreeDMode(e){const t=this.viewer,s=t.scene,i=s.getAABB(s.visibleObjectIds),r=p.getAABB3Diag(i),o=p.getAABB3Center(i,qI),n=Math.abs(r/Math.tan(32.5)),a=s.camera,l=a.yUp?[-1,-1,-1]:[1,1,1],h=a.yUp?[-1,1,-1]:[-1,1,1];t.cameraControl.pivotPos=o,this.bimViewer._navCubeMode.setActive(!0),this.bimViewer._firstPersonMode.setEnabled(!0),this._cameraControlNavModeMediator.setThreeDModeActive(!0),this.bimViewer._sectionTool.setEnabled(!0),this.bimViewer._orthoMode.setEnabled(!0),e?t.cameraFlight.flyTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:h,orthoScale:1.3*r,duration:1,projection:this._saveOrthoActive?"ortho":"perspective"},(()=>{e()})):t.cameraFlight.jumpTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:h,orthoScale:1.3*r,projection:this._saveOrthoActive?"ortho":"perspective"})}_exitThreeDMode(e){const t=this.viewer,s=t.scene,i=s.camera,r=s.getAABB(s.visibleObjectIds),o=p.getAABB3Center(r),n=p.getAABB3Diag(r),a=Math.abs(n/Math.tan(45*p.DEGTORAD)),l=1.3*n,h=qI;h[0]=o[0]+i.worldUp[0]*a,h[1]=o[1]+i.worldUp[1]*a,h[2]=o[2]+i.worldUp[2]*a;const c=p.mulVec3Scalar(i.worldForward,-1,[]);this.bimViewer._sectionTool.setActive(!1),this.bimViewer._firstPersonMode.setEnabled(!1),this._saveOrthoActive=this.bimViewer._orthoMode.getActive(),this.bimViewer._orthoMode.setEnabled(!1),this._cameraControlNavModeMediator.setThreeDModeActive(!1),e?t.cameraFlight.flyTo({eye:h,look:o,up:c,orthoScale:l,projection:"ortho"},(()=>{this.bimViewer._navCubeMode.setActive(!1)})):(t.cameraFlight.jumpTo({eye:h,look:o,up:c,orthoScale:l,projection:"ortho"}),this.bimViewer._navCubeMode.setActive(!1))}}class $I extends n{constructor(e,t={}){super(t),this._bimViewer=e,this._buildMenu(t)}_buildMenu(e){const t=[],s=[],i=[],r=!!e.enableMeasurements;this._bimViewer._enablePropertiesInspector&&t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.inspectProperties")||"Inspect Properties",doAction:e=>{const t=e.entity.id;e.bimViewer.showObjectProperties(t)}}),t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showInTree")||"Show in Explorer",doAction:e=>{const t=e.entity.id;e.showObjectInExplorers(t)}}),s.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFit")||"View Fit",doAction:e=>{const t=e.viewer,s=t.scene,i=e.entity;t.cameraFlight.flyTo({aabb:i.aabb,duration:.5},(()=>{setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=p.getAABB3Center(i.aabb)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.selectedObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=p.getAABB3Center(i)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.visibleObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=p.getAABB3Center(i)}}),r&&i.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,s,[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hide")||"Hide",getEnabled:e=>e.entity.visible,doAction:e=>{e.entity.visible=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideOthers")||"Hide Others",doAction:e=>{const t=e.viewer,s=t.scene,i=e.entity,r=t.metaScene.metaObjects[i.id];r&&(s.setObjectsVisible(s.visibleObjectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=s.objects[e.id];t&&(t.visible=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xray")||"X-Ray",getEnabled:e=>!e.entity.xrayed,doAction:e=>{const t=e.entity;t.xrayed=!0,t.pickable=e.bimViewer.getConfig("xrayPickable")}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayOthers")||"X-Ray Others",doAction:e=>{const t=e.viewer,s=t.scene,i=e.entity,r=t.metaScene.metaObjects[i.id];r&&(s.setObjectsVisible(s.objectIds,!0),s.setObjectsXRayed(s.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||s.setObjectsPickable(s.objectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=s.objects[e.id];t&&(t.xrayed=!1,t.pickable=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene,s=t.xrayedObjectIds;t.setObjectsPickable(s,!0),t.setObjectsXRayed(s,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.select")||"Select",getEnabled:e=>!e.entity.selected,doAction:e=>{e.entity.selected=!0}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.undoSelect")||"Undo Select",getEnabled:e=>e.entity.selected,doAction:e=>{e.entity.selected=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],i]}}class e_ extends n{constructor(e,t={}){super({hideOnAction:t.hideOnAction,context:t.context,items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.visibleObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=p.getAABB3Center(i)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,s=t.scene,i=s.getAABB(s.selectedObjectIds);t.cameraFlight.flyTo({aabb:i,duration:.5}),t.cameraControl.pivotPos=p.getAABB3Center(i)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene.xrayedObjectIds;e.viewer.scene.setObjectsPickable(t,!0),e.viewer.scene.setObjectsXRayed(t,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.resetView")||"Reset View",doAction:e=>{e.bimViewer.resetView()}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],t.enableMeasurements?[{getTitle:e=>"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]:[]]})}}class t_ extends bI{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.camera.on("projection",(()=>{const e="ortho"===this.viewer.camera.projection;this._active=e,this._active?this._buttonElement.classList.add("active"):this._buttonElement.classList.remove("active")})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterOrthoMode((()=>{this.fire("active",this._active),t()})):(this._enterOrthoMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitOrthoMode((()=>{this.fire("active",this._active),t()})):(this._exitOrthoMode(),this.fire("active",this._active)))):t&&t()}_enterOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"ortho",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"ortho"})}_exitOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"perspective",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"perspective"})}}class s_ extends bI{constructor(e,t={}){if(super(e),!t.propertiesTabElement)throw"Missing config: propertiesTabElement";if(!t.propertiesElement)throw"Missing config: propertiesElement";if(this._metaObject=null,this._propertiesTabElement=t.propertiesTabElement,this._propertiesElement=t.propertiesElement,this._propertiesTabButtonElement=this._propertiesTabElement.querySelector(".xeokit-tab-btn"),!this._propertiesTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{if(this._metaObject){const t=this._metaObject.metaModels;for(let s=0,i=t.length;s{this.clear()})),document.addEventListener("click",this._clickListener=e=>{e.target.matches(".xeokit-accordion .xeokit-accordion-button")&&(e.target.parentElement.classList.contains("active")?e.target.parentElement.classList.remove("active"):e.target.parentElement.classList.add("active"))}),this.clear()}showObjectPropertySets(e){const t=this.viewer.metaScene.metaObjects[e];if(!t)return;const s=t.propertySets;s&&s.length>0?this._setPropertySets(t,s):this._setPropertySets(t),this._metaObject=t}clear(){const e=[],t=this.viewer.localeService.translate("propertiesInspector.noObjectSelectedWarning")||"No object inspected. Right-click or long-tab an object and select 'Inspect Properties' to view its properties here.";e.push('
'),e.push(`

${t}

`),e.push("
");const s=e.join("");this._propertiesElement.innerHTML=s}_setPropertySets(e,t){const s=[];if(s.push('
'),e){s.push(''),s.push(``),e.type&&s.push(``),s.push(``),s.push(``);const i=e.attributes;if(i)for(let e in i)s.push(``);if(s.push("
Name:${e.name}
Class:${e.type}
UUID:${e.originalSystemId}
Viewer ID:${e.id}
${i_(e)}:${i[e]}
"),t&&0!==t.length){s.push("
"),s.push('
');for(let e=0,i=t.length;e0){s.push(`
\n

${i.name}

\n
\n `);for(let e=0,t=r.length;e`)}s.push("
${t.name||t.label}:${t.value}
\n
\n
")}}s.push("
")}else{const e=this.viewer.localeService.translate("propertiesInspector.noPropSetWarning")||"No properties sets found for this object";s.push(`

${e}

`),s.push("")}}else s.push('

No object selected

');this._propertiesElement.innerHTML=s.join("")}setEnabled(e){e?this._propertiesTabButtonElement.classList.remove("disabled"):this._propertiesTabButtonElement.classList.add("disabled")}destroy(){super.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded),document.removeEventListener("click",this._clickListener)}}function i_(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e}const r_=new Float32Array(3);class o_{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 i=t.aabb;if(s>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&p.containsAABB3(e.left.aabb,i))return void this._insertEntity(e.left,t,s+1);if(e.right&&p.containsAABB3(e.right.aabb,i))return void this._insertEntity(e.right,t,s+1);const r=e.aabb;r_[0]=r[3]-r[0],r_[1]=r[4]-r[1],r_[2]=r[5]-r[2];let o=0;if(r_[1]>r_[o]&&(o=1),r_[2]>r_[o]&&(o=2),!e.left){const n=r.slice();if(n[o+3]=(r[o]+r[o+3])/2,e.left={aabb:n},p.containsAABB3(n,i))return void this._insertEntity(e.left,t,s+1)}if(!e.right){const n=r.slice();if(n[o]=(r[o]+r[o+3])/2,e.right={aabb:n},p.containsAABB3(n,i))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 n_ extends bI{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";this._objectsKdTree3=t.objectsKdTree3,this._marquee=p.AABB2(),this._marqueeFrustum=new F,this._marqueeFrustumProjMat=p.mat4(),this._marqueeDir=!1;const s=t.buttonElement;this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this._objectsKdTree3.root):s.classList.remove("active")})),s.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}));const i=this.viewer.scene,r=i.canvas.canvas;this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement);const o=this._marqueeElement.style;let n,a,l,h,c,u,A,d;o.position="absolute",o["z-index"]="40000005",o.width="8px",o.height="8px",o.visibility="hidden",o.top="0px",o.left="0px",o["box-shadow"]="0 2px 5px 0 #182A3D;",o.opacity=1,o["pointer-events"]="none";let f=!1,m=!1;r.addEventListener("mousedown",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;const t=this.bimViewer.viewer.scene.input;t.keyDown[t.KEY_CTRL]||i.setObjectsSelected(i.selectedObjectIds,!1),n=e.pageX,a=e.pageY,o.visibility="visible",o.left=`${n}px`,o.top=`${a}px`,o.width="0px",o.height="0px",o.display="block",c=e.offsetX,u=e.offsetY,f=!0,this.viewer.cameraControl.pointerEnabled=!1})),r.addEventListener("mouseup",(e=>{if(!this.getActive()||!this.getEnabled())return;if(!f&&!m)return;if(0!==e.button)return;l=e.pageX,h=e.pageY;const t=Math.abs(l-n),s=Math.abs(h-a);o.width=`${t}px`,o.height=`${s}px`,o.visibility="hidden",f=!1,this.viewer.cameraControl.pointerEnabled=!0,m&&(m=!1),(t>3||s>3)&&this._marqueePick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&this.getEnabled()&&0===e.button&&f&&(o.visibility="hidden",f=!1,m=!0,this.viewer.cameraControl.pointerEnabled=!0)}),!0),r.addEventListener("mousemove",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;if(!f)return;const t=e.pageX,s=e.pageY,i=t-n,r=s-a;o.width=`${Math.abs(i)}px`,o.height=`${Math.abs(r)}px`,o.left=`${Math.min(n,t)}px`,o.top=`${Math.min(a,s)}px`,A=e.offsetX,d=e.offsetY;const l=c{if(i===F.INTERSECT&&(i=U(this._marqueeFrustum,s.aabb)),i!==F.OUTSIDE){if(s.entities){const t=s.entities;for(let s=0,i=t.length;se.measurement.axisVisible?"Hide Measurement Axis":"Show Measurement Axis",doAction:function(e){e.measurement.axisVisible=!e.measurement.axisVisible}},{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Labels":"Show Measurement Labels",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin=new yc(this.viewer,{defaultAxisVisible:!1}),this._distanceMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._distanceMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={distanceMeasurementsPlugin:this._distanceMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._distanceMeasurementsMouseControl=new mc(this._distanceMeasurementsPlugin,{}),this._distanceMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this._distanceMeasurementsMouseControl.activate()):(s.classList.remove("active"),this._distanceMeasurementsMouseControl.deactivate())})),s.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._distanceMeasurementsPlugin.measurements).length}setMeasurementsAxisVisible(e){this._distanceMeasurementsPlugin.setAxisVisible(e)}getMeasurementsAxisVisible(){return this._distanceMeasurementsPlugin.getAxisVisible()}setSnappingEnabled(e){return this._distanceMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._distanceMeasurementsMouseControl.snapping}clear(){this._distanceMeasurementsPlugin.clear()}destroy(){this._distanceMeasurementsPlugin.destroy(),this._distanceMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}class l_ extends bI{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const s=t.buttonElement;this._contextMenu=new n({items:[[{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Label":"Show Measurement Label",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin=new fe(this.viewer,{}),this._angleMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._angleMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={angleMeasurementsPlugin:this._angleMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._angleMeasurementsMouseControl=new de(this._angleMeasurementsPlugin,{}),this._angleMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?s.classList.remove("disabled"):s.classList.add("disabled")})),this.on("active",(e=>{e?(s.classList.add("active"),this._angleMeasurementsMouseControl.activate()):(s.classList.remove("active"),this._angleMeasurementsMouseControl.deactivate())})),s.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._angleMeasurementsPlugin.measurements).length}setSnappingEnabled(e){return this._angleMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._angleMeasurementsMouseControl.snapping}clear(){this._angleMeasurementsPlugin.clear()}destroy(){this._angleMeasurementsPlugin.destroy(),this._angleMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}function h_(e){const t="xeokit-tab",s="active";function i(e){let i=e.parentNode.querySelectorAll("."+t);for(let t=0;t{e.preventDefault()},o.oncontextmenu=e=>{e.preventDefault()},n.oncontextmenu=e=>{e.preventDefault()};const l=new WE({localeService:t.localeService,canvasElement:s,keyboardEventsElement:t.keyboardEventsElement,transparent:!1,backgroundColor:[1,1,1],backgroundColorFromAmbientLight:!1,saoEnabled:!0,pbrEnabled:!1,colorTextureEnabled:!0,numCachedSectionPlanes:4});super(null,t,e,l),this._configs={},this._enableAddModels=!!t.enableEditModels,this._enableMeasurements=!1!==t.enableMeasurements,this._enablePropertiesInspector=!!t.inspectorElement,this.viewer=l,this._objectsKdTree3=new o_({viewer:l}),this._customizeViewer(),this._initCanvasContextMenus(),i.innerHTML=function(e){return'
\n
\n Models\n
\n
\n \n '+(e.enableEditModels?'':"")+'
\n
\n
\n
\n
\n Objects\n
\n
\n \n \n
\n
\n
\n
\n
\n Classes\n
\n
\n \n \n
\n
\n
\n
\n
\n Storeys\n
\n
\n \n \n
\n
\n
\n
\n
'}(t),o.innerHTML=function(e={}){return'
\n \x3c!-- Reset button --\x3e\n
\n \n
\n
\n \x3c!-- 3D Mode button --\x3e\n \n \x3c!-- Perspective/Ortho Mode button --\x3e\n \n \x3c!-- Fit button --\x3e\n \n \x3c!-- First Person mode button --\x3e\n \n \x3c!-- Show/hide IFCSpaces --\x3e\n \n
\n \x3c!-- Tools button group --\x3e\n
\n \x3c!-- Hide tool button --\x3e\n \n \x3c!-- Select tool button --\x3e\n \n \x3c!-- Marquee select tool button --\x3e\n '+(e.enableMeasurements?'\x3c!-- Measure distance tool button --\x3e\n \n \x3c!-- Measure angle tool button --\x3e\n ':" ")+'\x3c!-- section tool button --\x3e\n \n
\n
'}({enableMeasurements:this._enableMeasurements}),this._enablePropertiesInspector&&(r.innerHTML='
\n
\n Properties\n
\n
\n
\n
\n
'),this._explorerElement=i,this._inspectorElement=r,h_(i),this._enablePropertiesInspector&&h_(r),this._modelsExplorer=new QI(this,{enableMeasurements:this._enableMeasurements,modelsTabElement:i.querySelector(".xeokit-modelsTab"),loadModelsButtonElement:i.querySelector(".xeokit-loadAllModels"),unloadModelsButtonElement:i.querySelector(".xeokit-unloadAllModels"),addModelButtonElement:i.querySelector(".xeokit-addModel"),modelsElement:i.querySelector(".xeokit-models"),enableEditModels:this._enableAddModels}),this._objectsExplorer=new KI(this,{enableMeasurements:this._enableMeasurements,objectsTabElement:i.querySelector(".xeokit-objectsTab"),showAllObjectsButtonElement:i.querySelector(".xeokit-showAllObjects"),hideAllObjectsButtonElement:i.querySelector(".xeokit-hideAllObjects"),objectsElement:i.querySelector(".xeokit-objects")}),this._classesExplorer=new YI(this,{enableMeasurements:this._enableMeasurements,classesTabElement:i.querySelector(".xeokit-classesTab"),showAllClassesButtonElement:i.querySelector(".xeokit-showAllClasses"),hideAllClassesButtonElement:i.querySelector(".xeokit-hideAllClasses"),classesElement:i.querySelector(".xeokit-classes")}),this._storeysExplorer=new ZI(this,{enableMeasurements:this._enableMeasurements,storeysTabElement:i.querySelector(".xeokit-storeysTab"),showAllStoreysButtonElement:i.querySelector(".xeokit-showAllStoreys"),hideAllStoreysButtonElement:i.querySelector(".xeokit-hideAllStoreys"),storeysElement:i.querySelector(".xeokit-storeys")}),this._enablePropertiesInspector&&(this._propertiesInspector=new s_(this,{propertiesTabElement:r.querySelector(".xeokit-propertiesTab"),propertiesElement:r.querySelector(".xeokit-properties")})),this._resetAction=new CI(this,{buttonElement:o.querySelector(".xeokit-reset"),active:!1}),this._fitAction=new OI(this,{buttonElement:o.querySelector(".xeokit-fit"),active:!1});const h=new function(e){let t=!1;this.setThreeDModeActive=s=>{s?(e._firstPersonMode.setActive(!1),e._marqueeSelectionTool.setEnabled(!0),e.viewer.cameraControl.navMode="orbit"):(e._marqueeSelectionTool.setEnabled(!1),e._marqueeSelectionTool.setActive(!1),e._firstPersonMode.setActive(!1),e.viewer.cameraControl.navMode="planView"),t=s},this.setFirstPersonModeActive=s=>{e.viewer.cameraControl.navMode=s?"firstPerson":t?"orbit":"planView"}}(this);this._threeDMode=new JI(this,{buttonElement:o.querySelector(".xeokit-threeD"),cameraControlNavModeMediator:h,active:!1}),this._orthoMode=new t_(this,{buttonElement:o.querySelector(".xeokit-ortho"),active:!1}),this._firstPersonMode=new xI(this,{buttonElement:o.querySelector(".xeokit-firstPerson"),cameraControlNavModeMediator:h,active:!1}),this._hideTool=new SI(this,{buttonElement:o.querySelector(".xeokit-hide"),active:!1}),this._selectionTool=new wI(this,{buttonElement:o.querySelector(".xeokit-select"),active:!1}),this._marqueeSelectionTool=new n_(this,{buttonElement:o.querySelector(".xeokit-marquee"),active:!1,objectsKdTree3:this._objectsKdTree3}),this._showSpacesMode=new MI(this,{buttonElement:o.querySelector(".xeokit-showSpaces"),active:!1}),this._queryTool=new BI(this,{active:!1}),this._sectionTool=new HI(this,{buttonElement:o.querySelector(".xeokit-section"),counterElement:o.querySelector(".xeokit-section-counter"),menuButtonElement:o.querySelector(".xeokit-section-menu-button"),menuButtonArrowElement:o.querySelector(".xeokit-section-menu-button-arrow"),active:!1}),this._measureDistanceTool=new a_(this,{buttonElement:o.querySelector(".xeokit-measure-distance"),active:!1}),this._measureAngleTool=new l_(this,{buttonElement:o.querySelector(".xeokit-measure-angle"),active:!1}),this._navCubeMode=new GI(this,{navCubeCanvasElement:n,active:!0}),this._busyModal=new RI(this,{busyModalBackdropElement:a}),this._threeDMode.setActive(!0),this._firstPersonMode.setActive(!1),this._navCubeMode.setActive(!0),this._modelsExplorer.on("modelLoaded",(e=>{this._modelsExplorer.getNumModelsLoaded()>0&&this.setControlsEnabled(!0),this.fire("modelLoaded",e)})),this._modelsExplorer.on("modelUnloaded",(e=>{0===this._modelsExplorer.getNumModelsLoaded()&&(this.setControlsEnabled(!1),this.openTab("models")),this.fire("modelUnloaded",e)})),this._resetAction.on("reset",(()=>{this.fire("reset",!0)})),this._mutexActivation([this._hideTool,this._selectionTool,this._marqueeSelectionTool,this._sectionTool,this._measureDistanceTool,this._measureAngleTool]),i.querySelector(".xeokit-showAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),i.querySelector(".xeokit-hideAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),i.querySelector(".xeokit-showAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),i.querySelector(".xeokit-hideAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),i.querySelector(".xeokit-showAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),i.querySelector(".xeokit-hideAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),i.querySelector(".xeokit-loadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this.loadAllModels(),e.preventDefault()})),i.querySelector(".xeokit-unloadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this._modelsExplorer.unloadAllModels(),e.preventDefault()})),this._enableAddModels&&i.querySelector(".xeokit-addModel").addEventListener("click",(e=>{this.fire("addModel",{}),e.preventDefault()})),this._bcfViewpointsPlugin=new ac(this.viewer,{xrayAsZeroAlpha:!0}),this._fastNavPlugin=new Ec(l,{hideEdges:!0,hideSAO:!0,hidePBR:!1,hideColorTexture:!1,hideTransparentObjects:!1,scaleCanvasResolution:!1,scaleCanvasResolutionFactor:.6}),this._initConfigs(),this.setControlsEnabled(!1)}get localeService(){return this.viewer.localeService}_customizeViewer(){const e=this.viewer.scene;e.xrayMaterial.fill=!1,e.xrayMaterial.fillAlpha=.3,e.xrayMaterial.fillColor=[0,0,0],e.xrayMaterial.edges=!0,e.xrayMaterial.edgeAlpha=.1,e.xrayMaterial.edgeColor=[0,0,0],e.highlightMaterial.edges=!0,e.highlightMaterial.edgeColor=[1,1,1],e.highlightMaterial.edgeAlpha=1,e.highlightMaterial.fill=!0,e.highlightMaterial.fillAlpha=.1,e.highlightMaterial.fillColor=[1,0,0],e.selectedMaterial.edges=!0,e.selectedMaterial.edgeColor=[1,1,1],e.selectedMaterial.edgeAlpha=1,e.selectedMaterial.fill=!0,e.selectedMaterial.fillAlpha=.1,e.selectedMaterial.fillColor=[0,1,0],e.pointsMaterial.pointSize=1,e.pointsMaterial.roundPoints=!0,e.pointsMaterial.perspectivePoints=!0,e.pointsMaterial.minPerspectivePointSize=2,e.pointsMaterial.maxPerspectivePointSize=4,this.viewer.cameraControl.panRightClick=!0,this.viewer.cameraControl.followPointer=!0,this.viewer.cameraControl.doublePickFlyTo=!1,this.viewer.cameraControl.smartPivot=!0,this.viewer.cameraControl.keyboardDollyRate=100,this.viewer.cameraControl.mouseWheelDollyRate=100,this.viewer.cameraControl.dollyInertia=0,this.viewer.cameraControl.dollyMinSpeed=.04,this.viewer.cameraControl.dollyProximityThreshold=30;const t=document.createRange().createContextualFragment("
").firstChild;document.body.appendChild(t),this.viewer.cameraControl.pivotElement=t,e.camera.perspective.near=.01,e.camera.perspective.far=3e3,e.camera.ortho.near=.01,e.camera.ortho.far=2e3;const s=e.sao;s.enabled=!0,s.numSamples=50,s.kernelRadius=200}_initCanvasContextMenus(){this._canvasContextMenu=new e_(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this._objectContextMenu=new $I(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this.viewer.cameraControl.on("rightClick",(e=>{e.event;const t=this.viewer.scene.pick({canvasPos:e.canvasPos});t&&t.entity.isObject?(this._canvasContextMenu.hide(),this._objectContextMenu.context={viewer:this.viewer,bimViewer:this,showObjectInExplorers:e=>{const t=this.getOpenTab();"objects"!==t&&"classes"!==t&&"storeys"!==t&&this.openTab("objects"),this.showObjectInExplorers(e)},entity:t.entity},this._objectContextMenu.show(e.pagePos[0],e.pagePos[1])):(this._objectContextMenu.hide(),this._canvasContextMenu.context={viewer:this.viewer,bimViewer:this},this._canvasContextMenu.show(e.pagePos[0],e.pagePos[1]))}))}_initConfigs(){this.setConfigs({cameraNear:"0.05",cameraFar:"3000.0",smartPivot:!0,saoEnabled:!0,pbrEnabled:!1,scaleCanvasResolution:!1,saoBias:.5,saoIntensity:.15,saoNumSamples:40,saoKernelRadius:100,edgesEnabled:!0,xrayContext:!0,xrayPickable:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,backgroundColor:[1,1,1],externalMetadata:!1,dtxEnabled:!1})}setConfigs(e){for(let t in e)if(e.hasOwnProperty(t)){const s=e[t];this.setConfig(t,s)}}setConfig(e,t){function s(e){return!0===e||"true"===e}try{switch(e){case"backgroundColor":const i=t;this.setBackgroundColor(i),this._configs[e]=i;break;case"cameraNear":const r=parseFloat(t);this.viewer.scene.camera.perspective.near=r,this.viewer.scene.camera.ortho.near=r,this._configs[e]=r;break;case"cameraFar":const o=parseFloat(t);this.viewer.scene.camera.perspective.far=o,this._configs[e]=o;break;case"smartPivot":this.viewer.cameraControl.smartPivot=this._configs[e]=s(t);break;case"saoEnabled":this._fastNavPlugin.saoEnabled=this._configs[e]=s(t);break;case"saoBias":this.viewer.scene.sao.bias=parseFloat(t);break;case"saoIntensity":this.viewer.scene.sao.intensity=parseFloat(t);break;case"saoKernelRadius":this.viewer.scene.sao.kernelRadius=this._configs[e]=parseFloat(t);break;case"saoNumSamples":this.viewer.scene.sao.numSamples=this._configs[e]=parseFloat(t);break;case"saoBlur":this.viewer.scene.sao.blur=this._configs[e]=s(t);break;case"edgesEnabled":this._fastNavPlugin.edgesEnabled=this._configs[e]=s(t);break;case"pbrEnabled":this._fastNavPlugin.pbrEnabled=this._configs[e]=s(t);break;case"scaleCanvasResolution":this._fastNavPlugin.scaleCanvasResolution=this._configs[e]=s(t);break;case"viewFitFOV":this.viewer.cameraFlight.fitFOV=this._configs[e]=parseFloat(t);break;case"viewFitDuration":this.viewer.cameraFlight.duration=this._configs[e]=parseFloat(t);break;case"perspectiveFOV":this.viewer.camera.perspective.fov=this._configs[e]=parseFloat(t);break;case"excludeUnclassifiedObjects":case"xrayPickable":case"externalMetadata":this._configs[e]=s(t);break;case"xrayContext":this._configs[e]=t;break;case"selectedGlowThrough":const n=this._configs[e]=s(t),a=this.viewer.scene.selectedMaterial;a.glowThrough=n,a.fillAlpha=n?.5:1,a.edgeAlpha=n?.5:1;break;case"highlightGlowThrough":const l=this._configs[e]=s(t),h=this.viewer.scene.highlightMaterial;h.glowThrough=l,h.fillAlpha=l?.5:1,h.edgeAlpha=l?.5:1;break;case"showSpaces":this._configs[e]=s(t),this._showSpacesMode.setActive(t);break;case"dtxEnabled":this._configs[e]=s(t),this.viewer.scene.dtxEnabled=t;break;case"objectColors":this._configs[e]=t,this._modelsExplorer.setObjectColors(t);break;default:this.warn("setConfig() - unsupported configuration: '"+e+"'")}}catch(t){this.error("setConfig() - failed to configure '"+e+"': "+t)}}getConfig(e){return this._configs[e]}getProjectsInfo(e,t){e?this.server.getProjects(e,(e=>{this.error("getProjectsInfo() - "+e),t&&t(e)})):this.error("getProjectsInfo() - Argument expected: 'done'")}getProjectInfo(e,t,s){e?t?this.server.getProject(e,t,(e=>{this.error("getProjectInfo() - "+e),s&&s(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getProjectInfo() - Argument expected: projectId")}getObjectInfo(e,t,s,i,r){e?t?s?i?this.server.getObjectInfo(e,t,s,i,(e=>{r&&r(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getObjectInfo() - Argument expected: objectId"):this.error("getObjectInfo() - Argument expected: modelId"):this.error("getObjectInfo() - Argument expected: projectId")}loadProject(e,t,s){e?this._modelsExplorer.loadProject(e,(()=>{t&&t()}),(e=>{this.error("loadProject() - "+e),s&&s(e)})):this.error("loadProject() - Argument expected: objectId")}unloadProject(){this._modelsExplorer.unloadProject(),this.openTab("models"),this.setControlsEnabled(!1)}getLoadedProjectId(){return this._modelsExplorer.getLoadedProjectId()}getModelIds(){return this._modelsExplorer.getModelIds()}loadModel(e,t,s){e?this._modelsExplorer.loadModel(e,(()=>{t&&t()}),(e=>{this.error("loadModel() - "+e),s&&s(e)})):this.error("loadModel() - Argument expected: modelId")}loadAllModels(e=function(){}){const t=this._modelsExplorer.getModelIds(),s=(e,i)=>{if(e>=t.length)i();else{const r=t[e];this._modelsExplorer.isModelLoaded(r)?s(e+1,i):this._modelsExplorer.loadModel(r,(()=>{s(e+1,i)}),(t=>{this.error("loadAllModels() - "+t),s(e+1,i)}))}};s(0,e)}getLoadedModelIds(){return this._modelsExplorer._getLoadedModelIds()}isModelLoaded(e){if(e)return this._modelsExplorer.isModelLoaded(e);this.error("unloadModel() - Argument expected: modelId")}unloadModel(e){e?this._modelsExplorer.unloadModel(e):this.error("unloadModel() - Argument expected: modelId")}unloadAllModels(){this._modelsExplorer.unloadAllModels()}editModel(e){this.fire("editModel",{modelId:e})}deleteModel(e){this.fire("deleteModel",{modelId:e})}addModel(){this.fire("addModel",{})}setBackgroundColor(e){this.viewer.scene.canvas.backgroundColor=e}setObjectColorSource(e){console.log("BIMViewer.setObjectColorSource() is now deprecated and no longer functional. By default, BIMViewer.getObjectColorSource() will now always return the (formerly) default value of `model`.")}getObjectColorSource(){return"model"}setViewerState(e,t=(()=>{})){e.tabOpen&&this.openTab(e.tabOpen),e.expandObjectsTree&&this._objectsExplorer.expandTreeViewToDepth(e.expandObjectsTree),e.expandClassesTree&&this._classesExplorer.expandTreeViewToDepth(e.expandClassesTree),e.expandStoreysTree&&this._storeysExplorer.expandTreeViewToDepth(e.expandStoreysTree),e.setCamera&&this.setCamera(e.setCamera),this._parseSelectedStorey(e,(()=>{this._parseThreeDMode(e,(()=>{t()}))}))}_parseSelectedStorey(e,t){e.selectedStorey?(this.selectStorey(e.selectedStorey),t()):t()}_parseThreeDMode(e,t){const s=!1!==e.threeDActive;this.set3DEnabled(s,t)}showObjectInExplorers(e){e?(this._objectsExplorer.showNodeInTreeView(e),this._classesExplorer.showNodeInTreeView(e),this._storeysExplorer.showNodeInTreeView(e),this.fire("openExplorer",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}unShowObjectInExplorers(){this._objectsExplorer.unShowNodeInTreeView(),this._classesExplorer.unShowNodeInTreeView(),this._storeysExplorer.unShowNodeInTreeView()}showObjectProperties(e){e?(this._enablePropertiesInspector&&this._propertiesInspector.showObjectPropertySets(e),this.fire("openInspector",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}setObjectsVisible(e,t){this._withObjectsInSubtree(e,(e=>{e.visible=t}))}setAllObjectsVisible(e){e?this.viewer.scene.setObjectsVisible(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsVisible(this.viewer.scene.visibleObjectIds,!1)}setObjectsXRayed(e,t){this._withObjectsInSubtree(e,(e=>{e.xrayed=t}))}setAllObjectsXRayed(e){e?this.viewer.scene.setObjectsXRayed(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsXRayed(this.viewer.scene.xrayedObjectIds,!1)}setObjectsSelected(e,t){this._withObjectsInSubtree(e,(e=>{e.selected=t}))}setAllObjectsSelected(e){e?this.viewer.scene.setObjectsSelected(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsSelected(this.viewer.scene.selectedObjectIds,!1)}_withObjectsInSubtree(e,t){if(e)for(let s=0,i=e.length;s{const s=this.viewer.scene.objects[e.id];s&&t(s)}))}else this.error("Argument expected: objectIds")}flyToObject(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectId");const s=this.viewer,i=s.scene,r=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{i.objects[e.id]&&r.push(e.id)})),0===r.length)return this.error("Object not found in viewer: '"+e+"'"),void(t&&t());i.setObjectsVisible(r,!0),i.setObjectsHighlighted(r,!0);const o=i.getAABB(r);s.cameraFlight.flyTo({aabb:o},(()=>{t&&t(),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),s.cameraControl.pivotPos=p.getAABB3Center(o)}viewFitObjects(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectIds");const s=this.viewer,i=s.scene,r=[];for(var o=0,n=e.length;o{i.objects[e.id]&&r.push(e.id)}))}if(0===r.length)return void(t&&t());i.setObjectsVisible(r,!0),i.setObjectsHighlighted(r,!0);const a=i.getAABB(r);s.cameraFlight.flyTo({aabb:a},(()=>{t&&t(),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),s.cameraControl.pivotPos=p.getAABB3Center(a)}viewFitAll(e){const t=this.viewer,s=t.scene.getAABB();t.cameraFlight.flyTo({aabb:s},(()=>{e&&e()})),t.cameraControl.pivotPos=p.getAABB3Center(s)}jumpToObject(e){if(!e)return void this.error("jumpToObject() - Argument expected: objectId");const t=this.viewer,s=t.scene,i=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{s.objects[e.id]&&i.push(e.id)})),0===i.length)return void this.error("Object not found in viewer: '"+e+"'");s.setObjectsVisible(i,!0);const r=s.getAABB(i);t.cameraFlight.jumpTo({aabb:r}),t.cameraControl.pivotPos=p.getAABB3Center(r)}setCamera(e){const t=this.viewer.scene.camera;e.eye&&(t.eye=e.eye),e.look&&(t.look=e.look),e.up&&(t.up=e.up)}viewFitModels(e,t){if(!e)return void this.error("viewFitModels() - Argument expected: modelIds");const s=this.viewer,i=s.scene,r=p.AABB3();p.collapseAABB3(r);for(var o=0,n=e.length;o{t(),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})):(s.cameraFlight.jumpTo({aabb:r}),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)),s.cameraControl.pivotPos=p.getAABB3Center(r)}openTab(e){if(!e)return void this.error("openTab() - Argument expected: tabId");let t;switch(e){case"models":t="xeokit-modelsTab";break;case"objects":t="xeokit-objectsTab";break;case"classes":t="xeokit-classesTab";break;case"storeys":t="xeokit-storeysTab";break;case"properties":t="xeokit-propertiesTab";break;default:return void this.error("openTab() - tab not recognized: '"+e+"'")}this._openTab(this._explorerElement,t)}_openTab(e,t){const s="active";let i=e.querySelectorAll(".xeokit-tab"),r=e.querySelector("."+t);for(let e=0;e-1}const t="active";return e(this._explorerElement.querySelector(".xeokit-modelsTab"),t)?"models":e(this._explorerElement.querySelector(".xeokit-objectsTab"),t)?"objects":e(this._explorerElement.querySelector(".xeokit-classesTab"),t)?"classes":e(this._explorerElement.querySelector(".xeokit-storeysTab"),t)?"storeys":e(this._inspectorElement.querySelector(".xeokit-propertiesTab"),t)?"properties":"none"}set3DEnabled(e,t){this._threeDMode.setActive(e,t)}get3DEnabled(){return this._threeDMode.getActive()}setSpacesShown(e){this._showSpacesMode.setActive(e)}getSpacesShown(){return this._showSpacesMode.getActive()}setOrthoEnabled(e,t){this._orthoMode.setActive(e,t)}getOrthoEnabled(){return this._orthoMode.getActive()}selectStorey(e,t){const s=this.viewer.metaScene.metaObjects[e];s?"IfcBuildingStorey"===s.type?this._storeysExplorer.selectStorey(e,t):this.error("selectStorey() - Object is not an IfcBuildingStorey: '"+e+"'"):this.error("selectStorey() - Object is not found: '"+e+"'")}saveBCFViewpoint(e){return this._bcfViewpointsPlugin.getViewpoint(e)}loadBCFViewpoint(e,t){e?(this._orthoMode.setActive("ortho"===this.viewer.camera.projection),this._bcfViewpointsPlugin.setViewpoint(e,t)):this.error("loadBCFViewpoint() - Argument expected: bcfViewpoint")}resetView(){this._resetAction.reset()}setControlsEnabled(e){this._objectsExplorer.setEnabled(e),this._classesExplorer.setEnabled(e),this._storeysExplorer.setEnabled(e),this._resetAction.setEnabled(e),this._fitAction.setEnabled(e),this._threeDMode.setEnabled(e),this._orthoMode.setEnabled(e),this._firstPersonMode.setEnabled(e),this._queryTool.setEnabled(e),this._hideTool.setEnabled(e),this._selectionTool.setEnabled(e),this._marqueeSelectionTool.setEnabled(e),this._showSpacesMode.setEnabled(e),this._measureDistanceTool.setEnabled(e),this._measureAngleTool.setEnabled(e),this._sectionTool.setEnabled(e),this._enablePropertiesInspector&&this._propertiesInspector.setEnabled(e)}setKeyboardEnabled(e){this.viewer.scene.input.keyboardEnabled=e}getKeyboardEnabled(){return this.viewer.scene.input.keyboardEnabled}clearSections(){this._sectionTool.clear()}disableSections(){this._sectionTool.disableSections()}enableSections(){this._sectionTool.enableSections()}flipSections(){this._sectionTool.flipSections()}hideSectionEditControl(){this._sectionTool.hideControl()}getNumSections(){return this._sectionTool.getNumSections()}getEnableMeasurements(){return this._enableMeasurements}clearMeasurements(){this._measureDistanceTool.clear(),this._measureAngleTool.clear()}getNumMeasurements(){return this._measureDistanceTool.getNumMeasurements()+this._measureAngleTool.getNumMeasurements()}setMeasurementsAxisVisible(e){this._measureDistanceTool.setMeasurementsAxisVisible(e)}getMeasurementsAxisVisible(){return this._measureDistanceTool.getMeasurementsAxisVisible()}setMeasurementsSnappingEnabled(e){this._measureDistanceTool.setSnappingEnabled(e)}getMeasurementsSnappingEnabled(){return this._measureDistanceTool.getSnappingEnabled()}destroy(){this.viewer.destroy(),this._bcfViewpointsPlugin.destroy(),this._canvasContextMenu.destroy(),this._objectContextMenu.destroy()}},e.LocaleService=gc,e.Server=class{constructor(e={}){this._dataDir=e.dataDir||""}getProjects(e,t){const s=this._dataDir+"/projects/index.json";E.loadJSON(s,e,t)}getProject(e,t,s){const i=this._dataDir+"/projects/"+e+"/index.json";E.loadJSON(i,t,s)}getMetadata(e,t,s,i){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/metadata.json";E.loadJSON(r,s,i)}getGeometry(e,t,s,i){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/geometry.xkt";E.loadArraybuffer(r,s,i)}getObjectInfo(e,t,s,i,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/props/"+s+".json";E.loadJSON(o,i,r)}getIssues(e,t,s,i){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/issues.json";E.loadJSON(r,s,i)}getSplitModelManifest(e,t,s,i,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+s;E.loadJSON(o,i,r)}getSplitModelMetadata(e,t,s,i,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+s;E.loadJSON(o,i,r)}getSplitModelGeometry(e,t,s,i,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+s;E.loadArraybuffer(o,i,r)}},Object.defineProperty(e,"__esModule",{value:!0})})); + ***************************************************************************** */var xc=function(e,t){return xc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},xc(e,t)};function wc(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}xc(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var yc=function(){return yc=Object.assign||function(e){for(var t,i=1,s=arguments.length;i0&&r[r.length-1])||6!==o[0]&&2!==o[0])){n=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=55296&&r<=56319&&i>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},Dc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Sc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Tc=0;Tc=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}(),Nc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Vc=0;Vc>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s0;){var n=s[--o];if(Array.isArray(e)?-1!==e.indexOf(n):e===n)for(var a=i;a<=s.length;){var l;if((l=s[++a])===t)return!0;if(l!==jc)break}if(n!==jc)break}return!1},Pu=function(e,t){for(var i=e;i>=0;){var s=t[i];if(s!==jc)return s;i--}return 0},Bu=function(e,t,i,s,r){if(0===i[s])return du;var o=s-1;if(Array.isArray(r)&&!0===r[o])return du;var n=o-1,a=o+1,l=t[o],A=n>=0?t[n]:0,h=t[a];if(2===l&&3===h)return du;if(-1!==fu.indexOf(l))return"!";if(-1!==fu.indexOf(h))return du;if(-1!==_u.indexOf(h))return du;if(8===Pu(o,t))return pu;if(11===gu.get(e[o]))return du;if((l===su||l===ru)&&11===gu.get(e[a]))return du;if(7===l||7===h)return du;if(9===l)return du;if(-1===[jc,Hc,zc].indexOf(l)&&9===h)return du;if(-1!==[Gc,Wc,Kc,Zc,tu].indexOf(h))return du;if(Pu(o,t)===qc)return du;if(yu(23,qc,o,t))return du;if(yu([Gc,Wc],Yc,o,t))return du;if(yu(12,12,o,t))return du;if(l===jc)return pu;if(23===l||23===h)return du;if(16===h||16===l)return pu;if(-1!==[Hc,zc,Yc].indexOf(h)||14===l)return du;if(36===A&&-1!==wu.indexOf(l))return du;if(l===tu&&36===h)return du;if(h===Xc)return du;if(-1!==mu.indexOf(h)&&l===Jc||-1!==mu.indexOf(l)&&h===Jc)return du;if(l===eu&&-1!==[au,su,ru].indexOf(h)||-1!==[au,su,ru].indexOf(l)&&h===$c)return du;if(-1!==mu.indexOf(l)&&-1!==vu.indexOf(h)||-1!==vu.indexOf(l)&&-1!==mu.indexOf(h))return du;if(-1!==[eu,$c].indexOf(l)&&(h===Jc||-1!==[qc,zc].indexOf(h)&&t[a+1]===Jc)||-1!==[qc,zc].indexOf(l)&&h===Jc||l===Jc&&-1!==[Jc,tu,Zc].indexOf(h))return du;if(-1!==[Jc,tu,Zc,Gc,Wc].indexOf(h))for(var c=o;c>=0;){if((u=t[c])===Jc)return du;if(-1===[tu,Zc].indexOf(u))break;c--}if(-1!==[eu,$c].indexOf(h))for(c=-1!==[Gc,Wc].indexOf(l)?n:o;c>=0;){var u;if((u=t[c])===Jc)return du;if(-1===[tu,Zc].indexOf(u))break;c--}if(lu===l&&-1!==[lu,Au,ou,nu].indexOf(h)||-1!==[Au,ou].indexOf(l)&&-1!==[Au,hu].indexOf(h)||-1!==[hu,nu].indexOf(l)&&h===hu)return du;if(-1!==xu.indexOf(l)&&-1!==[Xc,$c].indexOf(h)||-1!==xu.indexOf(h)&&l===eu)return du;if(-1!==mu.indexOf(l)&&-1!==mu.indexOf(h))return du;if(l===Zc&&-1!==mu.indexOf(h))return du;if(-1!==mu.concat(Jc).indexOf(l)&&h===qc&&-1===uu.indexOf(e[a])||-1!==mu.concat(Jc).indexOf(h)&&l===Wc)return du;if(41===l&&41===h){for(var d=i[o],p=1;d>0&&41===t[--d];)p++;if(p%2!=0)return du}return l===su&&h===ru?du:pu},Cu=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var i=function(e,t){void 0===t&&(t="strict");var i=[],s=[],r=[];return e.forEach((function(e,o){var n=gu.get(e);if(n>50?(r.push(!0),n-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return s.push(o),i.push(16);if(4===n||11===n){if(0===o)return s.push(o),i.push(iu);var a=i[o-1];return-1===bu.indexOf(a)?(s.push(s[o-1]),i.push(a)):(s.push(o),i.push(iu))}return s.push(o),31===n?i.push("strict"===t?Yc:au):n===cu||29===n?i.push(iu):43===n?e>=131072&&e<=196605||e>=196608&&e<=262141?i.push(au):i.push(iu):void i.push(n)})),[s,i,r]}(e,t.lineBreak),s=i[0],r=i[1],o=i[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(r=r.map((function(e){return-1!==[Jc,iu,cu].indexOf(e)?au:e})));var n="keep-all"===t.wordBreak?o.map((function(t,i){return t&&e[i]>=19968&&e[i]<=40959})):void 0;return[s,r,n]},Mu=function(){function e(e,t,i,s){this.codePoints=e,this.required="!"===t,this.start=i,this.end=s}return e.prototype.slice=function(){return Ic.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),Eu=45,Fu=43,Iu=-1,Du=function(e){return e>=48&&e<=57},Su=function(e){return Du(e)||e>=65&&e<=70||e>=97&&e<=102},Tu=function(e){return 10===e||9===e||32===e},Ru=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},Lu=function(e){return Ru(e)||Du(e)||e===Eu},Uu=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},ku=function(e,t){return 92===e&&10!==t},Ou=function(e,t,i){return e===Eu?Ru(t)||ku(t,i):!!Ru(e)||!(92!==e||!ku(e,t))},Nu=function(e,t,i){return e===Fu||e===Eu?!!Du(t)||46===t&&Du(i):Du(46===e?t:e)},Qu=function(e){var t=0,i=1;e[t]!==Fu&&e[t]!==Eu||(e[t]===Eu&&(i=-1),t++);for(var s=[];Du(e[t]);)s.push(e[t++]);var r=s.length?parseInt(Ic.apply(void 0,s),10):0;46===e[t]&&t++;for(var o=[];Du(e[t]);)o.push(e[t++]);var n=o.length,a=n?parseInt(Ic.apply(void 0,o),10):0;69!==e[t]&&101!==e[t]||t++;var l=1;e[t]!==Fu&&e[t]!==Eu||(e[t]===Eu&&(l=-1),t++);for(var A=[];Du(e[t]);)A.push(e[t++]);var h=A.length?parseInt(Ic.apply(void 0,A),10):0;return i*(r+a*Math.pow(10,-n))*Math.pow(10,l*h)},Vu={type:2},ju={type:3},Hu={type:4},zu={type:13},Gu={type:8},Wu={type:21},Ku={type:9},Xu={type:10},Yu={type:11},qu={type:12},Zu={type:14},Ju={type:23},$u={type:1},ed={type:25},td={type:24},id={type:26},sd={type:27},rd={type:28},od={type:29},nd={type:31},ad={type:32},ld=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(Fc(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==ad;)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),i=this.peekCodePoint(1),s=this.peekCodePoint(2);if(Lu(t)||ku(i,s)){var r=Ou(t,i,s)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),zu;break;case 39:return this.consumeStringToken(39);case 40:return Vu;case 41:return ju;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Zu;break;case Fu:if(Nu(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return Hu;case Eu:var o=e,n=this.peekCodePoint(0),a=this.peekCodePoint(1);if(Nu(o,n,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(Ou(o,n,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(n===Eu&&62===a)return this.consumeCodePoint(),this.consumeCodePoint(),td;break;case 46:if(Nu(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 l=this.consumeCodePoint();if(42===l&&47===(l=this.consumeCodePoint()))return this.consumeToken();if(l===Iu)return this.consumeToken()}break;case 58:return id;case 59:return sd;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===Eu&&this.peekCodePoint(2)===Eu)return this.consumeCodePoint(),this.consumeCodePoint(),ed;break;case 64:var A=this.peekCodePoint(0),h=this.peekCodePoint(1),c=this.peekCodePoint(2);if(Ou(A,h,c))return{type:7,value:this.consumeName()};break;case 91:return rd;case 92:if(ku(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return od;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Gu;break;case 123:return Yu;case 125:return qu;case 117:case 85:var u=this.peekCodePoint(0),d=this.peekCodePoint(1);return u!==Fu||!Su(d)&&63!==d||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ku;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Wu;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Xu;break;case Iu:return ad}return Tu(e)?(this.consumeWhiteSpace(),nd):Du(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):Ru(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:Ic(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();Su(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var i=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),i=!0;if(i)return{type:30,start:parseInt(Ic.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(Ic.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var s=parseInt(Ic.apply(void 0,e),16);if(this.peekCodePoint(0)===Eu&&Su(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var r=[];Su(t)&&r.length<6;)r.push(t),t=this.consumeCodePoint();return{type:30,start:s,end:parseInt(Ic.apply(void 0,r),16)}}return{type:30,start:s,end:s}},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(),this.peekCodePoint(0)===Iu)return{type:22,value:""};var t=this.peekCodePoint(0);if(39===t||34===t){var i=this.consumeStringToken(this.consumeCodePoint());return 0===i.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===Iu||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:i.value}):(this.consumeBadUrlRemnants(),Ju)}for(;;){var s=this.consumeCodePoint();if(s===Iu||41===s)return{type:22,value:Ic.apply(void 0,e)};if(Tu(s))return this.consumeWhiteSpace(),this.peekCodePoint(0)===Iu||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:Ic.apply(void 0,e)}):(this.consumeBadUrlRemnants(),Ju);if(34===s||39===s||40===s||Uu(s))return this.consumeBadUrlRemnants(),Ju;if(92===s){if(!ku(s,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Ju;e.push(this.consumeEscapedCodePoint())}else e.push(s)}},e.prototype.consumeWhiteSpace=function(){for(;Tu(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||e===Iu)return;ku(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var i=Math.min(5e4,e);t+=Ic.apply(void 0,this._value.splice(0,i)),e-=i}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",i=0;;){var s=this._value[i];if(s===Iu||void 0===s||s===e)return{type:0,value:t+=this.consumeStringSlice(i)};if(10===s)return this._value.splice(0,i),$u;if(92===s){var r=this._value[i+1];r!==Iu&&void 0!==r&&(10===r?(t+=this.consumeStringSlice(i),i=-1,this._value.shift()):ku(s,r)&&(t+=this.consumeStringSlice(i),t+=Ic(this.consumeEscapedCodePoint()),i=-1))}i++}},e.prototype.consumeNumber=function(){var e=[],t=4,i=this.peekCodePoint(0);for(i!==Fu&&i!==Eu||e.push(this.consumeCodePoint());Du(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0);var s=this.peekCodePoint(1);if(46===i&&Du(s))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Du(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0),s=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===i||101===i)&&((s===Fu||s===Eu)&&Du(r)||Du(s)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Du(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[Qu(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],i=e[1],s=this.peekCodePoint(0),r=this.peekCodePoint(1),o=this.peekCodePoint(2);return Ou(s,r,o)?{type:15,number:t,flags:i,unit:this.consumeName()}:37===s?(this.consumeCodePoint(),{type:16,number:t,flags:i}):{type:17,number:t,flags:i}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(Su(e)){for(var t=Ic(e);Su(this.peekCodePoint(0))&&t.length<6;)t+=Ic(this.consumeCodePoint());Tu(this.peekCodePoint(0))&&this.consumeCodePoint();var i=parseInt(t,16);return 0===i||function(e){return e>=55296&&e<=57343}(i)||i>1114111?65533:i}return e===Iu?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if(Lu(t))e+=Ic(t);else{if(!ku(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=Ic(this.consumeEscapedCodePoint())}}},e}(),Ad=function(){function e(e){this._tokens=e}return e.create=function(t){var i=new ld;return i.write(t),new e(i.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:[]},i=this.consumeToken();;){if(32===i.type||_d(i,e))return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue()),i=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var i=this.consumeToken();if(32===i.type||3===i.type)return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?ad:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),hd=function(e){return 15===e.type},cd=function(e){return 17===e.type},ud=function(e){return 20===e.type},dd=function(e){return 0===e.type},pd=function(e,t){return ud(e)&&e.value===t},gd=function(e){return 31!==e.type},md=function(e){return 31!==e.type&&4!==e.type},fd=function(e){var t=[],i=[];return e.forEach((function(e){if(4===e.type){if(0===i.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(i),void(i=[])}31!==e.type&&i.push(e)})),i.length&&t.push(i),t},_d=function(e,t){return 11===t&&12===e.type||(28===t&&29===e.type||2===t&&3===e.type)},vd=function(e){return 17===e.type||15===e.type},bd=function(e){return 16===e.type||vd(e)},xd=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},wd={type:17,number:0,flags:4},yd={type:16,number:50,flags:4},Pd={type:16,number:100,flags:4},Bd=function(e,t,i){var s=e[0],r=e[1];return[Cd(s,t),Cd(void 0!==r?r:s,i)]},Cd=function(e,t){if(16===e.type)return e.number/100*t;if(hd(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},Md="grad",Ed="turn",Fd=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case Md:return Math.PI/200*t.number;case"rad":return t.number;case Ed:return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},Id=function(e){return 15===e.type&&("deg"===e.unit||e.unit===Md||"rad"===e.unit||e.unit===Ed)},Dd=function(e){switch(e.filter(ud).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[wd,wd];case"to top":case"bottom":return Sd(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[wd,Pd];case"to right":case"left":return Sd(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Pd,Pd];case"to bottom":case"top":return Sd(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Pd,wd];case"to left":case"right":return Sd(270)}return 0},Sd=function(e){return Math.PI*e/180},Td=function(e,t){if(18===t.type){var i=Vd[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return i(e,t.values)}if(5===t.type){if(3===t.value.length){var s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);return Ud(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),1)}if(4===t.value.length){s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);var n=t.value.substring(3,4);return Ud(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),parseInt(n+n,16)/255)}if(6===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6);return Ud(parseInt(s,16),parseInt(r,16),parseInt(o,16),1)}if(8===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6),n=t.value.substring(6,8);return Ud(parseInt(s,16),parseInt(r,16),parseInt(o,16),parseInt(n,16)/255)}}if(20===t.type){var a=Hd[t.value.toUpperCase()];if(void 0!==a)return a}return Hd.TRANSPARENT},Rd=function(e){return 0==(255&e)},Ld=function(e){var t=255&e,i=255&e>>8,s=255&e>>16,r=255&e>>24;return t<255?"rgba("+r+","+s+","+i+","+t/255+")":"rgb("+r+","+s+","+i+")"},Ud=function(e,t,i,s){return(e<<24|t<<16|i<<8|Math.round(255*s)<<0)>>>0},kd=function(e,t){if(17===e.type)return e.number;if(16===e.type){var i=3===t?1:255;return 3===t?e.number/100*i:Math.round(e.number/100*i)}return 0},Od=function(e,t){var i=t.filter(md);if(3===i.length){var s=i.map(kd),r=s[0],o=s[1],n=s[2];return Ud(r,o,n,1)}if(4===i.length){var a=i.map(kd),l=(r=a[0],o=a[1],n=a[2],a[3]);return Ud(r,o,n,l)}return 0};function Nd(e,t,i){return i<0&&(i+=1),i>=1&&(i-=1),i<1/6?(t-e)*i*6+e:i<.5?t:i<2/3?6*(t-e)*(2/3-i)+e:e}var Qd=function(e,t){var i=t.filter(md),s=i[0],r=i[1],o=i[2],n=i[3],a=(17===s.type?Sd(s.number):Fd(e,s))/(2*Math.PI),l=bd(r)?r.number/100:0,A=bd(o)?o.number/100:0,h=void 0!==n&&bd(n)?Cd(n,1):1;if(0===l)return Ud(255*A,255*A,255*A,1);var c=A<=.5?A*(l+1):A+l-A*l,u=2*A-c,d=Nd(u,c,a+1/3),p=Nd(u,c,a),g=Nd(u,c,a-1/3);return Ud(255*d,255*p,255*g,h)},Vd={hsl:Qd,hsla:Qd,rgb:Od,rgba:Od},jd=function(e,t){return Td(e,Ad.create(t).parseComponentValue())},Hd={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},zd={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ud(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Gd={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Wd=function(e,t){var i=Td(e,t[0]),s=t[1];return s&&bd(s)?{color:i,stop:s}:{color:i,stop:null}},Kd=function(e,t){var i=e[0],s=e[e.length-1];null===i.stop&&(i.stop=wd),null===s.stop&&(s.stop=Pd);for(var r=[],o=0,n=0;no?r.push(l):r.push(o),o=l}else r.push(null)}var A=null;for(n=0;ne.optimumDistance)?{optimumCorner:t,optimumDistance:a}:e}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},Zd=function(e,t){var i=Sd(180),s=[];return fd(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&-1!==["top","left","right","bottom"].indexOf(o.value))return void(i=Dd(t));if(Id(o))return void(i=(Fd(e,o)+Sd(270))%Sd(360))}var n=Wd(e,t);s.push(n)})),{angle:i,stops:s,type:1}},Jd="closest-side",$d="farthest-side",ep="closest-corner",tp="farthest-corner",ip="circle",sp="ellipse",rp="cover",op="contain",np=function(e,t){var i=0,s=3,r=[],o=[];return fd(t).forEach((function(t,n){var a=!0;if(0===n?a=t.reduce((function(e,t){if(ud(t))switch(t.value){case"center":return o.push(yd),!1;case"top":case"left":return o.push(wd),!1;case"right":case"bottom":return o.push(Pd),!1}else if(bd(t)||vd(t))return o.push(t),!1;return e}),a):1===n&&(a=t.reduce((function(e,t){if(ud(t))switch(t.value){case ip:return i=0,!1;case sp:return i=1,!1;case op:case Jd:return s=0,!1;case $d:return s=1,!1;case ep:return s=2,!1;case rp:case tp:return s=3,!1}else if(vd(t)||bd(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)),a){var l=Wd(e,t);r.push(l)}})),{size:s,shape:i,stops:r,position:o,type:2}},ap=function(e,t){if(22===t.type){var i={url:t.value,type:0};return e.cache.addImage(t.value),i}if(18===t.type){var s=Ap[t.name];if(void 0===s)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return s(e,t.values)}throw new Error("Unsupported image type "+t.type)};var lp,Ap={"linear-gradient":function(e,t){var i=Sd(180),s=[];return fd(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&"to"===o.value)return void(i=Dd(t));if(Id(o))return void(i=Fd(e,o))}var n=Wd(e,t);s.push(n)})),{angle:i,stops:s,type:1}},"-moz-linear-gradient":Zd,"-ms-linear-gradient":Zd,"-o-linear-gradient":Zd,"-webkit-linear-gradient":Zd,"radial-gradient":function(e,t){var i=0,s=3,r=[],o=[];return fd(t).forEach((function(t,n){var a=!0;if(0===n){var l=!1;a=t.reduce((function(e,t){if(l)if(ud(t))switch(t.value){case"center":return o.push(yd),e;case"top":case"left":return o.push(wd),e;case"right":case"bottom":return o.push(Pd),e}else(bd(t)||vd(t))&&o.push(t);else if(ud(t))switch(t.value){case ip:return i=0,!1;case sp:return i=1,!1;case"at":return l=!0,!1;case Jd:return s=0,!1;case rp:case $d:return s=1,!1;case op:case ep:return s=2,!1;case tp:return s=3,!1}else if(vd(t)||bd(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)}if(a){var A=Wd(e,t);r.push(A)}})),{size:s,shape:i,stops:r,position:o,type:2}},"-moz-radial-gradient":np,"-ms-radial-gradient":np,"-o-radial-gradient":np,"-webkit-radial-gradient":np,"-webkit-gradient":function(e,t){var i=Sd(180),s=[],r=1;return fd(t).forEach((function(t,i){var o=t[0];if(0===i){if(ud(o)&&"linear"===o.value)return void(r=1);if(ud(o)&&"radial"===o.value)return void(r=2)}if(18===o.type)if("from"===o.name){var n=Td(e,o.values[0]);s.push({stop:wd,color:n})}else if("to"===o.name){n=Td(e,o.values[0]);s.push({stop:Pd,color:n})}else if("color-stop"===o.name){var a=o.values.filter(md);if(2===a.length){n=Td(e,a[1]);var l=a[0];cd(l)&&s.push({stop:{type:16,number:100*l.number,flags:l.flags},color:n})}}})),1===r?{angle:(i+Sd(180))%Sd(360),stops:s,type:r}:{size:3,shape:0,stops:s,position:[],type:r}}},hp={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var i=t[0];return 20===i.type&&"none"===i.value?[]:t.filter((function(e){return md(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!Ap[e.name])}(e)})).map((function(t){return ap(e,t)}))}},cp={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ud(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},up={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return fd(t).map((function(e){return e.filter(bd)})).map(xd)}},dp={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return fd(t).map((function(e){return e.filter(ud).map((function(e){return e.value})).join(" ")})).map(pp)}},pp=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"}(lp||(lp={}));var gp,mp={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return fd(t).map((function(e){return e.filter(fp)}))}},fp=function(e){return ud(e)||bd(e)},_p=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},vp=_p("top"),bp=_p("right"),xp=_p("bottom"),wp=_p("left"),yp=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return xd(t.filter(bd))}}},Pp=yp("top-left"),Bp=yp("top-right"),Cp=yp("bottom-right"),Mp=yp("bottom-left"),Ep=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}}},Fp=Ep("top"),Ip=Ep("right"),Dp=Ep("bottom"),Sp=Ep("left"),Tp=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return hd(t)?t.number:0}}},Rp=Tp("top"),Lp=Tp("right"),Up=Tp("bottom"),kp=Tp("left"),Op={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Np={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},Qp={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(ud).reduce((function(e,t){return e|Vp(t.value)}),0)}},Vp=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},jp={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}},Hp={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"}(gp||(gp={}));var zp,Gp={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?gp.STRICT:gp.NORMAL}},Wp={name:"line-height",initialValue:"normal",prefix:!1,type:4},Kp=function(e,t){return ud(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:bd(e)?Cd(e,t):t},Xp={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:ap(e,t)}},Yp={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},qp={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}}},Zp=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},Jp=Zp("top"),$p=Zp("right"),eg=Zp("bottom"),tg=Zp("left"),ig={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(ud).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}}))}},sg={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},rg=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},og=rg("top"),ng=rg("right"),ag=rg("bottom"),lg=rg("left"),Ag={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}}},hg={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}},cg={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&pd(t[0],"none")?[]:fd(t).map((function(t){for(var i={color:Hd.TRANSPARENT,offsetX:wd,offsetY:wd,blur:wd},s=0,r=0;r1?1:0],this.overflowWrap=zg(e,sg,t.overflowWrap),this.paddingTop=zg(e,og,t.paddingTop),this.paddingRight=zg(e,ng,t.paddingRight),this.paddingBottom=zg(e,ag,t.paddingBottom),this.paddingLeft=zg(e,lg,t.paddingLeft),this.paintOrder=zg(e,Og,t.paintOrder),this.position=zg(e,hg,t.position),this.textAlign=zg(e,Ag,t.textAlign),this.textDecorationColor=zg(e,yg,null!==(i=t.textDecorationColor)&&void 0!==i?i:t.color),this.textDecorationLine=zg(e,Pg,null!==(s=t.textDecorationLine)&&void 0!==s?s:t.textDecoration),this.textShadow=zg(e,cg,t.textShadow),this.textTransform=zg(e,ug,t.textTransform),this.transform=zg(e,dg,t.transform),this.transformOrigin=zg(e,fg,t.transformOrigin),this.visibility=zg(e,_g,t.visibility),this.webkitTextStrokeColor=zg(e,Ng,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=zg(e,Qg,t.webkitTextStrokeWidth),this.wordBreak=zg(e,vg,t.wordBreak),this.zIndex=zg(e,bg,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return Rd(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 Ig(this.display,4)||Ig(this.display,33554432)||Ig(this.display,268435456)||Ig(this.display,536870912)||Ig(this.display,67108864)||Ig(this.display,134217728)},e}(),jg=function(e,t){this.content=zg(e,Dg,t.content),this.quotes=zg(e,Lg,t.quotes)},Hg=function(e,t){this.counterIncrement=zg(e,Sg,t.counterIncrement),this.counterReset=zg(e,Tg,t.counterReset)},zg=function(e,t,i){var s=new ld,r=null!=i?i.toString():t.initialValue;s.write(r);var o=new Ad(s.read());switch(t.type){case 2:var n=o.parseComponentValue();return t.parse(e,ud(n)?n.value:t.initialValue);case 0:return t.parse(e,o.parseComponentValue());case 1:return t.parse(e,o.parseComponentValues());case 4:return o.parseComponentValue();case 3:switch(t.format){case"angle":return Fd(e,o.parseComponentValue());case"color":return Td(e,o.parseComponentValue());case"image":return ap(e,o.parseComponentValue());case"length":var a=o.parseComponentValue();return vd(a)?a:wd;case"length-percentage":var l=o.parseComponentValue();return bd(l)?l:wd;case"time":return xg(e,o.parseComponentValue())}}},Gg=function(e,t){var i=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===i||t===i},Wg=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,Gg(t,3),this.styles=new Vg(e,window.getComputedStyle(t,null)),qm(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=Ec(this.context,t),Gg(t,4)&&(this.flags|=16)},Kg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xg="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Yg=0;Yg=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}(),Jg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$g="undefined"==typeof Uint8Array?[]:new Uint8Array(256),em=0;em>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},am=function(e,t){var i,s,r,o=function(e){var t,i,s,r,o,n=.75*e.length,a=e.length,l=0;"="===e[e.length-1]&&(n--,"="===e[e.length-2]&&n--);var A="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(n):new Array(n),h=Array.isArray(A)?A:new Uint8Array(A);for(t=0;t>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s=55296&&r<=56319&&i=i)return{done:!0,value:null};for(var e=lm;sn.x||r.y>n.y;return n=r,0===t||a}));return e.body.removeChild(t),a}(document);return Object.defineProperty(gm,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,i=e.createElement("canvas"),s=i.getContext("2d");if(!s)return!1;t.src="data:image/svg+xml,";try{s.drawImage(t,0,0),i.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(gm,"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"),i=100;t.width=i,t.height=i;var s=t.getContext("2d");if(!s)return Promise.reject(!1);s.fillStyle="rgb(0, 255, 0)",s.fillRect(0,0,i,i);var r=new Image,o=t.toDataURL();r.src=o;var n=dm(i,i,0,0,r);return s.fillStyle="red",s.fillRect(0,0,i,i),pm(n).then((function(t){s.drawImage(t,0,0);var r=s.getImageData(0,0,i,i).data;s.fillStyle="red",s.fillRect(0,0,i,i);var n=e.createElement("div");return n.style.backgroundImage="url("+o+")",n.style.height="100px",um(r)?pm(dm(i,i,0,0,n)):Promise.reject(!1)})).then((function(e){return s.drawImage(e,0,0),um(s.getImageData(0,0,i,i).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(gm,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(gm,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(gm,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(gm,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(gm,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},mm=function(e,t){this.text=e,this.bounds=t},fm=function(e,t){var i=t.ownerDocument;if(i){var s=i.createElement("html2canvaswrapper");s.appendChild(t.cloneNode(!0));var r=t.parentNode;if(r){r.replaceChild(s,t);var o=Ec(e,s);return s.firstChild&&r.replaceChild(s.firstChild,s),o}}return Mc.EMPTY},_m=function(e,t,i){var s=e.ownerDocument;if(!s)throw new Error("Node has no owner document");var r=s.createRange();return r.setStart(e,t),r.setEnd(e,t+i),r},vm=function(e){if(gm.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,i=cm(e),s=[];!(t=i.next()).done;)t.value&&s.push(t.value.slice());return s}(e)},bm=function(e,t){return 0!==t.letterSpacing?vm(e):function(e,t){if(gm.SUPPORT_NATIVE_TEXT_SEGMENTATION){var i=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(i.segment(e)).map((function(e){return e.segment}))}return wm(e,t)}(e,t)},xm=[32,160,4961,65792,65793,4153,4241],wm=function(e,t){for(var i,s=function(e,t){var i=Fc(e),s=Cu(i,t),r=s[0],o=s[1],n=s[2],a=i.length,l=0,A=0;return{next:function(){if(A>=a)return{done:!0,value:null};for(var e=du;A0)if(gm.SUPPORT_RANGE_BOUNDS){var r=_m(s,n,t.length).getClientRects();if(r.length>1){var a=vm(t),l=0;a.forEach((function(t){o.push(new mm(t,Mc.fromDOMRectList(e,_m(s,l+n,t.length).getClientRects()))),l+=t.length}))}else o.push(new mm(t,Mc.fromDOMRectList(e,r)))}else{var A=s.splitText(t.length);o.push(new mm(t,fm(e,s))),s=A}else gm.SUPPORT_RANGE_BOUNDS||(s=s.splitText(t.length));n+=t.length})),o}(e,this.text,i,t)},Pm=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(Bm,Cm);case 2:return e.toUpperCase();default:return e}},Bm=/(^|\s|:|-|\(|\))([a-z])/g,Cm=function(e,t,i){return e.length>0?t+i.toUpperCase():e},Mm=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.src=i.currentSrc||i.src,s.intrinsicWidth=i.naturalWidth,s.intrinsicHeight=i.naturalHeight,s.context.cache.addImage(s.src),s}return wc(t,e),t}(Wg),Em=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.canvas=i,s.intrinsicWidth=i.width,s.intrinsicHeight=i.height,s}return wc(t,e),t}(Wg),Fm=function(e){function t(t,i){var s=e.call(this,t,i)||this,r=new XMLSerializer,o=Ec(t,i);return i.setAttribute("width",o.width+"px"),i.setAttribute("height",o.height+"px"),s.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(i)),s.intrinsicWidth=i.width.baseVal.value,s.intrinsicHeight=i.height.baseVal.value,s.context.cache.addImage(s.svg),s}return wc(t,e),t}(Wg),Im=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.value=i.value,s}return wc(t,e),t}(Wg),Dm=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.start=i.start,s.reversed="boolean"==typeof i.reversed&&!0===i.reversed,s}return wc(t,e),t}(Wg),Sm=[{type:15,flags:0,unit:"px",number:3}],Tm=[{type:16,flags:0,number:50}],Rm="checkbox",Lm="radio",Um="password",km=707406591,Om=function(e){function t(t,i){var s,r,o,n=e.call(this,t,i)||this;switch(n.type=i.type.toLowerCase(),n.checked=i.checked,n.value=0===(r=(s=i).type===Um?new Array(s.value.length+1).join("•"):s.value).length?s.placeholder||"":r,n.type!==Rm&&n.type!==Lm||(n.styles.backgroundColor=3739148031,n.styles.borderTopColor=n.styles.borderRightColor=n.styles.borderBottomColor=n.styles.borderLeftColor=2779096575,n.styles.borderTopWidth=n.styles.borderRightWidth=n.styles.borderBottomWidth=n.styles.borderLeftWidth=1,n.styles.borderTopStyle=n.styles.borderRightStyle=n.styles.borderBottomStyle=n.styles.borderLeftStyle=1,n.styles.backgroundClip=[0],n.styles.backgroundOrigin=[0],n.bounds=(o=n.bounds).width>o.height?new Mc(o.left+(o.width-o.height)/2,o.top,o.height,o.height):o.width0)i.textNodes.push(new ym(e,r,i.styles));else if(Ym(r))if(cf(r)&&r.assignedNodes)r.assignedNodes().forEach((function(t){return Hm(e,t,i,s)}));else{var n=zm(e,r);n.styles.isVisible()&&(Wm(r,n,s)?n.flags|=4:Km(n.styles)&&(n.flags|=2),-1!==jm.indexOf(r.tagName)&&(n.flags|=8),i.elements.push(n),r.slot,r.shadowRoot?Hm(e,r.shadowRoot,n,s):Af(r)||tf(r)||hf(r)||Hm(e,r,n,s))}},zm=function(e,t){return nf(t)?new Mm(e,t):rf(t)?new Em(e,t):tf(t)?new Fm(e,t):Jm(t)?new Im(e,t):$m(t)?new Dm(e,t):ef(t)?new Om(e,t):hf(t)?new Nm(e,t):Af(t)?new Qm(e,t):af(t)?new Vm(e,t):new Wg(e,t)},Gm=function(e,t){var i=zm(e,t);return i.flags|=4,Hm(e,t,i,i),i},Wm=function(e,t,i){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||sf(e)&&i.styles.isTransparent()},Km=function(e){return e.isPositioned()||e.isFloating()},Xm=function(e){return e.nodeType===Node.TEXT_NODE},Ym=function(e){return e.nodeType===Node.ELEMENT_NODE},qm=function(e){return Ym(e)&&void 0!==e.style&&!Zm(e)},Zm=function(e){return"object"==typeof e.className},Jm=function(e){return"LI"===e.tagName},$m=function(e){return"OL"===e.tagName},ef=function(e){return"INPUT"===e.tagName},tf=function(e){return"svg"===e.tagName},sf=function(e){return"BODY"===e.tagName},rf=function(e){return"CANVAS"===e.tagName},of=function(e){return"VIDEO"===e.tagName},nf=function(e){return"IMG"===e.tagName},af=function(e){return"IFRAME"===e.tagName},lf=function(e){return"STYLE"===e.tagName},Af=function(e){return"TEXTAREA"===e.tagName},hf=function(e){return"SELECT"===e.tagName},cf=function(e){return"SLOT"===e.tagName},uf=function(e){return e.tagName.indexOf("-")>0},df=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,i=e.counterIncrement,s=e.counterReset,r=!0;null!==i&&i.forEach((function(e){var i=t.counters[e.counter];i&&0!==e.increment&&(r=!1,i.length||i.push(1),i[Math.max(0,i.length-1)]+=e.increment)}));var o=[];return r&&s.forEach((function(e){var i=t.counters[e.counter];o.push(e.counter),i||(i=t.counters[e.counter]=[]),i.push(e.reset)})),o},e}(),pf={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"]},gf={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:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},mf={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:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},ff={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:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},_f=function(e,t,i,s,r,o){return ei?Mf(e,r,o.length>0):s.integers.reduce((function(t,i,r){for(;e>=i;)e-=i,t+=s.values[r];return t}),"")+o},vf=function(e,t,i,s){var r="";do{i||e--,r=s(e)+r,e/=t}while(e*t>=t);return r},bf=function(e,t,i,s,r){var o=i-t+1;return(e<0?"-":"")+(vf(Math.abs(e),o,s,(function(e){return Ic(Math.floor(e%o)+t)}))+r)},xf=function(e,t,i){void 0===i&&(i=". ");var s=t.length;return vf(Math.abs(e),s,!1,(function(e){return t[Math.floor(e%s)]}))+i},wf=function(e,t,i,s,r,o){if(e<-9999||e>9999)return Mf(e,4,r.length>0);var n=Math.abs(e),a=r;if(0===n)return t[0]+a;for(var l=0;n>0&&l<=4;l++){var A=n%10;0===A&&Ig(o,1)&&""!==a?a=t[A]+a:A>1||1===A&&0===l||1===A&&1===l&&Ig(o,2)||1===A&&1===l&&Ig(o,4)&&e>100||1===A&&l>1&&Ig(o,8)?a=t[A]+(l>0?i[l-1]:"")+a:1===A&&l>0&&(a=i[l-1]+a),n=Math.floor(n/10)}return(e<0?s:"")+a},yf="十百千萬",Pf="拾佰仟萬",Bf="マイナス",Cf="마이너스",Mf=function(e,t,i){var s=i?". ":"",r=i?"、":"",o=i?", ":"",n=i?" ":"";switch(t){case 0:return"•"+n;case 1:return"◦"+n;case 2:return"◾"+n;case 5:var a=bf(e,48,57,!0,s);return a.length<4?"0"+a:a;case 4:return xf(e,"〇一二三四五六七八九",r);case 6:return _f(e,1,3999,pf,3,s).toLowerCase();case 7:return _f(e,1,3999,pf,3,s);case 8:return bf(e,945,969,!1,s);case 9:return bf(e,97,122,!1,s);case 10:return bf(e,65,90,!1,s);case 11:return bf(e,1632,1641,!0,s);case 12:case 49:return _f(e,1,9999,gf,3,s);case 35:return _f(e,1,9999,gf,3,s).toLowerCase();case 13:return bf(e,2534,2543,!0,s);case 14:case 30:return bf(e,6112,6121,!0,s);case 15:return xf(e,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return xf(e,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return wf(e,"零一二三四五六七八九",yf,"負",r,14);case 47:return wf(e,"零壹貳參肆伍陸柒捌玖",Pf,"負",r,15);case 42:return wf(e,"零一二三四五六七八九",yf,"负",r,14);case 41:return wf(e,"零壹贰叁肆伍陆柒捌玖",Pf,"负",r,15);case 26:return wf(e,"〇一二三四五六七八九","十百千万",Bf,r,0);case 25:return wf(e,"零壱弐参四伍六七八九","拾百千万",Bf,r,7);case 31:return wf(e,"영일이삼사오육칠팔구","십백천만",Cf,o,7);case 33:return wf(e,"零一二三四五六七八九","十百千萬",Cf,o,0);case 32:return wf(e,"零壹貳參四五六七八九","拾百千",Cf,o,7);case 18:return bf(e,2406,2415,!0,s);case 20:return _f(e,1,19999,ff,3,s);case 21:return bf(e,2790,2799,!0,s);case 22:return bf(e,2662,2671,!0,s);case 22:return _f(e,1,10999,mf,3,s);case 23:return xf(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return xf(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return bf(e,3302,3311,!0,s);case 28:return xf(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return xf(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return bf(e,3792,3801,!0,s);case 37:return bf(e,6160,6169,!0,s);case 38:return bf(e,4160,4169,!0,s);case 39:return bf(e,2918,2927,!0,s);case 40:return bf(e,1776,1785,!0,s);case 43:return bf(e,3046,3055,!0,s);case 44:return bf(e,3174,3183,!0,s);case 45:return bf(e,3664,3673,!0,s);case 46:return bf(e,3872,3881,!0,s);default:return bf(e,48,57,!0,s)}},Ef="data-html2canvas-ignore",Ff=function(){function e(e,t,i){if(this.context=e,this.options=i,this.scrolledElements=[],this.referenceElement=t,this.counters=new df,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 i=this,s=Df(e,t);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,o=e.defaultView.pageYOffset,n=s.contentWindow,a=n.document,l=Rf(s).then((function(){return Pc(i,void 0,void 0,(function(){var e,i;return Bc(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(Nf),n&&(n.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||n.scrollY===t.top&&n.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(n.scrollX-t.left,n.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(i=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Tf(a)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(a,i)})).then((function(){return s}))]:[2,s]}}))}))}));return a.open(),a.write(kf(document.doctype)+""),Of(this.referenceElement.ownerDocument,r,o),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),l},e.prototype.createElementClone=function(e){if(Gg(e,2),rf(e))return this.createCanvasClone(e);if(of(e))return this.createVideoClone(e);if(lf(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return nf(t)&&(nf(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),uf(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return Uf(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var i=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),s=e.cloneNode(!1);return s.textContent=i,s}}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 i=e.ownerDocument.createElement("img");try{return i.src=e.toDataURL(),i}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var s=e.cloneNode(!1);try{s.width=e.width,s.height=e.height;var r=e.getContext("2d"),o=s.getContext("2d");if(o)if(!this.options.allowTaint&&r)o.putImageData(r.getImageData(0,0,e.width,e.height),0,0);else{var n=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(n){var a=n.getContextAttributes();!1===(null==a?void 0:a.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}o.drawImage(e,0,0)}return s}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return s},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var i=t.getContext("2d");try{return i&&(i.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||i.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var s=e.ownerDocument.createElement("canvas");return s.width=e.offsetWidth,s.height=e.offsetHeight,s},e.prototype.appendChildNode=function(e,t,i){Ym(t)&&("SCRIPT"===t.tagName||t.hasAttribute(Ef)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&Ym(t)&&lf(t)||e.appendChild(this.cloneNode(t,i))},e.prototype.cloneChildNodes=function(e,t,i){for(var s=this,r=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;r;r=r.nextSibling)if(Ym(r)&&cf(r)&&"function"==typeof r.assignedNodes){var o=r.assignedNodes();o.length&&o.forEach((function(e){return s.appendChildNode(t,e,i)}))}else this.appendChildNode(t,r,i)},e.prototype.cloneNode=function(e,t){if(Xm(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var i=e.ownerDocument.defaultView;if(i&&Ym(e)&&(qm(e)||Zm(e))){var s=this.createElementClone(e);s.style.transitionProperty="none";var r=i.getComputedStyle(e),o=i.getComputedStyle(e,":before"),n=i.getComputedStyle(e,":after");this.referenceElement===e&&qm(s)&&(this.clonedReferenceElement=s),sf(s)&&Hf(s);var a=this.counters.parse(new Hg(this.context,r)),l=this.resolvePseudoContent(e,s,o,tm.BEFORE);uf(e)&&(t=!0),of(e)||this.cloneChildNodes(e,s,t),l&&s.insertBefore(l,s.firstChild);var A=this.resolvePseudoContent(e,s,n,tm.AFTER);return A&&s.appendChild(A),this.counters.pop(a),(r&&(this.options.copyStyles||Zm(e))&&!af(e)||t)&&Uf(r,s),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([s,e.scrollLeft,e.scrollTop]),(Af(e)||hf(e))&&(Af(s)||hf(s))&&(s.value=e.value),s}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,i,s){var r=this;if(i){var o=i.content,n=t.ownerDocument;if(n&&o&&"none"!==o&&"-moz-alt-content"!==o&&"none"!==i.display){this.counters.parse(new Hg(this.context,i));var a=new jg(this.context,i),l=n.createElement("html2canvaspseudoelement");Uf(i,l),a.content.forEach((function(t){if(0===t.type)l.appendChild(n.createTextNode(t.value));else if(22===t.type){var i=n.createElement("img");i.src=t.value,i.style.opacity="1",l.appendChild(i)}else if(18===t.type){if("attr"===t.name){var s=t.values.filter(ud);s.length&&l.appendChild(n.createTextNode(e.getAttribute(s[0].value)||""))}else if("counter"===t.name){var o=t.values.filter(md),A=o[0],h=o[1];if(A&&ud(A)){var c=r.counters.getCounterValue(A.value),u=h&&ud(h)?qp.parse(r.context,h.value):3;l.appendChild(n.createTextNode(Mf(c,u,!1)))}}else if("counters"===t.name){var d=t.values.filter(md),p=(A=d[0],d[1]);h=d[2];if(A&&ud(A)){var g=r.counters.getCounterValues(A.value),m=h&&ud(h)?qp.parse(r.context,h.value):3,f=p&&0===p.type?p.value:"",_=g.map((function(e){return Mf(e,m,!1)})).join(f);l.appendChild(n.createTextNode(_))}}}else if(20===t.type)switch(t.value){case"open-quote":l.appendChild(n.createTextNode(Ug(a.quotes,r.quoteDepth++,!0)));break;case"close-quote":l.appendChild(n.createTextNode(Ug(a.quotes,--r.quoteDepth,!1)));break;default:l.appendChild(n.createTextNode(t.value))}})),l.className=Qf+" "+Vf;var A=s===tm.BEFORE?" "+Qf:" "+Vf;return Zm(t)?t.className.baseValue+=A:t.className+=A,l}}},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"}(tm||(tm={}));var If,Df=function(e,t){var i=e.createElement("iframe");return i.className="html2canvas-container",i.style.visibility="hidden",i.style.position="fixed",i.style.left="-10000px",i.style.top="0px",i.style.border="0",i.width=t.width.toString(),i.height=t.height.toString(),i.scrolling="no",i.setAttribute(Ef,"true"),e.body.appendChild(i),i},Sf=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},Tf=function(e){return Promise.all([].slice.call(e.images,0).map(Sf))},Rf=function(e){return new Promise((function(t,i){var s=e.contentWindow;if(!s)return i("No window assigned for iframe");var r=s.document;s.onload=e.onload=function(){s.onload=e.onload=null;var i=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(i),t(e))}),50)}}))},Lf=["all","d","content"],Uf=function(e,t){for(var i=e.length-1;i>=0;i--){var s=e.item(i);-1===Lf.indexOf(s)&&t.style.setProperty(s,e.getPropertyValue(s))}return t},kf=function(e){var t="";return e&&(t+=""),t},Of=function(e,t,i){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||i!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,i)},Nf=function(e){var t=e[0],i=e[1],s=e[2];t.scrollLeft=i,t.scrollTop=s},Qf="___html2canvas___pseudoelement_before",Vf="___html2canvas___pseudoelement_after",jf='{\n content: "" !important;\n display: none !important;\n}',Hf=function(e){zf(e,"."+Qf+":before"+jf+"\n ."+Vf+":after"+jf)},zf=function(e,t){var i=e.ownerDocument;if(i){var s=i.createElement("style");s.textContent=t,e.appendChild(s)}},Gf=function(){function e(){}return e.getOrigin=function(t){var i=e._link;return i?(i.href=t,i.href=i.href,i.protocol+i.hostname+i.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}(),Wf=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:$f(e)||qf(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 Pc(this,void 0,void 0,(function(){var t,i,s,r,o=this;return Bc(this,(function(n){switch(n.label){case 0:return t=Gf.isSameOrigin(e),i=!Zf(e)&&!0===this._options.useCORS&&gm.SUPPORT_CORS_IMAGES&&!t,s=!Zf(e)&&!t&&!$f(e)&&"string"==typeof this._options.proxy&&gm.SUPPORT_CORS_XHR&&!i,t||!1!==this._options.allowTaint||Zf(e)||$f(e)||s||i?(r=e,s?[4,this.proxy(r)]:[3,2]):[2];case 1:r=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var s=new Image;s.onload=function(){return e(s)},s.onerror=t,(Jf(r)||i)&&(s.crossOrigin="anonymous"),s.src=r,!0===s.complete&&setTimeout((function(){return e(s)}),500),o._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.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,i=this._options.proxy;if(!i)throw new Error("No proxy defined");var s=e.substring(0,256);return new Promise((function(r,o){var n=gm.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=function(){if(200===a.status)if("text"===n)r(a.response);else{var e=new FileReader;e.addEventListener("load",(function(){return r(e.result)}),!1),e.addEventListener("error",(function(e){return o(e)}),!1),e.readAsDataURL(a.response)}else o("Failed to proxy resource "+s+" with status code "+a.status)},a.onerror=o;var l=i.indexOf("?")>-1?"&":"?";if(a.open("GET",""+i+l+"url="+encodeURIComponent(e)+"&responseType="+n),"text"!==n&&a instanceof XMLHttpRequest&&(a.responseType=n),t._options.imageTimeout){var A=t._options.imageTimeout;a.timeout=A,a.ontimeout=function(){return o("Timed out ("+A+"ms) proxying "+s)}}a.send()}))},e}(),Kf=/^data:image\/svg\+xml/i,Xf=/^data:image\/.*;base64,/i,Yf=/^data:image\/.*/i,qf=function(e){return gm.SUPPORT_SVG_DRAWING||!e_(e)},Zf=function(e){return Yf.test(e)},Jf=function(e){return Xf.test(e)},$f=function(e){return"blob"===e.substr(0,4)},e_=function(e){return"svg"===e.substr(-3).toLowerCase()||Kf.test(e)},t_=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,i){return new e(this.x+t,this.y+i)},e}(),i_=function(e,t,i){return new t_(e.x+(t.x-e.x)*i,e.y+(t.y-e.y)*i)},s_=function(){function e(e,t,i,s){this.type=1,this.start=e,this.startControl=t,this.endControl=i,this.end=s}return e.prototype.subdivide=function(t,i){var s=i_(this.start,this.startControl,t),r=i_(this.startControl,this.endControl,t),o=i_(this.endControl,this.end,t),n=i_(s,r,t),a=i_(r,o,t),l=i_(n,a,t);return i?new e(this.start,s,n,l):new e(l,a,o,this.end)},e.prototype.add=function(t,i){return new e(this.start.add(t,i),this.startControl.add(t,i),this.endControl.add(t,i),this.end.add(t,i))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),r_=function(e){return 1===e.type},o_=function(e){var t=e.styles,i=e.bounds,s=Bd(t.borderTopLeftRadius,i.width,i.height),r=s[0],o=s[1],n=Bd(t.borderTopRightRadius,i.width,i.height),a=n[0],l=n[1],A=Bd(t.borderBottomRightRadius,i.width,i.height),h=A[0],c=A[1],u=Bd(t.borderBottomLeftRadius,i.width,i.height),d=u[0],p=u[1],g=[];g.push((r+a)/i.width),g.push((d+h)/i.width),g.push((o+p)/i.height),g.push((l+c)/i.height);var m=Math.max.apply(Math,g);m>1&&(r/=m,o/=m,a/=m,l/=m,h/=m,c/=m,d/=m,p/=m);var f=i.width-a,_=i.height-c,v=i.width-h,b=i.height-p,x=t.borderTopWidth,w=t.borderRightWidth,y=t.borderBottomWidth,P=t.borderLeftWidth,B=Cd(t.paddingTop,e.bounds.width),C=Cd(t.paddingRight,e.bounds.width),M=Cd(t.paddingBottom,e.bounds.width),E=Cd(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||o>0?n_(i.left+P/3,i.top+x/3,r-P/3,o-x/3,If.TOP_LEFT):new t_(i.left+P/3,i.top+x/3),this.topRightBorderDoubleOuterBox=r>0||o>0?n_(i.left+f,i.top+x/3,a-w/3,l-x/3,If.TOP_RIGHT):new t_(i.left+i.width-w/3,i.top+x/3),this.bottomRightBorderDoubleOuterBox=h>0||c>0?n_(i.left+v,i.top+_,h-w/3,c-y/3,If.BOTTOM_RIGHT):new t_(i.left+i.width-w/3,i.top+i.height-y/3),this.bottomLeftBorderDoubleOuterBox=d>0||p>0?n_(i.left+P/3,i.top+b,d-P/3,p-y/3,If.BOTTOM_LEFT):new t_(i.left+P/3,i.top+i.height-y/3),this.topLeftBorderDoubleInnerBox=r>0||o>0?n_(i.left+2*P/3,i.top+2*x/3,r-2*P/3,o-2*x/3,If.TOP_LEFT):new t_(i.left+2*P/3,i.top+2*x/3),this.topRightBorderDoubleInnerBox=r>0||o>0?n_(i.left+f,i.top+2*x/3,a-2*w/3,l-2*x/3,If.TOP_RIGHT):new t_(i.left+i.width-2*w/3,i.top+2*x/3),this.bottomRightBorderDoubleInnerBox=h>0||c>0?n_(i.left+v,i.top+_,h-2*w/3,c-2*y/3,If.BOTTOM_RIGHT):new t_(i.left+i.width-2*w/3,i.top+i.height-2*y/3),this.bottomLeftBorderDoubleInnerBox=d>0||p>0?n_(i.left+2*P/3,i.top+b,d-2*P/3,p-2*y/3,If.BOTTOM_LEFT):new t_(i.left+2*P/3,i.top+i.height-2*y/3),this.topLeftBorderStroke=r>0||o>0?n_(i.left+P/2,i.top+x/2,r-P/2,o-x/2,If.TOP_LEFT):new t_(i.left+P/2,i.top+x/2),this.topRightBorderStroke=r>0||o>0?n_(i.left+f,i.top+x/2,a-w/2,l-x/2,If.TOP_RIGHT):new t_(i.left+i.width-w/2,i.top+x/2),this.bottomRightBorderStroke=h>0||c>0?n_(i.left+v,i.top+_,h-w/2,c-y/2,If.BOTTOM_RIGHT):new t_(i.left+i.width-w/2,i.top+i.height-y/2),this.bottomLeftBorderStroke=d>0||p>0?n_(i.left+P/2,i.top+b,d-P/2,p-y/2,If.BOTTOM_LEFT):new t_(i.left+P/2,i.top+i.height-y/2),this.topLeftBorderBox=r>0||o>0?n_(i.left,i.top,r,o,If.TOP_LEFT):new t_(i.left,i.top),this.topRightBorderBox=a>0||l>0?n_(i.left+f,i.top,a,l,If.TOP_RIGHT):new t_(i.left+i.width,i.top),this.bottomRightBorderBox=h>0||c>0?n_(i.left+v,i.top+_,h,c,If.BOTTOM_RIGHT):new t_(i.left+i.width,i.top+i.height),this.bottomLeftBorderBox=d>0||p>0?n_(i.left,i.top+b,d,p,If.BOTTOM_LEFT):new t_(i.left,i.top+i.height),this.topLeftPaddingBox=r>0||o>0?n_(i.left+P,i.top+x,Math.max(0,r-P),Math.max(0,o-x),If.TOP_LEFT):new t_(i.left+P,i.top+x),this.topRightPaddingBox=a>0||l>0?n_(i.left+Math.min(f,i.width-w),i.top+x,f>i.width+w?0:Math.max(0,a-w),Math.max(0,l-x),If.TOP_RIGHT):new t_(i.left+i.width-w,i.top+x),this.bottomRightPaddingBox=h>0||c>0?n_(i.left+Math.min(v,i.width-P),i.top+Math.min(_,i.height-y),Math.max(0,h-w),Math.max(0,c-y),If.BOTTOM_RIGHT):new t_(i.left+i.width-w,i.top+i.height-y),this.bottomLeftPaddingBox=d>0||p>0?n_(i.left+P,i.top+Math.min(b,i.height-y),Math.max(0,d-P),Math.max(0,p-y),If.BOTTOM_LEFT):new t_(i.left+P,i.top+i.height-y),this.topLeftContentBox=r>0||o>0?n_(i.left+P+E,i.top+x+B,Math.max(0,r-(P+E)),Math.max(0,o-(x+B)),If.TOP_LEFT):new t_(i.left+P+E,i.top+x+B),this.topRightContentBox=a>0||l>0?n_(i.left+Math.min(f,i.width+P+E),i.top+x+B,f>i.width+P+E?0:a-P+E,l-(x+B),If.TOP_RIGHT):new t_(i.left+i.width-(w+C),i.top+x+B),this.bottomRightContentBox=h>0||c>0?n_(i.left+Math.min(v,i.width-(P+E)),i.top+Math.min(_,i.height+x+B),Math.max(0,h-(w+C)),c-(y+M),If.BOTTOM_RIGHT):new t_(i.left+i.width-(w+C),i.top+i.height-(y+M)),this.bottomLeftContentBox=d>0||p>0?n_(i.left+P+E,i.top+b,Math.max(0,d-(P+E)),p-(y+M),If.BOTTOM_LEFT):new t_(i.left+P+E,i.top+i.height-(y+M))};!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"}(If||(If={}));var n_=function(e,t,i,s,r){var o=(Math.sqrt(2)-1)/3*4,n=i*o,a=s*o,l=e+i,A=t+s;switch(r){case If.TOP_LEFT:return new s_(new t_(e,A),new t_(e,A-a),new t_(l-n,t),new t_(l,t));case If.TOP_RIGHT:return new s_(new t_(e,t),new t_(e+n,t),new t_(l,A-a),new t_(l,A));case If.BOTTOM_RIGHT:return new s_(new t_(l,t),new t_(l,t+a),new t_(e+n,A),new t_(e,A));case If.BOTTOM_LEFT:default:return new s_(new t_(l,A),new t_(l-n,A),new t_(e,t+a),new t_(e,t))}},a_=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},l_=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},A_=function(e,t,i){this.offsetX=e,this.offsetY=t,this.matrix=i,this.type=0,this.target=6},h_=function(e,t){this.path=e,this.target=t,this.type=1},c_=function(e){this.opacity=e,this.type=2,this.target=6},u_=function(e){return 1===e.type},d_=function(e,t){return e.length===t.length&&e.some((function(e,i){return e===t[i]}))},p_=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},g_=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new o_(this.container),this.container.styles.opacity<1&&this.effects.push(new c_(this.container.styles.opacity)),null!==this.container.styles.transform){var i=this.container.bounds.left+this.container.styles.transformOrigin[0].number,s=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new A_(i,s,r))}if(0!==this.container.styles.overflowX){var o=a_(this.curves),n=l_(this.curves);d_(o,n)?this.effects.push(new h_(o,6)):(this.effects.push(new h_(o,2)),this.effects.push(new h_(n,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),i=this.parent,s=this.effects.slice(0);i;){var r=i.effects.filter((function(e){return!u_(e)}));if(t||0!==i.container.styles.position||!i.parent){if(s.unshift.apply(s,r),t=-1===[2,3].indexOf(i.container.styles.position),0!==i.container.styles.overflowX){var o=a_(i.curves),n=l_(i.curves);d_(o,n)||s.unshift(new h_(n,6))}}else s.unshift.apply(s,r);i=i.parent}return s.filter((function(t){return Ig(t.target,e)}))},e}(),m_=function(e,t,i,s){e.container.elements.forEach((function(r){var o=Ig(r.flags,4),n=Ig(r.flags,2),a=new g_(r,e);Ig(r.styles.display,2048)&&s.push(a);var l=Ig(r.flags,8)?[]:s;if(o||n){var A=o||r.styles.isPositioned()?i:t,h=new p_(a);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var c=r.styles.zIndex.order;if(c<0){var u=0;A.negativeZIndex.some((function(e,t){return c>e.element.container.styles.zIndex.order?(u=t,!1):u>0})),A.negativeZIndex.splice(u,0,h)}else if(c>0){var d=0;A.positiveZIndex.some((function(e,t){return c>=e.element.container.styles.zIndex.order?(d=t+1,!1):d>0})),A.positiveZIndex.splice(d,0,h)}else A.zeroOrAutoZIndexOrTransformedOrOpacity.push(h)}else r.styles.isFloating()?A.nonPositionedFloats.push(h):A.nonPositionedInlineLevel.push(h);m_(a,h,o?h:i,l)}else r.styles.isInlineLevel()?t.inlineLevel.push(a):t.nonInlineLevel.push(a),m_(a,t,i,l);Ig(r.flags,8)&&f_(r,l)}))},f_=function(e,t){for(var i=e instanceof Dm?e.start:1,s=e instanceof Dm&&e.reversed,r=0;r0&&e.intrinsicHeight>0){var s=w_(e),r=l_(t);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(i,0,0,e.intrinsicWidth,e.intrinsicHeight,s.left,s.top,s.width,s.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return Pc(this,void 0,void 0,(function(){var i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v;return Bc(this,(function(b){switch(b.label){case 0:this.applyEffects(e.getEffects(4)),i=e.container,s=e.curves,r=i.styles,o=0,n=i.textNodes,b.label=1;case 1:return o0&&y>0&&(f=s.ctx.createPattern(p,"repeat"),s.renderRepeat(v,f,B,C))):function(e){return 2===e.type}(i)&&(_=y_(e,t,[null,null,null]),v=_[0],b=_[1],x=_[2],w=_[3],y=_[4],P=0===i.position.length?[yd]:i.position,B=Cd(P[0],w),C=Cd(P[P.length-1],y),M=function(e,t,i,s,r){var o=0,n=0;switch(e.size){case 0:0===e.shape?o=n=Math.min(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.min(Math.abs(t),Math.abs(t-s)),n=Math.min(Math.abs(i),Math.abs(i-r)));break;case 2:if(0===e.shape)o=n=Math.min(Yd(t,i),Yd(t,i-r),Yd(t-s,i),Yd(t-s,i-r));else if(1===e.shape){var a=Math.min(Math.abs(i),Math.abs(i-r))/Math.min(Math.abs(t),Math.abs(t-s)),l=qd(s,r,t,i,!0),A=l[0],h=l[1];n=a*(o=Yd(A-t,(h-i)/a))}break;case 1:0===e.shape?o=n=Math.max(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.max(Math.abs(t),Math.abs(t-s)),n=Math.max(Math.abs(i),Math.abs(i-r)));break;case 3:if(0===e.shape)o=n=Math.max(Yd(t,i),Yd(t,i-r),Yd(t-s,i),Yd(t-s,i-r));else if(1===e.shape){a=Math.max(Math.abs(i),Math.abs(i-r))/Math.max(Math.abs(t),Math.abs(t-s));var c=qd(s,r,t,i,!1);A=c[0],h=c[1],n=a*(o=Yd(A-t,(h-i)/a))}}return Array.isArray(e.size)&&(o=Cd(e.size[0],s),n=2===e.size.length?Cd(e.size[1],r):o),[o,n]}(i,B,C,w,y),E=M[0],F=M[1],E>0&&F>0&&(I=s.ctx.createRadialGradient(b+B,x+C,0,b+B,x+C,E),Kd(i.stops,2*E).forEach((function(e){return I.addColorStop(e.stop,Ld(e.color))})),s.path(v),s.ctx.fillStyle=I,E!==F?(D=e.bounds.left+.5*e.bounds.width,S=e.bounds.top+.5*e.bounds.height,R=1/(T=F/E),s.ctx.save(),s.ctx.translate(D,S),s.ctx.transform(1,0,0,T,0,0),s.ctx.translate(-D,-S),s.ctx.fillRect(b,R*(x-S)+S,w,y*R),s.ctx.restore()):s.ctx.fill())),L.label=6;case 6:return t--,[2]}}))},s=this,r=0,o=e.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return r0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,2)]:[3,11]:[3,13];case 4:return h.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,3)];case 6:return h.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,o,e.curves)];case 8:return h.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,o,e.curves)];case 10:h.sent(),h.label=11;case 11:o++,h.label=12;case 12:return n++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,t,i,s,r){return Pc(this,void 0,void 0,(function(){var o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b;return Bc(this,(function(x){return this.ctx.save(),o=function(e,t){switch(t){case 0:return v_(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return v_(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return v_(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return v_(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(s,i),n=__(s,i),2===r&&(this.path(n),this.ctx.clip()),r_(n[0])?(a=n[0].start.x,l=n[0].start.y):(a=n[0].x,l=n[0].y),r_(n[1])?(A=n[1].end.x,h=n[1].end.y):(A=n[1].x,h=n[1].y),c=0===i||2===i?Math.abs(a-A):Math.abs(l-h),this.ctx.beginPath(),3===r?this.formatPath(o):this.formatPath(n.slice(0,2)),u=t<3?3*t:2*t,d=t<3?2*t:t,3===r&&(u=t,d=t),p=!0,c<=2*u?p=!1:c<=2*u+d?(u*=g=c/(2*u+d),d*=g):(m=Math.floor((c+d)/(u+d)),f=(c-m*u)/(m-1),d=(_=(c-(m+1)*u)/m)<=0||Math.abs(d-f){})),Z_(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){K_(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){K_(this.isRunning),this.isRunning=!1,this._reject(e)}}class $_{}const ev=new Map;function tv(e){K_(e.source&&!e.url||!e.source&&e.url);let t=ev.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return iv((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),ev.set(e.url,t)),e.source&&(t=iv(e.source),ev.set(e.source,t))),K_(t),t}function iv(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function sv(e,t=!0,i){const s=i||new Set;if(e){if(rv(e))s.add(e);else if(rv(e.buffer))s.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const i in e)sv(e[i],t,s)}else;return void 0===i?Array.from(s):[]}function rv(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 ov=()=>{};class nv{static isSupported(){return"undefined"!=typeof Worker&&X_||void 0!==typeof $_}constructor(e){Z_(this,"name",void 0),Z_(this,"source",void 0),Z_(this,"url",void 0),Z_(this,"terminated",!1),Z_(this,"worker",void 0),Z_(this,"onMessage",void 0),Z_(this,"onError",void 0),Z_(this,"_loadableURL","");const{name:t,source:i,url:s}=e;K_(i||s),this.name=t,this.source=i,this.url=s,this.onMessage=ov,this.onError=e=>console.log(e),this.worker=X_?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=ov,this.onError=ov,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||sv(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=tv({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 $_(t,{eval:!1})}else{if(!this.source)throw new Error("no worker");e=new $_(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 av{static isSupported(){return nv.isSupported()}constructor(e){Z_(this,"name","unnamed"),Z_(this,"source",void 0),Z_(this,"url",void 0),Z_(this,"maxConcurrency",1),Z_(this,"maxMobileConcurrency",1),Z_(this,"onDebug",(()=>{})),Z_(this,"reuseWorkers",!0),Z_(this,"props",{}),Z_(this,"jobQueue",[]),Z_(this,"idleQueue",[]),Z_(this,"count",0),Z_(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,i)=>e.done(i)),i=((e,t)=>e.error(t))){const s=new Promise((s=>(this.jobQueue.push({name:e,onMessage:t,onError:i,onStart:s}),this)));return this._startQueuedJob(),await s}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 i=new J_(t.name,e);e.onMessage=e=>t.onMessage(i,e.type,e.payload),e.onError=e=>t.onError(i,e),t.onStart(i);try{await i.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 Av{static isSupported(){return nv.isSupported()}static getWorkerFarm(e={}){return Av._workerFarm=Av._workerFarm||new Av({}),Av._workerFarm.setProps(e),Av._workerFarm}constructor(e){Z_(this,"props",void 0),Z_(this,"workerPools",new Map),this.props={...lv},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:i,url:s}=e;let r=this.workerPools.get(t);return r||(r=new av({name:t,source:i,url:s}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}Z_(Av,"_workerFarm",void 0);const hv={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},cv=hv.window||hv.self||hv.global,uv=hv.process||{},dv="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source",pv=!("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,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}();class gv{constructor(e,t,i="sessionStorage"){this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),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 mv(e,t,i,s=600){const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}const fv={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 _v(e){return"string"==typeof e?fv[e.toUpperCase()]||fv.WHITE:e}function vv(e,t){if(!e)throw new Error(t||"Assertion failed")}function bv(){let e;if(pv&&cv.performance)e=cv.performance.now();else if(uv.hrtime){const t=uv.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}const xv={debug:pv&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},wv={enabled:!0,level:0};function yv(){}const Pv={},Bv={once:!0};function Cv(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}class Mv{constructor({id:e}={id:""}){this.id=e,this.VERSION=dv,this._startTs=bv(),this._deltaTs=bv(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new gv("__probe-".concat(this.id,"__"),wv),this.userData={},this.timeStamp("".concat(this.id," started")),function(e,t=["constructor"]){const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].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((bv()-this._startTs).toPrecision(10))}getDelta(){return Number((bv()-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){vv(e,t)}warn(e){return this._getLogFunction(0,e,xv.warn,arguments,Bv)}error(e){return this._getLogFunction(0,e,xv.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,xv.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,xv.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,xv.debug||xv.info,arguments,Bv)}table(e,t,i){return t?this._getLogFunction(e,t,console.table||yv,i&&[i],{tag:Cv(t)}):yv}image({logLevel:e,priority:t,image:i,message:s="",scale:r=1}){return this._shouldLog(e||t)?pv?function({image:e,message:t="",scale:i=1}){if("string"==typeof e){const s=new Image;return s.onload=()=>{const e=mv(s,t,i);console.log(...e)},s.src=e,yv}const s=e.nodeName||"";if("img"===s.toLowerCase())return console.log(...mv(e,t,i)),yv;if("canvas"===s.toLowerCase()){const s=new Image;return s.onload=()=>console.log(...mv(s,t,i)),s.src=e.toDataURL(),yv}return yv}({image:i,message:s,scale:r}):function({image:e,message:t="",scale:i=1}){let s=null;try{s=module.require("asciify-image")}catch(e){}if(s)return()=>s(e,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((e=>console.log(e)));return yv}({image:i,message:s,scale:r}):yv}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||yv)}group(e,t,i={collapsed:!1}){i=Fv({logLevel:e,message:t,opts:i});const{collapsed:s}=i;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,i={}){return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||yv)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Ev(e)}_getLogFunction(e,t,i,s=[],r){if(this._shouldLog(e)){r=Fv({logLevel:e,message:t,args:s,opts:r}),vv(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=bv();const o=r.tag||r.message;if(r.once){if(Pv[o])return yv;Pv[o]=bv()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e,t=8){const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).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}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return pv||"string"!=typeof e||(t&&(t=_v(t),e="[".concat(t,"m").concat(e,"")),i&&(t=_v(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return yv}}function Ev(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 vv(Number.isFinite(t)&&t>=0),t}function Fv(e){const{logLevel:t,message:i}=e;e.logLevel=Ev(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(e.args=s,typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return vv("string"===r||"object"===r),Object.assign(e,e.opts)}Mv.VERSION=dv,new Mv({id:"loaders.gl"});function Iv(){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,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}()}new class{constructor(){Z_(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)}};const Dv={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},Sv=Dv.window||Dv.self||Dv.global,Tv=Dv.process||{},Rv="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source";Iv();class Lv{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";Z_(this,"storage",void 0),Z_(this,"id",void 0),Z_(this,"config",{}),this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),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 Uv(e,t,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600;const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}let kv;function Ov(e){return"string"==typeof e?kv[e.toUpperCase()]||kv.WHITE:e}function Nv(e,t){if(!e)throw new Error(t||"Assertion failed")}function Qv(){let e;var t,i;if(Iv&&"performance"in Sv)e=null==Sv||null===(t=Sv.performance)||void 0===t||null===(i=t.now)||void 0===i?void 0:i.call(t);else if("hrtime"in Tv){var s;const t=null==Tv||null===(s=Tv.hrtime)||void 0===s?void 0:s.call(Tv);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"}(kv||(kv={}));const Vv={debug:Iv&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},jv={enabled:!0,level:0};function Hv(){}const zv={},Gv={once:!0};class Wv{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""};Z_(this,"id",void 0),Z_(this,"VERSION",Rv),Z_(this,"_startTs",Qv()),Z_(this,"_deltaTs",Qv()),Z_(this,"_storage",void 0),Z_(this,"userData",{}),Z_(this,"LOG_THROTTLE_TIMEOUT",0),this.id=e,this._storage=new Lv("__probe-".concat(this.id,"__"),jv),this.userData={},this.timeStamp("".concat(this.id," started")),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"];const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].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((Qv()-this._startTs).toPrecision(10))}getDelta(){return Number((Qv()-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){Nv(e,t)}warn(e){return this._getLogFunction(0,e,Vv.warn,arguments,Gv)}error(e){return this._getLogFunction(0,e,Vv.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,Vv.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,Vv.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r{const t=Uv(e,i,s);console.log(...t)},e.src=t,Hv}const r=t.nodeName||"";if("img"===r.toLowerCase())return console.log(...Uv(t,i,s)),Hv;if("canvas"===r.toLowerCase()){const e=new Image;return e.onload=()=>console.log(...Uv(e,i,s)),e.src=t.toDataURL(),Hv}return Hv}({image:s,message:r,scale:o}):function(e){let{image:t,message:i="",scale:s=1}=e,r=null;try{r=module.require("asciify-image")}catch(e){}if(r)return()=>r(t,{fit:"box",width:"".concat(Math.round(80*s),"%")}).then((e=>console.log(e)));return Hv}({image:s,message:r,scale:o}):Hv}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||Hv)}group(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1};const s=Xv({logLevel:e,message:t,opts:i}),{collapsed:r}=i;return s.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Hv)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Kv(e)}_getLogFunction(e,t,i,s,r){if(this._shouldLog(e)){r=Xv({logLevel:e,message:t,args:s,opts:r}),Nv(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=Qv();const o=r.tag||r.message;if(r.once){if(zv[o])return Hv;zv[o]=Qv()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).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}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return Iv||"string"!=typeof e||(t&&(t=Ov(t),e="[".concat(t,"m").concat(e,"")),i&&(t=Ov(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return Hv}}function Kv(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 Nv(Number.isFinite(t)&&t>=0),t}function Xv(e){const{logLevel:t,message:i}=e;e.logLevel=Kv(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return Nv("string"===r||"object"===r),Object.assign(e,{args:s},e.opts)}function Yv(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}var qv,Zv,Jv,$v,eb,tb,ib,sb,rb;let ob;Z_(Wv,"VERSION",Rv),new Wv({id:"loaders.gl"}),(rb=qv||(qv={}))[rb.NONE=0]="NONE",rb[rb.BASISLZ=1]="BASISLZ",rb[rb.ZSTD=2]="ZSTD",rb[rb.ZLIB=3]="ZLIB",function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(Zv||(Zv={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(Jv||(Jv={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}($v||($v={})),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"}(eb||(eb={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(tb||(tb={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}(ib||(ib={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(sb||(sb={})),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"}(ob||(ob={}));const nb={DEFAULT:{}};function ab(e,t,i={}){const s="lightgrey",r=i.hoverColor||"rgba(0,0,0,0.4)",o=i.textColor||"black",n=500,a=n+n/3,l=a/24,A=[{boundary:[6,6,6,6],color:i.frontColor||i.color||"#55FF55"},{boundary:[18,6,6,6],color:i.backColor||i.color||"#55FF55"},{boundary:[12,6,6,6],color:i.rightColor||i.color||"#FF5555"},{boundary:[0,6,6,6],color:i.leftColor||i.color||"#FF5555"},{boundary:[6,0,6,6],color:i.topColor||i.color||"#7777FF"},{boundary:[6,12,6,6],color:i.bottomColor||i.color||"#7777FF"}],h=[{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]}];i.frontColor||i.color,i.backColor||i.color,i.rightColor||i.color,i.leftColor||i.color,i.topColor||i.color,i.bottomColor||i.color;const c=[{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=h.length;e=r[0]*l&&t<=(r[0]+r[2])*l&&i>=r[1]*l&&i<=(r[1]+r[3])*l)return s}}return-1},this.setAreaHighlighted=function(e,t){var i=u[e];if(!i)throw"Area not found: "+e;i.highlighted=!!t,m()},this.getAreaDir=function(e){var t=u[e];if(!t)throw"Unknown area: "+e;return t.dir},this.getAreaUp=function(e){var t=u[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 lb=d.vec3(),Ab=d.vec3();d.mat4();class hb extends Q{constructor(e,t={}){super("NavCube",e,t),e.navCube=this;try{this._navCubeScene=new qt(e,{canvasId:t.canvasId,canvasElement:t.canvasElement,transparent:!0}),this._navCubeCanvas=this._navCubeScene.canvas.canvas,this._navCubeScene.input.keyboardEnabled=!1}catch(e){return void this.error(e)}const i=this._navCubeScene;i.clearLights(),new vt(i,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new vt(i,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new vt(i,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._navCubeCamera=i.camera,this._navCubeCamera.ortho.scale=7,this._navCubeCamera.ortho.near=.1,this._navCubeCamera.ortho.far=2e3,i.edgeMaterial.edgeColor=[.2,.2,.2],i.edgeMaterial.edgeAlpha=.6,this._zUp=Boolean(e.camera.zUp);var s=this;this.setIsProjectNorth(t.isProjectNorth),this.setProjectNorthOffsetAngle(t.projectNorthOffsetAngle);const r=function(){const e=d.mat4();return function(t,i,r){return d.identityMat4(e),d.rotationMat4v(t*s._projectNorthOffsetAngle*d.DEGTORAD,[0,1,0],e),d.transformVec3(e,i,r)}}();this._synchCamera=function(){var t=d.rotationMat4c(-90*d.DEGTORAD,1,0,0),i=d.vec3(),o=d.vec3(),n=d.vec3();return function(){var a=e.camera.eye,l=e.camera.look,A=e.camera.up;i=d.mulVec3Scalar(d.normalizeVec3(d.subVec3(a,l,i)),5),s._isProjectNorth&&s._projectNorthOffsetAngle&&(i=r(-1,i,lb),A=r(-1,A,Ab)),s._zUp?(d.transformVec3(t,i,o),d.transformVec3(t,A,n),s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=d.transformVec3(t,i,o),s._navCubeCamera.up=d.transformPoint3(t,A,n)):(s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=i,s._navCubeCamera.up=A)}}(),this._cubeTextureCanvas=new ab(e,i,t),this._cubeSampler=new Ts(i,{image:this._cubeTextureCanvas.getImage(),flipY:!0,wrapS:Jt,wrapT:Jt}),this._cubeMesh=new hs(i,{geometry:new St(i,{primitive:"triangles",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],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]}),material:new kt(i,{diffuse:[.4,.4,.4],specular:[.4,.4,.4],emissive:[.6,.6,.6],diffuseMap:this._cubeSampler,emissiveMap:this._cubeSampler}),visible:!0,edges:!0}),this._shadow=!1===t.shadowVisible?null:new hs(i,{geometry:new St(i,us({center:[0,0,0],radiusTop:.001,radiusBottom:1.4,height:.01,radialSegments:20,heightSegments:1,openEnded:!0})),material:new kt(i,{diffuse:[0,0,0],specular:[0,0,0],emissive:[0,0,0],alpha:.5}),position:[0,-1.5,0],visible:!0,pickable:!1,backfaces:!1}),this._onCameraMatrix=e.camera.on("matrix",this._synchCamera),this._onCameraWorldAxis=e.camera.on("worldAxis",(()=>{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 o=-1;function n(e){var t=[0,0];if(e){for(var i=e.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;t[0]=e.pageX-s,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var a,l,A=null,h=null,c=!1,u=!1,p=.5;s._navCubeCanvas.addEventListener("mouseenter",s._onMouseEnter=function(e){u=!0}),s._navCubeCanvas.addEventListener("mouseleave",s._onMouseLeave=function(e){u=!1}),s._navCubeCanvas.addEventListener("mousedown",s._onMouseDown=function(e){if(1===e.which){A=e.x,h=e.y,a=e.clientX,l=e.clientY;var t=n(e),s=i.pick({canvasPos:t});c=!!s}}),document.addEventListener("mouseup",s._onMouseUp=function(e){if(1===e.which&&(c=!1,null!==A)){var t=n(e),a=i.pick({canvasPos:t,pickSurface:!0});if(a&&a.uv){var l=s._cubeTextureCanvas.getArea(a.uv);if(l>=0&&(document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0)){if(s._cubeTextureCanvas.setAreaHighlighted(l,!0),o=l,s._repaint(),e.xA+3||e.yh+3)return;var u=s._cubeTextureCanvas.getAreaDir(l);if(u){var d=s._cubeTextureCanvas.getAreaUp(l);s._isProjectNorth&&s._projectNorthOffsetAngle&&(u=r(1,u,lb),d=r(1,d,Ab)),g(u,d,(function(){o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0&&(s._cubeTextureCanvas.setAreaHighlighted(l,!1),o=-1,s._repaint())}))}}}}}),document.addEventListener("mousemove",s._onMouseMove=function(t){if(o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),1!==t.buttons||c){if(c){var r=t.clientX,A=t.clientY;return document.body.style.cursor="move",void function(t,i){var s=(t-a)*-p,r=(i-l)*-p;e.camera.orbitYaw(s),e.camera.orbitPitch(-r),a=t,l=i}(r,A)}if(u){var h=n(t),d=i.pick({canvasPos:h,pickSurface:!0});if(d){if(d.uv){document.body.style.cursor="pointer";var g=s._cubeTextureCanvas.getArea(d.uv);if(g===o)return;o>=0&&s._cubeTextureCanvas.setAreaHighlighted(o,!1),g>=0&&(s._cubeTextureCanvas.setAreaHighlighted(g,!0),s._repaint(),o=g)}}else document.body.style.cursor="default",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1)}}});var g=function(){var t=d.vec3();return function(i,r,o){var n=s._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,a=d.getAABB3Diag(n);d.getAABB3Center(n,t);var l=Math.abs(a/Math.tan(s._cameraFitFOV*d.DEGTORAD));e.cameraControl.pivotPos=t,s._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV,duration:s._cameraFlyDuration},o):e.cameraFlight.jumpTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV},o)}}();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()}}d.vec3();const cb=new Float64Array([0,0,1]),ub=new Float64Array(4);class db{constructor(e){this.id=null,this._viewer=e.viewer,this._visible=!1,this._pos=d.vec3(),this._origin=d.vec3(),this._rtcPos=d.vec3(),this._baseDir=d.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),H(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=d.vec3PairToQuaternion(cb,e,ub)}_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,i=.01;this._rootNode=new Ps(t,{position:[0,0,0],scale:[5,5,5]});const s=this._rootNode,r={arrowHead:new St(s,us({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new St(s,us({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),arrowHeadHandle:new St(s,us({radiusTop:.09,radiusBottom:.09,radialSegments:8,heightSegments:1,height:.37,openEnded:!1})),curve:new St(s,Ns({radius:.8,tube:i,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),curveHandle:new St(s,Ns({radius:.8,tube:.06,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),hoop:new St(s,Ns({radius:.8,tube:i,radialSegments:64,tubeSegments:8,arc:2*Math.PI})),axis:new St(s,us({radiusTop:i,radiusBottom:i,radialSegments:20,heightSegments:1,height:1,openEnded:!1})),axisHandle:new St(s,us({radiusTop:.08,radiusBottom:.08,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},o={pickable:new kt(s,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),red:new kt(s,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Nt(s,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6}),green:new kt(s,{diffuse:[0,1,0],emissive:[0,1,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightGreen:new Nt(s,{edges:!1,fill:!0,fillColor:[0,1,0],fillAlpha:.6}),blue:new kt(s,{diffuse:[0,0,1],emissive:[0,0,1],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightBlue:new Nt(s,{edges:!1,fill:!0,fillColor:[0,0,1],fillAlpha:.2}),center:new kt(s,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),highlightBall:new Nt(s,{edges:!1,fill:!0,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1}),highlightPlane:new Nt(s,{edges:!0,edgeWidth:3,fill:!1,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1})};this._displayMeshes={plane:s.addChild(new hs(s,{geometry:new St(s,{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 kt(s,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new Nt(s,{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:s.addChild(new hs(s,{geometry:new St(s,Ns({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new kt(s,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new Nt(s,{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:s.addChild(new hs(s,{geometry:r.curve,material:o.red,matrix:function(){const e=d.rotationMat4v(90*d.DEGTORAD,[0,1,0],d.identityMat4()),t=d.rotationMat4v(270*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveHandle:s.addChild(new hs(s,{geometry:r.curveHandle,material:o.pickable,matrix:function(){const e=d.rotationMat4v(90*d.DEGTORAD,[0,1,0],d.identityMat4()),t=d.rotationMat4v(270*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveArrow1:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=d.translateMat4c(0,-.07,-.8,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(0*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xCurveArrow2:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=d.translateMat4c(0,-.8,-.07,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurve:s.addChild(new hs(s,{geometry:r.curve,material:o.green,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveHandle:s.addChild(new hs(s,{geometry:r.curveHandle,material:o.pickable,rotation:[-90,0,0],pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveArrow1:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=d.translateMat4c(.07,0,-.8,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurveArrow2:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=d.translateMat4c(.8,0,-.07,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurve:s.addChild(new hs(s,{geometry:r.curve,material:o.blue,matrix:d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4()),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zCurveHandle:s.addChild(new hs(s,{geometry:r.curveHandle,material:o.pickable,matrix:d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4()),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveCurveArrow1:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=d.translateMat4c(.8,-.07,0,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4());return d.mulMat4(e,t,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveArrow2:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=d.translateMat4c(.05,-.8,0,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),center:s.addChild(new hs(s,{geometry:new St(s,ds({radius:.05})),material:o.center,pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrowHandle:s.addChild(new hs(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xAxis:s.addChild(new hs(s,{geometry:r.axis,material:o.red,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisHandle:s.addChild(new hs(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrowHandle:s.addChild(new hs(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,opacity:.2}),e),yShaft:s.addChild(new hs(s,{geometry:r.axis,material:o.green,position:[0,-.5,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yShaftHandle:s.addChild(new hs(s,{geometry:r.axisHandle,material:o.pickable,position:[0,-.5,0],pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[.8,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrowHandle:s.addChild(new hs(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[.8,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zShaft:s.addChild(new hs(s,{geometry:r.axis,material:o.blue,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1}),e),zAxisHandle:s.addChild(new hs(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),clippable:!1,pickable:!0,collidable:!0,visible:!1}),e)},this._affordanceMeshes={planeFrame:s.addChild(new hs(s,{geometry:new St(s,Ns({center:[0,0,0],radius:2,tube:i,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new kt(s,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Nt(s,{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:s.addChild(new hs(s,{geometry:r.hoop,material:o.red,highlighted:!0,highlightMaterial:o.highlightRed,matrix:function(){const e=d.rotationMat4v(90*d.DEGTORAD,[0,1,0],d.identityMat4()),t=d.rotationMat4v(270*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yHoop:s.addChild(new hs(s,{geometry:r.hoop,material:o.green,highlighted:!0,highlightMaterial:o.highlightGreen,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zHoop:s.addChild(new hs(s,{geometry:r.hoop,material:o.blue,highlighted:!0,highlightMaterial:o.highlightBlue,matrix:d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4()),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHeadBig,material:o.red,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHeadBig,material:o.green,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHeadBig,material:o.blue,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[.8,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e)}}_bindEvents(){const e=this;var t=!1;const i=-1,s=0,r=1,o=2,n=3,a=4,l=5,A=this._rootNode;var h=null,c=null;const u=d.vec2(),p=d.vec3([1,0,0]),g=d.vec3([0,1,0]),m=d.vec3([0,0,1]),f=this._viewer.scene.canvas.canvas,_=this._viewer.camera,v=this._viewer.scene;{const e=d.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 i=Math.abs(d.lenVec3(d.subVec3(v.camera.eye,this._pos,e)));if(i!==t&&"perspective"===_.projection){const e=.07*(Math.tan(_.perspective.fov*d.DEGTORAD)*i);A.scale=[e,e,e],t=i}if("ortho"===_.projection){const e=_.ortho.scale/10;A.scale=[e,e,e],t=i}}))}const b=function(){const e=new Float64Array(2);return function(t){if(t){for(var i=t.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;e[0]=t.pageX-s,e[1]=t.pageY-r}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),x=function(){const t=d.mat4();return function(i,s){return d.quaternionToMat4(e._rootNode.quaternion,t),d.transformVec3(t,i,s),d.normalizeVec3(s),s}}();var w=function(){const e=d.vec3();return function(t){const i=Math.abs(t[0]);return i>Math.abs(t[1])&&i>Math.abs(t[2])?d.cross3Vec3(t,[0,1,0],e):d.cross3Vec3(t,[1,0,0],e),d.cross3Vec3(e,t,e),d.normalizeVec3(e),e}}();const y=function(){const t=d.vec3(),i=d.vec3(),s=d.vec4();return function(r,o,n){x(r,s);const a=w(s,o,n);B(o,a,t),B(n,a,i),d.subVec3(i,t);const l=d.dotVec3(i,s);e._pos[0]+=s[0]*l,e._pos[1]+=s[1]*l,e._pos[2]+=s[2]*l,e._rootNode.position=e._pos,e._sectionPlane&&(e._sectionPlane.pos=e._pos)}}();var P=function(){const t=d.vec4(),i=d.vec4(),s=d.vec4(),r=d.vec4();return function(o,n,a){x(o,r);if(!(B(n,r,t)&&B(a,r,i))){const e=w(r,n,a);B(n,e,t,1),B(a,e,i,1);var l=d.dotVec3(t,r);t[0]-=l*r[0],t[1]-=l*r[1],t[2]-=l*r[2],l=d.dotVec3(i,r),i[0]-=l*r[0],i[1]-=l*r[1],i[2]-=l*r[2]}d.normalizeVec3(t),d.normalizeVec3(i),l=d.dotVec3(t,i),l=d.clamp(l,-1,1);var A=Math.acos(l)*d.RADTODEG;d.cross3Vec3(t,i,s),d.dotVec3(s,r)<0&&(A=-A),e._rootNode.rotate(o,A),C()}}(),B=function(){const t=d.vec4([0,0,0,1]),i=d.mat4();return function(s,r,o,n){n=n||0,t[0]=s[0]/f.width*2-1,t[1]=-(s[1]/f.height*2-1),t[2]=0,t[3]=1,d.mulMat4(_.projMatrix,_.viewMatrix,i),d.inverseMat4(i),d.transformVec4(i,t,t),d.mulVec4Scalar(t,1/t[3]);var a=_.eye;d.subVec4(t,a,t);const l=e._sectionPlane.pos;var A=-d.dotVec3(l,r)-n,h=d.dotVec3(r,t);if(Math.abs(h)>.005){var c=-(d.dotVec3(r,a)+A)/h;return d.mulVec3Scalar(t,c,o),d.addVec3(o,a),d.subVec3(o,l,o),!0}return!1}}();const C=function(){const t=d.vec3(),i=d.mat4();return function(){e.sectionPlane&&(d.quaternionToMat4(A.quaternion,i),d.transformVec3(i,[0,0,1],t),e._setSectionPlaneDir(t))}}();var M,E=!1;this._onCameraControlHover=this._viewer.cameraControl.on("hoverEnter",(e=>{if(!this._visible)return;if(E)return;var A;t=!1,M&&(M.visible=!1);switch(e.entity.id){case this._displayMeshes.xAxisArrowHandle.id:case this._displayMeshes.xAxisHandle.id:A=this._affordanceMeshes.xAxisArrow,h=s;break;case this._displayMeshes.yAxisArrowHandle.id:case this._displayMeshes.yShaftHandle.id:A=this._affordanceMeshes.yAxisArrow,h=r;break;case this._displayMeshes.zAxisArrowHandle.id:case this._displayMeshes.zAxisHandle.id:A=this._affordanceMeshes.zAxisArrow,h=o;break;case this._displayMeshes.xCurveHandle.id:A=this._affordanceMeshes.xHoop,h=n;break;case this._displayMeshes.yCurveHandle.id:A=this._affordanceMeshes.yHoop,h=a;break;case this._displayMeshes.zCurveHandle.id:A=this._affordanceMeshes.zHoop,h=l;break;default:return void(h=i)}A&&(A.visible=!0),M=A,t=!0})),this._onCameraControlHoverLeave=this._viewer.cameraControl.on("hoverOutEntity",(e=>{this._visible&&(M&&(M.visible=!1),M=null,h=i)})),f.addEventListener("mousedown",this._canvasMouseDownListener=e=>{if(e.preventDefault(),this._visible&&t&&(this._viewer.cameraControl.pointerEnabled=!1,1===e.which)){E=!0;var i=b(e);c=h,u[0]=i[0],u[1]=i[1]}}),f.addEventListener("mousemove",this._canvasMouseMoveListener=e=>{if(!this._visible)return;if(!E)return;var t=b(e);const i=t[0],A=t[1];switch(c){case s:y(p,u,t);break;case r:y(g,u,t);break;case o:y(m,u,t);break;case n:P(p,u,t);break;case a:P(g,u,t);break;case l:P(m,u,t)}u[0]=i,u[1]=A}),f.addEventListener("mouseup",this._canvasMouseUpListener=e=>{this._visible&&(this._viewer.cameraControl.pointerEnabled=!0,E&&(e.which,E=!1,t=!1))}),f.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,i=t.canvas.canvas,s=e.camera,r=e.cameraControl;t.off(this._onSceneTick),i.removeEventListener("mousedown",this._canvasMouseDownListener),i.removeEventListener("mousemove",this._canvasMouseMoveListener),i.removeEventListener("mouseup",this._canvasMouseUpListener),i.removeEventListener("wheel",this._canvasWheelListener),s.off(this._onCameraViewMatrix),s.off(this._onCameraProjMatrix),r.off(this._onCameraControlHover),r.off(this._onCameraControlHoverLeave)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class pb{constructor(e,t,i){this.id=i.id,this._sectionPlane=i,this._mesh=new hs(t,{id:i.id,geometry:new St(t,Tt({xSize:.5,ySize:.5,zSize:.001})),material:new kt(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 Nt(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Nt(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=d.vec3([0,0,0]),t=d.vec3(),i=d.vec3([0,0,1]),s=d.vec4(4),r=d.vec3(),o=()=>{const o=this._sectionPlane.scene.center,n=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];d.subVec3(o,this._sectionPlane.pos,e);const a=-d.dotVec3(n,e);d.normalizeVec3(n),d.mulVec3Scalar(n,a,t);const l=d.vec3PairToQuaternion(i,this._sectionPlane.dir,s);r[0]=.1*t[0],r[1]=.1*t[1],r[2]=.1*t[2],this._mesh.quaternion=l,this._mesh.position=r};this._onSectionPlanePos=this._sectionPlane.on("pos",o),this._onSectionPlaneDir=this._sectionPlane.on("dir",o)}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 gb{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 qt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new vt(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new vt(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new vt(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=d.rotationMat4c(-90*d.DEGTORAD,1,0,0),i=d.vec3(),s=d.vec3(),r=d.vec3();this._synchCamera=()=>{const o=this._viewer.camera.eye,n=this._viewer.camera.look,a=this._viewer.camera.up;d.mulVec3Scalar(d.normalizeVec3(d.subVec3(o,n,i)),7),this._zUp?(d.transformVec3(t,i,s),d.transformVec3(t,a,r),e.look=[0,0,0],e.eye=d.transformVec3(t,i,s),e.up=d.transformPoint3(t,a,r)):(e.look=[0,0,0],e.eye=i,e.up=a)}}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 i=null;this._onInputMouseMove=this._scene.input.on("mousemove",(e=>{const t=this._scene.pick({canvasPos:e});if(t){if(!i||t.entity.id!==i.id){if(i){this._planes[i.id]&&this._onHoverLeavePlane(i.id)}i=t.entity;this._planes[i.id]&&this._onHoverEnterPlane(i.id)}}else i&&(this._onHoverLeavePlane(i.id),i=null)})),this._scene.canvas.canvas.addEventListener("mouseup",this._onCanvasMouseUp=()=>{if(i){this._planes[i.id]&&this._onClickedPlane(i.id)}else this._onClickedNothing()}),this._scene.canvas.canvas.addEventListener("mouseout",this._onCanvasMouseOut=()=>{i&&(this._onHoverLeavePlane(i.id),i=null)}),this.setVisible(t.overviewVisible)}addSectionPlane(e){this._planes[e.id]=new pb(this,this._scene,e)}setPlaneHighlighted(e,t){const i=this._planes[e];i&&i.setHighlighted(t)}setPlaneSelected(e,t){const i=this._planes[e];i&&i.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 mb=d.AABB3(),fb=d.vec3();class _b extends Q{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 gb(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;mb.set(this.viewer.scene.aabb),d.getAABB3Center(mb,fb),mb[0]+=t[0]-fb[0],mb[1]+=t[1]-fb[1],mb[2]+=t[2]-fb[2],mb[3]+=t[0]-fb[0],mb[4]+=t[1]-fb[1],mb[5]+=t[2]-fb[2],this.viewer.cameraFlight.flyTo({aabb:mb,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 ps(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 db(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,i=e.length;t0){const i=document.createElement("a");i.href="#",i.id=`switch-${e.nodeId}`,i.textContent="+",i.classList.add("plus"),t&&i.addEventListener("click",t),o.appendChild(i)}const n=document.createElement("input");n.id=`checkbox-${e.nodeId}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",i&&n.addEventListener("change",i),o.appendChild(n);const a=document.createElement("span");return a.textContent=e.title,o.appendChild(a),s&&(a.oncontextmenu=s),r&&(a.onclick=r),o}createDisabledNodeElement(e){const t=document.createElement("li"),i=document.createElement("a");i.href="#",i.textContent="!",i.classList.add("warn"),i.classList.add("warning"),t.appendChild(i);const s=document.createElement("span");return s.textContent=e,t.appendChild(s),t}addChildren(e,t){const i=document.createElement("ul");t.forEach((e=>{i.appendChild(e)})),e.parentElement.appendChild(i)}expand(e,t,i){e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",t),e.addEventListener("click",i)}collapse(e,t,i){if(!e)return;const s=e.parentElement;if(!s)return;const r=s.querySelector("ul");r&&(s.removeChild(r),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",i),e.addEventListener("click",t))}isExpanded(e){return void 0!==e.parentElement.getElementsByTagName("li")[0]}getId(e){return e.parentElement.id}getIdFromCheckbox(e){return e.id.replace("checkbox-","")}getSwitchElement(e){return document.getElementById(`switch-${e}`)}isChecked(e){return e.checked}setCheckbox(e,t){const i=document.getElementById(`checkbox-${e}`);i&&t!==i.checked&&(i.checked=t)}setXRayed(e,t){const i=document.getElementById(e);i&&(t?i.classList.add("xrayed-node"):i.classList.remove("xrayed-node"))}setHighlighted(e,t){const i=document.getElementById(e);i&&(t?(i.scrollIntoView({block:"center"}),i.classList.add("highlighted-node")):i.classList.remove("highlighted-node"))}}const bb=[];class xb extends Q{constructor(e,t={}){super("TreeViewPlugin",e),this.errors=[],this.valid=!0;const i=t.containerElement||document.getElementById(t.containerElementId);if(i instanceof HTMLElement){for(let e=0;;e++)if(!bb[e]){bb[e]=this,this._index=e,this._id=`tree-${e}`;break}if(this._containerElement=i,this._metaModels={},this._autoAddModels=!1!==t.autoAddModels,this._autoExpandDepth=t.autoExpandDepth||0,this._sortNodes=!1!==t.sortNodes,this._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootNames={},this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._renderService=t.renderService||new vb,!this._renderService)throw new Error("TreeViewPlugin: no render service set");if(this._containerElement.oncontextmenu=e=>{e.preventDefault()},this._onObjectVisibility=this._viewer.scene.on("objectVisibility",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;const s=e.visible;if(!(s!==i.checked))return;this._muteTreeEvents=!0,i.checked=s,s?i.numVisibleEntities++:i.numVisibleEntities--,this._renderService.setCheckbox(i.nodeId,s);let r=i.parent;for(;r;)r.checked=s,s?r.numVisibleEntities++:r.numVisibleEntities--,this._renderService.setCheckbox(r.nodeId,r.numVisibleEntities>0),r=r.parent;this._muteTreeEvents=!1})),this._onObjectXrayed=this._viewer.scene.on("objectXRayed",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;this._muteTreeEvents=!0;const s=e.xrayed;s!==i.xrayed&&(i.xrayed=s,this._renderService.setXRayed(i.nodeId,s),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,i=this._renderService.isChecked(t),s=this._renderService.getIdFromCheckbox(t),r=this._nodeNodes[s],o=this._viewer.scene.objects;let n=0;this._withNodeTree(r,(e=>{const t=e.objectId,s=o[t],r=0===e.children.length;e.numVisibleEntities=i?e.numEntities:0,r&&i!==e.checked&&n++,e.checked=i,this._renderService.setCheckbox(e.nodeId,i),s&&(s.visible=i)}));let a=r.parent;for(;a;)a.checked=i,i?a.numVisibleEntities+=n:a.numVisibleEntities-=n,this._renderService.setCheckbox(a.nodeId,a.numVisibleEntities>0),a=a.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,i=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 i=this.viewer.scene.models[e];if(!i)throw"Model not found: "+e;const s=this.viewer.metaScene.metaModels[e];s?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=s,t&&t.rootName&&(this._rootNames[e]=t.rootName),i.on("destroyed",(()=>{this.removeModel(i.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(this._rootNames[e]&&delete this._rootNames[e],delete this._metaModels[e],this._createNodes())}showNode(e){this.unShowNode();const t=this._objectNodes[e];if(!t)return;const i=t.nodeId,s=this._renderService.getSwitchElement(i);if(s)return this._expandSwitchElement(s),s.scrollIntoView(),!0;const r=[];r.unshift(t);let o=t.parent;for(;o;)r.unshift(o),o=o.parent;for(let e=0,t=r.length;e{if(s===e)return;const r=this._renderService.getSwitchElement(i.nodeId);if(r){this._expandSwitchElement(r);const e=i.children;for(var o=0,n=e.length;o0;return this.valid}_validateMetaModelForStoreysHierarchy(e=0,t,i){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=this._renderService.createRootNode();this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let i in t){const s=t[i],r=s.type,o=s.name,n=o&&""!==o&&"Undefined"!==o&&"Default"!==o?o:r,a=this._renderService.createDisabledNodeElement(n);e.appendChild(a)}}_findEmptyNodes(){const e=this._viewer.metaScene.rootMetaObjects;for(let t in e)this._findEmptyNodes2(e[t])}_findEmptyNodes2(e,t=0){const i=this.viewer.scene,s=e.children,r=e.id,o=i.objects[r];if(e._countEntities=0,o&&e._countEntities++,s)for(let t=0,i=s.length;t{e.aabb&&r.aabb||(e.aabb||(e.aabb=t.getAABB(s.getObjectIDsInSubtree(e.objectId))),r.aabb||(r.aabb=t.getAABB(s.getObjectIDsInSubtree(r.objectId))));let o=0;return o=i.xUp?0:i.yUp?1:2,e.aabb[o]>r.aabb[o]?-1:e.aabb[o]s?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,i=this._viewer.scene.objects;for(let s=0,r=e.length;sthis._createNodeElement(e))),t=this._renderService.createRootNode();e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){return this._renderService.createNodeElement(e,this._switchExpandHandler,this._checkboxChangeHandler,(t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}),(t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}))}_expandSwitchElement(e){if(this._renderService.isExpanded(e))return;const t=this._renderService.getId(e),i=this._nodeNodes[t].children.map((e=>this._createNodeElement(e)));this._renderService.addChildren(e,i),this._renderService.expand(e,this._switchExpandHandler,this._switchCollapseHandler)}_collapseNode(e){const t=this._renderService.getSwitchElement(e);this._collapseSwitchElement(t)}_collapseSwitchElement(e){this._renderService.collapse(e,this._switchExpandHandler,this._switchCollapseHandler)}}class wb{constructor(){}getManifest(e,t,i){_.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getMetaModel(e,t,i){_.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getXKT(e,t,i){var s=()=>{};t=t||s,i=i||s;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),i=new Uint8Array(e);for(var n=0;n=0;)e[t]=0}const i=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]),s=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]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),o=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),n=new Array(576);t(n);const a=new Array(60);t(a);const l=new Array(512);t(l);const A=new Array(256);t(A);const h=new Array(29);t(h);const c=new Array(30);function u(e,t,i,s,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=s,this.max_length=r,this.has_stree=e&&e.length}let d,p,g;function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(c);const f=e=>e<256?l[e]:l[256+(e>>>7)],_=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<{v(e,i[2*t],i[2*t+1])},x=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},w=(e,t,i)=>{const s=new Array(16);let r,o,n=0;for(r=1;r<=15;r++)n=n+i[r-1]<<1,s[r]=n;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=x(s[t]++,t))}},y=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},P=e=>{e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},B=(e,t,i,s)=>{const r=2*t,o=2*i;return e[r]{const s=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r{let o,n,a,l,u=0;if(0!==e.sym_next)do{o=255&e.pending_buf[e.sym_buf+u++],o+=(255&e.pending_buf[e.sym_buf+u++])<<8,n=e.pending_buf[e.sym_buf+u++],0===o?b(e,n,t):(a=A[n],b(e,a+256+1,t),l=i[a],0!==l&&(n-=h[a],v(e,n,l)),o--,a=f(o),b(e,a,r),l=s[a],0!==l&&(o-=c[a],v(e,o,l)))}while(u{const i=t.dyn_tree,s=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let n,a,l,A=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)C(e,i,n);l=o;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],C(e,i,1),a=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=a,i[2*l]=i[2*n]+i[2*a],e.depth[l]=(e.depth[n]>=e.depth[a]?e.depth[n]:e.depth[a])+1,i[2*n+1]=i[2*a+1]=l,e.heap[1]=l++,C(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,s=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let A,h,c,u,d,p,g=0;for(u=0;u<=15;u++)e.bl_count[u]=0;for(i[2*e.heap[e.heap_max]+1]=0,A=e.heap_max+1;A<573;A++)h=e.heap[A],u=i[2*i[2*h+1]+1]+1,u>l&&(u=l,g++),i[2*h+1]=u,h>s||(e.bl_count[u]++,d=0,h>=a&&(d=n[h-a]),p=i[2*h],e.opt_len+=p*(u+d),o&&(e.static_len+=p*(r[2*h+1]+d)));if(0!==g){do{for(u=l-1;0===e.bl_count[u];)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(u=l;0!==u;u--)for(h=e.bl_count[u];0!==h;)c=e.heap[--A],c>s||(i[2*c+1]!==u&&(e.opt_len+=(u-i[2*c+1])*i[2*c],i[2*c+1]=u),h--)}})(e,t),w(i,A,e.bl_count)},F=(e,t,i)=>{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),t[2*(i+1)+1]=65535,s=0;s<=i;s++)r=n,n=t[2*(s+1)+1],++a{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),s=0;s<=i;s++)if(r=n,n=t[2*(s+1)+1],!(++a{v(e,0+(s?1:0),3),P(e),_(e,i),_(e,~i),i&&e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i};var T={_tr_init:e=>{D||((()=>{let e,t,o,m,f;const _=new Array(16);for(o=0,m=0;m<28;m++)for(h[m]=o,e=0;e<1<>=7;m<30;m++)for(c[m]=f<<7,e=0;e<1<{let r,l,A=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&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)),E(e,e.l_desc),E(e,e.d_desc),A=(e=>{let t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),E(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=r&&(r=l)):r=l=i+5,i+4<=r&&-1!==t?S(e,t,i,s):4===e.strategy||l===r?(v(e,2+(s?1:0),3),M(e,n,a)):(v(e,4+(s?1:0),3),((e,t,i,s)=>{let r;for(v(e,t-257,5),v(e,i-1,5),v(e,s-4,4),r=0;r(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++]=i,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(A[i]+256+1)]++,e.dyn_dtree[2*f(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),b(e,256,n),(e=>{16===e.bi_valid?(_(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)}},R=(e,t,i,s)=>{let r=65535&e|0,o=e>>>16&65535|0,n=0;for(;0!==i;){n=i>2e3?2e3:i,i-=n;do{r=r+t[s++]|0,o=o+r|0}while(--n);r%=65521,o%=65521}return r|o<<16|0};const L=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var s=0;s<8;s++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var U=(e,t,i,s)=>{const r=L,o=s+i;e^=-1;for(let i=s;i>>8^r[255&(e^t[i])];return-1^e},k={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"},O={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:N,_tr_stored_block:Q,_tr_flush_block:V,_tr_tally:j,_tr_align:H}=T,{Z_NO_FLUSH:z,Z_PARTIAL_FLUSH:G,Z_FULL_FLUSH:W,Z_FINISH:K,Z_BLOCK:X,Z_OK:Y,Z_STREAM_END:q,Z_STREAM_ERROR:Z,Z_DATA_ERROR:J,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:ie,Z_RLE:se,Z_FIXED:re,Z_DEFAULT_STRATEGY:oe,Z_UNKNOWN:ne,Z_DEFLATED:ae}=O,le=258,Ae=262,he=42,ce=113,ue=666,de=(e,t)=>(e.msg=k[t],t),pe=e=>2*e-(e>4?9:0),ge=e=>{let t=e.length;for(;--t>=0;)e[t]=0},me=e=>{let t,i,s,r=e.w_size;t=e.hash_size,s=t;do{i=e.head[--s],e.head[s]=i>=r?i-r:0}while(--t);t=r,s=t;do{i=e.prev[--s],e.prev[s]=i>=r?i-r:0}while(--t)};let fe=(e,t,i)=>(t<{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},ve=(e,t)=>{V(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,_e(e.strm)},be=(e,t)=>{e.pending_buf[e.pending++]=t},xe=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},we=(e,t,i,s)=>{let r=e.avail_in;return r>s&&(r=s),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),1===e.state.wrap?e.adler=R(e.adler,t,r,i):2===e.state.wrap&&(e.adler=U(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},ye=(e,t)=>{let i,s,r=e.max_chain_length,o=e.strstart,n=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-Ae?e.strstart-(e.w_size-Ae):0,A=e.window,h=e.w_mask,c=e.prev,u=e.strstart+le;let d=A[o+n-1],p=A[o+n];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(i=t,A[i+n]===p&&A[i+n-1]===d&&A[i]===A[o]&&A[++i]===A[o+1]){o+=2,i++;do{}while(A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&on){if(e.match_start=t,n=s,s>=a)break;d=A[o+n-1],p=A[o+n]}}}while((t=c[t&h])>l&&0!=--r);return n<=e.lookahead?n:e.lookahead},Pe=e=>{const t=e.w_size;let i,s,r;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ae)&&(e.window.set(e.window.subarray(t,t+t-s),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),me(e),s+=t),0===e.strm.avail_in)break;if(i=we(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=i,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=fe(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=fe(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let i,s,r,o=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n=0,a=e.strm.avail_in;do{if(i=65535,r=e.bi_valid+42>>3,e.strm.avail_outs+e.strm.avail_in&&(i=s+e.strm.avail_in),i>r&&(i=r),i>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,_e(e.strm),s&&(s>i&&(s=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+s),e.strm.next_out),e.strm.next_out+=s,e.strm.avail_out-=s,e.strm.total_out+=s,e.block_start+=s,i-=s),i&&(we(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(0===n);return a-=e.strm.avail_in,a&&(a>=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<=a&&(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-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&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++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(we(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,o=r>e.w_size?e.w_size:r,s=e.strstart-e.block_start,(s>=o||(s||t===K)&&t!==z&&0===e.strm.avail_in&&s<=r)&&(i=s>r?r:s,n=t===K&&0===e.strm.avail_in&&i===s?1:0,Q(e,e.block_start,i,n),e.block_start+=i,_e(e.strm)),n?3:1)},Ce=(e,t)=>{let i,s;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-Ae&&(e.match_length=ye(e,i)),e.match_length>=3)if(s=j(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=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=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=fe(e,e.ins_h,e.window[e.strstart+1]);else s=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(s&&(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},Me=(e,t)=>{let i,s,r;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=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!==i&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,s=j(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=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++,s&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(s=j(e,0,e.window[e.strstart-1]),s&&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&&(s=j(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 Ee(e,t,i,s,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=s,this.func=r}const Fe=[new Ee(0,0,0,0,Be),new Ee(4,4,8,4,Ce),new Ee(4,5,16,8,Ce),new Ee(4,6,32,32,Ce),new Ee(4,4,16,16,Me),new Ee(8,16,32,32,Me),new Ee(8,16,128,128,Me),new Ee(8,32,128,256,Me),new Ee(32,128,258,1024,Me),new Ee(32,258,258,4096,Me)];function Ie(){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=ae,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),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(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),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ge(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 De=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==he&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==ce&&t.status!==ue?1:0},Se=e=>{if(De(e))return de(e,Z);e.total_in=e.total_out=0,e.data_type=ne;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?he:ce,e.adler=2===t.wrap?0:1,t.last_flush=-2,N(t),Y},Te=e=>{const t=Se(e);var i;return t===Y&&((i=e.state).window_size=2*i.w_size,ge(i.head),i.max_lazy_match=Fe[i.level].max_lazy,i.good_match=Fe[i.level].good_length,i.nice_match=Fe[i.level].nice_length,i.max_chain_length=Fe[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},Re=(e,t,i,s,r,o)=>{if(!e)return Z;let n=1;if(t===ee&&(t=6),s<0?(n=0,s=-s):s>15&&(n=2,s-=16),r<1||r>9||i!==ae||s<8||s>15||t<0||t>9||o<0||o>re||8===s&&1!==n)return de(e,Z);8===s&&(s=9);const a=new Ie;return e.state=a,a.strm=e,a.status=he,a.wrap=n,a.gzhead=null,a.w_bits=s,a.w_size=1<De(e)||2!==e.state.wrap?Z:(e.state.gzhead=t,Y),ke=(e,t)=>{if(De(e)||t>X||t<0)return e?de(e,Z):Z;const i=e.state;if(!e.output||0!==e.avail_in&&!e.input||i.status===ue&&t!==K)return de(e,0===e.avail_out?$:Z);const s=i.last_flush;if(i.last_flush=t,0!==i.pending){if(_e(e),0===e.avail_out)return i.last_flush=-1,Y}else if(0===e.avail_in&&pe(t)<=pe(s)&&t!==K)return de(e,$);if(i.status===ue&&0!==e.avail_in)return de(e,$);if(i.status===he&&0===i.wrap&&(i.status=ce),i.status===he){let t=ae+(i.w_bits-8<<4)<<8,s=-1;if(s=i.strategy>=ie||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=s<<6,0!==i.strstart&&(t|=32),t+=31-t%31,xe(i,t),0!==i.strstart&&(xe(i,e.adler>>>16),xe(i,65535&e.adler)),e.adler=1,i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(57===i.status)if(e.adler=0,be(i,31),be(i,139),be(i,8),i.gzhead)be(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),be(i,255&i.gzhead.time),be(i,i.gzhead.time>>8&255),be(i,i.gzhead.time>>16&255),be(i,i.gzhead.time>>24&255),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(be(i,255&i.gzhead.extra.length),be(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=U(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69;else if(be(i,0),be(i,0),be(i,0),be(i,0),be(i,0),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,3),i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y;if(69===i.status){if(i.gzhead.extra){let t=i.pending,s=(65535&i.gzhead.extra.length)-i.gzindex;for(;i.pending+s>i.pending_buf_size;){let r=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+r),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex+=r,_e(e),0!==i.pending)return i.last_flush=-1,Y;t=0,s-=r}let r=new Uint8Array(i.gzhead.extra);i.pending_buf.set(r.subarray(i.gzindex,i.gzindex+s),i.pending),i.pending+=s,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex=0}i.status=73}if(73===i.status){if(i.gzhead.name){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex=0}i.status=91}if(91===i.status){if(i.gzhead.comment){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s))}i.status=103}if(103===i.status){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(_e(e),0!==i.pending))return i.last_flush=-1,Y;be(i,255&e.adler),be(i,e.adler>>8&255),e.adler=0}if(i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(0!==e.avail_in||0!==i.lookahead||t!==z&&i.status!==ue){let s=0===i.level?Be(i,t):i.strategy===ie?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Pe(e),0===e.lookahead)){if(t===z)return 1;break}if(e.match_length=0,i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(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})(i,t):i.strategy===se?((e,t)=>{let i,s,r,o;const n=e.window;for(;;){if(e.lookahead<=le){if(Pe(e),e.lookahead<=le&&t===z)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,s=n[r],s===n[++r]&&s===n[++r]&&s===n[++r])){o=e.strstart+le;do{}while(s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=j(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(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})(i,t):Fe[i.level].func(i,t);if(3!==s&&4!==s||(i.status=ue),1===s||3===s)return 0===e.avail_out&&(i.last_flush=-1),Y;if(2===s&&(t===G?H(i):t!==X&&(Q(i,0,0,!1),t===W&&(ge(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),_e(e),0===e.avail_out))return i.last_flush=-1,Y}return t!==K?Y:i.wrap<=0?q:(2===i.wrap?(be(i,255&e.adler),be(i,e.adler>>8&255),be(i,e.adler>>16&255),be(i,e.adler>>24&255),be(i,255&e.total_in),be(i,e.total_in>>8&255),be(i,e.total_in>>16&255),be(i,e.total_in>>24&255)):(xe(i,e.adler>>>16),xe(i,65535&e.adler)),_e(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?Y:q)},Oe=e=>{if(De(e))return Z;const t=e.state.status;return e.state=null,t===ce?de(e,J):Y},Ne=(e,t)=>{let i=t.length;if(De(e))return Z;const s=e.state,r=s.wrap;if(2===r||1===r&&s.status!==he||s.lookahead)return Z;if(1===r&&(e.adler=R(e.adler,t,i,0)),s.wrap=0,i>=s.w_size){0===r&&(ge(s.head),s.strstart=0,s.block_start=0,s.insert=0);let e=new Uint8Array(s.w_size);e.set(t.subarray(i-s.w_size,i),0),t=e,i=s.w_size}const o=e.avail_in,n=e.next_in,a=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Pe(s);s.lookahead>=3;){let e=s.strstart,t=s.lookahead-2;do{s.ins_h=fe(s,s.ins_h,s.window[e+3-1]),s.prev[e&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=e,e++}while(--t);s.strstart=e,s.lookahead=2,Pe(s)}return s.strstart+=s.lookahead,s.block_start=s.strstart,s.insert=s.lookahead,s.lookahead=0,s.match_length=s.prev_length=2,s.match_available=0,e.next_in=n,e.input=a,e.avail_in=o,s.wrap=r,Y};const Qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Ve=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)Qe(i,t)&&(e[t]=i[t])}}return e},je=e=>{let t=0;for(let i=0,s=e.length;i=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Ge=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,s,r,o,n=e.length,a=0;for(r=0;r>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},We=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let s,r;const o=new Array(2*i);for(r=0,s=0;s4)o[r++]=65533,s+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&s1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&He)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let s=0;s{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+ze[e[i]]>t?i:t},Xe=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 Ye=Object.prototype.toString,{Z_NO_FLUSH:qe,Z_SYNC_FLUSH:Ze,Z_FULL_FLUSH:Je,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:it,Z_DEFAULT_STRATEGY:st,Z_DEFLATED:rt}=O;function ot(e){this.options=Ve({level:it,method:rt,chunkSize:16384,windowBits:15,memLevel:8,strategy:st},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 Xe,this.strm.avail_out=0;let i=Le(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==et)throw new Error(k[i]);if(t.header&&Ue(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Ge(t.dictionary):"[object ArrayBuffer]"===Ye.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=Ne(this.strm,e),i!==et)throw new Error(k[i]);this._dict_set=!0}}function nt(e,t){const i=new ot(t);if(i.push(e,!0),i.err)throw i.msg||k[i.err];return i.result}ot.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?$e:qe,"string"==typeof e?i.input=Ge(e):"[object ArrayBuffer]"===Ye.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),(o===Ze||o===Je)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=ke(i,o),r===tt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Oe(this.strm),this.onEnd(r),this.ended=!0,r===et;if(0!==i.avail_out){if(o>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},ot.prototype.onData=function(e){this.chunks.push(e)},ot.prototype.onEnd=function(e){e===et&&(this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var at={Deflate:ot,deflate:nt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,nt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,nt(e,t)},constants:O};const lt=16209;var At=function(e,t){let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P,B;const C=e.state;i=e.next_in,P=e.input,s=i+(e.avail_in-5),r=e.next_out,B=e.output,o=r-(t-e.avail_out),n=r+(e.avail_out-257),a=C.dmax,l=C.wsize,A=C.whave,h=C.wnext,c=C.window,u=C.hold,d=C.bits,p=C.lencode,g=C.distcode,m=(1<>>24,u>>>=v,d-=v,v=_>>>16&255,0===v)B[r++]=65535&_;else{if(!(16&v)){if(0==(64&v)){_=p[(65535&_)+(u&(1<>>=v,d-=v),d<15&&(u+=P[i++]<>>24,u>>>=v,d-=v,v=_>>>16&255,!(16&v)){if(0==(64&v)){_=g[(65535&_)+(u&(1<a){e.msg="invalid distance too far back",C.mode=lt;break e}if(u>>>=v,d-=v,v=r-o,x>v){if(v=x-v,v>A&&C.sane){e.msg="invalid distance too far back",C.mode=lt;break e}if(w=0,y=c,0===h){if(w+=l-v,v2;)B[r++]=y[w++],B[r++]=y[w++],B[r++]=y[w++],b-=3;b&&(B[r++]=y[w++],b>1&&(B[r++]=y[w++]))}else{w=r-x;do{B[r++]=B[w++],B[r++]=B[w++],B[r++]=B[w++],b-=3}while(b>2);b&&(B[r++]=B[w++],b>1&&(B[r++]=B[w++]))}break}}break}}while(i>3,i-=b,d-=b<<3,u&=(1<{const l=a.bits;let A,h,c,u,d,p,g=0,m=0,f=0,_=0,v=0,b=0,x=0,w=0,y=0,P=0,B=null;const C=new Uint16Array(16),M=new Uint16Array(16);let E,F,I,D=null;for(g=0;g<=15;g++)C[g]=0;for(m=0;m=1&&0===C[_];_--);if(v>_&&(v=_),0===_)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(f=1;f<_&&0===C[f];f++);for(v0&&(0===e||1!==_))return-1;for(M[1]=0,g=1;g<15;g++)M[g+1]=M[g]+C[g];for(m=0;m852||2===e&&y>592)return 1;for(;;){E=g-x,n[m]+1=p?(F=D[n[m]-p],I=B[n[m]-p]):(F=96,I=0),A=1<>x)+h]=E<<24|F<<16|I|0}while(0!==h);for(A=1<>=1;if(0!==A?(P&=A-1,P+=A):P=0,m++,0==--C[g]){if(g===_)break;g=t[i+n[m]]}if(g>v&&(P&u)!==c){for(0===x&&(x=v),d+=f,b=g-x,w=1<852||2===e&&y>592)return 1;c=P&u,r[c]=v<<24|b<<16|d-o|0}}return 0!==P&&(r[d+P]=g-x<<24|64<<16|0),a.bits=v,0};const{Z_FINISH:gt,Z_BLOCK:mt,Z_TREES:ft,Z_OK:_t,Z_STREAM_END:vt,Z_NEED_DICT:bt,Z_STREAM_ERROR:xt,Z_DATA_ERROR:wt,Z_MEM_ERROR:yt,Z_BUF_ERROR:Pt,Z_DEFLATED:Bt}=O,Ct=16180,Mt=16190,Et=16191,Ft=16192,It=16194,Dt=16199,St=16200,Tt=16206,Rt=16209,Lt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Ut(){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 kt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ot=e=>{if(kt(e))return xt;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=Ct,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,_t},Nt=e=>{if(kt(e))return xt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ot(e)},Qt=(e,t)=>{let i;if(kt(e))return xt;const s=e.state;return t<0?(i=0,t=-t):(i=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?xt:(null!==s.window&&s.wbits!==t&&(s.window=null),s.wrap=i,s.wbits=t,Nt(e))},Vt=(e,t)=>{if(!e)return xt;const i=new Ut;e.state=i,i.strm=e,i.window=null,i.mode=Ct;const s=Qt(e,t);return s!==_t&&(e.state=null),s};let jt,Ht,zt=!0;const Gt=e=>{if(zt){jt=new Int32Array(512),Ht=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(pt(1,e.lens,0,288,jt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pt(2,e.lens,0,32,Ht,0,e.work,{bits:5}),zt=!1}e.lencode=jt,e.lenbits=9,e.distcode=Ht,e.distbits=5},Wt=(e,t,i,s)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(i-o.wsize,i),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>s&&(r=s),o.window.set(t.subarray(i-s,i-s+r),o.wnext),(s-=r)?(o.window.set(t.subarray(i-s,i),0),o.wnext=s,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P=0;const B=new Uint8Array(4);let C,M;const E=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(kt(e)||!e.output||!e.input&&0!==e.avail_in)return xt;i=e.state,i.mode===Et&&(i.mode=Ft),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,c=a,u=l,y=_t;e:for(;;)switch(i.mode){case Ct:if(0===i.wrap){i.mode=Ft;break}for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0),A=0,h=0,i.mode=16181;break}if(i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&A)<<8)+(A>>8))%31){e.msg="incorrect header check",i.mode=Rt;break}if((15&A)!==Bt){e.msg="unknown compression method",i.mode=Rt;break}if(A>>>=4,h-=4,w=8+(15&A),0===i.wbits&&(i.wbits=w),w>15||w>i.wbits){e.msg="invalid window size",i.mode=Rt;break}i.dmax=1<>8&1),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16182;case 16182:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>8&255,B[2]=A>>>16&255,B[3]=A>>>24&255,i.check=U(i.check,B,4,0)),A=0,h=0,i.mode=16183;case 16183:for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>8),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16184;case 16184:if(1024&i.flags){for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0}else i.head&&(i.head.extra=null);i.mode=16185;case 16185:if(1024&i.flags&&(d=i.length,d>a&&(d=a),d&&(i.head&&(w=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(s.subarray(o,o+d),w)),512&i.flags&&4&i.wrap&&(i.check=U(i.check,s,d,o)),a-=d,o+=d,i.length-=d),i.length))break e;i.length=0,i.mode=16186;case 16186:if(2048&i.flags){if(0===a)break e;d=0;do{w=s[o+d++],i.head&&w&&i.length<65536&&(i.head.name+=String.fromCharCode(w))}while(w&&d>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Et;break;case 16189:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>=7&h,h-=7&h,i.mode=Tt;break}for(;h<3;){if(0===a)break e;a--,A+=s[o++]<>>=1,h-=1,3&A){case 0:i.mode=16193;break;case 1:if(Gt(i),i.mode=Dt,t===ft){A>>>=2,h-=2;break e}break;case 2:i.mode=16196;break;case 3:e.msg="invalid block type",i.mode=Rt}A>>>=2,h-=2;break;case 16193:for(A>>>=7&h,h-=7&h;h<32;){if(0===a)break e;a--,A+=s[o++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=Rt;break}if(i.length=65535&A,A=0,h=0,i.mode=It,t===ft)break e;case It:i.mode=16195;case 16195:if(d=i.length,d){if(d>a&&(d=a),d>l&&(d=l),0===d)break e;r.set(s.subarray(o,o+d),n),a-=d,o+=d,l-=d,n+=d,i.length-=d;break}i.mode=Et;break;case 16196:for(;h<14;){if(0===a)break e;a--,A+=s[o++]<>>=5,h-=5,i.ndist=1+(31&A),A>>>=5,h-=5,i.ncode=4+(15&A),A>>>=4,h-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=Rt;break}i.have=0,i.mode=16197;case 16197:for(;i.have>>=3,h-=3}for(;i.have<19;)i.lens[E[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},y=pt(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid code lengths set",i.mode=Rt;break}i.have=0,i.mode=16198;case 16198:for(;i.have>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=m,h-=m,i.lens[i.have++]=_;else{if(16===_){for(M=m+2;h>>=m,h-=m,0===i.have){e.msg="invalid bit length repeat",i.mode=Rt;break}w=i.lens[i.have-1],d=3+(3&A),A>>>=2,h-=2}else if(17===_){for(M=m+3;h>>=m,h-=m,w=0,d=3+(7&A),A>>>=3,h-=3}else{for(M=m+7;h>>=m,h-=m,w=0,d=11+(127&A),A>>>=7,h-=7}if(i.have+d>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=Rt;break}for(;d--;)i.lens[i.have++]=w}}if(i.mode===Rt)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=Rt;break}if(i.lenbits=9,C={bits:i.lenbits},y=pt(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid literal/lengths set",i.mode=Rt;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},y=pt(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,y){e.msg="invalid distances set",i.mode=Rt;break}if(i.mode=Dt,t===ft)break e;case Dt:i.mode=St;case St:if(a>=6&&l>=258){e.next_out=n,e.avail_out=l,e.next_in=o,e.avail_in=a,i.hold=A,i.bits=h,At(e,u),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,i.mode===Et&&(i.back=-1);break}for(i.back=0;P=i.lencode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,i.length=_,0===f){i.mode=16205;break}if(32&f){i.back=-1,i.mode=Et;break}if(64&f){e.msg="invalid literal/length code",i.mode=Rt;break}i.extra=15&f,i.mode=16201;case 16201:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=16202;case 16202:for(;P=i.distcode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,64&f){e.msg="invalid distance code",i.mode=Rt;break}i.offset=_,i.extra=15&f,i.mode=16203;case 16203:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=Rt;break}i.mode=16204;case 16204:if(0===l)break e;if(d=u-l,i.offset>d){if(d=i.offset-d,d>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=Rt;break}d>i.wnext?(d-=i.wnext,p=i.wsize-d):p=i.wnext-d,d>i.length&&(d=i.length),g=i.window}else g=r,p=n-i.offset,d=i.length;d>l&&(d=l),l-=d,i.length-=d;do{r[n++]=g[p++]}while(--d);0===i.length&&(i.mode=St);break;case 16205:if(0===l)break e;r[n++]=i.length,l--,i.mode=St;break;case Tt:if(i.wrap){for(;h<32;){if(0===a)break e;a--,A|=s[o++]<{if(kt(e))return xt;let t=e.state;return t.window&&(t.window=null),e.state=null,_t},Zt=(e,t)=>{if(kt(e))return xt;const i=e.state;return 0==(2&i.wrap)?xt:(i.head=t,t.done=!1,_t)},Jt=(e,t)=>{const i=t.length;let s,r,o;return kt(e)?xt:(s=e.state,0!==s.wrap&&s.mode!==Mt?xt:s.mode===Mt&&(r=1,r=R(r,t,i,0),r!==s.check)?wt:(o=Wt(e,t,i,i),o?(s.mode=16210,yt):(s.havedict=1,_t)))},$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 ei=Object.prototype.toString,{Z_NO_FLUSH:ti,Z_FINISH:ii,Z_OK:si,Z_STREAM_END:ri,Z_NEED_DICT:oi,Z_STREAM_ERROR:ni,Z_DATA_ERROR:ai,Z_MEM_ERROR:li}=O;function Ai(e){this.options=Ve({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 Xe,this.strm.avail_out=0;let i=Xt(this.strm,t.windowBits);if(i!==si)throw new Error(k[i]);if(this.header=new $t,Zt(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Ge(t.dictionary):"[object ArrayBuffer]"===ei.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Jt(this.strm,t.dictionary),i!==si)))throw new Error(k[i])}function hi(e,t){const i=new Ai(t);if(i.push(e),i.err)throw i.msg||k[i.err];return i.result}Ai.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize,r=this.options.dictionary;let o,n,a;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ii:ti,"[object ArrayBuffer]"===ei.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),o=Yt(i,n),o===oi&&r&&(o=Jt(i,r),o===si?o=Yt(i,n):o===ai&&(o=oi));i.avail_in>0&&o===ri&&i.state.wrap>0&&0!==e[i.next_in];)Kt(i),o=Yt(i,n);switch(o){case ni:case ai:case oi:case li:return this.onEnd(o),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||o===ri))if("string"===this.options.to){let e=Ke(i.output,i.next_out),t=i.next_out-e,r=We(i.output,e);i.next_out=t,i.avail_out=s-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(o!==si||0!==a){if(o===ri)return o=qt(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Ai.prototype.onData=function(e){this.chunks.push(e)},Ai.prototype.onEnd=function(e){e===si&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ci={Inflate:Ai,inflate:hi,inflateRaw:function(e,t){return(t=t||{}).raw=!0,hi(e,t)},ungzip:hi,constants:O};const{Deflate:ui,deflate:di,deflateRaw:pi,gzip:gi}=at,{Inflate:mi,inflate:fi,inflateRaw:_i,ungzip:vi}=ci;var bi=ui,xi=di,wi=pi,yi=gi,Pi=mi,Bi=fi,Ci=_i,Mi=vi,Ei=O,Fi={Deflate:bi,deflate:xi,deflateRaw:wi,gzip:yi,Inflate:Pi,inflate:Bi,inflateRaw:Ci,ungzip:Mi,constants:Ei};e.Deflate=bi,e.Inflate=Pi,e.constants=Ei,e.default=Fi,e.deflate=xi,e.deflateRaw=wi,e.gzip=yi,e.inflate=Bi,e.inflateRaw=Ci,e.ungzip=Mi,Object.defineProperty(e,"__esModule",{value:!0})}));var yb=Object.freeze({__proto__:null});let Pb=window.pako||yb;Pb.inflate||(Pb=Pb.default);const Bb=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 Cb={version:1,parse:function(e,t,i,s,r,o){const n=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]}}(i),a=function(e){return{positions:new Uint16Array(Pb.inflate(e.positions).buffer),normals:new Int8Array(Pb.inflate(e.normals).buffer),indices:new Uint32Array(Pb.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Pb.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(Pb.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(Pb.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(Pb.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(Pb.inflate(e.meshColors).buffer),entityIDs:Pb.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(Pb.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(Pb.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(Pb.inflate(e.positionsDecodeMatrix).buffer)}}(n);!function(e,t,i,s,r,o){o.getNextId(),s.positionsCompression="precompressed",s.normalsCompression="precompressed";const n=i.positions,a=i.normals,l=i.indices,A=i.edgeIndices,h=i.meshPositions,c=i.meshIndices,u=i.meshEdgesIndices,p=i.meshColors,g=JSON.parse(i.entityIDs),m=i.entityMeshes,f=i.entityIsObjects,v=h.length,b=m.length;for(let r=0;rm[e]m[t]?1:0));for(let e=0;e1||(E[i]=e)}}for(let e=0;e1,o=Rb(f.subarray(4*t,4*t+3)),u=f[4*t+3]/255,v=a.subarray(d[t],i?a.length:d[t+1]),x=l.subarray(d[t],i?l.length:d[t+1]),w=A.subarray(p[t],i?A.length:p[t+1]),P=h.subarray(g[t],i?h.length:g[t+1]),M=c.subarray(m[t],m[t]+16);if(r){const e=`${n}-geometry.${t}`;s.createGeometry({id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M})}else{const e=`${n}-${t}`;b[E[t]];const i={};s.createMesh(_.apply(i,{id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M,color:o,opacity:u}))}}let F=0;for(let e=0;e1){const t={},r=`${n}-instance.${F++}`,o=`${n}-geometry.${i}`,a=16*w[e],A=u.subarray(a,a+16);s.createMesh(_.apply(t,{id:r,geometryId:o,matrix:A})),l.push(r)}else l.push(i)}if(l.length>0){const e={};s.createEntity(_.apply(e,{id:r,isObject:!0,meshIds:l}))}}}(0,0,a,s,0,o)}};let Ub=window.pako||yb;Ub.inflate||(Ub=Ub.default);const kb=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 Ob={version:5,parse:function(e,t,i,s,r,o){const n=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]}}(i),a=function(e){return{positions:new Float32Array(Ub.inflate(e.positions).buffer),normals:new Int8Array(Ub.inflate(e.normals).buffer),indices:new Uint32Array(Ub.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Ub.inflate(e.edgeIndices).buffer),matrices:new Float32Array(Ub.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(Ub.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(Ub.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(Ub.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(Ub.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(Ub.inflate(e.primitiveInstances).buffer),eachEntityId:Ub.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(Ub.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(Ub.inflate(e.eachEntityMatricesPortion).buffer)}}(n);!function(e,t,i,s,r,o){const n=o.getNextId();s.positionsCompression="disabled",s.normalsCompression="precompressed";const a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,u=i.eachPrimitivePositionsAndNormalsPortion,d=i.eachPrimitiveIndicesPortion,p=i.eachPrimitiveEdgeIndicesPortion,g=i.eachPrimitiveColor,m=i.primitiveInstances,f=JSON.parse(i.eachEntityId),v=i.eachEntityPrimitiveInstancesPortion,b=i.eachEntityMatricesPortion,x=u.length,w=m.length,y=new Uint8Array(x),P=f.length;for(let e=0;e1||(B[i]=e)}}for(let e=0;e1,r=kb(g.subarray(4*e,4*e+3)),o=g[4*e+3]/255,c=a.subarray(u[e],t?a.length:u[e+1]),m=l.subarray(u[e],t?l.length:u[e+1]),v=A.subarray(d[e],t?A.length:d[e+1]),b=h.subarray(p[e],t?h.length:p[e+1]);if(i){const t=`${n}-geometry.${e}`;s.createGeometry({id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b})}else{const t=e;f[B[e]];const i={};s.createMesh(_.apply(i,{id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b,color:r,opacity:o}))}}let C=0;for(let e=0;e1){const t={},r="instance."+C++,o="geometry"+i,n=16*b[e],l=c.subarray(n,n+16);s.createMesh(_.apply(t,{id:r,geometryId:o,matrix:l})),a.push(r)}else a.push(i)}if(a.length>0){const e={};s.createEntity(_.apply(e,{id:r,isObject:!0,meshIds:a}))}}}(0,0,a,s,0,o)}};let Nb=window.pako||yb;Nb.inflate||(Nb=Nb.default);const Qb=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 Vb={version:6,parse:function(e,t,i,s,r,o){const n=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]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Nb.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:Nb.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))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,u=i.reusedPrimitivesDecodeMatrix,p=i.eachPrimitivePositionsAndNormalsPortion,g=i.eachPrimitiveIndicesPortion,m=i.eachPrimitiveEdgeIndicesPortion,f=i.eachPrimitiveColorAndOpacity,v=i.primitiveInstances,b=JSON.parse(i.eachEntityId),x=i.eachEntityPrimitiveInstancesPortion,w=i.eachEntityMatricesPortion,y=i.eachTileAABB,P=i.eachTileEntitiesPortion,B=p.length,C=v.length,M=b.length,E=P.length,F=new Uint32Array(B);for(let e=0;e1,c=t===B-1,d=a.subarray(p[t],c?a.length:p[t+1]),b=l.subarray(p[t],c?l.length:p[t+1]),x=A.subarray(g[t],c?A.length:g[t+1]),w=h.subarray(m[t],c?h.length:m[t+1]),y=Qb(f.subarray(4*t,4*t+3)),P=f[4*t+3]/255,C=o.getNextId();if(r){const e=`${n}-geometry.${i}.${t}`;U[e]||(s.createGeometry({id:e,primitive:"triangles",positionsCompressed:d,indices:x,edgeIndices:w,positionsDecodeMatrix:u}),U[e]=!0),s.createMesh(_.apply(N,{id:C,geometryId:e,origin:I,matrix:E,color:y,opacity:P})),R.push(C)}else s.createMesh(_.apply(N,{id:C,origin:I,primitive:"triangles",positionsCompressed:d,normalsCompressed:b,indices:x,edgeIndices:w,positionsDecodeMatrix:L,color:y,opacity:P})),R.push(C)}R.length>0&&s.createEntity(_.apply(O,{id:P,isObject:!0,meshIds:R}))}}}(e,t,a,s,0,o)}};let jb=window.pako||yb;jb.inflate||(jb=jb.default);const Hb=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 zb(e){const t=[];for(let i=0,s=e.length;i1,d=t===F-1,B=Hb(P.subarray(6*e,6*e+3)),C=P[6*e+3]/255,M=P[6*e+4]/255,E=P[6*e+5]/255,I=o.getNextId();if(r){const r=y[e],o=u.slice(r,r+16),w=`${n}-geometry.${i}.${t}`;if(!Q[w]){let e,i,r,o,n,u;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],d?a.length:m[t+1]),o=zb(A.subarray(v[t],d?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],d?a.length:m[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]);break;default:continue}s.createGeometry({id:w,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:u,positionsDecodeMatrix:p}),Q[w]=!0}s.createMesh(_.apply(V,{id:I,geometryId:w,origin:R,matrix:o,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}else{let e,i,r,o,n,u;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],d?a.length:m[t+1]),o=zb(A.subarray(v[t],d?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],d?a.length:m[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]);break;default:continue}s.createMesh(_.apply(V,{id:I,origin:R,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:u,positionsDecodeMatrix:N,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}}U.length>0&&s.createEntity(_.apply(O,{id:E,isObject:!0,meshIds:U}))}}}(e,t,a,s,0,o)}};let Wb=window.pako||yb;Wb.inflate||(Wb=Wb.default);const Kb=d.vec4(),Xb=d.vec4();const Yb=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 qb(e){const t=[];for(let i=0,s=e.length;i1,l=r===L-1,A=Yb(F.subarray(6*e,6*e+3)),h=F[6*e+3]/255,c=F[6*e+4]/255,I=F[6*e+5]/255,D=o.getNextId();if(a){const o=E[e],a=v.slice(o,o+16),M=`${n}-geometry.${i}.${r}`;let F=j[M];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(x[r]){case 0:F.primitiveName="solid",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=f.subarray(C[r],l?f.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=f.subarray(C[r],l?f.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryColors=qb(g.subarray(P[r],l?g.length:P[r+1])),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=u.subarray(w[r],l?u.length:w[r+1]),i=p.subarray(y[r],l?p.length:y[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),a=f.subarray(C[r],l?f.length:C[r+1]),d=t.length>0&&n.length>0;break;case 2:e="points",t=u.subarray(w[r],l?u.length:w[r+1]),o=qb(g.subarray(P[r],l?g.length:P[r+1])),d=t.length>0;break;case 3:e="lines",t=u.subarray(w[r],l?u.length:w[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),d=t.length>0&&n.length>0;break;default:continue}d&&(s.createMesh(_.apply(z,{id:D,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:R,color:A,metallic:c,roughness:I,opacity:h})),T.push(D))}}T.length>0&&s.createEntity(_.apply(H,{id:A,isObject:!0,meshIds:T}))}}}(e,t,a,s,r,o)}};let Jb=window.pako||yb;Jb.inflate||(Jb=Jb.default);const $b=d.vec4(),ex=d.vec4();const tx=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 ix={version:9,parse:function(e,t,i,s,r,o){const n=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]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Jb.inflate(e,t).buffer}return{metadata:JSON.parse(Jb.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(Jb.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.metadata,l=i.positions,A=i.normals,h=i.colors,c=i.indices,u=i.edgeIndices,p=i.matrices,g=i.reusedGeometriesDecodeMatrix,m=i.eachGeometryPrimitiveType,f=i.eachGeometryPositionsPortion,v=i.eachGeometryNormalsPortion,b=i.eachGeometryColorsPortion,x=i.eachGeometryIndicesPortion,w=i.eachGeometryEdgeIndicesPortion,y=i.eachMeshGeometriesPortion,P=i.eachMeshMatricesPortion,B=i.eachMeshMaterial,C=i.eachEntityId,M=i.eachEntityMeshesPortion,E=i.eachTileAABB,F=i.eachTileEntitiesPortion,I=f.length,D=y.length,S=M.length,T=F.length;r&&r.loadData(a,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const R=new Uint32Array(I);for(let e=0;e1,C=r===I-1,M=tx(B.subarray(6*e,6*e+3)),E=B[6*e+3]/255,F=B[6*e+4]/255,D=B[6*e+5]/255,S=o.getNextId();if(a){const o=P[e],a=p.slice(o,o+16),y=`${n}-geometry.${i}.${r}`;let B=k[y];if(!B){B={batchThisMesh:!t.reuseGeometries};let e=!1;switch(m[r]){case 0:B.primitiveName="solid",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=u.subarray(w[r],C?u.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 1:B.primitiveName="surface",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=u.subarray(w[r],C?u.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 2:B.primitiveName="points",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryColors=h.subarray(b[r],C?h.length:b[r+1]),e=B.geometryPositions.length>0;break;case 3:B.primitiveName="lines",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;default:continue}if(e||(B=null),B&&(B.geometryPositions.length,B.batchThisMesh)){B.decompressedPositions=new Float32Array(B.geometryPositions.length),B.transformedAndRecompressedPositions=new Uint16Array(B.geometryPositions.length);const e=B.geometryPositions,t=B.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=l.subarray(f[r],C?l.length:f[r+1]),i=A.subarray(v[r],C?A.length:v[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),a=u.subarray(w[r],C?u.length:w[r+1]),d=t.length>0&&n.length>0;break;case 2:e="points",t=l.subarray(f[r],C?l.length:f[r+1]),o=h.subarray(b[r],C?h.length:b[r+1]),d=t.length>0;break;case 3:e="lines",t=l.subarray(f[r],C?l.length:f[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),d=t.length>0&&n.length>0;break;default:continue}d&&(s.createMesh(_.apply(H,{id:S,origin:L,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:Q,color:M,metallic:F,roughness:D,opacity:E})),O.push(S))}}O.length>0&&s.createEntity(_.apply(j,{id:E,isObject:!0,meshIds:O}))}}}(e,t,a,s,r,o)}};let sx=window.pako||yb;sx.inflate||(sx=sx.default);const rx=d.vec4(),ox=d.vec4();const nx=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 ax(e,t){const i=[];if(t.length>1)for(let e=0,s=t.length-1;e1)for(let t=0,s=e.length/3-1;t0,a=9*e,c=1===h[a+0],u=h[a+1];h[a+2],h[a+3];const d=h[a+4],p=h[a+5],g=h[a+6],m=h[a+7],f=h[a+8];if(o){const t=new Uint8Array(l.subarray(i,r)).buffer,o=`${n}-texture-${e}`;if(c)s.createTexture({id:o,buffers:[t],minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f});else{const e=new Blob([t],{type:10001===u?"image/jpeg":10002===u?"image/png":"image/gif"}),i=(window.URL||window.webkitURL).createObjectURL(e),r=document.createElement("img");r.src=i,s.createTexture({id:o,image:r,minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f})}}}for(let e=0;e=0?`${n}-texture-${r}`:null,normalsTextureId:a>=0?`${n}-texture-${a}`:null,metallicRoughnessTextureId:o>=0?`${n}-texture-${o}`:null,emissiveTextureId:l>=0?`${n}-texture-${l}`:null,occlusionTextureId:A>=0?`${n}-texture-${A}`:null})}const H=new Uint32Array(N);for(let e=0;e1,l=r===N-1,A=D[e],h=A>=0?`${n}-textureSet-${A}`:null,T=nx(S.subarray(6*e,6*e+3)),R=S[6*e+3]/255,L=S[6*e+4]/255,O=S[6*e+5]/255,Q=o.getNextId();if(a){const o=I[e],a=b.slice(o,o+16),A=`${n}-geometry.${i}.${r}`;let F=W[A];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(w[r]){case 0:F.primitiveName="solid",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=u.subarray(P[r],l?u.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=f.subarray(E[r],l?f.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=u.subarray(P[r],l?u.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=f.subarray(E[r],l?f.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryColors=p.subarray(B[r],l?p.length:B[r+1]),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 4:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=ax(F.geometryPositions,m.subarray(M[r],l?m.length:M[r+1])),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length),F.transformedAndRecompressedPositions=new Uint16Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&a.length>0;break;case 1:e="surface",t=c.subarray(y[r],l?c.length:y[r+1]),i=u.subarray(P[r],l?u.length:P[r+1]),o=g.subarray(C[r],l?g.length:C[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),A=f.subarray(E[r],l?f.length:E[r+1]),d=t.length>0&&a.length>0;break;case 2:e="points",t=c.subarray(y[r],l?c.length:y[r+1]),n=p.subarray(B[r],l?p.length:B[r+1]),d=t.length>0;break;case 3:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),d=t.length>0&&a.length>0;break;case 4:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=ax(t,m.subarray(M[r],l?m.length:M[r+1])),d=t.length>0&&a.length>0;break;default:continue}d&&(s.createMesh(_.apply(j,{id:Q,textureSetId:h,origin:z,primitive:e,positionsCompressed:t,normalsCompressed:i,uv:o&&o.length>0?o:null,colorsCompressed:n,indices:a,edgeIndices:A,positionsDecodeMatrix:v,color:T,metallic:L,roughness:O,opacity:R})),U.push(Q))}}U.length>0&&s.createEntity(_.apply(Q,{id:l,isObject:!0,meshIds:U}))}}}(e,t,a,s,r,o)}},Ax={};Ax[Cb.version]=Cb,Ax[Fb.version]=Fb,Ax[Sb.version]=Sb,Ax[Lb.version]=Lb,Ax[Ob.version]=Ob,Ax[Vb.version]=Vb,Ax[Gb.version]=Gb,Ax[Zb.version]=Zb,Ax[ix.version]=ix,Ax[lx.version]=lx;class hx extends Q{constructor(e,t={}){super("XKTLoader",e,t),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this.textureTranscoder=t.textureTranscoder,this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults,this.includeTypes=t.includeTypes,this.excludeTypes=t.excludeTypes,this.excludeUnclassifiedObjects=t.excludeUnclassifiedObjects,this.reuseGeometries=t.reuseGeometries}get supportedVersions(){return Object.keys(Ax)}get textureTranscoder(){return this._textureTranscoder}set textureTranscoder(e){this._textureTranscoder=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new wb}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||nb}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}get reuseGeometries(){return this._reuseGeometries}set reuseGeometries(e){this._reuseGeometries=!1!==e}load(e={}){if(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),!(e.src||e.xkt||e.manifestSrc||e.manifest))return this.error("load() param expected: src, xkt, manifestSrc or manifestData"),o;const t={},i=e.includeTypes||this._includeTypes,s=e.excludeTypes||this._excludeTypes,r=e.objectDefaults||this._objectDefaults;if(t.reuseGeometries=null!==e.reuseGeometries&&void 0!==e.reuseGeometries?e.reuseGeometries:!1!==this._reuseGeometries,i){t.includeTypesMap={};for(let e=0,s=i.length;e{o.finalize(),a.finalize(),this.viewer.scene.canvas.spinner.processes--,o.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(a.id)})),this.scheduleTask((()=>{o.destroyed||(o.scene.fire("modelLoaded",o.id),o.fire("loaded",!0,!1))}))},A=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),o.fire("error",e)};let h=0;const c={getNextId:()=>`${n}.${h++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const r=e.metaModelSrc;this._dataSource.getMetaModel(r,(r=>{o.destroyed||(a.loadData(r,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()))}),(e=>{A(`load(): Failed to load model metadata for model '${n} from '${r}' - ${e}`)}))}else e.metaModelData&&(a.loadData(e.metaModelData,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()));else if(e.src)this._loadModel(e.src,e,t,o,a,c,l,A);else if(e.xkt)this._parseModel(e.xkt,e,t,o,a,c),l();else if(e.manifestSrc||e.manifest){const r=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",n=(e,o,n)=>{let l=0;const A=()=>{l>=e.length?o():this._dataSource.getMetaModel(`${r}${e[l]}`,(e=>{a.loadData(e,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),l++,this.scheduleTask(A,100)}),n)};A()},h=(i,s,n)=>{let l=0;const A=()=>{l>=i.length?s():this._dataSource.getXKT(`${r}${i[l]}`,(i=>{this._parseModel(i,e,t,o,a,c),l++,this.scheduleTask(A,100)}),n)};A()};if(e.manifest){const t=e.manifest,i=t.xktFiles;if(!i||0===i.length)return void A("load(): Failed to load model manifest - manifest not valid");const s=t.metaModelFiles;s?n(s,(()=>{h(i,l,A)}),A):h(i,l,A)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(o.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void A("load(): Failed to load model manifest - manifest not valid");const i=e.metaModelFiles;i?n(i,(()=>{h(t,l,A)}),A):h(t,l,A)}),A)}return o}_loadModel(e,t,i,s,r,o,n,a){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,i,s,r,o),n()}),a)}_parseModel(e,t,i,s,r,o){if(s.destroyed)return;const n=new DataView(e),a=new Uint8Array(e),l=n.getUint32(0,!0),A=Ax[l];if(!A)return void this.error("Unsupported .XKT file version: "+l+" - this XKTLoaderPlugin supports versions "+Object.keys(Ax));this.log("Loading .xkt V"+l);const h=n.getUint32(4,!0),c=[];let u=4*(h+2);for(let e=0;ee.size)throw new RangeError("offset:"+t+", length:"+i+", size:"+e.size);return e.slice?e.slice(t,t+i):e.webkitSlice?e.webkitSlice(t,t+i):e.mozSlice?e.mozSlice(t,t+i):e.msSlice?e.msSlice(t,t+i):void 0}(e,t,i))}catch(e){r(e)}}}function p(){}function g(e){var i,s=this;s.init=function(e){i=new Blob([],{type:n}),e()},s.writeUint8Array=function(e,s){i=new Blob([i,t?e:e.buffer],{type:n}),s()},s.getData=function(t,s){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=s,r.readAsText(i,e)}}function m(t){var i=this,s="",r="";i.init=function(e){s+="data:"+(t||"")+";base64,",e()},i.writeUint8Array=function(t,i){var o,n=r.length,a=r;for(r="",o=0;o<3*Math.floor((n+t.length)/3)-n;o++)a+=String.fromCharCode(t[o]);for(;o2?s+=e.btoa(a):r=a,i()},i.getData=function(t){t(s+e.btoa(r))}}function f(e){var i,s=this;s.init=function(t){i=new Blob([],{type:e}),t()},s.writeUint8Array=function(s,r){i=new Blob([i,t?s:s.buffer],{type:e}),r()},s.getData=function(e){e(i)}}function _(e,t,i,s,r,n,a,l,A,h){var c,u,d,p=0,g=t.sn;function m(){e.removeEventListener("message",f,!1),l(u,d)}function f(t){var i=t.data,r=i.data,o=i.error;if(o)return o.toString=function(){return"Error: "+this.message},void A(o);if(i.sn===g)switch("number"==typeof i.codecTime&&(e.codecTime+=i.codecTime),"number"==typeof i.crcTime&&(e.crcTime+=i.crcTime),i.type){case"append":r?(u+=r.length,s.writeUint8Array(r,(function(){_()}),h)):_();break;case"flush":d=i.crc,r?(u+=r.length,s.writeUint8Array(r,(function(){m()}),h)):m();break;case"progress":a&&a(c+i.loaded,n);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",i)}}function _(){(c=p*o)<=n?i.readUint8Array(r+c,Math.min(o,n-c),(function(i){a&&a(c,n);var s=0===c?t:{sn:g};s.type="append",s.data=i;try{e.postMessage(s,[i.buffer])}catch(t){e.postMessage(s)}p++}),A):e.postMessage({sn:g,type:"flush"})}u=0,e.addEventListener("message",f,!1),_()}function v(e,t,i,s,r,n,l,A,h,c){var u,d=0,p=0,g="input"===n,m="output"===n,f=new a;!function n(){var a;if((u=d*o)127?r[i-128]:String.fromCharCode(i);return s}function w(e){return decodeURIComponent(escape(e))}function y(e){var t,i="";for(t=0;t>16,i=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch(e){}}(e.lastModDateRaw),1!=(1&e.bitFlag)?((s||8!=(8&e.bitFlag))&&(e.crc32=t.view.getUint32(i+10,!0),e.compressedSize=t.view.getUint32(i+14,!0),e.uncompressedSize=t.view.getUint32(i+18,!0)),4294967295!==e.compressedSize&&4294967295!==e.uncompressedSize?(e.filenameLength=t.view.getUint16(i+22,!0),e.extraFieldLength=t.view.getUint16(i+24,!0)):r("File is using Zip64 (4gb+ file size).")):r("File contains encrypted entry.")}function B(t,o,n){var a=0;function l(){}l.prototype.getData=function(s,o,l,h){var c=this;function u(e,t){h&&!function(e){var t=A(4);return t.view.setUint32(0,e),c.crc32==t.view.getUint32(0)}(t)?n("CRC failed."):s.getData((function(e){o(e)}))}function d(e){n(e||r)}function p(e){n(e||"Error while writing file data.")}t.readUint8Array(c.offset,30,(function(r){var o,g=A(r.length,r);1347093252==g.view.getUint32(0)?(P(c,g,4,!1,n),o=c.offset+30+c.filenameLength+c.extraFieldLength,s.init((function(){0===c.compressionMethod?b(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p):function(t,i,s,r,o,n,a,l,A,h,c){var u=a?"output":"none";e.zip.useWebWorkers?_(t,{sn:i,codecClass:"Inflater",crcType:u},s,r,o,n,A,l,h,c):v(new e.zip.Inflater,s,r,o,n,u,A,l,h,c)}(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p)}),p)):n(i)}),d)};var h={getEntries:function(e){var r=this._worker;!function(e){t.size<22?n(i):r(22,(function(){r(Math.min(65558,t.size),(function(){n(i)}))}));function r(i,r){t.readUint8Array(t.size-i,i,(function(t){for(var i=t.length-22;i>=0;i--)if(80===t[i]&&75===t[i+1]&&5===t[i+2]&&6===t[i+3])return void e(new DataView(t.buffer,i,22));r()}),(function(){n(s)}))}}((function(o){var a,h;a=o.getUint32(16,!0),h=o.getUint16(8,!0),a<0||a>=t.size?n(i):t.readUint8Array(a,t.size-a,(function(t){var s,o,a,c,u=0,d=[],p=A(t.length,t);for(s=0;s>>8^i[255&(t^e[s])];this.crc=t},a.prototype.get=function(){return~this.crc},a.prototype.table=function(){var e,t,i,s=[];for(e=0;e<256;e++){for(i=e,t=0;t<8;t++)1&i?i=i>>>1^3988292384:i>>>=1;s[e]=i}return s}(),l.prototype.append=function(e,t){return e},l.prototype.flush=function(){},c.prototype=new h,c.prototype.constructor=c,u.prototype=new h,u.prototype.constructor=u,d.prototype=new h,d.prototype.constructor=d,p.prototype.getData=function(e){e(this.data)},g.prototype=new p,g.prototype.constructor=g,m.prototype=new p,m.prototype.constructor=m,f.prototype=new p,f.prototype.constructor=f;var F={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function I(t,i,s){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var r;if(e.zip.workerScripts){if(r=e.zip.workerScripts[t],!Array.isArray(r))return void s(new Error("zip.workerScripts."+t+" is not an array!"));r=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(r)}else(r=F[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+r[0];var o=new Worker(r[0]);o.codecTime=o.crcTime=0,o.postMessage({type:"importScripts",scripts:r.slice(1)}),o.addEventListener("message",(function e(t){var r=t.data;if(r.error)return o.terminate(),void s(r.error);"importScripts"===r.type&&(o.removeEventListener("message",e),o.removeEventListener("error",n),i(o))})),o.addEventListener("error",n)}else s(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function n(e){o.terminate(),s(e)}}function D(e){console.error(e)}e.zip={Reader:h,Writer:p,BlobReader:d,Data64URIReader:u,TextReader:c,BlobWriter:f,Data64URIWriter:m,TextWriter:g,createReader:function(e,t,i){i=i||D,e.init((function(){B(e,t,i)}),i)},createWriter:function(e,t,i,s){i=i||D,s=!!s,e.init((function(){E(e,t,i,s)}),i)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(cx);!function(e){var t,i,s=e.Reader,r=e.Writer;try{i=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function o(e){var t=this;function i(i,s){var r;t.data?i():((r=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(r.getResponseHeader("Content-Length"))||Number(r.response.byteLength)),t.data=new Uint8Array(r.response),i()}),!1),r.addEventListener("error",s,!1),r.open("GET",e),r.responseType="arraybuffer",r.send())}t.size=0,t.init=function(s,r){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var o=new XMLHttpRequest;o.addEventListener("load",(function(){t.size=Number(o.getResponseHeader("Content-Length")),t.size?s():i(s,r)}),!1),o.addEventListener("error",r,!1),o.open("HEAD",e),o.send()}else i(s,r)},t.readUint8Array=function(e,s,r,o){i((function(){r(new Uint8Array(t.data.subarray(e,e+s)))}),o)}}function n(e){var t=this;t.size=0,t.init=function(i,s){var r=new XMLHttpRequest;r.addEventListener("load",(function(){t.size=Number(r.getResponseHeader("Content-Length")),"bytes"==r.getResponseHeader("Accept-Ranges")?i():s("HTTP Range not supported.")}),!1),r.addEventListener("error",s,!1),r.open("HEAD",e),r.send()},t.readUint8Array=function(t,i,s,r){!function(t,i,s,r){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="arraybuffer",o.setRequestHeader("Range","bytes="+t+"-"+(t+i-1)),o.addEventListener("load",(function(){s(o.response)}),!1),o.addEventListener("error",r,!1),o.send()}(t,i,(function(e){s(new Uint8Array(e))}),r)}}function a(e){var t=this;t.size=0,t.init=function(i,s){t.size=e.byteLength,i()},t.readUint8Array=function(t,i,s,r){s(new Uint8Array(e.slice(t,t+i)))}}function l(){var e,t=this;t.init=function(t,i){e=new Uint8Array,t()},t.writeUint8Array=function(t,i,s){var r=new Uint8Array(e.length+t.length);r.set(e),r.set(t,e.length),e=r,i()},t.getData=function(t){t(e.buffer)}}function A(e,t){var s,r=this;r.init=function(t,i){e.createWriter((function(e){s=e,t()}),i)},r.writeUint8Array=function(e,r,o){var n=new Blob([i?e:e.buffer],{type:t});s.onwrite=function(){s.onwrite=null,r()},s.onerror=o,s.write(n)},r.getData=function(t){e.file(t)}}o.prototype=new s,o.prototype.constructor=o,n.prototype=new s,n.prototype.constructor=n,a.prototype=new s,a.prototype.constructor=a,l.prototype=new r,l.prototype.constructor=l,A.prototype=new r,A.prototype.constructor=A,e.FileWriter=A,e.HttpReader=o,e.HttpRangeReader=n,e.ArrayBufferReader=a,e.ArrayBufferWriter=l,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(i,s,r){return function(i,s,r,o){if(i.directory)return o?new t(i.fs,s,r,i):new e.fs.ZipFileEntry(i.fs,s,r,i);throw"Parent entry is not a directory."}(this,i,{data:s,Reader:r?n:o})},t.prototype.importHttpContent=function(e,t,i,s){this.importZip(t?new n(e):new o(e),i,s)},e.fs.FS.prototype.importHttpContent=function(e,i,s,r){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,i,s,r)})}(cx.zip),d.vec2(),d.vec3(),d.vec3(),d.vec3();class ux{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}}class dx{constructor(e,t,i,s){this.bimViewer=e?e.bimViewer||e:this,this.server=e?e.server:i,this.viewer=e?e.viewer:s,this._children=[],e&&e._children.push(this),this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._events=null,this._eventCallDepth=0,this._enabled=null,this._active=null}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],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--)}on(e,t,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new ux),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={});let s=this._eventSubs[e];s||(s={},this._eventSubs[e]=s);const r=this._subIdMap.addItem();s[r]={callback:t,scope:i||this},this._subIdEvents[r]=e;const o=this._events[e];return void 0!==o&&t.call(i||this,o),r}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&delete i[e],this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}log(e){e="[LOG] "+e,window.console.log(e)}warn(e){e="[WARN] "+e,window.console.warn(e)}error(e){e="[ERROR] "+e,window.console.error(e)}_mutexActivation(e){const t=e.length;for(let i=0;i
Default text
',i.appendChild(this._modal),this._modalVisible=!1,this._modal.style.display="hidden"}show(e){this._modalVisible=!0,this._modal.querySelector(".xeokit-busy-modal-message").innerText=e,this._modal.style.display="block"}hide(){this._modalVisible=!1,this._modal.style.display="none"}destroy(){super.destroy(),this._modal&&(this._modal.parentNode.removeChild(this._modal),this._modal=null)}}const gx=d.vec3();class mx extends dx{constructor(e,t={}){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.camera;this._modelMementos={},s.eye=[.577,.577,.577],s.look=[0,0,0],s.up=[-1,1,-1],this.bimViewer._modelsExplorer.on("modelLoaded",(e=>{this._saveModelMemento(e)})),this.bimViewer._modelsExplorer.on("modelUnloaded",(e=>{this._destroyModelMemento(e)})),this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.reset(),e.preventDefault()}))}_saveModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;const i=new Ih;i.saveObjects(this.viewer.scene,t,{visible:!0,edges:!0,xrayed:!0,highlighted:!0,selected:!0,clippable:!0,pickable:!0,colorize:!1,opacity:!1}),this._modelMementos[e]=i}_restoreModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;this._modelMementos[e].restoreObjects(this.viewer.scene,t)}_destroyModelMemento(e){delete this._modelMementos[e]}reset(){const e=this.viewer.scene.modelIds;for(var t=0,i=e.length;t{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.fit(),e.preventDefault()}))}fit(){const e=this.viewer.scene,t=e.getAABB(e.visibleObjectIds);this.viewer.cameraFlight.flyTo({aabb:t}),this.viewer.cameraControl.pivotPos=d.getAABB3Center(t,fx)}set fov(e){this.viewer.scene.cameraFlight.fitFOV=e}get fov(){return this.viewer.scene.cameraFlight.fitFOV}set duration(e){this.viewer.scene.cameraFlight.duration=e}get duration(){return this.viewer.scene.cameraFlight.duration}}class vx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.cameraControl,r=t.cameraControlNavModeMediator;s.navMode="orbit",s.followPointer=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),this.on("active",(e=>{r.setFirstPersonModeActive(e),e?(s.followPointer=!0,s.pivoting=!1):s.pivoting=!0})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class bx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this.viewer.cameraControl.doublePickFlyTo=!1,this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.visible=!1)}))):(i.classList.remove("active"),this.viewer.cameraControl.doublePickFlyTo=!1,void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class xx extends dx{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.selected=!e.entity.selected)}))):(i.classList.remove("active"),void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class wx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.scene.on("modelLoaded",(e=>{if(!this._active){const e=this.viewer.metaScene.getObjectIDsByType("IfcSpace");this.viewer.scene.setObjectsCulled(e,!0)}})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e){this._active!==e&&(this._active=e,e?(this._buttonElement.classList.add("active"),this._enterShowSpacesMode(),this.fire("active",this._active)):(this._buttonElement.classList.remove("active"),this._exitShowSpacesMode(),this.fire("active",this._active)))}_enterShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!1)}_exitShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!0)}}class yx extends dx{constructor(e,t){super(e)}}const Px=d.AABB3(),Bx=d.vec3();class Cx extends n{constructor(e={}){if(!e.sectionPlanesPlugin)throw"Missing config: sectionPlanesPlugin";super(_.apply({},e)),this._sectionPlanesPlugin=e.sectionPlanesPlugin,this._viewer=this._sectionPlanesPlugin.viewer,this._onSceneSectionPlaneCreated=this._viewer.scene.on("sectionPlaneCreated",(()=>{this._buildMenu()})),this._onSceneSectionPlaneDestroyed=this._viewer.scene.on("sectionPlaneDestroyed",(()=>{this._buildMenu()})),this._buildMenu()}_buildMenu(){const e=this._sectionPlanesPlugin,t=Object.values(e.sectionPlanes),i=[];for(let s=0,r=t.length;s`${e.viewer.localeService.translate("sectionToolContextMenu.slice")||"Slice"} #`+(s+1),doHoverEnter(t){e.hideControl(),e.showControl(r.id)},doHoverLeave(t){e.hideControl()},items:[[{getTitle:e=>r.active?e.viewer.localeService.translate("sectionToolContextMenu.deactivate")||"Disable":e.viewer.localeService.translate("sectionToolContextMenu.activate")||"Enable",doAction:e=>{r.active=!r.active}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.edit")||"Edit",getEnabled:()=>r.active,doAction:t=>{e.hideControl(),e.showControl(r.id);const i=r.pos;Px.set(this._viewer.scene.aabb),d.getAABB3Center(Px,Bx),Px[0]+=i[0]-Bx[0],Px[1]+=i[1]-Bx[1],Px[2]+=i[2]-Bx[2],Px[3]+=i[0]-Bx[0],Px[4]+=i[1]-Bx[1],Px[5]+=i[2]-Bx[2],this._viewer.cameraFlight.flyTo({aabb:Px,fitFOV:65})}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flip")||"Flip",getEnabled:()=>r.active,doAction:e=>{r.flipDir()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.delete")||"Delete",doAction:e=>{r.destroy()}}]]})}this.items=[[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flipSlices")||"Flip Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.flipSections()}}],[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.disableAllSlices")||"Disable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.disableSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.enableAllSlices")||"Enable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.enableSections()}}],i]}destroy(){super.destroy();const e=this._viewer.scene;e.off(this._onSceneSectionPlaneCreated),e.off(this._onSceneSectionPlaneDestroyed)}}class Mx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";if(!t.menuButtonElement)throw"Missing config: menuButtonElement";this._buttonElement=t.buttonElement,this._counterElement=t.counterElement,this._menuButtonElement=t.menuButtonElement,this._menuButtonArrowElement=t.menuButtonArrowElement,this._sectionPlanesPlugin=new _b(this.viewer,{}),this._sectionToolContextMenu=new Cx({sectionPlanesPlugin:this._sectionPlanesPlugin,hideOnMouseDown:!1,hideOnAction:!1}),this._sectionPlanesPlugin.setOverviewVisible(!1),this.on("enabled",(e=>{e?(this._buttonElement.classList.remove("disabled"),this._counterElement&&this._counterElement.classList.remove("disabled"),this._menuButtonElement.classList.remove("disabled"),this._menuButtonArrowElement.classList.remove("disabled")):(this._buttonElement.classList.add("disabled"),this._counterElement&&this._counterElement.classList.add("disabled"),this._menuButtonElement.classList.add("disabled"),this._menuButtonArrowElement.classList.add("disabled"))})),this.on("active",(e=>{e?(this._buttonElement.classList.add("active"),this._counterElement&&this._counterElement.classList.add("active"),this._menuButtonElement.classList.add("active"),this._menuButtonArrowElement.classList.add("active")):(this._buttonElement.classList.remove("active"),this._counterElement&&this._counterElement.classList.remove("active"),this._menuButtonElement.classList.remove("active"),this._menuButtonArrowElement.classList.remove("active"))})),this.on("active",(e=>{e||this._sectionPlanesPlugin.hideControl()})),this._buttonElement.addEventListener("click",(e=>{if(!this.getEnabled())return;if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement)return;const t=this.getActive();this.setActive(!t),e.preventDefault()})),document.addEventListener("mousedown",(e=>{if(!e.target.classList.contains("xeokit-context-menu-item"))if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement)if(e.preventDefault(),this._sectionToolContextMenu.shown)this._sectionToolContextMenu.hide();else{this._sectionToolContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,sectionTool:this};const e=this._menuButtonElement.getBoundingClientRect();this._sectionToolContextMenu.show(e.left,e.bottom+5)}else this._sectionToolContextMenu.hide()})),this._sectionToolContextMenu.on("shown",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-down"),this._menuButtonArrowElement.classList.add("xeokit-arrow-up")})),this._sectionToolContextMenu.on("hidden",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-up"),this._menuButtonArrowElement.classList.add("xeokit-arrow-down")})),this.bimViewer.on("reset",(()=>{this.clear(),this.setActive(!1)})),this.viewer.scene.on("sectionPlaneCreated",(()=>{this._updateSectionPlanesCount()})),this.viewer.scene.on("sectionPlaneDestroyed",(()=>{this._updateSectionPlanesCount()})),this._initSectionMode()}_initSectionMode(){this.viewer.scene.input.on("mouseclicked",(e=>{if(!this.getActive()||!this.getEnabled())return;const t=this.viewer.scene.pick({canvasPos:e,pickSurface:!0});if(t){const e=this._sectionPlanesPlugin.createSectionPlane({pos:t.worldPos,dir:d.mulVec3Scalar(t.worldNormal,-1)});this._sectionPlanesPlugin.showControl(e.id)}})),this._updateSectionPlanesCount()}_updateSectionPlanesCount(){this._counterElement&&(this._counterElement.innerText=""+this.getNumSections())}getNumSections(){return Object.keys(this.viewer.scene.sectionPlanes).length}clear(){this._sectionPlanesPlugin.clear(),this._updateSectionPlanesCount()}flipSections(){this._sectionPlanesPlugin.flipSectionPlanes()}enableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!0}}disableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!1}}hideControl(){this._sectionPlanesPlugin.hideControl()}destroy(){this._sectionPlanesPlugin.destroy(),this._sectionToolContextMenu.destroy(),super.destroy()}}class Ex extends dx{constructor(e,t){if(super(e,t),!t.navCubeCanvasElement)throw"Missing config: navCubeCanvasElement";const i=t.navCubeCanvasElement;this._navCube=new hb(this.viewer,{canvasElement:i,fitVisible:!0,color:"#CFCFCF"}),this._navCube.setVisible(this._active),this.on("active",(e=>{this._navCube.setVisible(e)}))}destroy(){this._navCube.destroy(),super.destroy()}}class Fx extends n{constructor(e={}){const t=!!e.enableEditModels,i=!!e.enableMeasurements,s=[[{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadModel")||"Load",getEnabled:e=>!e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.loadModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadModel")||"Unload",getEnabled:e=>e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.unloadModel(e.modelId)}}]];t&&s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.editModel")||"Edit",getEnabled:e=>!0,doAction:e=>{e.bimViewer.editModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.deleteModel")||"Delete",getEnabled:e=>!0,doAction:e=>{e.bimViewer.deleteModel(e.modelId)}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadAllModels")||"Load All",getEnabled:e=>{const t=e.bimViewer,i=t.getModelIds();return t.getLoadedModelIds().length{e.bimViewer.loadAllModels()}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadAllModels")||"Unload All",getEnabled:e=>e.bimViewer.getLoadedModelIds().length>0,doAction:e=>{e.bimViewer.unloadAllModels()}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}]),i&&s.push([{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]),super({hideOnAction:e.hideOnAction,context:e.context,items:s})}}const Ix=d.vec3();class Dx{constructor(e){this._server=e}setProjectId(e){this._projectId=e}setModelId(e){this._modelId=e}getManifest(e,t,i){this._server.getSplitModelManifest(this._projectId,this._modelId,e,t,i)}getMetaModel(e,t,i){this._server.getSplitModelMetadata(this._projectId,this._modelId,e,t,i)}getXKT(e,t,i){this._server.getSplitModelGeometry(this._projectId,this._modelId,e,t,i)}}class Sx extends dx{constructor(e,t){if(super(e,t),!t.modelsTabElement)throw"Missing config: modelsTabElement";if(!t.unloadModelsButtonElement)throw"Missing config: unloadModelsButtonElement";if(!t.modelsElement)throw"Missing config: modelsElement";if(this._enableAddModels=!!t.enableEditModels,this._modelsTabElement=t.modelsTabElement,this._loadModelsButtonElement=t.loadModelsButtonElement,this._unloadModelsButtonElement=t.unloadModelsButtonElement,this._addModelButtonElement=t.addModelButtonElement,this._modelsElement=t.modelsElement,this._modelsTabButtonElement=this._modelsTabElement.querySelector(".xeokit-tab-btn"),!this._modelsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._dataSource=new Dx(this.server),this._xktLoader=new hx(this.viewer,{dataSource:this._dataSource}),this._modelsContextMenu=new Fx({enableEditModels:t.enableEditModels,enableMeasurements:t.enableMeasurements,hideOnAction:!0}),this._modelsInfo={},this._numModels=0,this._numModelsLoaded=0,this._projectId=null}setObjectColors(e){this._xktLoader.objectDefaults=e}loadProject(e,t,i){this.server.getProject(e,(i=>{this.unloadProject(),this._projectId=e,this._modelsInfo={},this._numModels=0,this._parseProject(i,t),this._numModelsLoaded0&&this._unloadModelsButtonElement.classList.remove("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.remove("disabled")}),(e=>{this.error(e),i&&i(e)}))}_parseProject(e,t){this._buildModelsMenu(e),this._parseViewerConfigs(e),this._parseViewerContent(e,(()=>{this._parseViewerState(e,(()=>{t()}))}))}_buildModelsMenu(e){var t="";const i=e.models||[];this._modelsInfo={},this._numModels=i.length;for(let e=0,s=i.length;e",t+=""+s.name+"",t+=""}this._modelsElement.innerHTML=t;for(let e=0,t=i.length;e{r.checked?this.loadModel(s):this.unloadModel(t.id)})),o.addEventListener("click",(()=>{!!this.viewer.scene.models[s]?this.unloadModel(t.id):this.loadModel(s)})),o.oncontextmenu=e=>{this._modelsContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,modelId:s},this._modelsContextMenu.show(e.pageX,e.pageY),e.preventDefault()}}}_parseViewerConfigs(e){const t=e.viewerConfigs;t&&this.bimViewer.setConfigs(t)}_parseViewerContent(e,t){const i=e.viewerContent;i?this._parseModelsLoaded(i,(()=>{t()})):t()}_parseModelsLoaded(e,t){const i=e.modelsLoaded;i&&0!==i.length?this._loadNextModel(i.slice(0),t):t()}_loadNextModel(e,t){if(0===e.length)return void t();const i=e.pop();this.loadModel(i,(()=>{this._loadNextModel(e,t)}),(()=>{this._loadNextModel(e,t)}))}_parseViewerState(e,t){const i=e.viewerState;i?this.bimViewer.setViewerState(i,t):t()}unloadProject(){if(!this._projectId)return;const e=this.viewer.scene.models;for(var t in e)if(e.hasOwnProperty(t)){e[t].destroy()}this._modelsElement.innerHTML="",this._numModelsLoaded=0,this._loadModelsButtonElement.classList.add("disabled"),this._unloadModelsButtonElement.classList.add("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.add("disabled");const i=this._projectId;this._projectId=null,this.fire("projectUnloaded",{projectId:i})}getLoadedProjectId(){return this._projectId}getModelIds(){return Object.keys(this._modelsInfo)}loadModel(e,t,i){if(!this._projectId){const e="No project currently loaded";return this.error(e),void(i&&i(e))}const s=this._modelsInfo[e];if(!s){const e="Model not in currently loaded project";return this.error(e),void(i&&i(e))}this.bimViewer._busyModal.show(`${this.viewer.localeService.translate("busyModal.loading")||"Loading"} ${s.name}`);this.bimViewer.getConfig("externalMetadata")&&!s.manifest?this.server.getMetadata(this._projectId,e,(r=>{this._loadGeometry(e,s,r,t,i)}),(e=>{this.bimViewer._busyModal.hide(),this.error(e),i&&i(e)})):this._loadGeometry(e,s,null,t,i)}_loadGeometry(e,t,i,s,r){const o=()=>{document.getElementById(""+e).checked=!0,this._numModelsLoaded++,this._unloadModelsButtonElement.classList.remove("disabled"),this._numModelsLoaded{this.bimViewer._busyModal.hide(),this.error(e),r&&r(e)};if(t.manifest){this._dataSource.setProjectId(this._projectId),this._dataSource.setModelId(e);const i=this._xktLoader.load({id:e,manifestSrc:t.manifest,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});i.on("loaded",o),i.on("error",n)}else this.server.getGeometry(this._projectId,e,(s=>{const r=this._xktLoader.load({id:e,metaModelData:i,xkt:s,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});r.on("loaded",o),r.on("error",n)}),n)}_jumpToInitialCamera(){const e=this.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds),s=d.getAABB3Diag(i),r=d.getAABB3Center(i,Ix),o=t.camera;o.perspective.fov;const n=Math.abs(s/Math.tan(45*d.DEGTORAD)),a=d.normalizeVec3(o.yUp?[-.5,-.7071,-.5]:[-1,1,-1]),l=d.normalizeVec3(o.yUp?[-.5,.7071,-.5]:[-1,1,1]);e.cameraControl.pivotPos=r,e.cameraControl.planView=!1,e.cameraFlight.jumpTo({look:r,eye:[r[0]-n*a[0],r[1]-n*a[1],r[2]-n*a[2]],up:l,orthoScale:1.1*s})}unloadModel(e){const t=this.viewer.scene.models[e];if(!t)return void this.error("Model not loaded: "+e);t.destroy();document.getElementById(""+e).checked=!1,document.getElementById("span-"+e),this._numModelsLoaded--,this._numModelsLoaded>0?this._unloadModelsButtonElement.classList.remove("disabled"):this._unloadModelsButtonElement.classList.add("disabled"),this._numModelsLoadede.viewer.localeService.translate("treeViewContextMenu.inspectProperties")||"Inspect Properties",getShown:e=>!!e.viewer.metaScene.metaObjects[e.treeViewNode.objectId],doAction:e=>{const t=e.treeViewNode.objectId;e.bimViewer.showObjectProperties(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFit")||"View Fit",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)})),i.setObjectsVisible(s,!0),i.setObjectsHighlighted(s,!0);const r=i.getAABB(s);t.cameraFlight.flyTo({aabb:r,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=d.getAABB3Center(r)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFitAll")||"View Fit All",doAction:function(e){const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.isolate")||"Isolate",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));const r=i.getAABB(s);t.cameraControl.pivotPos=d.getAABB3Center(r,Tx),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsVisible(i.visibleObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(s,!0),t.cameraFlight.flyTo({aabb:r},(()=>{}))}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hide")||"Hide",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideOthers")||"Hide Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.visibleObjectIds,!1),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideAll")||"Hide All",getEnabled:function(e){return e.viewer.scene.visibleObjectIds.length>0},doAction:function(e){e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.show")||"Show",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!0,i.xrayed&&(i.pickable=!0),i.xrayed=!1,i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showOthers")||"Shows Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showAll")||"Show All",getEnabled:function(e){const t=e.viewer.scene;return t.numVisibleObjects0},doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xray")||"X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1,i.xrayed=!0,i.visible=!0,i.pickable=e.bimViewer.getConfig("xrayPickable"))}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoXray")||"Undo X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayOthers")||"X-Ray Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayAll")||"X-Ray All",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayNone")||"X-Ray None",getEnabled:function(e){return e.viewer.scene.numXRayedObjects>0},doAction:function(e){const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.select")||"Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!0,i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoSelect")||"Undo Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.selectNone")||"Select None",getEnabled:function(e){return e.viewer.scene.numSelectedObjects>0},doAction:function(e){e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.clearSlices")||"Clear Slices",getEnabled:function(e){return e.bimViewer.getNumSections()>0},doAction:function(e){e.bimViewer.clearSections()}}],s]}}class Lx extends dx{constructor(e,t={}){if(super(e),!t.objectsTabElement)throw"Missing config: objectsTabElement";if(!t.showAllObjectsButtonElement)throw"Missing config: showAllObjectsButtonElement";if(!t.hideAllObjectsButtonElement)throw"Missing config: hideAllObjectsButtonElement";if(!t.objectsElement)throw"Missing config: objectsElement";if(this._objectsTabElement=t.objectsTabElement,this._showAllObjectsButtonElement=t.showAllObjectsButtonElement,this._hideAllObjectsButtonElement=t.hideAllObjectsButtonElement,this._objectsTabButtonElement=this._objectsTabElement.querySelector(".xeokit-tab-btn"),!this._objectsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";const i=t.objectsElement;this._treeView=new xb(this.viewer,{containerElement:i,hierarchy:"containment",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Rx(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._objectsTabButtonElement.classList.remove("disabled"),this._showAllObjectsButtonElement.classList.remove("disabled"),this._hideAllObjectsButtonElement.classList.remove("disabled")):(this._objectsTabButtonElement.classList.add("disabled"),this._showAllObjectsButtonElement.classList.add("disabled"),this._hideAllObjectsButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}class Ux extends dx{constructor(e,t={}){if(super(e),!t.classesTabElement)throw"Missing config: classesTabElement";if(!t.showAllClassesButtonElement)throw"Missing config: showAllClassesButtonElement";if(!t.hideAllClassesButtonElement)throw"Missing config: hideAllClassesButtonElement";if(!t.classesElement)throw"Missing config: classesElement";if(this._classesTabElement=t.classesTabElement,this._showAllClassesButtonElement=t.showAllClassesButtonElement,this._hideAllClassesButtonElement=t.hideAllClassesButtonElement,this._classesTabButtonElement=this._classesTabElement.querySelector(".xeokit-tab-btn"),!this._classesTabButtonElement)throw"Missing DOM element: xeokit-tab-btn";const i=t.classesElement;this._treeView=new xb(this.viewer,{containerElement:i,hierarchy:"types",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Rx(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._classesTabButtonElement.classList.remove("disabled"),this._showAllClassesButtonElement.classList.remove("disabled"),this._hideAllClassesButtonElement.classList.remove("disabled")):(this._classesTabButtonElement.classList.add("disabled"),this._showAllClassesButtonElement.classList.add("disabled"),this._hideAllClassesButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const kx=d.vec3();class Ox extends dx{constructor(e,t={}){if(super(e),!t.storeysTabElement)throw"Missing config: storeysTabElement";if(!t.showAllStoreysButtonElement)throw"Missing config: showAllStoreysButtonElement";if(!t.hideAllStoreysButtonElement)throw"Missing config: hideAllStoreysButtonElement";if(!t.storeysElement)throw"Missing config: storeysElement";if(this._storeysTabElement=t.storeysTabElement,this._showAllStoreysButtonElement=t.showAllStoreysButtonElement,this._hideAllStoreysButtonElement=t.hideAllStoreysButtonElement,this._storeysTabButtonElement=this._storeysTabElement.querySelector(".xeokit-tab-btn"),!this._storeysTabButtonElement)throw"Missing DOM element: .xeokit-tab-btn";const i=t.storeysElement;this._treeView=new xb(this.viewer,{containerElement:i,autoAddModels:!1,hierarchy:"storeys",autoExpandDepth:1}),this._treeViewContextMenu=new Rx(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode,pruneEmptyNodes:!0},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{const t=this.bimViewer._modelsExplorer.getModelInfo(e);t&&this._treeView.addModel(e,{rootName:t.name})})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse(),this._treeView.expandToDepth(1)}))}setEnabled(e){e?(this._storeysTabButtonElement.classList.remove("disabled"),this._showAllStoreysButtonElement.classList.remove("disabled"),this._hideAllStoreysButtonElement.classList.remove("disabled")):(this._storeysTabButtonElement.classList.add("disabled"),this._showAllStoreysButtonElement.classList.add("disabled"),this._hideAllStoreysButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];if(!i)return void this.error("selectStorey() - object is not found: '"+e+"'");if("IfcBuildingStorey"!==i.type)return void this.error("selectStorey() - object is not found: '"+e+"'");const s=i.getObjectIDsInSubtree();this._selectObjects(s,t)}_selectObjects(e,t){const i=this.viewer.scene,s=i.getAABB(e);this.viewer.cameraControl.pivotPos=d.getAABB3Center(s,kx),t?(i.setObjectsXRayed(i.objectIds,!0),i.setObjectsVisible(i.objectIds,!0),i.setObjectsPickable(i.objectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsXRayed(e,!1),i.setObjectsVisible(e,!0),i.setObjectsPickable(e,!0),this.viewer.cameraFlight.flyTo({aabb:s},(()=>{setTimeout((function(){i.setObjectsVisible(i.xrayedObjectIds,!1),i.setObjectsXRayed(i.xrayedObjectIds,!1)}),500),t()}))):(i.setObjectsVisible(i.objectIds,!1),i.setObjectsPickable(i.xrayedObjectIds,!0),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(e,!0),this.viewer.cameraFlight.jumpTo({aabb:s}))}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const Nx=d.vec3();class Qx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._saveOrthoActive=null,this._buttonElement=t.buttonElement,this._cameraControlNavModeMediator=t.cameraControlNavModeMediator,this._active=!1,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&(this.bimViewer._sectionTool.hideControl(),this.setActive(!this.getActive(),(()=>{}))),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!0,(()=>{}))}))}setEnabled(e){super.setEnabled(e),this._saveOrthoActive=this.bimViewer._orthoMode.getActive()}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterThreeDMode((()=>{this.fire("active",this._active),t()})):(this._enterThreeDMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitThreeDMode((()=>{this.fire("active",this._active),t()})):(this._exitThreeDMode(),this.fire("active",this._active)))):t&&t()}_enterThreeDMode(e){const t=this.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds),r=d.getAABB3Diag(s),o=d.getAABB3Center(s,Nx),n=Math.abs(r/Math.tan(32.5)),a=i.camera,l=a.yUp?[-1,-1,-1]:[1,1,1],A=a.yUp?[-1,1,-1]:[-1,1,1];t.cameraControl.pivotPos=o,this.bimViewer._navCubeMode.setActive(!0),this.bimViewer._firstPersonMode.setEnabled(!0),this._cameraControlNavModeMediator.setThreeDModeActive(!0),this.bimViewer._sectionTool.setEnabled(!0),this.bimViewer._orthoMode.setEnabled(!0),e?t.cameraFlight.flyTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,duration:1,projection:this._saveOrthoActive?"ortho":"perspective"},(()=>{e()})):t.cameraFlight.jumpTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,projection:this._saveOrthoActive?"ortho":"perspective"})}_exitThreeDMode(e){const t=this.viewer,i=t.scene,s=i.camera,r=i.getAABB(i.visibleObjectIds),o=d.getAABB3Center(r),n=d.getAABB3Diag(r),a=Math.abs(n/Math.tan(45*d.DEGTORAD)),l=1.3*n,A=Nx;A[0]=o[0]+s.worldUp[0]*a,A[1]=o[1]+s.worldUp[1]*a,A[2]=o[2]+s.worldUp[2]*a;const h=d.mulVec3Scalar(s.worldForward,-1,[]);this.bimViewer._sectionTool.setActive(!1),this.bimViewer._firstPersonMode.setEnabled(!1),this._saveOrthoActive=this.bimViewer._orthoMode.getActive(),this.bimViewer._orthoMode.setEnabled(!1),this._cameraControlNavModeMediator.setThreeDModeActive(!1),e?t.cameraFlight.flyTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"},(()=>{this.bimViewer._navCubeMode.setActive(!1)})):(t.cameraFlight.jumpTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"}),this.bimViewer._navCubeMode.setActive(!1))}}class Vx extends n{constructor(e,t={}){super(t),this._bimViewer=e,this._buildMenu(t)}_buildMenu(e){const t=[],i=[],s=[],r=!!e.enableMeasurements;this._bimViewer._enablePropertiesInspector&&t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.inspectProperties")||"Inspect Properties",doAction:e=>{const t=e.entity.id;e.bimViewer.showObjectProperties(t)}}),t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showInTree")||"Show in Explorer",doAction:e=>{const t=e.entity.id;e.showObjectInExplorers(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFit")||"View Fit",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity;t.cameraFlight.flyTo({aabb:s.aabb,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=d.getAABB3Center(s.aabb)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hide")||"Hide",getEnabled:e=>e.entity.visible,doAction:e=>{e.entity.visible=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideOthers")||"Hide Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.visibleObjectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.visible=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xray")||"X-Ray",getEnabled:e=>!e.entity.xrayed,doAction:e=>{const t=e.entity;t.xrayed=!0,t.pickable=e.bimViewer.getConfig("xrayPickable")}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayOthers")||"X-Ray Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.objectIds,!0),i.setObjectsXRayed(i.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||i.setObjectsPickable(i.objectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.xrayed=!1,t.pickable=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.select")||"Select",getEnabled:e=>!e.entity.selected,doAction:e=>{e.entity.selected=!0}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.undoSelect")||"Undo Select",getEnabled:e=>e.entity.selected,doAction:e=>{e.entity.selected=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],s]}}class jx extends n{constructor(e,t={}){super({hideOnAction:t.hideOnAction,context:t.context,items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene.xrayedObjectIds;e.viewer.scene.setObjectsPickable(t,!0),e.viewer.scene.setObjectsXRayed(t,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.resetView")||"Reset View",doAction:e=>{e.bimViewer.resetView()}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],t.enableMeasurements?[{getTitle:e=>"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]:[]]})}}class Hx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.camera.on("projection",(()=>{const e="ortho"===this.viewer.camera.projection;this._active=e,this._active?this._buttonElement.classList.add("active"):this._buttonElement.classList.remove("active")})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterOrthoMode((()=>{this.fire("active",this._active),t()})):(this._enterOrthoMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitOrthoMode((()=>{this.fire("active",this._active),t()})):(this._exitOrthoMode(),this.fire("active",this._active)))):t&&t()}_enterOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"ortho",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"ortho"})}_exitOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"perspective",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"perspective"})}}class zx extends dx{constructor(e,t={}){if(super(e),!t.propertiesTabElement)throw"Missing config: propertiesTabElement";if(!t.propertiesElement)throw"Missing config: propertiesElement";if(this._metaObject=null,this._propertiesTabElement=t.propertiesTabElement,this._propertiesElement=t.propertiesElement,this._propertiesTabButtonElement=this._propertiesTabElement.querySelector(".xeokit-tab-btn"),!this._propertiesTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{if(this._metaObject){const t=this._metaObject.metaModels;for(let i=0,s=t.length;i{this.clear()})),document.addEventListener("click",this._clickListener=e=>{e.target.matches(".xeokit-accordion .xeokit-accordion-button")&&(e.target.parentElement.classList.contains("active")?e.target.parentElement.classList.remove("active"):e.target.parentElement.classList.add("active"))}),this.clear()}showObjectPropertySets(e){const t=this.viewer.metaScene.metaObjects[e];if(!t)return;const i=t.propertySets;i&&i.length>0?this._setPropertySets(t,i):this._setPropertySets(t),this._metaObject=t}clear(){const e=[],t=this.viewer.localeService.translate("propertiesInspector.noObjectSelectedWarning")||"No object inspected. Right-click or long-tab an object and select 'Inspect Properties' to view its properties here.";e.push('
'),e.push(`

${t}

`),e.push("
");const i=e.join("");this._propertiesElement.innerHTML=i}_setPropertySets(e,t){const i=[];if(i.push('
'),e){i.push(''),i.push(``),e.type&&i.push(``),i.push(``),i.push(``);const s=e.attributes;if(s)for(let e in s)i.push(``);if(i.push("
Name:${e.name}
Class:${e.type}
UUID:${e.originalSystemId}
Viewer ID:${e.id}
${Gx(e)}:${s[e]}
"),t&&0!==t.length){i.push("
"),i.push('
');for(let e=0,s=t.length;e0){i.push(`
\n

${s.name}

\n
\n `);for(let e=0,t=r.length;e`)}i.push("
${t.name||t.label}:${t.value}
\n
\n
")}}i.push("
")}else{const e=this.viewer.localeService.translate("propertiesInspector.noPropSetWarning")||"No properties sets found for this object";i.push(`

${e}

`),i.push("")}}else i.push('

No object selected

');this._propertiesElement.innerHTML=i.join("")}setEnabled(e){e?this._propertiesTabButtonElement.classList.remove("disabled"):this._propertiesTabButtonElement.classList.add("disabled")}destroy(){super.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded),document.removeEventListener("click",this._clickListener)}}function Gx(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e}const Wx=new Float32Array(3);class Kx{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 i=e.objects[t];this._insertEntity(this._root,i,1)}this._needsRebuild=!1}_insertEntity(e,t,i){const s=t.aabb;if(i>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&d.containsAABB3(e.left.aabb,s))return void this._insertEntity(e.left,t,i+1);if(e.right&&d.containsAABB3(e.right.aabb,s))return void this._insertEntity(e.right,t,i+1);const r=e.aabb;Wx[0]=r[3]-r[0],Wx[1]=r[4]-r[1],Wx[2]=r[5]-r[2];let o=0;if(Wx[1]>Wx[o]&&(o=1),Wx[2]>Wx[o]&&(o=2),!e.left){const n=r.slice();if(n[o+3]=(r[o]+r[o+3])/2,e.left={aabb:n},d.containsAABB3(n,s))return void this._insertEntity(e.left,t,i+1)}if(!e.right){const n=r.slice();if(n[o]=(r[o]+r[o+3])/2,e.right={aabb:n},d.containsAABB3(n,s))return void this._insertEntity(e.right,t,i+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 Xx extends dx{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";this._objectsKdTree3=t.objectsKdTree3,this._marquee=d.AABB2(),this._marqueeFrustum=new U,this._marqueeFrustumProjMat=d.mat4(),this._marqueeDir=!1;const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._objectsKdTree3.root):i.classList.remove("active")})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}));const s=this.viewer.scene,r=s.canvas.canvas;this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement);const o=this._marqueeElement.style;let n,a,l,A,h,c,u,p;o.position="absolute",o["z-index"]="40000005",o.width="8px",o.height="8px",o.visibility="hidden",o.top="0px",o.left="0px",o["box-shadow"]="0 2px 5px 0 #182A3D;",o.opacity=1,o["pointer-events"]="none";let g=!1,m=!1;r.addEventListener("mousedown",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;const t=this.bimViewer.viewer.scene.input;t.keyDown[t.KEY_CTRL]||s.setObjectsSelected(s.selectedObjectIds,!1),n=e.pageX,a=e.pageY,o.visibility="visible",o.left=`${n}px`,o.top=`${a}px`,o.width="0px",o.height="0px",o.display="block",h=e.offsetX,c=e.offsetY,g=!0,this.viewer.cameraControl.pointerEnabled=!1})),r.addEventListener("mouseup",(e=>{if(!this.getActive()||!this.getEnabled())return;if(!g&&!m)return;if(0!==e.button)return;l=e.pageX,A=e.pageY;const t=Math.abs(l-n),i=Math.abs(A-a);o.width=`${t}px`,o.height=`${i}px`,o.visibility="hidden",g=!1,this.viewer.cameraControl.pointerEnabled=!0,m&&(m=!1),(t>3||i>3)&&this._marqueePick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&this.getEnabled()&&0===e.button&&g&&(o.visibility="hidden",g=!1,m=!0,this.viewer.cameraControl.pointerEnabled=!0)}),!0),r.addEventListener("mousemove",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;if(!g)return;const t=e.pageX,i=e.pageY,s=t-n,r=i-a;o.width=`${Math.abs(s)}px`,o.height=`${Math.abs(r)}px`,o.left=`${Math.min(n,t)}px`,o.top=`${Math.min(a,i)}px`,u=e.offsetX,p=e.offsetY;const l=h{if(s===U.INTERSECT&&(s=O(this._marqueeFrustum,i.aabb)),s!==U.OUTSIDE){if(i.entities){const t=i.entities;for(let i=0,s=t.length;ie.measurement.axisVisible?"Hide Measurement Axis":"Show Measurement Axis",doAction:function(e){e.measurement.axisVisible=!e.measurement.axisVisible}},{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Labels":"Show Measurement Labels",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin=new fh(this.viewer,{defaultAxisVisible:!1}),this._distanceMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._distanceMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={distanceMeasurementsPlugin:this._distanceMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._distanceMeasurementsMouseControl=new mh(this._distanceMeasurementsPlugin,{}),this._distanceMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._distanceMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._distanceMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._distanceMeasurementsPlugin.measurements).length}setMeasurementsAxisVisible(e){this._distanceMeasurementsPlugin.setAxisVisible(e)}getMeasurementsAxisVisible(){return this._distanceMeasurementsPlugin.getAxisVisible()}setSnappingEnabled(e){return this._distanceMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._distanceMeasurementsMouseControl.snapping}clear(){this._distanceMeasurementsPlugin.clear()}destroy(){this._distanceMeasurementsPlugin.destroy(),this._distanceMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}class qx extends dx{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this._contextMenu=new n({items:[[{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Label":"Show Measurement Label",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin=new ge(this.viewer,{}),this._angleMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._angleMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={angleMeasurementsPlugin:this._angleMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._angleMeasurementsMouseControl=new pe(this._angleMeasurementsPlugin,{}),this._angleMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._angleMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._angleMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._angleMeasurementsPlugin.measurements).length}setSnappingEnabled(e){return this._angleMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._angleMeasurementsMouseControl.snapping}clear(){this._angleMeasurementsPlugin.clear()}destroy(){this._angleMeasurementsPlugin.destroy(),this._angleMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}function Zx(e){const t="xeokit-tab",i="active";function s(e){let s=e.parentNode.querySelectorAll("."+t);for(let t=0;t{e.preventDefault()},o.oncontextmenu=e=>{e.preventDefault()},n.oncontextmenu=e=>{e.preventDefault()};const l=new G_({localeService:t.localeService,canvasElement:i,keyboardEventsElement:t.keyboardEventsElement,transparent:!1,backgroundColor:[1,1,1],backgroundColorFromAmbientLight:!1,saoEnabled:!0,pbrEnabled:!1,colorTextureEnabled:!0,numCachedSectionPlanes:4});super(null,t,e,l),this._configs={},this._enableAddModels=!!t.enableEditModels,this._enableMeasurements=!1!==t.enableMeasurements,this._enablePropertiesInspector=!!t.inspectorElement,this.viewer=l,this._objectsKdTree3=new Kx({viewer:l}),this._customizeViewer(),this._initCanvasContextMenus(),s.innerHTML=function(e){return'
\n
\n Models\n
\n
\n \n '+(e.enableEditModels?'':"")+'
\n
\n
\n
\n
\n Objects\n
\n
\n \n \n
\n
\n
\n
\n
\n Classes\n
\n
\n \n \n
\n
\n
\n
\n
\n Storeys\n
\n
\n \n \n
\n
\n
\n
\n
'}(t),o.innerHTML=function(e={}){return'
\n \x3c!-- Reset button --\x3e\n
\n \n
\n
\n \x3c!-- 3D Mode button --\x3e\n \n \x3c!-- Perspective/Ortho Mode button --\x3e\n \n \x3c!-- Fit button --\x3e\n \n \x3c!-- First Person mode button --\x3e\n \n \x3c!-- Show/hide IFCSpaces --\x3e\n \n
\n \x3c!-- Tools button group --\x3e\n
\n \x3c!-- Hide tool button --\x3e\n \n \x3c!-- Select tool button --\x3e\n \n \x3c!-- Marquee select tool button --\x3e\n '+(e.enableMeasurements?'\x3c!-- Measure distance tool button --\x3e\n \n \x3c!-- Measure angle tool button --\x3e\n ':" ")+'\x3c!-- section tool button --\x3e\n \n
\n
'}({enableMeasurements:this._enableMeasurements}),this._enablePropertiesInspector&&(r.innerHTML='
\n
\n Properties\n
\n
\n
\n
\n
'),this._explorerElement=s,this._inspectorElement=r,Zx(s),this._enablePropertiesInspector&&Zx(r),this._modelsExplorer=new Sx(this,{enableMeasurements:this._enableMeasurements,modelsTabElement:s.querySelector(".xeokit-modelsTab"),loadModelsButtonElement:s.querySelector(".xeokit-loadAllModels"),unloadModelsButtonElement:s.querySelector(".xeokit-unloadAllModels"),addModelButtonElement:s.querySelector(".xeokit-addModel"),modelsElement:s.querySelector(".xeokit-models"),enableEditModels:this._enableAddModels}),this._objectsExplorer=new Lx(this,{enableMeasurements:this._enableMeasurements,objectsTabElement:s.querySelector(".xeokit-objectsTab"),showAllObjectsButtonElement:s.querySelector(".xeokit-showAllObjects"),hideAllObjectsButtonElement:s.querySelector(".xeokit-hideAllObjects"),objectsElement:s.querySelector(".xeokit-objects")}),this._classesExplorer=new Ux(this,{enableMeasurements:this._enableMeasurements,classesTabElement:s.querySelector(".xeokit-classesTab"),showAllClassesButtonElement:s.querySelector(".xeokit-showAllClasses"),hideAllClassesButtonElement:s.querySelector(".xeokit-hideAllClasses"),classesElement:s.querySelector(".xeokit-classes")}),this._storeysExplorer=new Ox(this,{enableMeasurements:this._enableMeasurements,storeysTabElement:s.querySelector(".xeokit-storeysTab"),showAllStoreysButtonElement:s.querySelector(".xeokit-showAllStoreys"),hideAllStoreysButtonElement:s.querySelector(".xeokit-hideAllStoreys"),storeysElement:s.querySelector(".xeokit-storeys")}),this._enablePropertiesInspector&&(this._propertiesInspector=new zx(this,{propertiesTabElement:r.querySelector(".xeokit-propertiesTab"),propertiesElement:r.querySelector(".xeokit-properties")})),this._resetAction=new mx(this,{buttonElement:o.querySelector(".xeokit-reset"),active:!1}),this._fitAction=new _x(this,{buttonElement:o.querySelector(".xeokit-fit"),active:!1});const A=new function(e){let t=!1;this.setThreeDModeActive=i=>{i?(e._firstPersonMode.setActive(!1),e._marqueeSelectionTool.setEnabled(!0),e.viewer.cameraControl.navMode="orbit"):(e._marqueeSelectionTool.setEnabled(!1),e._marqueeSelectionTool.setActive(!1),e._firstPersonMode.setActive(!1),e.viewer.cameraControl.navMode="planView"),t=i},this.setFirstPersonModeActive=i=>{e.viewer.cameraControl.navMode=i?"firstPerson":t?"orbit":"planView"}}(this);this._threeDMode=new Qx(this,{buttonElement:o.querySelector(".xeokit-threeD"),cameraControlNavModeMediator:A,active:!1}),this._orthoMode=new Hx(this,{buttonElement:o.querySelector(".xeokit-ortho"),active:!1}),this._firstPersonMode=new vx(this,{buttonElement:o.querySelector(".xeokit-firstPerson"),cameraControlNavModeMediator:A,active:!1}),this._hideTool=new bx(this,{buttonElement:o.querySelector(".xeokit-hide"),active:!1}),this._selectionTool=new xx(this,{buttonElement:o.querySelector(".xeokit-select"),active:!1}),this._marqueeSelectionTool=new Xx(this,{buttonElement:o.querySelector(".xeokit-marquee"),active:!1,objectsKdTree3:this._objectsKdTree3}),this._showSpacesMode=new wx(this,{buttonElement:o.querySelector(".xeokit-showSpaces"),active:!1}),this._queryTool=new yx(this,{active:!1}),this._sectionTool=new Mx(this,{buttonElement:o.querySelector(".xeokit-section"),counterElement:o.querySelector(".xeokit-section-counter"),menuButtonElement:o.querySelector(".xeokit-section-menu-button"),menuButtonArrowElement:o.querySelector(".xeokit-section-menu-button-arrow"),active:!1}),this._measureDistanceTool=new Yx(this,{buttonElement:o.querySelector(".xeokit-measure-distance"),active:!1}),this._measureAngleTool=new qx(this,{buttonElement:o.querySelector(".xeokit-measure-angle"),active:!1}),this._navCubeMode=new Ex(this,{navCubeCanvasElement:n,active:!0}),this._busyModal=new px(this,{busyModalBackdropElement:a}),this._threeDMode.setActive(!0),this._firstPersonMode.setActive(!1),this._navCubeMode.setActive(!0),this._modelsExplorer.on("modelLoaded",(e=>{this._modelsExplorer.getNumModelsLoaded()>0&&this.setControlsEnabled(!0),this.fire("modelLoaded",e)})),this._modelsExplorer.on("modelUnloaded",(e=>{0===this._modelsExplorer.getNumModelsLoaded()&&(this.setControlsEnabled(!1),this.openTab("models")),this.fire("modelUnloaded",e)})),this._resetAction.on("reset",(()=>{this.fire("reset",!0)})),this._mutexActivation([this._hideTool,this._selectionTool,this._marqueeSelectionTool,this._sectionTool,this._measureDistanceTool,this._measureAngleTool]),s.querySelector(".xeokit-showAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-loadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this.loadAllModels(),e.preventDefault()})),s.querySelector(".xeokit-unloadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this._modelsExplorer.unloadAllModels(),e.preventDefault()})),this._enableAddModels&&s.querySelector(".xeokit-addModel").addEventListener("click",(e=>{this.fire("addModel",{}),e.preventDefault()})),this._bcfViewpointsPlugin=new ah(this.viewer,{xrayAsZeroAlpha:!0}),this._fastNavPlugin=new _h(l,{hideEdges:!0,hideSAO:!0,hidePBR:!1,hideColorTexture:!1,hideTransparentObjects:!1,scaleCanvasResolution:!1,scaleCanvasResolutionFactor:.6}),this._initConfigs(),this.setControlsEnabled(!1)}get localeService(){return this.viewer.localeService}_customizeViewer(){const e=this.viewer.scene;e.xrayMaterial.fill=!1,e.xrayMaterial.fillAlpha=.3,e.xrayMaterial.fillColor=[0,0,0],e.xrayMaterial.edges=!0,e.xrayMaterial.edgeAlpha=.1,e.xrayMaterial.edgeColor=[0,0,0],e.highlightMaterial.edges=!0,e.highlightMaterial.edgeColor=[1,1,1],e.highlightMaterial.edgeAlpha=1,e.highlightMaterial.fill=!0,e.highlightMaterial.fillAlpha=.1,e.highlightMaterial.fillColor=[1,0,0],e.selectedMaterial.edges=!0,e.selectedMaterial.edgeColor=[1,1,1],e.selectedMaterial.edgeAlpha=1,e.selectedMaterial.fill=!0,e.selectedMaterial.fillAlpha=.1,e.selectedMaterial.fillColor=[0,1,0],e.pointsMaterial.pointSize=1,e.pointsMaterial.roundPoints=!0,e.pointsMaterial.perspectivePoints=!0,e.pointsMaterial.minPerspectivePointSize=2,e.pointsMaterial.maxPerspectivePointSize=4,this.viewer.cameraControl.panRightClick=!0,this.viewer.cameraControl.followPointer=!0,this.viewer.cameraControl.doublePickFlyTo=!1,this.viewer.cameraControl.smartPivot=!0,this.viewer.cameraControl.keyboardDollyRate=100,this.viewer.cameraControl.mouseWheelDollyRate=100,this.viewer.cameraControl.dollyInertia=0,this.viewer.cameraControl.dollyMinSpeed=.04,this.viewer.cameraControl.dollyProximityThreshold=30;const t=document.createRange().createContextualFragment("
").firstChild;document.body.appendChild(t),this.viewer.cameraControl.pivotElement=t,e.camera.perspective.near=.01,e.camera.perspective.far=3e3,e.camera.ortho.near=.01,e.camera.ortho.far=2e3;const i=e.sao;i.enabled=!0,i.numSamples=50,i.kernelRadius=200}_initCanvasContextMenus(){this._canvasContextMenu=new jx(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this._objectContextMenu=new Vx(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this.viewer.cameraControl.on("rightClick",(e=>{e.event;const t=this.viewer.scene.pick({canvasPos:e.canvasPos});t&&t.entity.isObject?(this._canvasContextMenu.hide(),this._objectContextMenu.context={viewer:this.viewer,bimViewer:this,showObjectInExplorers:e=>{const t=this.getOpenTab();"objects"!==t&&"classes"!==t&&"storeys"!==t&&this.openTab("objects"),this.showObjectInExplorers(e)},entity:t.entity},this._objectContextMenu.show(e.pagePos[0],e.pagePos[1])):(this._objectContextMenu.hide(),this._canvasContextMenu.context={viewer:this.viewer,bimViewer:this},this._canvasContextMenu.show(e.pagePos[0],e.pagePos[1]))}))}_initConfigs(){this.setConfigs({cameraNear:"0.05",cameraFar:"3000.0",smartPivot:!0,saoEnabled:!0,pbrEnabled:!1,scaleCanvasResolution:!1,saoBias:.5,saoIntensity:.15,saoNumSamples:40,saoKernelRadius:100,edgesEnabled:!0,xrayContext:!0,xrayPickable:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,backgroundColor:[1,1,1],externalMetadata:!1,dtxEnabled:!1})}setConfigs(e){for(let t in e)if(e.hasOwnProperty(t)){const i=e[t];this.setConfig(t,i)}}setConfig(e,t){function i(e){return!0===e||"true"===e}try{switch(e){case"backgroundColor":const s=t;this.setBackgroundColor(s),this._configs[e]=s;break;case"cameraNear":const r=parseFloat(t);this.viewer.scene.camera.perspective.near=r,this.viewer.scene.camera.ortho.near=r,this._configs[e]=r;break;case"cameraFar":const o=parseFloat(t);this.viewer.scene.camera.perspective.far=o,this._configs[e]=o;break;case"smartPivot":this.viewer.cameraControl.smartPivot=this._configs[e]=i(t);break;case"saoEnabled":this._fastNavPlugin.saoEnabled=this._configs[e]=i(t);break;case"saoBias":this.viewer.scene.sao.bias=parseFloat(t);break;case"saoIntensity":this.viewer.scene.sao.intensity=parseFloat(t);break;case"saoKernelRadius":this.viewer.scene.sao.kernelRadius=this._configs[e]=parseFloat(t);break;case"saoNumSamples":this.viewer.scene.sao.numSamples=this._configs[e]=parseFloat(t);break;case"saoBlur":this.viewer.scene.sao.blur=this._configs[e]=i(t);break;case"edgesEnabled":this._fastNavPlugin.edgesEnabled=this._configs[e]=i(t);break;case"pbrEnabled":this._fastNavPlugin.pbrEnabled=this._configs[e]=i(t);break;case"scaleCanvasResolution":this._fastNavPlugin.scaleCanvasResolution=this._configs[e]=i(t);break;case"viewFitFOV":this.viewer.cameraFlight.fitFOV=this._configs[e]=parseFloat(t);break;case"viewFitDuration":this.viewer.cameraFlight.duration=this._configs[e]=parseFloat(t);break;case"perspectiveFOV":this.viewer.camera.perspective.fov=this._configs[e]=parseFloat(t);break;case"excludeUnclassifiedObjects":case"xrayPickable":case"externalMetadata":this._configs[e]=i(t);break;case"xrayContext":this._configs[e]=t;break;case"selectedGlowThrough":const n=this._configs[e]=i(t),a=this.viewer.scene.selectedMaterial;a.glowThrough=n,a.fillAlpha=n?.5:1,a.edgeAlpha=n?.5:1;break;case"highlightGlowThrough":const l=this._configs[e]=i(t),A=this.viewer.scene.highlightMaterial;A.glowThrough=l,A.fillAlpha=l?.5:1,A.edgeAlpha=l?.5:1;break;case"showSpaces":this._configs[e]=i(t),this._showSpacesMode.setActive(t);break;case"dtxEnabled":this._configs[e]=i(t),this.viewer.scene.dtxEnabled=t;break;case"objectColors":this._configs[e]=t,this._modelsExplorer.setObjectColors(t);break;default:this.warn("setConfig() - unsupported configuration: '"+e+"'")}}catch(t){this.error("setConfig() - failed to configure '"+e+"': "+t)}}getConfig(e){return this._configs[e]}getProjectsInfo(e,t){e?this.server.getProjects(e,(e=>{this.error("getProjectsInfo() - "+e),t&&t(e)})):this.error("getProjectsInfo() - Argument expected: 'done'")}getProjectInfo(e,t,i){e?t?this.server.getProject(e,t,(e=>{this.error("getProjectInfo() - "+e),i&&i(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getProjectInfo() - Argument expected: projectId")}getObjectInfo(e,t,i,s,r){e?t?i?s?this.server.getObjectInfo(e,t,i,s,(e=>{r&&r(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getObjectInfo() - Argument expected: objectId"):this.error("getObjectInfo() - Argument expected: modelId"):this.error("getObjectInfo() - Argument expected: projectId")}loadProject(e,t,i){e?this._modelsExplorer.loadProject(e,(()=>{t&&t()}),(e=>{this.error("loadProject() - "+e),i&&i(e)})):this.error("loadProject() - Argument expected: objectId")}unloadProject(){this._modelsExplorer.unloadProject(),this.openTab("models"),this.setControlsEnabled(!1)}getLoadedProjectId(){return this._modelsExplorer.getLoadedProjectId()}getModelIds(){return this._modelsExplorer.getModelIds()}loadModel(e,t,i){e?this._modelsExplorer.loadModel(e,(()=>{t&&t()}),(e=>{this.error("loadModel() - "+e),i&&i(e)})):this.error("loadModel() - Argument expected: modelId")}loadAllModels(e=function(){}){const t=this._modelsExplorer.getModelIds(),i=(e,s)=>{if(e>=t.length)s();else{const r=t[e];this._modelsExplorer.isModelLoaded(r)?i(e+1,s):this._modelsExplorer.loadModel(r,(()=>{i(e+1,s)}),(t=>{this.error("loadAllModels() - "+t),i(e+1,s)}))}};i(0,e)}getLoadedModelIds(){return this._modelsExplorer._getLoadedModelIds()}isModelLoaded(e){if(e)return this._modelsExplorer.isModelLoaded(e);this.error("unloadModel() - Argument expected: modelId")}unloadModel(e){e?this._modelsExplorer.unloadModel(e):this.error("unloadModel() - Argument expected: modelId")}unloadAllModels(){this._modelsExplorer.unloadAllModels()}editModel(e){this.fire("editModel",{modelId:e})}deleteModel(e){this.fire("deleteModel",{modelId:e})}addModel(){this.fire("addModel",{})}setBackgroundColor(e){this.viewer.scene.canvas.backgroundColor=e}setObjectColorSource(e){console.log("BIMViewer.setObjectColorSource() is now deprecated and no longer functional. By default, BIMViewer.getObjectColorSource() will now always return the (formerly) default value of `model`.")}getObjectColorSource(){return"model"}setViewerState(e,t=(()=>{})){e.tabOpen&&this.openTab(e.tabOpen),e.expandObjectsTree&&this._objectsExplorer.expandTreeViewToDepth(e.expandObjectsTree),e.expandClassesTree&&this._classesExplorer.expandTreeViewToDepth(e.expandClassesTree),e.expandStoreysTree&&this._storeysExplorer.expandTreeViewToDepth(e.expandStoreysTree),e.setCamera&&this.setCamera(e.setCamera),this._parseSelectedStorey(e,(()=>{this._parseThreeDMode(e,(()=>{t()}))}))}_parseSelectedStorey(e,t){e.selectedStorey?(this.selectStorey(e.selectedStorey),t()):t()}_parseThreeDMode(e,t){const i=!1!==e.threeDActive;this.set3DEnabled(i,t)}showObjectInExplorers(e){e?(this._objectsExplorer.showNodeInTreeView(e),this._classesExplorer.showNodeInTreeView(e),this._storeysExplorer.showNodeInTreeView(e),this.fire("openExplorer",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}unShowObjectInExplorers(){this._objectsExplorer.unShowNodeInTreeView(),this._classesExplorer.unShowNodeInTreeView(),this._storeysExplorer.unShowNodeInTreeView()}showObjectProperties(e){e?(this._enablePropertiesInspector&&this._propertiesInspector.showObjectPropertySets(e),this.fire("openInspector",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}setObjectsVisible(e,t){this._withObjectsInSubtree(e,(e=>{e.visible=t}))}setAllObjectsVisible(e){e?this.viewer.scene.setObjectsVisible(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsVisible(this.viewer.scene.visibleObjectIds,!1)}setObjectsXRayed(e,t){this._withObjectsInSubtree(e,(e=>{e.xrayed=t}))}setAllObjectsXRayed(e){e?this.viewer.scene.setObjectsXRayed(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsXRayed(this.viewer.scene.xrayedObjectIds,!1)}setObjectsSelected(e,t){this._withObjectsInSubtree(e,(e=>{e.selected=t}))}setAllObjectsSelected(e){e?this.viewer.scene.setObjectsSelected(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsSelected(this.viewer.scene.selectedObjectIds,!1)}_withObjectsInSubtree(e,t){if(e)for(let i=0,s=e.length;i{const i=this.viewer.scene.objects[e.id];i&&t(i)}))}else this.error("Argument expected: objectIds")}flyToObject(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectId");const i=this.viewer,s=i.scene,r=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{s.objects[e.id]&&r.push(e.id)})),0===r.length)return this.error("Object not found in viewer: '"+e+"'"),void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const o=s.getAABB(r);i.cameraFlight.flyTo({aabb:o},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=d.getAABB3Center(o)}viewFitObjects(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectIds");const i=this.viewer,s=i.scene,r=[];for(var o=0,n=e.length;o{s.objects[e.id]&&r.push(e.id)}))}if(0===r.length)return void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const a=s.getAABB(r);i.cameraFlight.flyTo({aabb:a},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=d.getAABB3Center(a)}viewFitAll(e){const t=this.viewer,i=t.scene.getAABB();t.cameraFlight.flyTo({aabb:i},(()=>{e&&e()})),t.cameraControl.pivotPos=d.getAABB3Center(i)}jumpToObject(e){if(!e)return void this.error("jumpToObject() - Argument expected: objectId");const t=this.viewer,i=t.scene,s=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{i.objects[e.id]&&s.push(e.id)})),0===s.length)return void this.error("Object not found in viewer: '"+e+"'");i.setObjectsVisible(s,!0);const r=i.getAABB(s);t.cameraFlight.jumpTo({aabb:r}),t.cameraControl.pivotPos=d.getAABB3Center(r)}setCamera(e){const t=this.viewer.scene.camera;e.eye&&(t.eye=e.eye),e.look&&(t.look=e.look),e.up&&(t.up=e.up)}viewFitModels(e,t){if(!e)return void this.error("viewFitModels() - Argument expected: modelIds");const i=this.viewer,s=i.scene,r=d.AABB3();d.collapseAABB3(r);for(var o=0,n=e.length;o{t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})):(i.cameraFlight.jumpTo({aabb:r}),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)),i.cameraControl.pivotPos=d.getAABB3Center(r)}openTab(e){if(!e)return void this.error("openTab() - Argument expected: tabId");let t;switch(e){case"models":t="xeokit-modelsTab";break;case"objects":t="xeokit-objectsTab";break;case"classes":t="xeokit-classesTab";break;case"storeys":t="xeokit-storeysTab";break;case"properties":t="xeokit-propertiesTab";break;default:return void this.error("openTab() - tab not recognized: '"+e+"'")}this._openTab(this._explorerElement,t)}_openTab(e,t){const i="active";let s=e.querySelectorAll(".xeokit-tab"),r=e.querySelector("."+t);for(let e=0;e-1}const t="active";return e(this._explorerElement.querySelector(".xeokit-modelsTab"),t)?"models":e(this._explorerElement.querySelector(".xeokit-objectsTab"),t)?"objects":e(this._explorerElement.querySelector(".xeokit-classesTab"),t)?"classes":e(this._explorerElement.querySelector(".xeokit-storeysTab"),t)?"storeys":e(this._inspectorElement.querySelector(".xeokit-propertiesTab"),t)?"properties":"none"}set3DEnabled(e,t){this._threeDMode.setActive(e,t)}get3DEnabled(){return this._threeDMode.getActive()}setSpacesShown(e){this._showSpacesMode.setActive(e)}getSpacesShown(){return this._showSpacesMode.getActive()}setOrthoEnabled(e,t){this._orthoMode.setActive(e,t)}getOrthoEnabled(){return this._orthoMode.getActive()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];i?"IfcBuildingStorey"===i.type?this._storeysExplorer.selectStorey(e,t):this.error("selectStorey() - Object is not an IfcBuildingStorey: '"+e+"'"):this.error("selectStorey() - Object is not found: '"+e+"'")}saveBCFViewpoint(e){return this._bcfViewpointsPlugin.getViewpoint(e)}loadBCFViewpoint(e,t){e?(this._orthoMode.setActive("ortho"===this.viewer.camera.projection),this._bcfViewpointsPlugin.setViewpoint(e,t)):this.error("loadBCFViewpoint() - Argument expected: bcfViewpoint")}resetView(){this._resetAction.reset()}setControlsEnabled(e){this._objectsExplorer.setEnabled(e),this._classesExplorer.setEnabled(e),this._storeysExplorer.setEnabled(e),this._resetAction.setEnabled(e),this._fitAction.setEnabled(e),this._threeDMode.setEnabled(e),this._orthoMode.setEnabled(e),this._firstPersonMode.setEnabled(e),this._queryTool.setEnabled(e),this._hideTool.setEnabled(e),this._selectionTool.setEnabled(e),this._marqueeSelectionTool.setEnabled(e),this._showSpacesMode.setEnabled(e),this._measureDistanceTool.setEnabled(e),this._measureAngleTool.setEnabled(e),this._sectionTool.setEnabled(e),this._enablePropertiesInspector&&this._propertiesInspector.setEnabled(e)}setKeyboardEnabled(e){this.viewer.scene.input.keyboardEnabled=e}getKeyboardEnabled(){return this.viewer.scene.input.keyboardEnabled}clearSections(){this._sectionTool.clear()}disableSections(){this._sectionTool.disableSections()}enableSections(){this._sectionTool.enableSections()}flipSections(){this._sectionTool.flipSections()}hideSectionEditControl(){this._sectionTool.hideControl()}getNumSections(){return this._sectionTool.getNumSections()}getEnableMeasurements(){return this._enableMeasurements}clearMeasurements(){this._measureDistanceTool.clear(),this._measureAngleTool.clear()}getNumMeasurements(){return this._measureDistanceTool.getNumMeasurements()+this._measureAngleTool.getNumMeasurements()}setMeasurementsAxisVisible(e){this._measureDistanceTool.setMeasurementsAxisVisible(e)}getMeasurementsAxisVisible(){return this._measureDistanceTool.getMeasurementsAxisVisible()}setMeasurementsSnappingEnabled(e){this._measureDistanceTool.setSnappingEnabled(e)}getMeasurementsSnappingEnabled(){return this._measureDistanceTool.getSnappingEnabled()}destroy(){this.viewer.destroy(),this._bcfViewpointsPlugin.destroy(),this._canvasContextMenu.destroy(),this._objectContextMenu.destroy()}},e.LocaleService=vh,e.Server=class{constructor(e={}){this._dataDir=e.dataDir||""}getProjects(e,t){const i=this._dataDir+"/projects/index.json";_.loadJSON(i,e,t)}getProject(e,t,i){const s=this._dataDir+"/projects/"+e+"/index.json";_.loadJSON(s,t,i)}getMetadata(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/metadata.json";_.loadJSON(r,i,s)}getGeometry(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/geometry.xkt";_.loadArraybuffer(r,i,s)}getObjectInfo(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/props/"+i+".json";_.loadJSON(o,s,r)}getIssues(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/issues.json";_.loadJSON(r,i,s)}getSplitModelManifest(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;_.loadJSON(o,s,r)}getSplitModelMetadata(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;_.loadJSON(o,s,r)}getSplitModelGeometry(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;_.loadArraybuffer(o,s,r)}},Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/dist/xeokit-bim-viewer.umd.js b/dist/xeokit-bim-viewer.umd.js index f685a8bd..c07500ca 100644 --- a/dist/xeokit-bim-viewer.umd.js +++ b/dist/xeokit-bim-viewer.umd.js @@ -96804,7 +96804,7 @@ return 'empty'; } - class Log$2 { + class Log$1 { constructor({ id } = { @@ -97051,7 +97051,7 @@ } } - Log$2.VERSION = VERSION$7; + Log$1.VERSION = VERSION$7; function normalizeLogLevel$1(logLevel) { if (!logLevel) { @@ -97180,7 +97180,7 @@ return noop$1; } - new Log$2({ + new Log$1({ id: 'loaders.gl' }); class ConsoleLog { @@ -97463,7 +97463,7 @@ const ONCE = { once: true }; - class Log$1 { + class Log { constructor() { let { id @@ -97733,7 +97733,7 @@ } - _defineProperty(Log$1, "VERSION", VERSION$6); + _defineProperty(Log, "VERSION", VERSION$6); function normalizeLogLevel(logLevel) { if (!logLevel) { @@ -97875,7 +97875,7 @@ return 'empty'; } - new Log$1({ + new Log({ id: 'loaders.gl' }); @@ -108674,50190 +108674,6 @@ const zip = zipLib.zip; zipExt(zip); - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - - // dist/web-ifc-mt.js - var require_web_ifc_mt = __commonJS({ - "dist/web-ifc-mt.js"(exports, module) { - var WebIFCWasm2 = (() => { - var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; - return function(WebIFCWasm3 = {}) { - function GROWABLE_HEAP_I8() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAP8; - } - function GROWABLE_HEAP_U8() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPU8; - } - function GROWABLE_HEAP_I16() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAP16; - } - function GROWABLE_HEAP_U16() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPU16; - } - function GROWABLE_HEAP_I32() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAP32; - } - function GROWABLE_HEAP_U32() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPU32; - } - function GROWABLE_HEAP_F32() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPF32; - } - function GROWABLE_HEAP_F64() { - if (wasmMemory.buffer != HEAP8.buffer) { - updateMemoryViews(); - } - return HEAPF64; - } - var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; - var readyPromiseResolve, readyPromiseReject; - Module["ready"] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; - }); - var moduleOverrides = Object.assign({}, Module); - var thisProgram = "./this.program"; - var quit_ = (status, toThrow) => { - throw toThrow; - }; - var ENVIRONMENT_IS_WEB = typeof window == "object"; - var ENVIRONMENT_IS_WORKER = typeof importScripts == "function"; - var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string"; - var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false; - var scriptDirectory = ""; - function locateFile(path) { - if (Module["locateFile"]) { - return Module["locateFile"](path, scriptDirectory); - } - return scriptDirectory + path; - } - var read_, readAsync, readBinary; - if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { - if (ENVIRONMENT_IS_WORKER) { - scriptDirectory = self.location.href; - } else if (typeof document != "undefined" && document.currentScript) { - scriptDirectory = document.currentScript.src; - } - if (_scriptDir) { - scriptDirectory = _scriptDir; - } - if (scriptDirectory.indexOf("blob:") !== 0) { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); - } else { - scriptDirectory = ""; - } - { - read_ = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, false); - xhr.send(null); - return xhr.responseText; - }; - if (ENVIRONMENT_IS_WORKER) { - readBinary = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, false); - xhr.responseType = "arraybuffer"; - xhr.send(null); - return new Uint8Array(xhr.response); - }; - } - readAsync = (url, onload, onerror) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, true); - xhr.responseType = "arraybuffer"; - xhr.onload = () => { - if (xhr.status == 200 || xhr.status == 0 && xhr.response) { - onload(xhr.response); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - }; - } - } - var out = Module["print"] || console.log.bind(console); - var err = Module["printErr"] || console.warn.bind(console); - Object.assign(Module, moduleOverrides); - moduleOverrides = null; - if (Module["arguments"]) - ; - if (Module["thisProgram"]) - thisProgram = Module["thisProgram"]; - if (Module["quit"]) - quit_ = Module["quit"]; - var wasmBinary; - if (Module["wasmBinary"]) - wasmBinary = Module["wasmBinary"]; - var noExitRuntime = Module["noExitRuntime"] || true; - if (typeof WebAssembly != "object") { - abort("no native wasm support detected"); - } - var wasmMemory; - var wasmModule; - var ABORT = false; - var EXITSTATUS; - function assert(condition, text) { - if (!condition) { - abort(text); - } - } - var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; - function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { - idx >>>= 0; - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) - ++endPtr; - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr)); - } - var str = ""; - while (idx < endPtr) { - var u0 = heapOrArray[idx++]; - if (!(u0 & 128)) { - str += String.fromCharCode(u0); - continue; - } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 224) == 192) { - str += String.fromCharCode((u0 & 31) << 6 | u1); - continue; - } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 240) == 224) { - u0 = (u0 & 15) << 12 | u1 << 6 | u2; - } else { - u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; - } - if (u0 < 65536) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } - } - return str; - } - function UTF8ToString(ptr, maxBytesToRead) { - ptr >>>= 0; - return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : ""; - } - function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - outIdx >>>= 0; - if (!(maxBytesToWrite > 0)) - return 0; - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) { - var u1 = str.charCodeAt(++i); - u = 65536 + ((u & 1023) << 10) | u1 & 1023; - } - if (u <= 127) { - if (outIdx >= endIdx) - break; - heap[outIdx++ >>> 0] = u; - } else if (u <= 2047) { - if (outIdx + 1 >= endIdx) - break; - heap[outIdx++ >>> 0] = 192 | u >> 6; - heap[outIdx++ >>> 0] = 128 | u & 63; - } else if (u <= 65535) { - if (outIdx + 2 >= endIdx) - break; - heap[outIdx++ >>> 0] = 224 | u >> 12; - heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; - heap[outIdx++ >>> 0] = 128 | u & 63; - } else { - if (outIdx + 3 >= endIdx) - break; - heap[outIdx++ >>> 0] = 240 | u >> 18; - heap[outIdx++ >>> 0] = 128 | u >> 12 & 63; - heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; - heap[outIdx++ >>> 0] = 128 | u & 63; - } - } - heap[outIdx >>> 0] = 0; - return outIdx - startIdx; - } - function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite); - } - function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var c = str.charCodeAt(i); - if (c <= 127) { - len++; - } else if (c <= 2047) { - len += 2; - } else if (c >= 55296 && c <= 57343) { - len += 4; - ++i; - } else { - len += 3; - } - } - return len; - } - var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; - function updateMemoryViews() { - var b = wasmMemory.buffer; - Module["HEAP8"] = HEAP8 = new Int8Array(b); - Module["HEAP16"] = HEAP16 = new Int16Array(b); - Module["HEAP32"] = HEAP32 = new Int32Array(b); - Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); - Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); - Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); - Module["HEAPF32"] = HEAPF32 = new Float32Array(b); - Module["HEAPF64"] = HEAPF64 = new Float64Array(b); - } - var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; - assert(INITIAL_MEMORY >= 5242880, "INITIAL_MEMORY should be larger than STACK_SIZE, was " + INITIAL_MEMORY + "! (STACK_SIZE=" + 5242880 + ")"); - if (ENVIRONMENT_IS_PTHREAD) { - wasmMemory = Module["wasmMemory"]; - } else { - if (Module["wasmMemory"]) { - wasmMemory = Module["wasmMemory"]; - } else { - wasmMemory = new WebAssembly.Memory({ "initial": INITIAL_MEMORY / 65536, "maximum": 4294967296 / 65536, "shared": true }); - if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) { - err("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"); - if (ENVIRONMENT_IS_NODE) { - err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"); - } - throw Error("bad memory"); - } - } - } - updateMemoryViews(); - INITIAL_MEMORY = wasmMemory.buffer.byteLength; - var wasmTable; - var __ATPRERUN__ = []; - var __ATINIT__ = []; - var __ATPOSTRUN__ = []; - function keepRuntimeAlive() { - return noExitRuntime; - } - function preRun() { - if (Module["preRun"]) { - if (typeof Module["preRun"] == "function") - Module["preRun"] = [Module["preRun"]]; - while (Module["preRun"].length) { - addOnPreRun(Module["preRun"].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); - } - function initRuntime() { - if (ENVIRONMENT_IS_PTHREAD) - return; - if (!Module["noFSInit"] && !FS.init.initialized) - FS.init(); - FS.ignorePermissions = false; - callRuntimeCallbacks(__ATINIT__); - } - function postRun() { - if (ENVIRONMENT_IS_PTHREAD) - return; - if (Module["postRun"]) { - if (typeof Module["postRun"] == "function") - Module["postRun"] = [Module["postRun"]]; - while (Module["postRun"].length) { - addOnPostRun(Module["postRun"].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); - } - function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); - } - function addOnInit(cb) { - __ATINIT__.unshift(cb); - } - function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); - } - var runDependencies = 0; - var dependenciesFulfilled = null; - function getUniqueRunDependency(id) { - return id; - } - function addRunDependency(id) { - runDependencies++; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - } - function removeRunDependency(id) { - runDependencies--; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - if (runDependencies == 0) { - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); - } - } - } - function abort(what) { - if (Module["onAbort"]) { - Module["onAbort"](what); - } - what = "Aborted(" + what + ")"; - err(what); - ABORT = true; - EXITSTATUS = 1; - what += ". Build with -sASSERTIONS for more info."; - var e = new WebAssembly.RuntimeError(what); - readyPromiseReject(e); - throw e; - } - var dataURIPrefix = "data:application/octet-stream;base64,"; - function isDataURI(filename) { - return filename.startsWith(dataURIPrefix); - } - var wasmBinaryFile; - wasmBinaryFile = "web-ifc-mt.wasm"; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) { - return readBinary(file); - } - throw "both async and sync fetching of the wasm failed"; - } catch (err2) { - abort(err2); - } - } - function getBinaryPromise() { - if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { - if (typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - if (!response["ok"]) { - throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; - } - return response["arrayBuffer"](); - }).catch(function() { - return getBinary(wasmBinaryFile); - }); - } - } - return Promise.resolve().then(function() { - return getBinary(wasmBinaryFile); - }); - } - function createWasm() { - var info = { "a": wasmImports }; - function receiveInstance(instance, module2) { - var exports3 = instance.exports; - Module["asm"] = exports3; - registerTLSInit(Module["asm"]["ka"]); - wasmTable = Module["asm"]["ia"]; - addOnInit(Module["asm"]["ha"]); - wasmModule = module2; - PThread.loadWasmModuleToAllWorkers(() => removeRunDependency()); - } - addRunDependency(); - function receiveInstantiationResult(result) { - receiveInstance(result["instance"], result["module"]); - } - function instantiateArrayBuffer(receiver) { - return getBinaryPromise().then(function(binary) { - return WebAssembly.instantiate(binary, info); - }).then(function(instance) { - return instance; - }).then(receiver, function(reason) { - err("failed to asynchronously prepare wasm: " + reason); - abort(reason); - }); - } - function instantiateAsync() { - if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - var result = WebAssembly.instantiateStreaming(response, info); - return result.then(receiveInstantiationResult, function(reason) { - err("wasm streaming compile failed: " + reason); - err("falling back to ArrayBuffer instantiation"); - return instantiateArrayBuffer(receiveInstantiationResult); - }); - }); - } else { - return instantiateArrayBuffer(receiveInstantiationResult); - } - } - if (Module["instantiateWasm"]) { - try { - var exports2 = Module["instantiateWasm"](info, receiveInstance); - return exports2; - } catch (e) { - err("Module.instantiateWasm callback failed with error: " + e); - readyPromiseReject(e); - } - } - instantiateAsync().catch(readyPromiseReject); - return {}; - } - var tempDouble; - var tempI64; - function ExitStatus(status) { - this.name = "ExitStatus"; - this.message = "Program terminated with exit(" + status + ")"; - this.status = status; - } - function killThread(pthread_ptr) { - var worker = PThread.pthreads[pthread_ptr]; - delete PThread.pthreads[pthread_ptr]; - worker.terminate(); - __emscripten_thread_free_data(pthread_ptr); - PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); - worker.pthread_ptr = 0; - } - function cancelThread(pthread_ptr) { - var worker = PThread.pthreads[pthread_ptr]; - worker.postMessage({ "cmd": "cancel" }); - } - function cleanupThread(pthread_ptr) { - var worker = PThread.pthreads[pthread_ptr]; - assert(worker); - PThread.returnWorkerToPool(worker); - } - function spawnThread(threadParams) { - var worker = PThread.getNewWorker(); - if (!worker) { - return 6; - } - PThread.runningWorkers.push(worker); - PThread.pthreads[threadParams.pthread_ptr] = worker; - worker.pthread_ptr = threadParams.pthread_ptr; - var msg = { "cmd": "run", "start_routine": threadParams.startRoutine, "arg": threadParams.arg, "pthread_ptr": threadParams.pthread_ptr }; - worker.postMessage(msg, threadParams.transferList); - return 0; - } - var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - }, normalizeArray: (parts, allowAboveRoot) => { - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === ".") { - parts.splice(i, 1); - } else if (last === "..") { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift(".."); - } - } - return parts; - }, normalize: (path) => { - var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; - path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/"); - if (!path && !isAbsolute) { - path = "."; - } - if (path && trailingSlash) { - path += "/"; - } - return (isAbsolute ? "/" : "") + path; - }, dirname: (path) => { - var result = PATH.splitPath(path), root = result[0], dir = result[1]; - if (!root && !dir) { - return "."; - } - if (dir) { - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - }, basename: (path) => { - if (path === "/") - return "/"; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf("/"); - if (lastSlash === -1) - return path; - return path.substr(lastSlash + 1); - }, join: function() { - var paths = Array.prototype.slice.call(arguments); - return PATH.normalize(paths.join("/")); - }, join2: (l, r) => { - return PATH.normalize(l + "/" + r); - } }; - function getRandomDevice() { - if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { - var randomBuffer = new Uint8Array(1); - return () => { - crypto.getRandomValues(randomBuffer); - return randomBuffer[0]; - }; - } else - return () => abort("randomDevice"); - } - var PATH_FS = { resolve: function() { - var resolvedPath = "", resolvedAbsolute = false; - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = i >= 0 ? arguments[i] : FS.cwd(); - if (typeof path != "string") { - throw new TypeError("Arguments to path.resolve must be strings"); - } else if (!path) { - return ""; - } - resolvedPath = path + "/" + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/"); - return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; - }, relative: (from, to) => { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== "") - break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== "") - break; - } - if (start > end) - return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split("/")); - var toParts = trim(to.split("/")); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push(".."); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join("/"); - } }; - function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) - u8array.length = numBytesWritten; - return u8array; - } - var TTY = { ttys: [], init: function() { - }, shutdown: function() { - }, register: function(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops }; - FS.registerDevice(dev, TTY.stream_ops); - }, stream_ops: { open: function(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - }, close: function(stream) { - stream.tty.ops.fsync(stream.tty); - }, fsync: function(stream) { - stream.tty.ops.fsync(stream.tty); - }, read: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === void 0 && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === void 0) - break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, write: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset + i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } }, default_tty_ops: { get_char: function(tty) { - if (!tty.input.length) { - var result = null; - if (typeof window != "undefined" && typeof window.prompt == "function") { - result = window.prompt("Input: "); - if (result !== null) { - result += "\n"; - } - } else if (typeof readline == "function") { - result = readline(); - if (result !== null) { - result += "\n"; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); - }, put_char: function(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) - tty.output.push(val); - } - }, fsync: function(tty) { - if (tty.output && tty.output.length > 0) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } }, default_tty1_ops: { put_char: function(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) - tty.output.push(val); - } - }, fsync: function(tty) { - if (tty.output && tty.output.length > 0) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } } }; - function mmapAlloc(size) { - abort(); - } - var MEMFS = { ops_table: null, mount: function(mount) { - return MEMFS.createNode(null, "/", 16384 | 511, 0); - }, createNode: function(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - throw new FS.ErrnoError(63); - } - if (!MEMFS.ops_table) { - MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; - } - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - if (parent) { - parent.contents[name] = node; - parent.timestamp = node.timestamp; - } - return node; - }, getFileDataAsTypedArray: function(node) { - if (!node.contents) - return new Uint8Array(0); - if (node.contents.subarray) - return node.contents.subarray(0, node.usedBytes); - return new Uint8Array(node.contents); - }, expandFileStorage: function(node, newCapacity) { - newCapacity >>>= 0; - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) - return; - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0); - if (prevCapacity != 0) - newCapacity = Math.max(newCapacity, 256); - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); - if (node.usedBytes > 0) - node.contents.set(oldContents.subarray(0, node.usedBytes), 0); - }, resizeFileStorage: function(node, newSize) { - newSize >>>= 0; - if (node.usedBytes == newSize) - return; - if (newSize == 0) { - node.contents = null; - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); - } - node.usedBytes = newSize; - } - }, node_ops: { getattr: function(node) { - var attr = {}; - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - }, setattr: function(node, attr) { - if (attr.mode !== void 0) { - node.mode = attr.mode; - } - if (attr.timestamp !== void 0) { - node.timestamp = attr.timestamp; - } - if (attr.size !== void 0) { - MEMFS.resizeFileStorage(node, attr.size); - } - }, lookup: function(parent, name) { - throw FS.genericErrors[44]; - }, mknod: function(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - }, rename: function(old_node, new_dir, new_name) { - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } - } - } - delete old_node.parent.contents[old_node.name]; - old_node.parent.timestamp = Date.now(); - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - new_dir.timestamp = old_node.parent.timestamp; - old_node.parent = new_dir; - }, unlink: function(parent, name) { - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, rmdir: function(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, readdir: function(node) { - var entries = [".", ".."]; - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - }, symlink: function(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); - node.link = oldpath; - return node; - }, readlink: function(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - } }, stream_ops: { read: function(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) - return 0; - var size = Math.min(stream.node.usedBytes - position, length); - if (size > 8 && contents.subarray) { - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) - buffer[offset + i] = contents[position + i]; - } - return size; - }, write: function(stream, buffer, offset, length, position, canOwn) { - if (buffer.buffer === GROWABLE_HEAP_I8().buffer) { - canOwn = false; - } - if (!length) - return 0; - var node = stream.node; - node.timestamp = Date.now(); - if (buffer.subarray && (!node.contents || node.contents.subarray)) { - if (canOwn) { - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - MEMFS.expandFileStorage(node, position + length); - if (node.contents.subarray && buffer.subarray) { - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - }, llseek: function(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - }, allocate: function(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - }, mmap: function(stream, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - if (!(flags & 2) && contents.buffer === GROWABLE_HEAP_I8().buffer) { - allocated = false; - ptr = contents.byteOffset; - } else { - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call(contents, position, position + length); - } - } - allocated = true; - ptr = mmapAlloc(); - if (!ptr) { - throw new FS.ErrnoError(48); - } - ptr >>>= 0; - GROWABLE_HEAP_I8().set(contents, ptr >>> 0); - } - return { ptr, allocated }; - }, msync: function(stream, buffer, offset, length, mmapFlags) { - MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - return 0; - } } }; - function asyncLoad(url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; - readAsync(url, (arrayBuffer) => { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) - removeRunDependency(); - }, (event) => { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) - addRunDependency(); - } - var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { - path = PATH_FS.resolve(path); - if (!path) - return { path: "", node: null }; - var defaults = { follow_mount: true, recurse_count: 0 }; - opts = Object.assign(defaults, opts); - if (opts.recurse_count > 8) { - throw new FS.ErrnoError(32); - } - var parts = path.split("/").filter((p) => !!p); - var current = FS.root; - var current_path = "/"; - for (var i = 0; i < parts.length; i++) { - var islast = i === parts.length - 1; - if (islast && opts.parent) { - break; - } - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - if (FS.isMountpoint(current)) { - if (!islast || islast && opts.follow_mount) { - current = current.mounted.root; - } - } - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); - current = lookup.node; - if (count++ > 40) { - throw new FS.ErrnoError(32); - } - } - } - } - return { path: current_path, node: current }; - }, getPath: (node) => { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) - return mount; - return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; - } - path = path ? node.name + "/" + path : node.name; - node = node.parent; - } - }, hashName: (parentid, name) => { - var hash = 0; - for (var i = 0; i < name.length; i++) { - hash = (hash << 5) - hash + name.charCodeAt(i) | 0; - } - return (parentid + hash >>> 0) % FS.nameTable.length; - }, hashAddNode: (node) => { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - }, hashRemoveNode: (node) => { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; - } - current = current.name_next; - } - } - }, lookupNode: (parent, name) => { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode, parent); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - return FS.lookup(parent, name); - }, createNode: (parent, name, mode, rdev) => { - var node = new FS.FSNode(parent, name, mode, rdev); - FS.hashAddNode(node); - return node; - }, destroyNode: (node) => { - FS.hashRemoveNode(node); - }, isRoot: (node) => { - return node === node.parent; - }, isMountpoint: (node) => { - return !!node.mounted; - }, isFile: (mode) => { - return (mode & 61440) === 32768; - }, isDir: (mode) => { - return (mode & 61440) === 16384; - }, isLink: (mode) => { - return (mode & 61440) === 40960; - }, isChrdev: (mode) => { - return (mode & 61440) === 8192; - }, isBlkdev: (mode) => { - return (mode & 61440) === 24576; - }, isFIFO: (mode) => { - return (mode & 61440) === 4096; - }, isSocket: (mode) => { - return (mode & 49152) === 49152; - }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { - var flags = FS.flagModes[str]; - if (typeof flags == "undefined") { - throw new Error("Unknown file open mode: " + str); - } - return flags; - }, flagsToPermissionString: (flag) => { - var perms = ["r", "w", "rw"][flag & 3]; - if (flag & 512) { - perms += "w"; - } - return perms; - }, nodePermissions: (node, perms) => { - if (FS.ignorePermissions) { - return 0; - } - if (perms.includes("r") && !(node.mode & 292)) { - return 2; - } else if (perms.includes("w") && !(node.mode & 146)) { - return 2; - } else if (perms.includes("x") && !(node.mode & 73)) { - return 2; - } - return 0; - }, mayLookup: (dir) => { - var errCode = FS.nodePermissions(dir, "x"); - if (errCode) - return errCode; - if (!dir.node_ops.lookup) - return 2; - return 0; - }, mayCreate: (dir, name) => { - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) { - } - return FS.nodePermissions(dir, "wx"); - }, mayDelete: (dir, name, isdir) => { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, "wx"); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - }, mayOpen: (node, flags) => { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { - for (var fd = fd_start; fd <= fd_end; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { - if (!FS.FSStream) { - FS.FSStream = function() { - this.shared = {}; - }; - FS.FSStream.prototype = {}; - Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { - return this.node; - }, set: function(val) { - this.node = val; - } }, isRead: { get: function() { - return (this.flags & 2097155) !== 1; - } }, isWrite: { get: function() { - return (this.flags & 2097155) !== 0; - } }, isAppend: { get: function() { - return this.flags & 1024; - } }, flags: { get: function() { - return this.shared.flags; - }, set: function(val) { - this.shared.flags = val; - } }, position: { get: function() { - return this.shared.position; - }, set: function(val) { - this.shared.position = val; - } } }); - } - stream = Object.assign(new FS.FSStream(), stream); - var fd = FS.nextfd(fd_start, fd_end); - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - }, closeStream: (fd) => { - FS.streams[fd] = null; - }, chrdev_stream_ops: { open: (stream) => { - var device = FS.getDevice(stream.node.rdev); - stream.stream_ops = device.stream_ops; - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - }, llseek: () => { - throw new FS.ErrnoError(70); - } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => { - FS.devices[dev] = { stream_ops: ops }; - }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => { - var mounts = []; - var check = [mount]; - while (check.length) { - var m = check.pop(); - mounts.push(m); - check.push.apply(check, m.mounts); - } - return mounts; - }, syncfs: (populate, callback) => { - if (typeof populate == "function") { - callback = populate; - populate = false; - } - FS.syncFSRequests++; - if (FS.syncFSRequests > 1) { - err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); - } - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - function doCallback(errCode) { - FS.syncFSRequests--; - return callback(errCode); - } - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); - } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - } - mounts.forEach((mount) => { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - }, mount: (type, opts, mountpoint) => { - var root = mountpoint === "/"; - var pseudo = !mountpoint; - var node; - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - mountpoint = lookup.path; - node = lookup.node; - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - var mount = { type, opts, mountpoint, mounts: [] }; - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - if (root) { - FS.root = mountRoot; - } else if (node) { - node.mounted = mount; - if (node.mount) { - node.mount.mounts.push(mount); - } - } - return mountRoot; - }, unmount: (mountpoint) => { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - Object.keys(FS.nameTable).forEach((hash) => { - var current = FS.nameTable[hash]; - while (current) { - var next = current.name_next; - if (mounts.includes(current.mount)) { - FS.destroyNode(current); - } - current = next; - } - }); - node.mounted = null; - var idx = node.mount.mounts.indexOf(mount); - node.mount.mounts.splice(idx, 1); - }, lookup: (parent, name) => { - return parent.node_ops.lookup(parent, name); - }, mknod: (path, mode, dev) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === "." || name === "..") { - throw new FS.ErrnoError(28); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - }, create: (path, mode) => { - mode = mode !== void 0 ? mode : 438; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - }, mkdir: (path, mode) => { - mode = mode !== void 0 ? mode : 511; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - }, mkdirTree: (path, mode) => { - var dirs = path.split("/"); - var d = ""; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) - continue; - d += "/" + dirs[i]; - try { - FS.mkdir(d, mode); - } catch (e) { - if (e.errno != 20) - throw e; - } - } - }, mkdev: (path, mode, dev) => { - if (typeof dev == "undefined") { - dev = mode; - mode = 438; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - }, symlink: (oldpath, newpath) => { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - }, rename: (old_path, new_path) => { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - var lookup, old_dir, new_dir; - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - if (!old_dir || !new_dir) - throw new FS.ErrnoError(44); - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - var old_node = FS.lookupNode(old_dir, old_name); - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(28); - } - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(55); - } - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (old_node === new_node) { - return; - } - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { - throw new FS.ErrnoError(10); - } - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - FS.hashRemoveNode(old_node); - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - } catch (e) { - throw e; - } finally { - FS.hashAddNode(old_node); - } - }, rmdir: (path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - }, readdir: (path) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); - }, unlink: (path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - }, readlink: (path) => { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); - }, stat: (path, dontFollow) => { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); - }, lstat: (path) => { - return FS.stat(path, true); - }, chmod: (path, mode, dontFollow) => { - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() }); - }, lchmod: (path, mode) => { - FS.chmod(path, mode, true); - }, fchmod: (fd, mode) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chmod(stream.node, mode); - }, chown: (path, uid, gid, dontFollow) => { - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { timestamp: Date.now() }); - }, lchown: (path, uid, gid) => { - FS.chown(path, uid, gid, true); - }, fchown: (fd, uid, gid) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chown(stream.node, uid, gid); - }, truncate: (path, len) => { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); - }, ftruncate: (fd, len) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.truncate(stream.node, len); - }, utime: (path, atime, mtime) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); - }, open: (path, flags, mode) => { - if (path === "") { - throw new FS.ErrnoError(44); - } - flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; - mode = typeof mode == "undefined" ? 438 : mode; - if (flags & 64) { - mode = mode & 4095 | 32768; - } else { - mode = 0; - } - var node; - if (typeof path == "object") { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); - node = lookup.node; - } catch (e) { - } - } - var created = false; - if (flags & 64) { - if (node) { - if (flags & 128) { - throw new FS.ErrnoError(20); - } - } else { - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - if (flags & 65536 && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - if (flags & 512 && !created) { - FS.truncate(node, 0); - } - flags &= ~(128 | 512 | 131072); - var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }); - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module["logReadFiles"] && !(flags & 1)) { - if (!FS.readFiles) - FS.readFiles = {}; - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } - } - return stream; - }, close: (stream) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) - stream.getdents = null; - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - }, isClosed: (stream) => { - return stream.fd === null; - }, llseek: (stream, offset, whence) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - }, read: (stream, buffer, offset, length, position) => { - offset >>>= 0; - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position != "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); - if (!seeking) - stream.position += bytesRead; - return bytesRead; - }, write: (stream, buffer, offset, length, position, canOwn) => { - offset >>>= 0; - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - FS.llseek(stream, 0, 2); - } - var seeking = typeof position != "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); - if (!seeking) - stream.position += bytesWritten; - return bytesWritten; - }, allocate: (stream, offset, length) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - }, mmap: (stream, length, position, prot, flags) => { - if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - return stream.stream_ops.mmap(stream, length, position, prot, flags); - }, msync: (stream, buffer, offset, length, mmapFlags) => { - offset >>>= 0; - if (!stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - }, readFile: (path, opts = {}) => { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || "binary"; - if (opts.encoding !== "utf8" && opts.encoding !== "binary") { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === "utf8") { - ret = UTF8ArrayToString(buf, 0); - } else if (opts.encoding === "binary") { - ret = buf; - } - FS.close(stream); - return ret; - }, writeFile: (path, data, opts = {}) => { - opts.flags = opts.flags || 577; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == "string") { - var buf = new Uint8Array(lengthBytesUTF8(data) + 1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn); - } else { - throw new Error("Unsupported data type"); - } - FS.close(stream); - }, cwd: () => FS.currentPath, chdir: (path) => { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); - } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); - } - var errCode = FS.nodePermissions(lookup.node, "x"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - FS.currentPath = lookup.path; - }, createDefaultDirectories: () => { - FS.mkdir("/tmp"); - FS.mkdir("/home"); - FS.mkdir("/home/web_user"); - }, createDefaultDevices: () => { - FS.mkdir("/dev"); - FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length }); - FS.mkdev("/dev/null", FS.makedev(1, 3)); - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev("/dev/tty", FS.makedev(5, 0)); - FS.mkdev("/dev/tty1", FS.makedev(6, 0)); - var random_device = getRandomDevice(); - FS.createDevice("/dev", "random", random_device); - FS.createDevice("/dev", "urandom", random_device); - FS.mkdir("/dev/shm"); - FS.mkdir("/dev/shm/tmp"); - }, createSpecialDirectories: () => { - FS.mkdir("/proc"); - var proc_self = FS.mkdir("/proc/self"); - FS.mkdir("/proc/self/fd"); - FS.mount({ mount: () => { - var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); - node.node_ops = { lookup: (parent, name) => { - var fd = +name; - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); - var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; - ret.parent = ret; - return ret; - } }; - return node; - } }, {}, "/proc/self/fd"); - }, createStandardStreams: () => { - if (Module["stdin"]) { - FS.createDevice("/dev", "stdin", Module["stdin"]); - } else { - FS.symlink("/dev/tty", "/dev/stdin"); - } - if (Module["stdout"]) { - FS.createDevice("/dev", "stdout", null, Module["stdout"]); - } else { - FS.symlink("/dev/tty", "/dev/stdout"); - } - if (Module["stderr"]) { - FS.createDevice("/dev", "stderr", null, Module["stderr"]); - } else { - FS.symlink("/dev/tty1", "/dev/stderr"); - } - FS.open("/dev/stdin", 0); - FS.open("/dev/stdout", 1); - FS.open("/dev/stderr", 1); - }, ensureErrnoError: () => { - if (FS.ErrnoError) - return; - FS.ErrnoError = function ErrnoError(errno, node) { - this.node = node; - this.setErrno = function(errno2) { - this.errno = errno2; - }; - this.setErrno(errno); - this.message = "FS error"; - }; - FS.ErrnoError.prototype = new Error(); - FS.ErrnoError.prototype.constructor = FS.ErrnoError; - [44].forEach((code) => { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ""; - }); - }, staticInit: () => { - FS.ensureErrnoError(); - FS.nameTable = new Array(4096); - FS.mount(MEMFS, {}, "/"); - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - FS.filesystems = { "MEMFS": MEMFS }; - }, init: (input, output, error) => { - FS.init.initialized = true; - FS.ensureErrnoError(); - Module["stdin"] = input || Module["stdin"]; - Module["stdout"] = output || Module["stdout"]; - Module["stderr"] = error || Module["stderr"]; - FS.createStandardStreams(); - }, quit: () => { - FS.init.initialized = false; - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - }, getMode: (canRead, canWrite) => { - var mode = 0; - if (canRead) - mode |= 292 | 73; - if (canWrite) - mode |= 146; - return mode; - }, findObject: (path, dontResolveLastLink) => { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; - } - return ret.object; - }, analyzePath: (path, dontResolveLastLink) => { - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) { - } - var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === "/"; - } catch (e) { - ret.error = e.errno; - } - return ret; - }, createPath: (parent, path, canRead, canWrite) => { - parent = typeof parent == "string" ? parent : FS.getPath(parent); - var parts = path.split("/").reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) - continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - } - parent = current; - } - return current; - }, createFile: (parent, name, properties, canRead, canWrite) => { - var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); - return FS.create(path, mode); - }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { - var path = name; - if (parent) { - parent = typeof parent == "string" ? parent : FS.getPath(parent); - path = name ? PATH.join2(parent, name) : parent; - } - var mode = FS.getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data == "string") { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) - arr[i] = data.charCodeAt(i); - data = arr; - } - FS.chmod(node, mode | 146); - var stream = FS.open(node, 577); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - return node; - }, createDevice: (parent, name, input, output) => { - var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); - if (!FS.createDevice.major) - FS.createDevice.major = 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - FS.registerDevice(dev, { open: (stream) => { - stream.seekable = false; - }, close: (stream) => { - if (output && output.buffer && output.buffer.length) { - output(10); - } - }, read: (stream, buffer, offset, length, pos) => { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === void 0 && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === void 0) - break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, write: (stream, buffer, offset, length, pos) => { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset + i]); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } }); - return FS.mkdev(path, mode, dev); - }, forceLoadFile: (obj) => { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) - return true; - if (typeof XMLHttpRequest != "undefined") { - 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."); - } else if (read_) { - try { - obj.contents = intArrayFromString(read_(obj.url), true); - obj.usedBytes = obj.contents.length; - } catch (e) { - throw new FS.ErrnoError(29); - } - } else { - throw new Error("Cannot load without read() or XMLHttpRequest."); - } - }, createLazyFile: (parent, name, url, canRead, canWrite) => { - function LazyUint8Array() { - this.lengthKnown = false; - this.chunks = []; - } - LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { - if (idx > this.length - 1 || idx < 0) { - return void 0; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = idx / this.chunkSize | 0; - return this.getter(chunkNum)[chunkOffset]; - }; - LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { - this.getter = getter; - }; - LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { - var xhr = new XMLHttpRequest(); - xhr.open("HEAD", url, false); - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; - var chunkSize = 1024 * 1024; - if (!hasByteServing) - chunkSize = datalength; - var doXHR = (from, to) => { - if (from > to) - throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength - 1) - throw new Error("only " + datalength + " bytes available! programmer error!"); - var xhr2 = new XMLHttpRequest(); - xhr2.open("GET", url, false); - if (datalength !== chunkSize) - xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to); - xhr2.responseType = "arraybuffer"; - if (xhr2.overrideMimeType) { - xhr2.overrideMimeType("text/plain; charset=x-user-defined"); - } - xhr2.send(null); - if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr2.status); - if (xhr2.response !== void 0) { - return new Uint8Array(xhr2.response || []); - } - return intArrayFromString(xhr2.responseText || "", true); - }; - var lazyArray2 = this; - lazyArray2.setDataGetter((chunkNum) => { - var start = chunkNum * chunkSize; - var end = (chunkNum + 1) * chunkSize - 1; - end = Math.min(end, datalength - 1); - if (typeof lazyArray2.chunks[chunkNum] == "undefined") { - lazyArray2.chunks[chunkNum] = doXHR(start, end); - } - if (typeof lazyArray2.chunks[chunkNum] == "undefined") - throw new Error("doXHR failed!"); - return lazyArray2.chunks[chunkNum]; - }); - if (usesGzip || !datalength) { - chunkSize = datalength = 1; - datalength = this.getter(0).length; - chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); - } - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - }; - if (typeof XMLHttpRequest != "undefined") { - if (!ENVIRONMENT_IS_WORKER) - throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; - var lazyArray = new LazyUint8Array(); - Object.defineProperties(lazyArray, { length: { get: function() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._length; - } }, chunkSize: { get: function() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._chunkSize; - } } }); - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url }; - } - var node = FS.createFile(parent, name, properties, canRead, canWrite); - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; - } - Object.defineProperties(node, { usedBytes: { get: function() { - return this.contents.length; - } } }); - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach((key) => { - var fn = node.stream_ops[key]; - stream_ops[key] = function forceLoadLazyFile() { - FS.forceLoadFile(node); - return fn.apply(null, arguments); - }; - }); - function writeChunks(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= contents.length) - return 0; - var size = Math.min(contents.length - position, length); - if (contents.slice) { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; - } - } else { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents.get(position + i); - } - } - return size; - } - stream_ops.read = (stream, buffer, offset, length, position) => { - FS.forceLoadFile(node); - return writeChunks(stream, buffer, offset, length, position); - }; - stream_ops.mmap = (stream, length, position, prot, flags) => { - FS.forceLoadFile(node); - var ptr = mmapAlloc(); - if (!ptr) { - throw new FS.ErrnoError(48); - } - writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position); - return { ptr, allocated: true }; - }; - node.stream_ops = stream_ops; - return node; - }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - function processData(byteArray) { - function finish(byteArray2) { - if (preFinish) - preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); - } - if (onload) - onload(); - removeRunDependency(); - } - if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { - if (onerror) - onerror(); - removeRunDependency(); - })) { - return; - } - finish(byteArray); - } - addRunDependency(); - if (typeof url == "string") { - asyncLoad(url, (byteArray) => processData(byteArray), onerror); - } else { - processData(url); - } - }, indexedDB: () => { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - }, DB_NAME: () => { - return "EM_FS_" + window.location.pathname; - }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = () => { - out("creating db"); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - openRequest.onsuccess = () => { - var db = openRequest.result; - var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) - onload(); - else - onerror(); - } - paths.forEach((path) => { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = () => { - ok++; - if (ok + fail == total) - finish(); - }; - putRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }, loadFilesFromDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = onerror; - openRequest.onsuccess = () => { - var db = openRequest.result; - try { - var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); - } catch (e) { - onerror(e); - return; - } - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) - onload(); - else - onerror(); - } - paths.forEach((path) => { - var getRequest = files.get(path); - getRequest.onsuccess = () => { - if (FS.analyzePath(path).exists) { - FS.unlink(path); - } - FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); - ok++; - if (ok + fail == total) - finish(); - }; - getRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - } }; - var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { - if (PATH.isAbs(path)) { - return path; - } - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = SYSCALLS.getStreamFromFD(dirfd); - dir = dirstream.path; - } - if (path.length == 0) { - if (!allowEmpty) { - throw new FS.ErrnoError(44); - } - return dir; - } - return PATH.join2(dir, path); - }, doStat: function(func, path, buf) { - try { - var stat = func(path); - } catch (e) { - if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { - return -54; - } - throw e; - } - GROWABLE_HEAP_I32()[buf >>> 2] = stat.dev; - GROWABLE_HEAP_I32()[buf + 8 >>> 2] = stat.ino; - GROWABLE_HEAP_I32()[buf + 12 >>> 2] = stat.mode; - GROWABLE_HEAP_U32()[buf + 16 >>> 2] = stat.nlink; - GROWABLE_HEAP_I32()[buf + 20 >>> 2] = stat.uid; - GROWABLE_HEAP_I32()[buf + 24 >>> 2] = stat.gid; - GROWABLE_HEAP_I32()[buf + 28 >>> 2] = stat.rdev; - tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 40 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >>> 2] = tempI64[1]; - GROWABLE_HEAP_I32()[buf + 48 >>> 2] = 4096; - GROWABLE_HEAP_I32()[buf + 52 >>> 2] = stat.blocks; - var atime = stat.atime.getTime(); - var mtime = stat.mtime.getTime(); - var ctime = stat.ctime.getTime(); - tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 56 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >>> 2] = tempI64[1]; - GROWABLE_HEAP_U32()[buf + 64 >>> 2] = atime % 1e3 * 1e3; - tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 72 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >>> 2] = tempI64[1]; - GROWABLE_HEAP_U32()[buf + 80 >>> 2] = mtime % 1e3 * 1e3; - tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 88 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >>> 2] = tempI64[1]; - GROWABLE_HEAP_U32()[buf + 96 >>> 2] = ctime % 1e3 * 1e3; - tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 104 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 108 >>> 2] = tempI64[1]; - return 0; - }, doMsync: function(addr, stream, len, flags, offset) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (flags & 2) { - return 0; - } - addr >>>= 0; - var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - }, varargs: void 0, get: function() { - SYSCALLS.varargs += 4; - var ret = GROWABLE_HEAP_I32()[SYSCALLS.varargs - 4 >>> 2]; - return ret; - }, getStr: function(ptr) { - var ret = UTF8ToString(ptr); - return ret; - }, getStreamFromFD: function(fd) { - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); - return stream; - } }; - function _proc_exit(code) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(1, 1, code); - EXITSTATUS = code; - if (!keepRuntimeAlive()) { - PThread.terminateAllThreads(); - if (Module["onExit"]) - Module["onExit"](code); - ABORT = true; - } - quit_(code, new ExitStatus(code)); - } - function exitJS(status, implicit) { - EXITSTATUS = status; - if (!implicit) { - if (ENVIRONMENT_IS_PTHREAD) { - exitOnMainThread(status); - throw "unwind"; - } - } - _proc_exit(status); - } - var _exit = exitJS; - function handleException(e) { - if (e instanceof ExitStatus || e == "unwind") { - return EXITSTATUS; - } - quit_(1, e); - } - var PThread = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init: function() { - if (ENVIRONMENT_IS_PTHREAD) { - PThread.initWorker(); - } else { - PThread.initMainThread(); - } - }, initMainThread: function() { - var pthreadPoolSize = navigator.hardwareConcurrency; - while (pthreadPoolSize--) { - PThread.allocateUnusedWorker(); - } - }, initWorker: function() { - noExitRuntime = false; - }, setExitStatus: function(status) { - EXITSTATUS = status; - }, terminateAllThreads: function() { - for (var worker of Object.values(PThread.pthreads)) { - PThread.returnWorkerToPool(worker); - } - for (var worker of PThread.unusedWorkers) { - worker.terminate(); - } - PThread.unusedWorkers = []; - }, returnWorkerToPool: function(worker) { - var pthread_ptr = worker.pthread_ptr; - delete PThread.pthreads[pthread_ptr]; - PThread.unusedWorkers.push(worker); - PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); - worker.pthread_ptr = 0; - __emscripten_thread_free_data(pthread_ptr); - }, receiveObjectTransfer: function(data) { - }, threadInitTLS: function() { - PThread.tlsInitFunctions.forEach((f) => f()); - }, loadWasmModuleToWorker: (worker) => new Promise((onFinishedLoading) => { - worker.onmessage = (e) => { - var d = e["data"]; - var cmd = d["cmd"]; - if (worker.pthread_ptr) - PThread.currentProxiedOperationCallerThread = worker.pthread_ptr; - if (d["targetThread"] && d["targetThread"] != _pthread_self()) { - var targetWorker = PThread.pthreads[d.targetThread]; - if (targetWorker) { - targetWorker.postMessage(d, d["transferList"]); - } else { - err('Internal error! Worker sent a message "' + cmd + '" to target pthread ' + d["targetThread"] + ", but that thread no longer exists!"); - } - PThread.currentProxiedOperationCallerThread = void 0; - return; - } - if (cmd === "processProxyingQueue") { - executeNotifiedProxyingQueue(d["queue"]); - } else if (cmd === "spawnThread") { - spawnThread(d); - } else if (cmd === "cleanupThread") { - cleanupThread(d["thread"]); - } else if (cmd === "killThread") { - killThread(d["thread"]); - } else if (cmd === "cancelThread") { - cancelThread(d["thread"]); - } else if (cmd === "loaded") { - worker.loaded = true; - onFinishedLoading(worker); - } else if (cmd === "print") { - out("Thread " + d["threadId"] + ": " + d["text"]); - } else if (cmd === "printErr") { - err("Thread " + d["threadId"] + ": " + d["text"]); - } else if (cmd === "alert") { - alert("Thread " + d["threadId"] + ": " + d["text"]); - } else if (d.target === "setimmediate") { - worker.postMessage(d); - } else if (cmd === "callHandler") { - Module[d["handler"]](...d["args"]); - } else if (cmd) { - err("worker sent an unknown command " + cmd); - } - PThread.currentProxiedOperationCallerThread = void 0; - }; - worker.onerror = (e) => { - var message = "worker sent an error!"; - err(message + " " + e.filename + ":" + e.lineno + ": " + e.message); - throw e; - }; - var handlers = []; - var knownHandlers = ["onExit", "onAbort", "print", "printErr"]; - for (var handler of knownHandlers) { - if (Module.hasOwnProperty(handler)) { - handlers.push(handler); - } - } - worker.postMessage({ "cmd": "load", "handlers": handlers, "urlOrBlob": Module["mainScriptUrlOrBlob"] || _scriptDir, "wasmMemory": wasmMemory, "wasmModule": wasmModule }); - }), loadWasmModuleToAllWorkers: function(onMaybeReady) { - if (ENVIRONMENT_IS_PTHREAD) { - return onMaybeReady(); - } - let pthreadPoolReady = Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker)); - pthreadPoolReady.then(onMaybeReady); - }, allocateUnusedWorker: function() { - var worker; - var pthreadMainJs = locateFile("web-ifc-mt.worker.js"); - worker = new Worker(pthreadMainJs); - PThread.unusedWorkers.push(worker); - }, getNewWorker: function() { - if (PThread.unusedWorkers.length == 0) { - PThread.allocateUnusedWorker(); - PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]); - } - return PThread.unusedWorkers.pop(); - } }; - Module["PThread"] = PThread; - function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - callbacks.shift()(Module); - } - } - function establishStackSpace() { - var pthread_ptr = _pthread_self(); - var stackTop = GROWABLE_HEAP_I32()[pthread_ptr + 52 >>> 2]; - var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 56 >>> 2]; - var stackMax = stackTop - stackSize; - _emscripten_stack_set_limits(stackTop, stackMax); - stackRestore(stackTop); - } - Module["establishStackSpace"] = establishStackSpace; - function exitOnMainThread(returnCode) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(2, 0, returnCode); - try { - _exit(returnCode); - } catch (e) { - handleException(e); - } - } - var wasmTableMirror = []; - function getWasmTableEntry(funcPtr) { - var func = wasmTableMirror[funcPtr]; - if (!func) { - if (funcPtr >= wasmTableMirror.length) - wasmTableMirror.length = funcPtr + 1; - wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); - } - return func; - } - function invokeEntryPoint(ptr, arg) { - var result = getWasmTableEntry(ptr)(arg); - if (keepRuntimeAlive()) { - PThread.setExitStatus(result); - } else { - __emscripten_thread_exit(result); - } - } - Module["invokeEntryPoint"] = invokeEntryPoint; - function registerTLSInit(tlsInitFunc) { - PThread.tlsInitFunctions.push(tlsInitFunc); - } - function ExceptionInfo(excPtr) { - this.excPtr = excPtr; - this.ptr = excPtr - 24; - this.set_type = function(type) { - GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2] = type; - }; - this.get_type = function() { - return GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2]; - }; - this.set_destructor = function(destructor) { - GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2] = destructor; - }; - this.get_destructor = function() { - return GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2]; - }; - this.set_refcount = function(refcount) { - GROWABLE_HEAP_I32()[this.ptr >>> 2] = refcount; - }; - this.set_caught = function(caught) { - caught = caught ? 1 : 0; - GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] = caught; - }; - this.get_caught = function() { - return GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] != 0; - }; - this.set_rethrown = function(rethrown) { - rethrown = rethrown ? 1 : 0; - GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] = rethrown; - }; - this.get_rethrown = function() { - return GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] != 0; - }; - this.init = function(type, destructor) { - this.set_adjusted_ptr(0); - this.set_type(type); - this.set_destructor(destructor); - this.set_refcount(0); - this.set_caught(false); - this.set_rethrown(false); - }; - this.add_ref = function() { - Atomics.add(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); - }; - this.release_ref = function() { - var prev = Atomics.sub(GROWABLE_HEAP_I32(), this.ptr + 0 >> 2, 1); - return prev === 1; - }; - this.set_adjusted_ptr = function(adjustedPtr) { - GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2] = adjustedPtr; - }; - this.get_adjusted_ptr = function() { - return GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2]; - }; - this.get_exception_ptr = function() { - var isPointer = ___cxa_is_pointer_type(this.get_type()); - if (isPointer) { - return GROWABLE_HEAP_U32()[this.excPtr >>> 2]; - } - var adjusted = this.get_adjusted_ptr(); - if (adjusted !== 0) - return adjusted; - return this.excPtr; - }; - } - function ___cxa_throw(ptr, type, destructor) { - var info = new ExceptionInfo(ptr); - info.init(type, destructor); - throw ptr; - } - function ___emscripten_init_main_thread_js(tb) { - __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB); - PThread.threadInitTLS(); - } - function ___emscripten_thread_cleanup(thread) { - if (!ENVIRONMENT_IS_PTHREAD) - cleanupThread(thread); - else - postMessage({ "cmd": "cleanupThread", "thread": thread }); - } - function __dlinit(main_dso_handle) { - } - var dlopenMissingError = "To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking"; - function __dlopen_js(handle) { - abort(dlopenMissingError); - } - function __dlsym_catchup_js(handle, symbolIndex) { - abort(dlopenMissingError); - } - var tupleRegistrations = {}; - function runDestructors(destructors) { - while (destructors.length) { - var ptr = destructors.pop(); - var del = destructors.pop(); - del(ptr); - } - } - function simpleReadValueFromPointer(pointer) { - return this["fromWireType"](GROWABLE_HEAP_I32()[pointer >>> 2]); - } - var awaitingDependencies = {}; - var registeredTypes = {}; - var typeDependencies = {}; - var char_0 = 48; - var char_9 = 57; - function makeLegalFunctionName(name) { - if (name === void 0) { - return "_unknown"; - } - name = name.replace(/[^a-zA-Z0-9_]/g, "$"); - var f = name.charCodeAt(0); - if (f >= char_0 && f <= char_9) { - return "_" + name; - } - return name; - } - function createNamedFunction(name, body) { - name = makeLegalFunctionName(name); - return new Function("body", "return function " + name + '() {\n "use strict"; return body.apply(this, arguments);\n};\n')(body); - } - function extendError(baseErrorType, errorName) { - var errorClass = createNamedFunction(errorName, function(message) { - this.name = errorName; - this.message = message; - var stack = new Error(message).stack; - if (stack !== void 0) { - this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); - } - }); - errorClass.prototype = Object.create(baseErrorType.prototype); - errorClass.prototype.constructor = errorClass; - errorClass.prototype.toString = function() { - if (this.message === void 0) { - return this.name; - } else { - return this.name + ": " + this.message; - } - }; - return errorClass; - } - var InternalError = void 0; - function throwInternalError(message) { - throw new InternalError(message); - } - function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { - myTypes.forEach(function(type) { - typeDependencies[type] = dependentTypes; - }); - function onComplete(typeConverters2) { - var myTypeConverters = getTypeConverters(typeConverters2); - if (myTypeConverters.length !== myTypes.length) { - throwInternalError("Mismatched type converter count"); - } - for (var i = 0; i < myTypes.length; ++i) { - registerType(myTypes[i], myTypeConverters[i]); - } - } - var typeConverters = new Array(dependentTypes.length); - var unregisteredTypes = []; - var registered = 0; - dependentTypes.forEach((dt, i) => { - if (registeredTypes.hasOwnProperty(dt)) { - typeConverters[i] = registeredTypes[dt]; - } else { - unregisteredTypes.push(dt); - if (!awaitingDependencies.hasOwnProperty(dt)) { - awaitingDependencies[dt] = []; - } - awaitingDependencies[dt].push(() => { - typeConverters[i] = registeredTypes[dt]; - ++registered; - if (registered === unregisteredTypes.length) { - onComplete(typeConverters); - } - }); - } - }); - if (unregisteredTypes.length === 0) { - onComplete(typeConverters); - } - } - function __embind_finalize_value_array(rawTupleType) { - var reg = tupleRegistrations[rawTupleType]; - delete tupleRegistrations[rawTupleType]; - var elements = reg.elements; - var elementsLength = elements.length; - var elementTypes = elements.map(function(elt) { - return elt.getterReturnType; - }).concat(elements.map(function(elt) { - return elt.setterArgumentType; - })); - var rawConstructor = reg.rawConstructor; - var rawDestructor = reg.rawDestructor; - whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) { - elements.forEach((elt, i) => { - var getterReturnType = elementTypes2[i]; - var getter = elt.getter; - var getterContext = elt.getterContext; - var setterArgumentType = elementTypes2[i + elementsLength]; - var setter = elt.setter; - var setterContext = elt.setterContext; - elt.read = (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }; - elt.write = (ptr, o) => { - var destructors = []; - setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); - runDestructors(destructors); - }; - }); - return [{ name: reg.name, "fromWireType": function(ptr) { - var rv = new Array(elementsLength); - for (var i = 0; i < elementsLength; ++i) { - rv[i] = elements[i].read(ptr); - } - rawDestructor(ptr); - return rv; - }, "toWireType": function(destructors, o) { - if (elementsLength !== o.length) { - throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); - } - var ptr = rawConstructor(); - for (var i = 0; i < elementsLength; ++i) { - elements[i].write(ptr, o[i]); - } - if (destructors !== null) { - destructors.push(rawDestructor, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; - }); - } - var structRegistrations = {}; - function __embind_finalize_value_object(structType) { - var reg = structRegistrations[structType]; - delete structRegistrations[structType]; - var rawConstructor = reg.rawConstructor; - var rawDestructor = reg.rawDestructor; - var fieldRecords = reg.fields; - var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType)); - whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => { - var fields = {}; - fieldRecords.forEach((field, i) => { - var fieldName = field.fieldName; - var getterReturnType = fieldTypes2[i]; - var getter = field.getter; - var getterContext = field.getterContext; - var setterArgumentType = fieldTypes2[i + fieldRecords.length]; - var setter = field.setter; - var setterContext = field.setterContext; - fields[fieldName] = { read: (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }, write: (ptr, o) => { - var destructors = []; - setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); - runDestructors(destructors); - } }; - }); - return [{ name: reg.name, "fromWireType": function(ptr) { - var rv = {}; - for (var i in fields) { - rv[i] = fields[i].read(ptr); - } - rawDestructor(ptr); - return rv; - }, "toWireType": function(destructors, o) { - for (var fieldName in fields) { - if (!(fieldName in o)) { - throw new TypeError('Missing field: "' + fieldName + '"'); - } - } - var ptr = rawConstructor(); - for (fieldName in fields) { - fields[fieldName].write(ptr, o[fieldName]); - } - if (destructors !== null) { - destructors.push(rawDestructor, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; - }); - } - function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { - } - function getShiftFromSize(size) { - switch (size) { - case 1: - return 0; - case 2: - return 1; - case 4: - return 2; - case 8: - return 3; - default: - throw new TypeError("Unknown type size: " + size); - } - } - function embind_init_charCodes() { - var codes = new Array(256); - for (var i = 0; i < 256; ++i) { - codes[i] = String.fromCharCode(i); - } - embind_charCodes = codes; - } - var embind_charCodes = void 0; - function readLatin1String(ptr) { - var ret = ""; - var c = ptr; - while (GROWABLE_HEAP_U8()[c >>> 0]) { - ret += embind_charCodes[GROWABLE_HEAP_U8()[c++ >>> 0]]; - } - return ret; - } - var BindingError = void 0; - function throwBindingError(message) { - throw new BindingError(message); - } - function registerType(rawType, registeredInstance, options = {}) { - if (!("argPackAdvance" in registeredInstance)) { - throw new TypeError("registerType registeredInstance requires argPackAdvance"); - } - var name = registeredInstance.name; - if (!rawType) { - throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); - } - if (registeredTypes.hasOwnProperty(rawType)) { - if (options.ignoreDuplicateRegistrations) { - return; - } else { - throwBindingError("Cannot register type '" + name + "' twice"); - } - } - registeredTypes[rawType] = registeredInstance; - delete typeDependencies[rawType]; - if (awaitingDependencies.hasOwnProperty(rawType)) { - var callbacks = awaitingDependencies[rawType]; - delete awaitingDependencies[rawType]; - callbacks.forEach((cb) => cb()); - } - } - function __embind_register_bool(rawType, name, size, trueValue, falseValue) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(wt) { - return !!wt; - }, "toWireType": function(destructors, o) { - return o ? trueValue : falseValue; - }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) { - var heap; - if (size === 1) { - heap = GROWABLE_HEAP_I8(); - } else if (size === 2) { - heap = GROWABLE_HEAP_I16(); - } else if (size === 4) { - heap = GROWABLE_HEAP_I32(); - } else { - throw new TypeError("Unknown boolean type size: " + name); - } - return this["fromWireType"](heap[pointer >>> shift]); - }, destructorFunction: null }); - } - function ClassHandle_isAliasOf(other) { - if (!(this instanceof ClassHandle)) { - return false; - } - if (!(other instanceof ClassHandle)) { - return false; - } - var leftClass = this.$$.ptrType.registeredClass; - var left = this.$$.ptr; - var rightClass = other.$$.ptrType.registeredClass; - var right = other.$$.ptr; - while (leftClass.baseClass) { - left = leftClass.upcast(left); - leftClass = leftClass.baseClass; - } - while (rightClass.baseClass) { - right = rightClass.upcast(right); - rightClass = rightClass.baseClass; - } - return leftClass === rightClass && left === right; - } - function shallowCopyInternalPointer(o) { - return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType }; - } - function throwInstanceAlreadyDeleted(obj) { - function getInstanceTypeName(handle) { - return handle.$$.ptrType.registeredClass.name; - } - throwBindingError(getInstanceTypeName(obj) + " instance already deleted"); - } - var finalizationRegistry = false; - function detachFinalizer(handle) { - } - function runDestructor($$) { - if ($$.smartPtr) { - $$.smartPtrType.rawDestructor($$.smartPtr); - } else { - $$.ptrType.registeredClass.rawDestructor($$.ptr); - } - } - function releaseClassHandle($$) { - $$.count.value -= 1; - var toDelete = $$.count.value === 0; - if (toDelete) { - runDestructor($$); - } - } - function downcastPointer(ptr, ptrClass, desiredClass) { - if (ptrClass === desiredClass) { - return ptr; - } - if (desiredClass.baseClass === void 0) { - return null; - } - var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); - if (rv === null) { - return null; - } - return desiredClass.downcast(rv); - } - var registeredPointers = {}; - function getInheritedInstanceCount() { - return Object.keys(registeredInstances).length; - } - function getLiveInheritedInstances() { - var rv = []; - for (var k in registeredInstances) { - if (registeredInstances.hasOwnProperty(k)) { - rv.push(registeredInstances[k]); - } - } - return rv; - } - var deletionQueue = []; - function flushPendingDeletes() { - while (deletionQueue.length) { - var obj = deletionQueue.pop(); - obj.$$.deleteScheduled = false; - obj["delete"](); - } - } - var delayFunction = void 0; - function setDelayFunction(fn) { - delayFunction = fn; - if (deletionQueue.length && delayFunction) { - delayFunction(flushPendingDeletes); - } - } - function init_embind() { - Module["getInheritedInstanceCount"] = getInheritedInstanceCount; - Module["getLiveInheritedInstances"] = getLiveInheritedInstances; - Module["flushPendingDeletes"] = flushPendingDeletes; - Module["setDelayFunction"] = setDelayFunction; - } - var registeredInstances = {}; - function getBasestPointer(class_, ptr) { - if (ptr === void 0) { - throwBindingError("ptr should not be undefined"); - } - while (class_.baseClass) { - ptr = class_.upcast(ptr); - class_ = class_.baseClass; - } - return ptr; - } - function getInheritedInstance(class_, ptr) { - ptr = getBasestPointer(class_, ptr); - return registeredInstances[ptr]; - } - function makeClassHandle(prototype, record) { - if (!record.ptrType || !record.ptr) { - throwInternalError("makeClassHandle requires ptr and ptrType"); - } - var hasSmartPtrType = !!record.smartPtrType; - var hasSmartPtr = !!record.smartPtr; - if (hasSmartPtrType !== hasSmartPtr) { - throwInternalError("Both smartPtrType and smartPtr must be specified"); - } - record.count = { value: 1 }; - return attachFinalizer(Object.create(prototype, { $$: { value: record } })); - } - function RegisteredPointer_fromWireType(ptr) { - var rawPointer = this.getPointee(ptr); - if (!rawPointer) { - this.destructor(ptr); - return null; - } - var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); - if (registeredInstance !== void 0) { - if (registeredInstance.$$.count.value === 0) { - registeredInstance.$$.ptr = rawPointer; - registeredInstance.$$.smartPtr = ptr; - return registeredInstance["clone"](); - } else { - var rv = registeredInstance["clone"](); - this.destructor(ptr); - return rv; - } - } - function makeDefaultHandle() { - if (this.isSmartPointer) { - return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr }); - } else { - return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr }); - } - } - var actualType = this.registeredClass.getActualType(rawPointer); - var registeredPointerRecord = registeredPointers[actualType]; - if (!registeredPointerRecord) { - return makeDefaultHandle.call(this); - } - var toType; - if (this.isConst) { - toType = registeredPointerRecord.constPointerType; - } else { - toType = registeredPointerRecord.pointerType; - } - var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass); - if (dp === null) { - return makeDefaultHandle.call(this); - } - if (this.isSmartPointer) { - return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr }); - } else { - return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); - } - } - function attachFinalizer(handle) { - if (typeof FinalizationRegistry === "undefined") { - attachFinalizer = (handle2) => handle2; - return handle; - } - finalizationRegistry = new FinalizationRegistry((info) => { - releaseClassHandle(info.$$); - }); - attachFinalizer = (handle2) => { - var $$ = handle2.$$; - var hasSmartPtr = !!$$.smartPtr; - if (hasSmartPtr) { - var info = { $$ }; - finalizationRegistry.register(handle2, info, handle2); - } - return handle2; - }; - detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); - return attachFinalizer(handle); - } - function ClassHandle_clone() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.preservePointerOnDelete) { - this.$$.count.value += 1; - return this; - } else { - var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } })); - clone.$$.count.value += 1; - clone.$$.deleteScheduled = false; - return clone; - } - } - function ClassHandle_delete() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError("Object already scheduled for deletion"); - } - detachFinalizer(this); - releaseClassHandle(this.$$); - if (!this.$$.preservePointerOnDelete) { - this.$$.smartPtr = void 0; - this.$$.ptr = void 0; - } - } - function ClassHandle_isDeleted() { - return !this.$$.ptr; - } - function ClassHandle_deleteLater() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError("Object already scheduled for deletion"); - } - deletionQueue.push(this); - if (deletionQueue.length === 1 && delayFunction) { - delayFunction(flushPendingDeletes); - } - this.$$.deleteScheduled = true; - return this; - } - function init_ClassHandle() { - ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; - ClassHandle.prototype["clone"] = ClassHandle_clone; - ClassHandle.prototype["delete"] = ClassHandle_delete; - ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; - ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; - } - function ClassHandle() { - } - function ensureOverloadTable(proto, methodName, humanName) { - if (proto[methodName].overloadTable === void 0) { - var prevFunc = proto[methodName]; - proto[methodName] = function() { - if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { - throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); - } - return proto[methodName].overloadTable[arguments.length].apply(this, arguments); - }; - proto[methodName].overloadTable = []; - proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; - } - } - function exposePublicSymbol(name, value, numArguments) { - if (Module.hasOwnProperty(name)) { - if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { - throwBindingError("Cannot register public name '" + name + "' twice"); - } - ensureOverloadTable(Module, name, name); - if (Module.hasOwnProperty(numArguments)) { - throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); - } - Module[name].overloadTable[numArguments] = value; - } else { - Module[name] = value; - if (numArguments !== void 0) { - Module[name].numArguments = numArguments; - } - } - } - function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) { - this.name = name; - this.constructor = constructor; - this.instancePrototype = instancePrototype; - this.rawDestructor = rawDestructor; - this.baseClass = baseClass; - this.getActualType = getActualType; - this.upcast = upcast; - this.downcast = downcast; - this.pureVirtualFunctions = []; - } - function upcastPointer(ptr, ptrClass, desiredClass) { - while (ptrClass !== desiredClass) { - if (!ptrClass.upcast) { - throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); - } - ptr = ptrClass.upcast(ptr); - ptrClass = ptrClass.baseClass; - } - return ptr; - } - function constNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - return 0; - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - function genericPointerToWireType(destructors, handle) { - var ptr; - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - if (this.isSmartPointer) { - ptr = this.rawConstructor(); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - return ptr; - } else { - return 0; - } - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - if (!this.isConst && handle.$$.ptrType.isConst) { - throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - if (this.isSmartPointer) { - if (handle.$$.smartPtr === void 0) { - throwBindingError("Passing raw pointer to smart pointer is illegal"); - } - switch (this.sharingPolicy) { - case 0: - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); - } - break; - case 1: - ptr = handle.$$.smartPtr; - break; - case 2: - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - var clonedHandle = handle["clone"](); - ptr = this.rawShare(ptr, Emval.toHandle(function() { - clonedHandle["delete"](); - })); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - } - break; - default: - throwBindingError("Unsupporting sharing policy"); - } - } - return ptr; - } - function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - return 0; - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - if (handle.$$.ptrType.isConst) { - throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - function RegisteredPointer_getPointee(ptr) { - if (this.rawGetPointee) { - ptr = this.rawGetPointee(ptr); - } - return ptr; - } - function RegisteredPointer_destructor(ptr) { - if (this.rawDestructor) { - this.rawDestructor(ptr); - } - } - function RegisteredPointer_deleteObject(handle) { - if (handle !== null) { - handle["delete"](); - } - } - function init_RegisteredPointer() { - RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; - RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; - RegisteredPointer.prototype["argPackAdvance"] = 8; - RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; - RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; - RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; - } - function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) { - this.name = name; - this.registeredClass = registeredClass; - this.isReference = isReference; - this.isConst = isConst; - this.isSmartPointer = isSmartPointer; - this.pointeeType = pointeeType; - this.sharingPolicy = sharingPolicy; - this.rawGetPointee = rawGetPointee; - this.rawConstructor = rawConstructor; - this.rawShare = rawShare; - this.rawDestructor = rawDestructor; - if (!isSmartPointer && registeredClass.baseClass === void 0) { - if (isConst) { - this["toWireType"] = constNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } else { - this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } - } else { - this["toWireType"] = genericPointerToWireType; - } - } - function replacePublicSymbol(name, value, numArguments) { - if (!Module.hasOwnProperty(name)) { - throwInternalError("Replacing nonexistant public symbol"); - } - if (Module[name].overloadTable !== void 0 && numArguments !== void 0) { - Module[name].overloadTable[numArguments] = value; - } else { - Module[name] = value; - Module[name].argCount = numArguments; - } - } - function dynCallLegacy(sig, ptr, args) { - var f = Module["dynCall_" + sig]; - return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); - } - function dynCall(sig, ptr, args) { - if (sig.includes("j")) { - return dynCallLegacy(sig, ptr, args); - } - var rtn = getWasmTableEntry(ptr).apply(null, args); - return rtn; - } - function getDynCaller(sig, ptr) { - var argCache = []; - return function() { - argCache.length = 0; - Object.assign(argCache, arguments); - return dynCall(sig, ptr, argCache); - }; - } - function embind__requireFunction(signature, rawFunction) { - signature = readLatin1String(signature); - function makeDynCaller() { - if (signature.includes("j")) { - return getDynCaller(signature, rawFunction); - } - return getWasmTableEntry(rawFunction); - } - var fp = makeDynCaller(); - if (typeof fp != "function") { - throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); - } - return fp; - } - var UnboundTypeError = void 0; - function getTypeName(type) { - var ptr = ___getTypeName(type); - var rv = readLatin1String(ptr); - _free(ptr); - return rv; - } - function throwUnboundTypeError(message, types) { - var unboundTypes = []; - var seen = {}; - function visit(type) { - if (seen[type]) { - return; - } - if (registeredTypes[type]) { - return; - } - if (typeDependencies[type]) { - typeDependencies[type].forEach(visit); - return; - } - unboundTypes.push(type); - seen[type] = true; - } - types.forEach(visit); - throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); - } - function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { - name = readLatin1String(name); - getActualType = embind__requireFunction(getActualTypeSignature, getActualType); - if (upcast) { - upcast = embind__requireFunction(upcastSignature, upcast); - } - if (downcast) { - downcast = embind__requireFunction(downcastSignature, downcast); - } - rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); - var legalFunctionName = makeLegalFunctionName(name); - exposePublicSymbol(legalFunctionName, function() { - throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); - }); - whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { - base = base[0]; - var baseClass; - var basePrototype; - if (baseClassRawType) { - baseClass = base.registeredClass; - basePrototype = baseClass.instancePrototype; - } else { - basePrototype = ClassHandle.prototype; - } - var constructor = createNamedFunction(legalFunctionName, function() { - if (Object.getPrototypeOf(this) !== instancePrototype) { - throw new BindingError("Use 'new' to construct " + name); - } - if (registeredClass.constructor_body === void 0) { - throw new BindingError(name + " has no accessible constructor"); - } - var body = registeredClass.constructor_body[arguments.length]; - if (body === void 0) { - throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); - } - return body.apply(this, arguments); - }); - var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); - constructor.prototype = instancePrototype; - var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); - var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); - var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); - var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); - registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter }; - replacePublicSymbol(legalFunctionName, constructor); - return [referenceConverter, pointerConverter, constPointerConverter]; - }); - } - function heap32VectorToArray(count, firstElement) { - var array = []; - for (var i = 0; i < count; i++) { - array.push(GROWABLE_HEAP_U32()[firstElement + i * 4 >>> 2]); - } - return array; - } - function new_(constructor, argumentList) { - if (!(constructor instanceof Function)) { - throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function"); - } - var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() { - }); - dummy.prototype = constructor.prototype; - var obj = new dummy(); - var r = constructor.apply(obj, argumentList); - return r instanceof Object ? r : obj; - } - function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { - var argCount = argTypes.length; - if (argCount < 2) { - throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); - } - var isClassMethodFunc = argTypes[1] !== null && classType !== null; - var needsDestructorStack = false; - for (var i = 1; i < argTypes.length; ++i) { - if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) { - needsDestructorStack = true; - break; - } - } - var returns = argTypes[0].name !== "void"; - var argsList = ""; - var argsListWired = ""; - for (var i = 0; i < argCount - 2; ++i) { - argsList += (i !== 0 ? ", " : "") + "arg" + i; - argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; - } - var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\nif (arguments.length !== " + (argCount - 2) + ") {\nthrowBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n}\n"; - if (needsDestructorStack) { - invokerFnBody += "var destructors = [];\n"; - } - var dtorStack = needsDestructorStack ? "destructors" : "null"; - var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; - var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; - if (isClassMethodFunc) { - invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; - } - for (var i = 0; i < argCount - 2; ++i) { - invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; - args1.push("argType" + i); - args2.push(argTypes[i + 2]); - } - if (isClassMethodFunc) { - argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; - } - invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; - if (needsDestructorStack) { - invokerFnBody += "runDestructors(destructors);\n"; - } else { - for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) { - var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; - if (argTypes[i].destructorFunction !== null) { - invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; - args1.push(paramName + "_dtor"); - args2.push(argTypes[i].destructorFunction); - } - } - } - if (returns) { - invokerFnBody += "var ret = retType.fromWireType(rv);\nreturn ret;\n"; - } - invokerFnBody += "}\n"; - args1.push(invokerFnBody); - var invokerFunction = new_(Function, args1).apply(null, args2); - return invokerFunction; - } - function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { - assert(argCount > 0); - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - invoker = embind__requireFunction(invokerSignature, invoker); - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = "constructor " + classType.name; - if (classType.registeredClass.constructor_body === void 0) { - classType.registeredClass.constructor_body = []; - } - if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) { - throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); - } - classType.registeredClass.constructor_body[argCount - 1] = () => { - throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); - }; - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - argTypes.splice(1, 0, null); - classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor); - return []; - }); - return []; - }); - } - function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - methodName = readLatin1String(methodName); - rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = classType.name + "." + methodName; - if (methodName.startsWith("@@")) { - methodName = Symbol[methodName.substring(2)]; - } - if (isPureVirtual) { - classType.registeredClass.pureVirtualFunctions.push(methodName); - } - function unboundTypesHandler() { - throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); - } - var proto = classType.registeredClass.instancePrototype; - var method = proto[methodName]; - if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) { - unboundTypesHandler.argCount = argCount - 2; - unboundTypesHandler.className = classType.name; - proto[methodName] = unboundTypesHandler; - } else { - ensureOverloadTable(proto, methodName, humanName); - proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; - } - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); - if (proto[methodName].overloadTable === void 0) { - memberFunction.argCount = argCount - 2; - proto[methodName] = memberFunction; - } else { - proto[methodName].overloadTable[argCount - 2] = memberFunction; - } - return []; - }); - return []; - }); - } - var emval_free_list = []; - var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }]; - function __emval_decref(handle) { - if (handle > 4 && --emval_handle_array[handle].refcount === 0) { - emval_handle_array[handle] = void 0; - emval_free_list.push(handle); - } - } - function count_emval_handles() { - var count = 0; - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { - ++count; - } - } - return count; - } - function get_first_emval() { - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { - return emval_handle_array[i]; - } - } - return null; - } - function init_emval() { - Module["count_emval_handles"] = count_emval_handles; - Module["get_first_emval"] = get_first_emval; - } - var Emval = { toValue: (handle) => { - if (!handle) { - throwBindingError("Cannot use deleted val. handle = " + handle); - } - return emval_handle_array[handle].value; - }, toHandle: (value) => { - switch (value) { - case void 0: - return 1; - case null: - return 2; - case true: - return 3; - case false: - return 4; - default: { - var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length; - emval_handle_array[handle] = { refcount: 1, value }; - return handle; - } - } - } }; - function __embind_register_emval(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(handle) { - var rv = Emval.toValue(handle); - __emval_decref(handle); - return rv; - }, "toWireType": function(destructors, value) { - return Emval.toHandle(value); - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null }); - } - function enumReadValueFromPointer(name, shift, signed) { - switch (shift) { - case 0: - return function(pointer) { - var heap = signed ? GROWABLE_HEAP_I8() : GROWABLE_HEAP_U8(); - return this["fromWireType"](heap[pointer >>> 0]); - }; - case 1: - return function(pointer) { - var heap = signed ? GROWABLE_HEAP_I16() : GROWABLE_HEAP_U16(); - return this["fromWireType"](heap[pointer >>> 1]); - }; - case 2: - return function(pointer) { - var heap = signed ? GROWABLE_HEAP_I32() : GROWABLE_HEAP_U32(); - return this["fromWireType"](heap[pointer >>> 2]); - }; - default: - throw new TypeError("Unknown integer type: " + name); - } - } - function __embind_register_enum(rawType, name, size, isSigned) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - function ctor() { - } - ctor.values = {}; - registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) { - return this.constructor.values[c]; - }, "toWireType": function(destructors, c) { - return c.value; - }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null }); - exposePublicSymbol(name, ctor); - } - function requireRegisteredType(rawType, humanName) { - var impl = registeredTypes[rawType]; - if (impl === void 0) { - throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); - } - return impl; - } - function __embind_register_enum_value(rawEnumType, name, enumValue) { - var enumType = requireRegisteredType(rawEnumType, "enum"); - name = readLatin1String(name); - var Enum = enumType.constructor; - var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { - }) } }); - Enum.values[enumValue] = Value; - Enum[name] = Value; - } - function embindRepr(v) { - if (v === null) { - return "null"; - } - var t = typeof v; - if (t === "object" || t === "array" || t === "function") { - return v.toString(); - } else { - return "" + v; - } - } - function floatReadValueFromPointer(name, shift) { - switch (shift) { - case 2: - return function(pointer) { - return this["fromWireType"](GROWABLE_HEAP_F32()[pointer >>> 2]); - }; - case 3: - return function(pointer) { - return this["fromWireType"](GROWABLE_HEAP_F64()[pointer >>> 3]); - }; - default: - throw new TypeError("Unknown float type: " + name); - } - } - function __embind_register_float(rawType, name, size) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(value) { - return value; - }, "toWireType": function(destructors, value) { - return value; - }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); - } - function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { - var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - name = readLatin1String(name); - rawInvoker = embind__requireFunction(signature, rawInvoker); - exposePublicSymbol(name, function() { - throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); - }, argCount - 1); - whenDependentTypesAreResolved([], argTypes, function(argTypes2) { - var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); - replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); - return []; - }); - } - function integerReadValueFromPointer(name, shift, signed) { - switch (shift) { - case 0: - return signed ? function readS8FromPointer(pointer) { - return GROWABLE_HEAP_I8()[pointer >>> 0]; - } : function readU8FromPointer(pointer) { - return GROWABLE_HEAP_U8()[pointer >>> 0]; - }; - case 1: - return signed ? function readS16FromPointer(pointer) { - return GROWABLE_HEAP_I16()[pointer >>> 1]; - } : function readU16FromPointer(pointer) { - return GROWABLE_HEAP_U16()[pointer >>> 1]; - }; - case 2: - return signed ? function readS32FromPointer(pointer) { - return GROWABLE_HEAP_I32()[pointer >>> 2]; - } : function readU32FromPointer(pointer) { - return GROWABLE_HEAP_U32()[pointer >>> 2]; - }; - default: - throw new TypeError("Unknown integer type: " + name); - } - } - function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { - name = readLatin1String(name); - var shift = getShiftFromSize(size); - var fromWireType = (value) => value; - if (minRange === 0) { - var bitshift = 32 - 8 * size; - fromWireType = (value) => value << bitshift >>> bitshift; - } - var isUnsignedType = name.includes("unsigned"); - var checkAssertions = (value, toTypeName) => { - }; - var toWireType; - if (isUnsignedType) { - toWireType = function(destructors, value) { - checkAssertions(value, this.name); - return value >>> 0; - }; - } else { - toWireType = function(destructors, value) { - checkAssertions(value, this.name); - return value; - }; - } - registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); - } - function __embind_register_memory_view(rawType, dataTypeIndex, name) { - var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; - var TA = typeMapping[dataTypeIndex]; - function decodeMemoryView(handle) { - handle = handle >> 2; - var heap = GROWABLE_HEAP_U32(); - var size = heap[handle >>> 0]; - var data = heap[handle + 1 >>> 0]; - return new TA(heap.buffer, data, size); - } - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); - } - function __embind_register_std_string(rawType, name) { - name = readLatin1String(name); - var stdStringIsUTF8 = name === "std::string"; - registerType(rawType, { name, "fromWireType": function(value) { - var length = GROWABLE_HEAP_U32()[value >>> 2]; - var payload = value + 4; - var str; - if (stdStringIsUTF8) { - var decodeStartPtr = payload; - for (var i = 0; i <= length; ++i) { - var currentBytePtr = payload + i; - if (i == length || GROWABLE_HEAP_U8()[currentBytePtr >>> 0] == 0) { - var maxRead = currentBytePtr - decodeStartPtr; - var stringSegment = UTF8ToString(decodeStartPtr, maxRead); - if (str === void 0) { - str = stringSegment; - } else { - str += String.fromCharCode(0); - str += stringSegment; - } - decodeStartPtr = currentBytePtr + 1; - } - } - } else { - var a = new Array(length); - for (var i = 0; i < length; ++i) { - a[i] = String.fromCharCode(GROWABLE_HEAP_U8()[payload + i >>> 0]); - } - str = a.join(""); - } - _free(value); - return str; - }, "toWireType": function(destructors, value) { - if (value instanceof ArrayBuffer) { - value = new Uint8Array(value); - } - var length; - var valueIsOfTypeString = typeof value == "string"; - if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { - throwBindingError("Cannot pass non-string to std::string"); - } - if (stdStringIsUTF8 && valueIsOfTypeString) { - length = lengthBytesUTF8(value); - } else { - length = value.length; - } - var base = _malloc(4 + length + 1); - var ptr = base + 4; - ptr >>>= 0; - GROWABLE_HEAP_U32()[base >>> 2] = length; - if (stdStringIsUTF8 && valueIsOfTypeString) { - stringToUTF8(value, ptr, length + 1); - } else { - if (valueIsOfTypeString) { - for (var i = 0; i < length; ++i) { - var charCode = value.charCodeAt(i); - if (charCode > 255) { - _free(ptr); - throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); - } - GROWABLE_HEAP_U8()[ptr + i >>> 0] = charCode; - } - } else { - for (var i = 0; i < length; ++i) { - GROWABLE_HEAP_U8()[ptr + i >>> 0] = value[i]; - } - } - } - if (destructors !== null) { - destructors.push(_free, base); - } - return base; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { - _free(ptr); - } }); - } - var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0; - function UTF16ToString(ptr, maxBytesToRead) { - var endPtr = ptr; - var idx = endPtr >> 1; - var maxIdx = idx + maxBytesToRead / 2; - while (!(idx >= maxIdx) && GROWABLE_HEAP_U16()[idx >>> 0]) - ++idx; - endPtr = idx << 1; - if (endPtr - ptr > 32 && UTF16Decoder) - return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr, endPtr)); - var str = ""; - for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { - var codeUnit = GROWABLE_HEAP_I16()[ptr + i * 2 >>> 1]; - if (codeUnit == 0) - break; - str += String.fromCharCode(codeUnit); - } - return str; - } - function stringToUTF16(str, outPtr, maxBytesToWrite) { - if (maxBytesToWrite === void 0) { - maxBytesToWrite = 2147483647; - } - if (maxBytesToWrite < 2) - return 0; - maxBytesToWrite -= 2; - var startPtr = outPtr; - var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - var codeUnit = str.charCodeAt(i); - GROWABLE_HEAP_I16()[outPtr >>> 1] = codeUnit; - outPtr += 2; - } - GROWABLE_HEAP_I16()[outPtr >>> 1] = 0; - return outPtr - startPtr; - } - function lengthBytesUTF16(str) { - return str.length * 2; - } - function UTF32ToString(ptr, maxBytesToRead) { - var i = 0; - var str = ""; - while (!(i >= maxBytesToRead / 4)) { - var utf32 = GROWABLE_HEAP_I32()[ptr + i * 4 >>> 2]; - if (utf32 == 0) - break; - ++i; - if (utf32 >= 65536) { - var ch = utf32 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } else { - str += String.fromCharCode(utf32); - } - } - return str; - } - function stringToUTF32(str, outPtr, maxBytesToWrite) { - outPtr >>>= 0; - if (maxBytesToWrite === void 0) { - maxBytesToWrite = 2147483647; - } - if (maxBytesToWrite < 4) - return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 55296 && codeUnit <= 57343) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; - } - GROWABLE_HEAP_I32()[outPtr >>> 2] = codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) - break; - } - GROWABLE_HEAP_I32()[outPtr >>> 2] = 0; - return outPtr - startPtr; - } - function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 55296 && codeUnit <= 57343) - ++i; - len += 4; - } - return len; - } - function __embind_register_std_wstring(rawType, charSize, name) { - name = readLatin1String(name); - var decodeString, encodeString, getHeap, lengthBytesUTF, shift; - if (charSize === 2) { - decodeString = UTF16ToString; - encodeString = stringToUTF16; - lengthBytesUTF = lengthBytesUTF16; - getHeap = () => GROWABLE_HEAP_U16(); - shift = 1; - } else if (charSize === 4) { - decodeString = UTF32ToString; - encodeString = stringToUTF32; - lengthBytesUTF = lengthBytesUTF32; - getHeap = () => GROWABLE_HEAP_U32(); - shift = 2; - } - registerType(rawType, { name, "fromWireType": function(value) { - var length = GROWABLE_HEAP_U32()[value >>> 2]; - var HEAP = getHeap(); - var str; - var decodeStartPtr = value + 4; - for (var i = 0; i <= length; ++i) { - var currentBytePtr = value + 4 + i * charSize; - if (i == length || HEAP[currentBytePtr >>> shift] == 0) { - var maxReadBytes = currentBytePtr - decodeStartPtr; - var stringSegment = decodeString(decodeStartPtr, maxReadBytes); - if (str === void 0) { - str = stringSegment; - } else { - str += String.fromCharCode(0); - str += stringSegment; - } - decodeStartPtr = currentBytePtr + charSize; - } - } - _free(value); - return str; - }, "toWireType": function(destructors, value) { - if (!(typeof value == "string")) { - throwBindingError("Cannot pass non-string to C++ string type " + name); - } - var length = lengthBytesUTF(value); - var ptr = _malloc(4 + length + charSize); - ptr >>>= 0; - GROWABLE_HEAP_U32()[ptr >>> 2] = length >> shift; - encodeString(value, ptr + 4, length + charSize); - if (destructors !== null) { - destructors.push(_free, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { - _free(ptr); - } }); - } - function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { - tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; - } - function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { - tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); - } - function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { - structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; - } - function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { - structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); - } - function __embind_register_void(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { - return void 0; - }, "toWireType": function(destructors, o) { - return void 0; - } }); - } - function __emscripten_err(str) { - err(UTF8ToString(str)); - } - function executeNotifiedProxyingQueue(queue) { - Atomics.store(GROWABLE_HEAP_I32(), queue >> 2, 1); - if (_pthread_self()) { - __emscripten_proxy_execute_task_queue(queue); - } - Atomics.compareExchange(GROWABLE_HEAP_I32(), queue >> 2, 1, 0); - } - Module["executeNotifiedProxyingQueue"] = executeNotifiedProxyingQueue; - function __emscripten_notify_task_queue(targetThreadId, currThreadId, mainThreadId, queue) { - if (targetThreadId == currThreadId) { - setTimeout(() => executeNotifiedProxyingQueue(queue)); - } else if (ENVIRONMENT_IS_PTHREAD) { - postMessage({ "targetThread": targetThreadId, "cmd": "processProxyingQueue", "queue": queue }); - } else { - var worker = PThread.pthreads[targetThreadId]; - if (!worker) { - return; - } - worker.postMessage({ "cmd": "processProxyingQueue", "queue": queue }); - } - return 1; - } - function __emscripten_set_offscreencanvas_size(target, width, height) { - return -1; - } - function __emval_as(handle, returnType, destructorsRef) { - handle = Emval.toValue(handle); - returnType = requireRegisteredType(returnType, "emval::as"); - var destructors = []; - var rd = Emval.toHandle(destructors); - GROWABLE_HEAP_U32()[destructorsRef >>> 2] = rd; - return returnType["toWireType"](destructors, handle); - } - function emval_lookupTypes(argCount, argTypes) { - var a = new Array(argCount); - for (var i = 0; i < argCount; ++i) { - a[i] = requireRegisteredType(GROWABLE_HEAP_U32()[argTypes + i * 4 >>> 2], "parameter " + i); - } - return a; - } - function __emval_call(handle, argCount, argTypes, argv) { - handle = Emval.toValue(handle); - var types = emval_lookupTypes(argCount, argTypes); - var args = new Array(argCount); - for (var i = 0; i < argCount; ++i) { - var type = types[i]; - args[i] = type["readValueFromPointer"](argv); - argv += type["argPackAdvance"]; - } - var rv = handle.apply(void 0, args); - return Emval.toHandle(rv); - } - var emval_symbols = {}; - function getStringOrSymbol(address) { - var symbol = emval_symbols[address]; - if (symbol === void 0) { - return readLatin1String(address); - } - return symbol; - } - function emval_get_global() { - if (typeof globalThis == "object") { - return globalThis; - } - return function() { - return Function; - }()("return this")(); - } - function __emval_get_global(name) { - if (name === 0) { - return Emval.toHandle(emval_get_global()); - } else { - name = getStringOrSymbol(name); - return Emval.toHandle(emval_get_global()[name]); - } - } - function __emval_get_property(handle, key) { - handle = Emval.toValue(handle); - key = Emval.toValue(key); - return Emval.toHandle(handle[key]); - } - function __emval_incref(handle) { - if (handle > 4) { - emval_handle_array[handle].refcount += 1; - } - } - function __emval_instanceof(object, constructor) { - object = Emval.toValue(object); - constructor = Emval.toValue(constructor); - return object instanceof constructor; - } - function __emval_is_number(handle) { - handle = Emval.toValue(handle); - return typeof handle == "number"; - } - function __emval_is_string(handle) { - handle = Emval.toValue(handle); - return typeof handle == "string"; - } - function __emval_new_array() { - return Emval.toHandle([]); - } - function __emval_new_cstring(v) { - return Emval.toHandle(getStringOrSymbol(v)); - } - function __emval_new_object() { - return Emval.toHandle({}); - } - function __emval_run_destructors(handle) { - var destructors = Emval.toValue(handle); - runDestructors(destructors); - __emval_decref(handle); - } - function __emval_set_property(handle, key, value) { - handle = Emval.toValue(handle); - key = Emval.toValue(key); - value = Emval.toValue(value); - handle[key] = value; - } - function __emval_take_value(type, arg) { - type = requireRegisteredType(type, "_emval_take_value"); - var v = type["readValueFromPointer"](arg); - return Emval.toHandle(v); - } - function _abort() { - abort(""); - } - function warnOnce(text) { - if (!warnOnce.shown) - warnOnce.shown = {}; - if (!warnOnce.shown[text]) { - warnOnce.shown[text] = 1; - err(text); - } - } - function _emscripten_check_blocking_allowed() { - if (ENVIRONMENT_IS_WORKER) - return; - warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread"); - } - var _emscripten_get_now; - _emscripten_get_now = () => performance.timeOrigin + performance.now(); - function _emscripten_memcpy_big(dest, src, num) { - GROWABLE_HEAP_U8().copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); - } - function withStackSave(f) { - var stack = stackSave(); - var ret = f(); - stackRestore(stack); - return ret; - } - function _emscripten_proxy_to_main_thread_js(index, sync) { - var numCallArgs = arguments.length - 2; - var outerArgs = arguments; - return withStackSave(() => { - var serializedNumCallArgs = numCallArgs; - var args = stackAlloc(serializedNumCallArgs * 8); - var b = args >> 3; - for (var i = 0; i < numCallArgs; i++) { - var arg = outerArgs[2 + i]; - GROWABLE_HEAP_F64()[b + i >>> 0] = arg; - } - return _emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync); - }); - } - var _emscripten_receive_on_main_thread_js_callArgs = []; - function _emscripten_receive_on_main_thread_js(index, numCallArgs, args) { - _emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs; - var b = args >> 3; - for (var i = 0; i < numCallArgs; i++) { - _emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i >>> 0]; - } - var func = proxiedFunctionTable[index]; - return func.apply(null, _emscripten_receive_on_main_thread_js_callArgs); - } - function getHeapMax() { - return 4294901760; - } - function emscripten_realloc_buffer(size) { - var b = wasmMemory.buffer; - try { - wasmMemory.grow(size - b.byteLength + 65535 >>> 16); - updateMemoryViews(); - return 1; - } catch (e) { - } - } - function _emscripten_resize_heap(requestedSize) { - var oldSize = GROWABLE_HEAP_U8().length; - requestedSize = requestedSize >>> 0; - if (requestedSize <= oldSize) { - return false; - } - var maxHeapSize = getHeapMax(); - if (requestedSize > maxHeapSize) { - return false; - } - let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); - var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - return true; - } - } - return false; - } - function _emscripten_unwind_to_js_event_loop() { - throw "unwind"; - } - var ENV = {}; - function getExecutableName() { - return thisProgram || "./this.program"; - } - function getEnvStrings() { - if (!getEnvStrings.strings) { - var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; - var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() }; - for (var x in ENV) { - if (ENV[x] === void 0) - delete env[x]; - else - env[x] = ENV[x]; - } - var strings = []; - for (var x in env) { - strings.push(x + "=" + env[x]); - } - getEnvStrings.strings = strings; - } - return getEnvStrings.strings; - } - function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - GROWABLE_HEAP_I8()[buffer++ >>> 0] = str.charCodeAt(i); - } - if (!dontAddNull) - GROWABLE_HEAP_I8()[buffer >>> 0] = 0; - } - function _environ_get(__environ, environ_buf) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(3, 1, __environ, environ_buf); - var bufSize = 0; - getEnvStrings().forEach(function(string, i) { - var ptr = environ_buf + bufSize; - GROWABLE_HEAP_U32()[__environ + i * 4 >>> 2] = ptr; - writeAsciiToMemory(string, ptr); - bufSize += string.length + 1; - }); - return 0; - } - function _environ_sizes_get(penviron_count, penviron_buf_size) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(4, 1, penviron_count, penviron_buf_size); - var strings = getEnvStrings(); - GROWABLE_HEAP_U32()[penviron_count >>> 2] = strings.length; - var bufSize = 0; - strings.forEach(function(string) { - bufSize += string.length + 1; - }); - GROWABLE_HEAP_U32()[penviron_buf_size >>> 2] = bufSize; - return 0; - } - function _fd_close(fd) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(5, 1, fd); - try { - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function doReadv(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; - var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2]; - iov += 8; - var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset); - if (curr < 0) - return -1; - ret += curr; - if (curr < len) - break; - if (typeof offset !== "undefined") { - offset += curr; - } - } - return ret; - } - function _fd_read(fd, iov, iovcnt, pnum) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(6, 1, fd, iov, iovcnt, pnum); - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doReadv(stream, iov, iovcnt); - GROWABLE_HEAP_U32()[pnum >>> 2] = num; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function convertI32PairToI53Checked(lo, hi) { - return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; - } - function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(7, 1, fd, offset_low, offset_high, whence, newOffset); - try { - var offset = convertI32PairToI53Checked(offset_low, offset_high); - if (isNaN(offset)) - return 61; - var stream = SYSCALLS.getStreamFromFD(fd); - FS.llseek(stream, offset, whence); - tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[newOffset >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >>> 2] = tempI64[1]; - if (stream.getdents && offset === 0 && whence === 0) - stream.getdents = null; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function doWritev(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = GROWABLE_HEAP_U32()[iov >>> 2]; - var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2]; - iov += 8; - var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset); - if (curr < 0) - return -1; - ret += curr; - if (typeof offset !== "undefined") { - offset += curr; - } - } - return ret; - } - function _fd_write(fd, iov, iovcnt, pnum) { - if (ENVIRONMENT_IS_PTHREAD) - return _emscripten_proxy_to_main_thread_js(8, 1, fd, iov, iovcnt, pnum); - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doWritev(stream, iov, iovcnt); - GROWABLE_HEAP_U32()[pnum >>> 2] = num; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function __isLeapYear(year) { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); - } - function __arraySum(array, index) { - var sum = 0; - for (var i = 0; i <= index; sum += array[i++]) { - } - return sum; - } - var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - function __addDays(date, days) { - var newDate = new Date(date.getTime()); - while (days > 0) { - var leap = __isLeapYear(newDate.getFullYear()); - var currentMonth = newDate.getMonth(); - var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; - if (days > daysInCurrentMonth - newDate.getDate()) { - days -= daysInCurrentMonth - newDate.getDate() + 1; - newDate.setDate(1); - if (currentMonth < 11) { - newDate.setMonth(currentMonth + 1); - } else { - newDate.setMonth(0); - newDate.setFullYear(newDate.getFullYear() + 1); - } - } else { - newDate.setDate(newDate.getDate() + days); - return newDate; - } - } - return newDate; - } - function writeArrayToMemory(array, buffer) { - GROWABLE_HEAP_I8().set(array, buffer >>> 0); - } - function _strftime(s, maxsize, format, tm) { - var tm_zone = GROWABLE_HEAP_I32()[tm + 40 >>> 2]; - var date = { tm_sec: GROWABLE_HEAP_I32()[tm >>> 2], tm_min: GROWABLE_HEAP_I32()[tm + 4 >>> 2], tm_hour: GROWABLE_HEAP_I32()[tm + 8 >>> 2], tm_mday: GROWABLE_HEAP_I32()[tm + 12 >>> 2], tm_mon: GROWABLE_HEAP_I32()[tm + 16 >>> 2], tm_year: GROWABLE_HEAP_I32()[tm + 20 >>> 2], tm_wday: GROWABLE_HEAP_I32()[tm + 24 >>> 2], tm_yday: GROWABLE_HEAP_I32()[tm + 28 >>> 2], tm_isdst: GROWABLE_HEAP_I32()[tm + 32 >>> 2], tm_gmtoff: GROWABLE_HEAP_I32()[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" }; - var pattern = UTF8ToString(format); - var EXPANSION_RULES_1 = { "%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 rule in EXPANSION_RULES_1) { - pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); - } - var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; - function leadingSomething(value, digits, character) { - var str = typeof value == "number" ? value.toString() : value || ""; - while (str.length < digits) { - str = character[0] + str; - } - return str; - } - function leadingNulls(value, digits) { - return leadingSomething(value, digits, "0"); - } - function compareByDay(date1, date2) { - function sgn(value) { - return value < 0 ? -1 : value > 0 ? 1 : 0; - } - var compare; - if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { - if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { - compare = sgn(date1.getDate() - date2.getDate()); - } - } - return compare; - } - function getFirstWeekStartDate(janFourth) { - switch (janFourth.getDay()) { - case 0: - return new Date(janFourth.getFullYear() - 1, 11, 29); - case 1: - return janFourth; - case 2: - return new Date(janFourth.getFullYear(), 0, 3); - case 3: - return new Date(janFourth.getFullYear(), 0, 2); - case 4: - return new Date(janFourth.getFullYear(), 0, 1); - case 5: - return new Date(janFourth.getFullYear() - 1, 11, 31); - case 6: - return new Date(janFourth.getFullYear() - 1, 11, 30); - } - } - function getWeekBasedYear(date2) { - var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); - var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); - var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); - var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); - var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); - if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { - if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { - return thisDate.getFullYear() + 1; - } - return thisDate.getFullYear(); - } - return thisDate.getFullYear() - 1; - } - var EXPANSION_RULES_2 = { "%a": function(date2) { - return WEEKDAYS[date2.tm_wday].substring(0, 3); - }, "%A": function(date2) { - return WEEKDAYS[date2.tm_wday]; - }, "%b": function(date2) { - return MONTHS[date2.tm_mon].substring(0, 3); - }, "%B": function(date2) { - return MONTHS[date2.tm_mon]; - }, "%C": function(date2) { - var year = date2.tm_year + 1900; - return leadingNulls(year / 100 | 0, 2); - }, "%d": function(date2) { - return leadingNulls(date2.tm_mday, 2); - }, "%e": function(date2) { - return leadingSomething(date2.tm_mday, 2, " "); - }, "%g": function(date2) { - return getWeekBasedYear(date2).toString().substring(2); - }, "%G": function(date2) { - return getWeekBasedYear(date2); - }, "%H": function(date2) { - return leadingNulls(date2.tm_hour, 2); - }, "%I": function(date2) { - var twelveHour = date2.tm_hour; - if (twelveHour == 0) - twelveHour = 12; - else if (twelveHour > 12) - twelveHour -= 12; - return leadingNulls(twelveHour, 2); - }, "%j": function(date2) { - return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); - }, "%m": function(date2) { - return leadingNulls(date2.tm_mon + 1, 2); - }, "%M": function(date2) { - return leadingNulls(date2.tm_min, 2); - }, "%n": function() { - return "\n"; - }, "%p": function(date2) { - if (date2.tm_hour >= 0 && date2.tm_hour < 12) { - return "AM"; - } - return "PM"; - }, "%S": function(date2) { - return leadingNulls(date2.tm_sec, 2); - }, "%t": function() { - return " "; - }, "%u": function(date2) { - return date2.tm_wday || 7; - }, "%U": function(date2) { - var days = date2.tm_yday + 7 - date2.tm_wday; - return leadingNulls(Math.floor(days / 7), 2); - }, "%V": function(date2) { - var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); - if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { - val++; - } - if (!val) { - val = 52; - var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; - if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { - val++; - } - } else if (val == 53) { - var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; - if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) - val = 1; - } - return leadingNulls(val, 2); - }, "%w": function(date2) { - return date2.tm_wday; - }, "%W": function(date2) { - var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; - return leadingNulls(Math.floor(days / 7), 2); - }, "%y": function(date2) { - return (date2.tm_year + 1900).toString().substring(2); - }, "%Y": function(date2) { - return date2.tm_year + 1900; - }, "%z": function(date2) { - var off = date2.tm_gmtoff; - var ahead = off >= 0; - off = Math.abs(off) / 60; - off = off / 60 * 100 + off % 60; - return (ahead ? "+" : "-") + String("0000" + off).slice(-4); - }, "%Z": function(date2) { - return date2.tm_zone; - }, "%%": function() { - return "%"; - } }; - pattern = pattern.replace(/%%/g, "\0\0"); - for (var rule in EXPANSION_RULES_2) { - if (pattern.includes(rule)) { - pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); - } - } - pattern = pattern.replace(/\0\0/g, "%"); - var bytes = intArrayFromString(pattern, false); - if (bytes.length > maxsize) { - return 0; - } - writeArrayToMemory(bytes, s); - return bytes.length - 1; - } - function _strftime_l(s, maxsize, format, tm, loc) { - return _strftime(s, maxsize, format, tm); - } - PThread.init(); - var FSNode = function(parent, name, mode, rdev) { - if (!parent) { - parent = this; - } - this.parent = parent; - this.mount = parent.mount; - this.mounted = null; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.node_ops = {}; - this.stream_ops = {}; - this.rdev = rdev; - }; - var readMode = 292 | 73; - var writeMode = 146; - Object.defineProperties(FSNode.prototype, { read: { get: function() { - return (this.mode & readMode) === readMode; - }, set: function(val) { - val ? this.mode |= readMode : this.mode &= ~readMode; - } }, write: { get: function() { - return (this.mode & writeMode) === writeMode; - }, set: function(val) { - val ? this.mode |= writeMode : this.mode &= ~writeMode; - } }, isFolder: { get: function() { - return FS.isDir(this.mode); - } }, isDevice: { get: function() { - return FS.isChrdev(this.mode); - } } }); - FS.FSNode = FSNode; - FS.staticInit(); - InternalError = Module["InternalError"] = extendError(Error, "InternalError"); - embind_init_charCodes(); - BindingError = Module["BindingError"] = extendError(Error, "BindingError"); - init_ClassHandle(); - init_embind(); - init_RegisteredPointer(); - UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); - init_emval(); - var proxiedFunctionTable = [null, _proc_exit, exitOnMainThread, _environ_get, _environ_sizes_get, _fd_close, _fd_read, _fd_seek, _fd_write]; - var wasmImports = { "g": ___cxa_throw, "T": ___emscripten_init_main_thread_js, "J": ___emscripten_thread_cleanup, "X": __dlinit, "_": __dlopen_js, "Z": __dlsym_catchup_js, "da": __embind_finalize_value_array, "q": __embind_finalize_value_object, "H": __embind_register_bigint, "ba": __embind_register_bool, "p": __embind_register_class, "o": __embind_register_class_constructor, "c": __embind_register_class_function, "aa": __embind_register_emval, "D": __embind_register_enum, "t": __embind_register_enum_value, "B": __embind_register_float, "d": __embind_register_function, "s": __embind_register_integer, "i": __embind_register_memory_view, "C": __embind_register_std_string, "x": __embind_register_std_wstring, "ea": __embind_register_value_array, "j": __embind_register_value_array_element, "r": __embind_register_value_object, "f": __embind_register_value_object_field, "ca": __embind_register_void, "Y": __emscripten_err, "V": __emscripten_notify_task_queue, "S": __emscripten_set_offscreencanvas_size, "n": __emval_as, "z": __emval_call, "b": __emval_decref, "F": __emval_get_global, "l": __emval_get_property, "u": __emval_incref, "ga": __emval_instanceof, "y": __emval_is_number, "E": __emval_is_string, "fa": __emval_new_array, "h": __emval_new_cstring, "w": __emval_new_object, "m": __emval_run_destructors, "k": __emval_set_property, "e": __emval_take_value, "A": _abort, "U": _emscripten_check_blocking_allowed, "v": _emscripten_get_now, "W": _emscripten_memcpy_big, "R": _emscripten_receive_on_main_thread_js, "P": _emscripten_resize_heap, "$": _emscripten_unwind_to_js_event_loop, "L": _environ_get, "M": _environ_sizes_get, "I": _exit, "N": _fd_close, "O": _fd_read, "G": _fd_seek, "Q": _fd_write, "a": wasmMemory || Module["wasmMemory"], "K": _strftime_l }; - createWasm(); - var _malloc = function() { - return (_malloc = Module["asm"]["ja"]).apply(null, arguments); - }; - Module["__emscripten_tls_init"] = function() { - return (Module["__emscripten_tls_init"] = Module["asm"]["ka"]).apply(null, arguments); - }; - var _pthread_self = Module["_pthread_self"] = function() { - return (_pthread_self = Module["_pthread_self"] = Module["asm"]["la"]).apply(null, arguments); - }; - var ___getTypeName = Module["___getTypeName"] = function() { - return (___getTypeName = Module["___getTypeName"] = Module["asm"]["ma"]).apply(null, arguments); - }; - Module["__embind_initialize_bindings"] = function() { - return (Module["__embind_initialize_bindings"] = Module["asm"]["na"]).apply(null, arguments); - }; - var __emscripten_thread_init = Module["__emscripten_thread_init"] = function() { - return (__emscripten_thread_init = Module["__emscripten_thread_init"] = Module["asm"]["oa"]).apply(null, arguments); - }; - Module["__emscripten_thread_crashed"] = function() { - return (Module["__emscripten_thread_crashed"] = Module["asm"]["pa"]).apply(null, arguments); - }; - var _emscripten_run_in_main_runtime_thread_js = function() { - return (_emscripten_run_in_main_runtime_thread_js = Module["asm"]["qa"]).apply(null, arguments); - }; - var __emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = function() { - return (__emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = Module["asm"]["ra"]).apply(null, arguments); - }; - var __emscripten_thread_free_data = function() { - return (__emscripten_thread_free_data = Module["asm"]["sa"]).apply(null, arguments); - }; - var __emscripten_thread_exit = Module["__emscripten_thread_exit"] = function() { - return (__emscripten_thread_exit = Module["__emscripten_thread_exit"] = Module["asm"]["ta"]).apply(null, arguments); - }; - var _free = function() { - return (_free = Module["asm"]["ua"]).apply(null, arguments); - }; - var _emscripten_stack_set_limits = function() { - return (_emscripten_stack_set_limits = Module["asm"]["va"]).apply(null, arguments); - }; - var stackSave = function() { - return (stackSave = Module["asm"]["wa"]).apply(null, arguments); - }; - var stackRestore = function() { - return (stackRestore = Module["asm"]["xa"]).apply(null, arguments); - }; - var stackAlloc = function() { - return (stackAlloc = Module["asm"]["ya"]).apply(null, arguments); - }; - var ___cxa_is_pointer_type = function() { - return (___cxa_is_pointer_type = Module["asm"]["za"]).apply(null, arguments); - }; - Module["dynCall_jiji"] = function() { - return (Module["dynCall_jiji"] = Module["asm"]["Aa"]).apply(null, arguments); - }; - Module["dynCall_viijii"] = function() { - return (Module["dynCall_viijii"] = Module["asm"]["Ba"]).apply(null, arguments); - }; - Module["dynCall_iiiiij"] = function() { - return (Module["dynCall_iiiiij"] = Module["asm"]["Ca"]).apply(null, arguments); - }; - Module["dynCall_iiiiijj"] = function() { - return (Module["dynCall_iiiiijj"] = Module["asm"]["Da"]).apply(null, arguments); - }; - Module["dynCall_iiiiiijj"] = function() { - return (Module["dynCall_iiiiiijj"] = Module["asm"]["Ea"]).apply(null, arguments); - }; - Module["keepRuntimeAlive"] = keepRuntimeAlive; - Module["wasmMemory"] = wasmMemory; - Module["ExitStatus"] = ExitStatus; - Module["PThread"] = PThread; - var calledRun; - dependenciesFulfilled = function runCaller() { - if (!calledRun) - run(); - if (!calledRun) - dependenciesFulfilled = runCaller; - }; - function run() { - if (runDependencies > 0) { - return; - } - if (ENVIRONMENT_IS_PTHREAD) { - readyPromiseResolve(Module); - initRuntime(); - startWorker(Module); - return; - } - preRun(); - if (runDependencies > 0) { - return; - } - function doRun() { - if (calledRun) - return; - calledRun = true; - Module["calledRun"] = true; - if (ABORT) - return; - initRuntime(); - readyPromiseResolve(Module); - if (Module["onRuntimeInitialized"]) - Module["onRuntimeInitialized"](); - postRun(); - } - if (Module["setStatus"]) { - Module["setStatus"]("Running..."); - setTimeout(function() { - setTimeout(function() { - Module["setStatus"](""); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - } - if (Module["preInit"]) { - if (typeof Module["preInit"] == "function") - Module["preInit"] = [Module["preInit"]]; - while (Module["preInit"].length > 0) { - Module["preInit"].pop()(); - } - } - run(); - return WebIFCWasm3.ready; - }; - })(); - if (typeof exports === "object" && typeof module === "object") - module.exports = WebIFCWasm2; - else if (typeof define === "function" && define["amd"]) - define([], function() { - return WebIFCWasm2; - }); - else if (typeof exports === "object") - exports["WebIFCWasm"] = WebIFCWasm2; - } - }); - - // dist/web-ifc.js - var require_web_ifc = __commonJS({ - "dist/web-ifc.js"(exports, module) { - var WebIFCWasm2 = (() => { - var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; - return function(WebIFCWasm3 = {}) { - var Module = typeof WebIFCWasm3 != "undefined" ? WebIFCWasm3 : {}; - var readyPromiseResolve, readyPromiseReject; - Module["ready"] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; - }); - var moduleOverrides = Object.assign({}, Module); - var thisProgram = "./this.program"; - var ENVIRONMENT_IS_WEB = true; - var scriptDirectory = ""; - function locateFile(path) { - if (Module["locateFile"]) { - return Module["locateFile"](path, scriptDirectory); - } - return scriptDirectory + path; - } - var read_, readAsync, readBinary; - { - if (typeof document != "undefined" && document.currentScript) { - scriptDirectory = document.currentScript.src; - } - if (_scriptDir) { - scriptDirectory = _scriptDir; - } - if (scriptDirectory.indexOf("blob:") !== 0) { - scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); - } else { - scriptDirectory = ""; - } - { - read_ = (url) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, false); - xhr.send(null); - return xhr.responseText; - }; - readAsync = (url, onload, onerror) => { - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, true); - xhr.responseType = "arraybuffer"; - xhr.onload = () => { - if (xhr.status == 200 || xhr.status == 0 && xhr.response) { - onload(xhr.response); - return; - } - onerror(); - }; - xhr.onerror = onerror; - xhr.send(null); - }; - } - } - var out = Module["print"] || console.log.bind(console); - var err = Module["printErr"] || console.warn.bind(console); - Object.assign(Module, moduleOverrides); - moduleOverrides = null; - if (Module["arguments"]) - ; - if (Module["thisProgram"]) - thisProgram = Module["thisProgram"]; - if (Module["quit"]) - ; - var wasmBinary; - if (Module["wasmBinary"]) - wasmBinary = Module["wasmBinary"]; - Module["noExitRuntime"] || true; - if (typeof WebAssembly != "object") { - abort("no native wasm support detected"); - } - var wasmMemory; - var ABORT = false; - function assert(condition, text) { - if (!condition) { - abort(text); - } - } - var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0; - function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) { - idx >>>= 0; - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - while (heapOrArray[endPtr] && !(endPtr >= endIdx)) - ++endPtr; - if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { - return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); - } - var str = ""; - while (idx < endPtr) { - var u0 = heapOrArray[idx++]; - if (!(u0 & 128)) { - str += String.fromCharCode(u0); - continue; - } - var u1 = heapOrArray[idx++] & 63; - if ((u0 & 224) == 192) { - str += String.fromCharCode((u0 & 31) << 6 | u1); - continue; - } - var u2 = heapOrArray[idx++] & 63; - if ((u0 & 240) == 224) { - u0 = (u0 & 15) << 12 | u1 << 6 | u2; - } else { - u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63; - } - if (u0 < 65536) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } - } - return str; - } - function UTF8ToString(ptr, maxBytesToRead) { - ptr >>>= 0; - return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; - } - function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - outIdx >>>= 0; - if (!(maxBytesToWrite > 0)) - return 0; - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) { - var u1 = str.charCodeAt(++i); - u = 65536 + ((u & 1023) << 10) | u1 & 1023; - } - if (u <= 127) { - if (outIdx >= endIdx) - break; - heap[outIdx++ >>> 0] = u; - } else if (u <= 2047) { - if (outIdx + 1 >= endIdx) - break; - heap[outIdx++ >>> 0] = 192 | u >> 6; - heap[outIdx++ >>> 0] = 128 | u & 63; - } else if (u <= 65535) { - if (outIdx + 2 >= endIdx) - break; - heap[outIdx++ >>> 0] = 224 | u >> 12; - heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; - heap[outIdx++ >>> 0] = 128 | u & 63; - } else { - if (outIdx + 3 >= endIdx) - break; - heap[outIdx++ >>> 0] = 240 | u >> 18; - heap[outIdx++ >>> 0] = 128 | u >> 12 & 63; - heap[outIdx++ >>> 0] = 128 | u >> 6 & 63; - heap[outIdx++ >>> 0] = 128 | u & 63; - } - } - heap[outIdx >>> 0] = 0; - return outIdx - startIdx; - } - function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); - } - function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var c = str.charCodeAt(i); - if (c <= 127) { - len++; - } else if (c <= 2047) { - len += 2; - } else if (c >= 55296 && c <= 57343) { - len += 4; - ++i; - } else { - len += 3; - } - } - return len; - } - var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; - function updateMemoryViews() { - var b = wasmMemory.buffer; - Module["HEAP8"] = HEAP8 = new Int8Array(b); - Module["HEAP16"] = HEAP16 = new Int16Array(b); - Module["HEAP32"] = HEAP32 = new Int32Array(b); - Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); - Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); - Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); - Module["HEAPF32"] = HEAPF32 = new Float32Array(b); - Module["HEAPF64"] = HEAPF64 = new Float64Array(b); - } - var wasmTable; - var __ATPRERUN__ = []; - var __ATINIT__ = []; - var __ATPOSTRUN__ = []; - function preRun() { - if (Module["preRun"]) { - if (typeof Module["preRun"] == "function") - Module["preRun"] = [Module["preRun"]]; - while (Module["preRun"].length) { - addOnPreRun(Module["preRun"].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); - } - function initRuntime() { - if (!Module["noFSInit"] && !FS.init.initialized) - FS.init(); - FS.ignorePermissions = false; - callRuntimeCallbacks(__ATINIT__); - } - function postRun() { - if (Module["postRun"]) { - if (typeof Module["postRun"] == "function") - Module["postRun"] = [Module["postRun"]]; - while (Module["postRun"].length) { - addOnPostRun(Module["postRun"].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); - } - function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); - } - function addOnInit(cb) { - __ATINIT__.unshift(cb); - } - function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); - } - var runDependencies = 0; - var dependenciesFulfilled = null; - function getUniqueRunDependency(id) { - return id; - } - function addRunDependency(id) { - runDependencies++; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - } - function removeRunDependency(id) { - runDependencies--; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - if (runDependencies == 0) { - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); - } - } - } - function abort(what) { - if (Module["onAbort"]) { - Module["onAbort"](what); - } - what = "Aborted(" + what + ")"; - err(what); - ABORT = true; - what += ". Build with -sASSERTIONS for more info."; - var e = new WebAssembly.RuntimeError(what); - readyPromiseReject(e); - throw e; - } - var dataURIPrefix = "data:application/octet-stream;base64,"; - function isDataURI(filename) { - return filename.startsWith(dataURIPrefix); - } - var wasmBinaryFile; - wasmBinaryFile = "web-ifc.wasm"; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - if (readBinary) ; - throw "both async and sync fetching of the wasm failed"; - } catch (err2) { - abort(err2); - } - } - function getBinaryPromise() { - if (!wasmBinary && (ENVIRONMENT_IS_WEB )) { - if (typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - if (!response["ok"]) { - throw "failed to load wasm binary file at '" + wasmBinaryFile + "'"; - } - return response["arrayBuffer"](); - }).catch(function() { - return getBinary(wasmBinaryFile); - }); - } - } - return Promise.resolve().then(function() { - return getBinary(wasmBinaryFile); - }); - } - function createWasm() { - var info = { "a": wasmImports }; - function receiveInstance(instance, module2) { - var exports3 = instance.exports; - Module["asm"] = exports3; - wasmMemory = Module["asm"]["V"]; - updateMemoryViews(); - wasmTable = Module["asm"]["X"]; - addOnInit(Module["asm"]["W"]); - removeRunDependency(); - } - addRunDependency(); - function receiveInstantiationResult(result) { - receiveInstance(result["instance"]); - } - function instantiateArrayBuffer(receiver) { - return getBinaryPromise().then(function(binary) { - return WebAssembly.instantiate(binary, info); - }).then(function(instance) { - return instance; - }).then(receiver, function(reason) { - err("failed to asynchronously prepare wasm: " + reason); - abort(reason); - }); - } - function instantiateAsync() { - if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && typeof fetch == "function") { - return fetch(wasmBinaryFile, { credentials: "same-origin" }).then(function(response) { - var result = WebAssembly.instantiateStreaming(response, info); - return result.then(receiveInstantiationResult, function(reason) { - err("wasm streaming compile failed: " + reason); - err("falling back to ArrayBuffer instantiation"); - return instantiateArrayBuffer(receiveInstantiationResult); - }); - }); - } else { - return instantiateArrayBuffer(receiveInstantiationResult); - } - } - if (Module["instantiateWasm"]) { - try { - var exports2 = Module["instantiateWasm"](info, receiveInstance); - return exports2; - } catch (e) { - err("Module.instantiateWasm callback failed with error: " + e); - readyPromiseReject(e); - } - } - instantiateAsync().catch(readyPromiseReject); - return {}; - } - var tempDouble; - var tempI64; - function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - callbacks.shift()(Module); - } - } - function ExceptionInfo(excPtr) { - this.excPtr = excPtr; - this.ptr = excPtr - 24; - this.set_type = function(type) { - HEAPU32[this.ptr + 4 >>> 2] = type; - }; - this.get_type = function() { - return HEAPU32[this.ptr + 4 >>> 2]; - }; - this.set_destructor = function(destructor) { - HEAPU32[this.ptr + 8 >>> 2] = destructor; - }; - this.get_destructor = function() { - return HEAPU32[this.ptr + 8 >>> 2]; - }; - this.set_refcount = function(refcount) { - HEAP32[this.ptr >>> 2] = refcount; - }; - this.set_caught = function(caught) { - caught = caught ? 1 : 0; - HEAP8[this.ptr + 12 >>> 0] = caught; - }; - this.get_caught = function() { - return HEAP8[this.ptr + 12 >>> 0] != 0; - }; - this.set_rethrown = function(rethrown) { - rethrown = rethrown ? 1 : 0; - HEAP8[this.ptr + 13 >>> 0] = rethrown; - }; - this.get_rethrown = function() { - return HEAP8[this.ptr + 13 >>> 0] != 0; - }; - this.init = function(type, destructor) { - this.set_adjusted_ptr(0); - this.set_type(type); - this.set_destructor(destructor); - this.set_refcount(0); - this.set_caught(false); - this.set_rethrown(false); - }; - this.add_ref = function() { - var value = HEAP32[this.ptr >>> 2]; - HEAP32[this.ptr >>> 2] = value + 1; - }; - this.release_ref = function() { - var prev = HEAP32[this.ptr >>> 2]; - HEAP32[this.ptr >>> 2] = prev - 1; - return prev === 1; - }; - this.set_adjusted_ptr = function(adjustedPtr) { - HEAPU32[this.ptr + 16 >>> 2] = adjustedPtr; - }; - this.get_adjusted_ptr = function() { - return HEAPU32[this.ptr + 16 >>> 2]; - }; - this.get_exception_ptr = function() { - var isPointer = ___cxa_is_pointer_type(this.get_type()); - if (isPointer) { - return HEAPU32[this.excPtr >>> 2]; - } - var adjusted = this.get_adjusted_ptr(); - if (adjusted !== 0) - return adjusted; - return this.excPtr; - }; - } - function ___cxa_throw(ptr, type, destructor) { - var info = new ExceptionInfo(ptr); - info.init(type, destructor); - throw ptr; - } - var tupleRegistrations = {}; - function runDestructors(destructors) { - while (destructors.length) { - var ptr = destructors.pop(); - var del = destructors.pop(); - del(ptr); - } - } - function simpleReadValueFromPointer(pointer) { - return this["fromWireType"](HEAP32[pointer >>> 2]); - } - var awaitingDependencies = {}; - var registeredTypes = {}; - var typeDependencies = {}; - var char_0 = 48; - var char_9 = 57; - function makeLegalFunctionName(name) { - if (name === void 0) { - return "_unknown"; - } - name = name.replace(/[^a-zA-Z0-9_]/g, "$"); - var f = name.charCodeAt(0); - if (f >= char_0 && f <= char_9) { - return "_" + name; - } - return name; - } - function createNamedFunction(name, body) { - name = makeLegalFunctionName(name); - return new Function("body", "return function " + name + '() {\n "use strict"; return body.apply(this, arguments);\n};\n')(body); - } - function extendError(baseErrorType, errorName) { - var errorClass = createNamedFunction(errorName, function(message) { - this.name = errorName; - this.message = message; - var stack = new Error(message).stack; - if (stack !== void 0) { - this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, ""); - } - }); - errorClass.prototype = Object.create(baseErrorType.prototype); - errorClass.prototype.constructor = errorClass; - errorClass.prototype.toString = function() { - if (this.message === void 0) { - return this.name; - } else { - return this.name + ": " + this.message; - } - }; - return errorClass; - } - var InternalError = void 0; - function throwInternalError(message) { - throw new InternalError(message); - } - function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) { - myTypes.forEach(function(type) { - typeDependencies[type] = dependentTypes; - }); - function onComplete(typeConverters2) { - var myTypeConverters = getTypeConverters(typeConverters2); - if (myTypeConverters.length !== myTypes.length) { - throwInternalError("Mismatched type converter count"); - } - for (var i = 0; i < myTypes.length; ++i) { - registerType(myTypes[i], myTypeConverters[i]); - } - } - var typeConverters = new Array(dependentTypes.length); - var unregisteredTypes = []; - var registered = 0; - dependentTypes.forEach((dt, i) => { - if (registeredTypes.hasOwnProperty(dt)) { - typeConverters[i] = registeredTypes[dt]; - } else { - unregisteredTypes.push(dt); - if (!awaitingDependencies.hasOwnProperty(dt)) { - awaitingDependencies[dt] = []; - } - awaitingDependencies[dt].push(() => { - typeConverters[i] = registeredTypes[dt]; - ++registered; - if (registered === unregisteredTypes.length) { - onComplete(typeConverters); - } - }); - } - }); - if (unregisteredTypes.length === 0) { - onComplete(typeConverters); - } - } - function __embind_finalize_value_array(rawTupleType) { - var reg = tupleRegistrations[rawTupleType]; - delete tupleRegistrations[rawTupleType]; - var elements = reg.elements; - var elementsLength = elements.length; - var elementTypes = elements.map(function(elt) { - return elt.getterReturnType; - }).concat(elements.map(function(elt) { - return elt.setterArgumentType; - })); - var rawConstructor = reg.rawConstructor; - var rawDestructor = reg.rawDestructor; - whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) { - elements.forEach((elt, i) => { - var getterReturnType = elementTypes2[i]; - var getter = elt.getter; - var getterContext = elt.getterContext; - var setterArgumentType = elementTypes2[i + elementsLength]; - var setter = elt.setter; - var setterContext = elt.setterContext; - elt.read = (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }; - elt.write = (ptr, o) => { - var destructors = []; - setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); - runDestructors(destructors); - }; - }); - return [{ name: reg.name, "fromWireType": function(ptr) { - var rv = new Array(elementsLength); - for (var i = 0; i < elementsLength; ++i) { - rv[i] = elements[i].read(ptr); - } - rawDestructor(ptr); - return rv; - }, "toWireType": function(destructors, o) { - if (elementsLength !== o.length) { - throw new TypeError("Incorrect number of tuple elements for " + reg.name + ": expected=" + elementsLength + ", actual=" + o.length); - } - var ptr = rawConstructor(); - for (var i = 0; i < elementsLength; ++i) { - elements[i].write(ptr, o[i]); - } - if (destructors !== null) { - destructors.push(rawDestructor, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; - }); - } - var structRegistrations = {}; - function __embind_finalize_value_object(structType) { - var reg = structRegistrations[structType]; - delete structRegistrations[structType]; - var rawConstructor = reg.rawConstructor; - var rawDestructor = reg.rawDestructor; - var fieldRecords = reg.fields; - var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType)); - whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => { - var fields = {}; - fieldRecords.forEach((field, i) => { - var fieldName = field.fieldName; - var getterReturnType = fieldTypes2[i]; - var getter = field.getter; - var getterContext = field.getterContext; - var setterArgumentType = fieldTypes2[i + fieldRecords.length]; - var setter = field.setter; - var setterContext = field.setterContext; - fields[fieldName] = { read: (ptr) => { - return getterReturnType["fromWireType"](getter(getterContext, ptr)); - }, write: (ptr, o) => { - var destructors = []; - setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o)); - runDestructors(destructors); - } }; - }); - return [{ name: reg.name, "fromWireType": function(ptr) { - var rv = {}; - for (var i in fields) { - rv[i] = fields[i].read(ptr); - } - rawDestructor(ptr); - return rv; - }, "toWireType": function(destructors, o) { - for (var fieldName in fields) { - if (!(fieldName in o)) { - throw new TypeError('Missing field: "' + fieldName + '"'); - } - } - var ptr = rawConstructor(); - for (fieldName in fields) { - fields[fieldName].write(ptr, o[fieldName]); - } - if (destructors !== null) { - destructors.push(rawDestructor, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }]; - }); - } - function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) { - } - function getShiftFromSize(size) { - switch (size) { - case 1: - return 0; - case 2: - return 1; - case 4: - return 2; - case 8: - return 3; - default: - throw new TypeError("Unknown type size: " + size); - } - } - function embind_init_charCodes() { - var codes = new Array(256); - for (var i = 0; i < 256; ++i) { - codes[i] = String.fromCharCode(i); - } - embind_charCodes = codes; - } - var embind_charCodes = void 0; - function readLatin1String(ptr) { - var ret = ""; - var c = ptr; - while (HEAPU8[c >>> 0]) { - ret += embind_charCodes[HEAPU8[c++ >>> 0]]; - } - return ret; - } - var BindingError = void 0; - function throwBindingError(message) { - throw new BindingError(message); - } - function registerType(rawType, registeredInstance, options = {}) { - if (!("argPackAdvance" in registeredInstance)) { - throw new TypeError("registerType registeredInstance requires argPackAdvance"); - } - var name = registeredInstance.name; - if (!rawType) { - throwBindingError('type "' + name + '" must have a positive integer typeid pointer'); - } - if (registeredTypes.hasOwnProperty(rawType)) { - if (options.ignoreDuplicateRegistrations) { - return; - } else { - throwBindingError("Cannot register type '" + name + "' twice"); - } - } - registeredTypes[rawType] = registeredInstance; - delete typeDependencies[rawType]; - if (awaitingDependencies.hasOwnProperty(rawType)) { - var callbacks = awaitingDependencies[rawType]; - delete awaitingDependencies[rawType]; - callbacks.forEach((cb) => cb()); - } - } - function __embind_register_bool(rawType, name, size, trueValue, falseValue) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(wt) { - return !!wt; - }, "toWireType": function(destructors, o) { - return o ? trueValue : falseValue; - }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) { - var heap; - if (size === 1) { - heap = HEAP8; - } else if (size === 2) { - heap = HEAP16; - } else if (size === 4) { - heap = HEAP32; - } else { - throw new TypeError("Unknown boolean type size: " + name); - } - return this["fromWireType"](heap[pointer >>> shift]); - }, destructorFunction: null }); - } - function ClassHandle_isAliasOf(other) { - if (!(this instanceof ClassHandle)) { - return false; - } - if (!(other instanceof ClassHandle)) { - return false; - } - var leftClass = this.$$.ptrType.registeredClass; - var left = this.$$.ptr; - var rightClass = other.$$.ptrType.registeredClass; - var right = other.$$.ptr; - while (leftClass.baseClass) { - left = leftClass.upcast(left); - leftClass = leftClass.baseClass; - } - while (rightClass.baseClass) { - right = rightClass.upcast(right); - rightClass = rightClass.baseClass; - } - return leftClass === rightClass && left === right; - } - function shallowCopyInternalPointer(o) { - return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType }; - } - function throwInstanceAlreadyDeleted(obj) { - function getInstanceTypeName(handle) { - return handle.$$.ptrType.registeredClass.name; - } - throwBindingError(getInstanceTypeName(obj) + " instance already deleted"); - } - var finalizationRegistry = false; - function detachFinalizer(handle) { - } - function runDestructor($$) { - if ($$.smartPtr) { - $$.smartPtrType.rawDestructor($$.smartPtr); - } else { - $$.ptrType.registeredClass.rawDestructor($$.ptr); - } - } - function releaseClassHandle($$) { - $$.count.value -= 1; - var toDelete = $$.count.value === 0; - if (toDelete) { - runDestructor($$); - } - } - function downcastPointer(ptr, ptrClass, desiredClass) { - if (ptrClass === desiredClass) { - return ptr; - } - if (desiredClass.baseClass === void 0) { - return null; - } - var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass); - if (rv === null) { - return null; - } - return desiredClass.downcast(rv); - } - var registeredPointers = {}; - function getInheritedInstanceCount() { - return Object.keys(registeredInstances).length; - } - function getLiveInheritedInstances() { - var rv = []; - for (var k in registeredInstances) { - if (registeredInstances.hasOwnProperty(k)) { - rv.push(registeredInstances[k]); - } - } - return rv; - } - var deletionQueue = []; - function flushPendingDeletes() { - while (deletionQueue.length) { - var obj = deletionQueue.pop(); - obj.$$.deleteScheduled = false; - obj["delete"](); - } - } - var delayFunction = void 0; - function setDelayFunction(fn) { - delayFunction = fn; - if (deletionQueue.length && delayFunction) { - delayFunction(flushPendingDeletes); - } - } - function init_embind() { - Module["getInheritedInstanceCount"] = getInheritedInstanceCount; - Module["getLiveInheritedInstances"] = getLiveInheritedInstances; - Module["flushPendingDeletes"] = flushPendingDeletes; - Module["setDelayFunction"] = setDelayFunction; - } - var registeredInstances = {}; - function getBasestPointer(class_, ptr) { - if (ptr === void 0) { - throwBindingError("ptr should not be undefined"); - } - while (class_.baseClass) { - ptr = class_.upcast(ptr); - class_ = class_.baseClass; - } - return ptr; - } - function getInheritedInstance(class_, ptr) { - ptr = getBasestPointer(class_, ptr); - return registeredInstances[ptr]; - } - function makeClassHandle(prototype, record) { - if (!record.ptrType || !record.ptr) { - throwInternalError("makeClassHandle requires ptr and ptrType"); - } - var hasSmartPtrType = !!record.smartPtrType; - var hasSmartPtr = !!record.smartPtr; - if (hasSmartPtrType !== hasSmartPtr) { - throwInternalError("Both smartPtrType and smartPtr must be specified"); - } - record.count = { value: 1 }; - return attachFinalizer(Object.create(prototype, { $$: { value: record } })); - } - function RegisteredPointer_fromWireType(ptr) { - var rawPointer = this.getPointee(ptr); - if (!rawPointer) { - this.destructor(ptr); - return null; - } - var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer); - if (registeredInstance !== void 0) { - if (registeredInstance.$$.count.value === 0) { - registeredInstance.$$.ptr = rawPointer; - registeredInstance.$$.smartPtr = ptr; - return registeredInstance["clone"](); - } else { - var rv = registeredInstance["clone"](); - this.destructor(ptr); - return rv; - } - } - function makeDefaultHandle() { - if (this.isSmartPointer) { - return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr }); - } else { - return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr }); - } - } - var actualType = this.registeredClass.getActualType(rawPointer); - var registeredPointerRecord = registeredPointers[actualType]; - if (!registeredPointerRecord) { - return makeDefaultHandle.call(this); - } - var toType; - if (this.isConst) { - toType = registeredPointerRecord.constPointerType; - } else { - toType = registeredPointerRecord.pointerType; - } - var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass); - if (dp === null) { - return makeDefaultHandle.call(this); - } - if (this.isSmartPointer) { - return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr }); - } else { - return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp }); - } - } - function attachFinalizer(handle) { - if (typeof FinalizationRegistry === "undefined") { - attachFinalizer = (handle2) => handle2; - return handle; - } - finalizationRegistry = new FinalizationRegistry((info) => { - releaseClassHandle(info.$$); - }); - attachFinalizer = (handle2) => { - var $$ = handle2.$$; - var hasSmartPtr = !!$$.smartPtr; - if (hasSmartPtr) { - var info = { $$ }; - finalizationRegistry.register(handle2, info, handle2); - } - return handle2; - }; - detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2); - return attachFinalizer(handle); - } - function ClassHandle_clone() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.preservePointerOnDelete) { - this.$$.count.value += 1; - return this; - } else { - var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } })); - clone.$$.count.value += 1; - clone.$$.deleteScheduled = false; - return clone; - } - } - function ClassHandle_delete() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError("Object already scheduled for deletion"); - } - detachFinalizer(this); - releaseClassHandle(this.$$); - if (!this.$$.preservePointerOnDelete) { - this.$$.smartPtr = void 0; - this.$$.ptr = void 0; - } - } - function ClassHandle_isDeleted() { - return !this.$$.ptr; - } - function ClassHandle_deleteLater() { - if (!this.$$.ptr) { - throwInstanceAlreadyDeleted(this); - } - if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) { - throwBindingError("Object already scheduled for deletion"); - } - deletionQueue.push(this); - if (deletionQueue.length === 1 && delayFunction) { - delayFunction(flushPendingDeletes); - } - this.$$.deleteScheduled = true; - return this; - } - function init_ClassHandle() { - ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf; - ClassHandle.prototype["clone"] = ClassHandle_clone; - ClassHandle.prototype["delete"] = ClassHandle_delete; - ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted; - ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater; - } - function ClassHandle() { - } - function ensureOverloadTable(proto, methodName, humanName) { - if (proto[methodName].overloadTable === void 0) { - var prevFunc = proto[methodName]; - proto[methodName] = function() { - if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) { - throwBindingError("Function '" + humanName + "' called with an invalid number of arguments (" + arguments.length + ") - expects one of (" + proto[methodName].overloadTable + ")!"); - } - return proto[methodName].overloadTable[arguments.length].apply(this, arguments); - }; - proto[methodName].overloadTable = []; - proto[methodName].overloadTable[prevFunc.argCount] = prevFunc; - } - } - function exposePublicSymbol(name, value, numArguments) { - if (Module.hasOwnProperty(name)) { - if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) { - throwBindingError("Cannot register public name '" + name + "' twice"); - } - ensureOverloadTable(Module, name, name); - if (Module.hasOwnProperty(numArguments)) { - throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (" + numArguments + ")!"); - } - Module[name].overloadTable[numArguments] = value; - } else { - Module[name] = value; - if (numArguments !== void 0) { - Module[name].numArguments = numArguments; - } - } - } - function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) { - this.name = name; - this.constructor = constructor; - this.instancePrototype = instancePrototype; - this.rawDestructor = rawDestructor; - this.baseClass = baseClass; - this.getActualType = getActualType; - this.upcast = upcast; - this.downcast = downcast; - this.pureVirtualFunctions = []; - } - function upcastPointer(ptr, ptrClass, desiredClass) { - while (ptrClass !== desiredClass) { - if (!ptrClass.upcast) { - throwBindingError("Expected null or instance of " + desiredClass.name + ", got an instance of " + ptrClass.name); - } - ptr = ptrClass.upcast(ptr); - ptrClass = ptrClass.baseClass; - } - return ptr; - } - function constNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - return 0; - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - function genericPointerToWireType(destructors, handle) { - var ptr; - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - if (this.isSmartPointer) { - ptr = this.rawConstructor(); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - return ptr; - } else { - return 0; - } - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - if (!this.isConst && handle.$$.ptrType.isConst) { - throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - if (this.isSmartPointer) { - if (handle.$$.smartPtr === void 0) { - throwBindingError("Passing raw pointer to smart pointer is illegal"); - } - switch (this.sharingPolicy) { - case 0: - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - throwBindingError("Cannot convert argument of type " + (handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name) + " to parameter type " + this.name); - } - break; - case 1: - ptr = handle.$$.smartPtr; - break; - case 2: - if (handle.$$.smartPtrType === this) { - ptr = handle.$$.smartPtr; - } else { - var clonedHandle = handle["clone"](); - ptr = this.rawShare(ptr, Emval.toHandle(function() { - clonedHandle["delete"](); - })); - if (destructors !== null) { - destructors.push(this.rawDestructor, ptr); - } - } - break; - default: - throwBindingError("Unsupporting sharing policy"); - } - } - return ptr; - } - function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) { - if (handle === null) { - if (this.isReference) { - throwBindingError("null is not a valid " + this.name); - } - return 0; - } - if (!handle.$$) { - throwBindingError('Cannot pass "' + embindRepr(handle) + '" as a ' + this.name); - } - if (!handle.$$.ptr) { - throwBindingError("Cannot pass deleted object as a pointer of type " + this.name); - } - if (handle.$$.ptrType.isConst) { - throwBindingError("Cannot convert argument of type " + handle.$$.ptrType.name + " to parameter type " + this.name); - } - var handleClass = handle.$$.ptrType.registeredClass; - var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass); - return ptr; - } - function RegisteredPointer_getPointee(ptr) { - if (this.rawGetPointee) { - ptr = this.rawGetPointee(ptr); - } - return ptr; - } - function RegisteredPointer_destructor(ptr) { - if (this.rawDestructor) { - this.rawDestructor(ptr); - } - } - function RegisteredPointer_deleteObject(handle) { - if (handle !== null) { - handle["delete"](); - } - } - function init_RegisteredPointer() { - RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee; - RegisteredPointer.prototype.destructor = RegisteredPointer_destructor; - RegisteredPointer.prototype["argPackAdvance"] = 8; - RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer; - RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject; - RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType; - } - function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) { - this.name = name; - this.registeredClass = registeredClass; - this.isReference = isReference; - this.isConst = isConst; - this.isSmartPointer = isSmartPointer; - this.pointeeType = pointeeType; - this.sharingPolicy = sharingPolicy; - this.rawGetPointee = rawGetPointee; - this.rawConstructor = rawConstructor; - this.rawShare = rawShare; - this.rawDestructor = rawDestructor; - if (!isSmartPointer && registeredClass.baseClass === void 0) { - if (isConst) { - this["toWireType"] = constNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } else { - this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType; - this.destructorFunction = null; - } - } else { - this["toWireType"] = genericPointerToWireType; - } - } - function replacePublicSymbol(name, value, numArguments) { - if (!Module.hasOwnProperty(name)) { - throwInternalError("Replacing nonexistant public symbol"); - } - if (Module[name].overloadTable !== void 0 && numArguments !== void 0) { - Module[name].overloadTable[numArguments] = value; - } else { - Module[name] = value; - Module[name].argCount = numArguments; - } - } - function dynCallLegacy(sig, ptr, args) { - var f = Module["dynCall_" + sig]; - return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr); - } - var wasmTableMirror = []; - function getWasmTableEntry(funcPtr) { - var func = wasmTableMirror[funcPtr]; - if (!func) { - if (funcPtr >= wasmTableMirror.length) - wasmTableMirror.length = funcPtr + 1; - wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); - } - return func; - } - function dynCall(sig, ptr, args) { - if (sig.includes("j")) { - return dynCallLegacy(sig, ptr, args); - } - var rtn = getWasmTableEntry(ptr).apply(null, args); - return rtn; - } - function getDynCaller(sig, ptr) { - var argCache = []; - return function() { - argCache.length = 0; - Object.assign(argCache, arguments); - return dynCall(sig, ptr, argCache); - }; - } - function embind__requireFunction(signature, rawFunction) { - signature = readLatin1String(signature); - function makeDynCaller() { - if (signature.includes("j")) { - return getDynCaller(signature, rawFunction); - } - return getWasmTableEntry(rawFunction); - } - var fp = makeDynCaller(); - if (typeof fp != "function") { - throwBindingError("unknown function pointer with signature " + signature + ": " + rawFunction); - } - return fp; - } - var UnboundTypeError = void 0; - function getTypeName(type) { - var ptr = ___getTypeName(type); - var rv = readLatin1String(ptr); - _free(ptr); - return rv; - } - function throwUnboundTypeError(message, types) { - var unboundTypes = []; - var seen = {}; - function visit(type) { - if (seen[type]) { - return; - } - if (registeredTypes[type]) { - return; - } - if (typeDependencies[type]) { - typeDependencies[type].forEach(visit); - return; - } - unboundTypes.push(type); - seen[type] = true; - } - types.forEach(visit); - throw new UnboundTypeError(message + ": " + unboundTypes.map(getTypeName).join([", "])); - } - function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) { - name = readLatin1String(name); - getActualType = embind__requireFunction(getActualTypeSignature, getActualType); - if (upcast) { - upcast = embind__requireFunction(upcastSignature, upcast); - } - if (downcast) { - downcast = embind__requireFunction(downcastSignature, downcast); - } - rawDestructor = embind__requireFunction(destructorSignature, rawDestructor); - var legalFunctionName = makeLegalFunctionName(name); - exposePublicSymbol(legalFunctionName, function() { - throwUnboundTypeError("Cannot construct " + name + " due to unbound types", [baseClassRawType]); - }); - whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) { - base = base[0]; - var baseClass; - var basePrototype; - if (baseClassRawType) { - baseClass = base.registeredClass; - basePrototype = baseClass.instancePrototype; - } else { - basePrototype = ClassHandle.prototype; - } - var constructor = createNamedFunction(legalFunctionName, function() { - if (Object.getPrototypeOf(this) !== instancePrototype) { - throw new BindingError("Use 'new' to construct " + name); - } - if (registeredClass.constructor_body === void 0) { - throw new BindingError(name + " has no accessible constructor"); - } - var body = registeredClass.constructor_body[arguments.length]; - if (body === void 0) { - throw new BindingError("Tried to invoke ctor of " + name + " with invalid number of parameters (" + arguments.length + ") - expected (" + Object.keys(registeredClass.constructor_body).toString() + ") parameters instead!"); - } - return body.apply(this, arguments); - }); - var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } }); - constructor.prototype = instancePrototype; - var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast); - var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false); - var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false); - var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false); - registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter }; - replacePublicSymbol(legalFunctionName, constructor); - return [referenceConverter, pointerConverter, constPointerConverter]; - }); - } - function heap32VectorToArray(count, firstElement) { - var array = []; - for (var i = 0; i < count; i++) { - array.push(HEAPU32[firstElement + i * 4 >>> 2]); - } - return array; - } - function new_(constructor, argumentList) { - if (!(constructor instanceof Function)) { - throw new TypeError("new_ called with constructor type " + typeof constructor + " which is not a function"); - } - var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() { - }); - dummy.prototype = constructor.prototype; - var obj = new dummy(); - var r = constructor.apply(obj, argumentList); - return r instanceof Object ? r : obj; - } - function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc) { - var argCount = argTypes.length; - if (argCount < 2) { - throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!"); - } - var isClassMethodFunc = argTypes[1] !== null && classType !== null; - var needsDestructorStack = false; - for (var i = 1; i < argTypes.length; ++i) { - if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) { - needsDestructorStack = true; - break; - } - } - var returns = argTypes[0].name !== "void"; - var argsList = ""; - var argsListWired = ""; - for (var i = 0; i < argCount - 2; ++i) { - argsList += (i !== 0 ? ", " : "") + "arg" + i; - argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired"; - } - var invokerFnBody = "return function " + makeLegalFunctionName(humanName) + "(" + argsList + ") {\nif (arguments.length !== " + (argCount - 2) + ") {\nthrowBindingError('function " + humanName + " called with ' + arguments.length + ' arguments, expected " + (argCount - 2) + " args!');\n}\n"; - if (needsDestructorStack) { - invokerFnBody += "var destructors = [];\n"; - } - var dtorStack = needsDestructorStack ? "destructors" : "null"; - var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"]; - var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]]; - if (isClassMethodFunc) { - invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n"; - } - for (var i = 0; i < argCount - 2; ++i) { - invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n"; - args1.push("argType" + i); - args2.push(argTypes[i + 2]); - } - if (isClassMethodFunc) { - argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired; - } - invokerFnBody += (returns ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n"; - if (needsDestructorStack) { - invokerFnBody += "runDestructors(destructors);\n"; - } else { - for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) { - var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired"; - if (argTypes[i].destructorFunction !== null) { - invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n"; - args1.push(paramName + "_dtor"); - args2.push(argTypes[i].destructorFunction); - } - } - } - if (returns) { - invokerFnBody += "var ret = retType.fromWireType(rv);\nreturn ret;\n"; - } - invokerFnBody += "}\n"; - args1.push(invokerFnBody); - var invokerFunction = new_(Function, args1).apply(null, args2); - return invokerFunction; - } - function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) { - assert(argCount > 0); - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - invoker = embind__requireFunction(invokerSignature, invoker); - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = "constructor " + classType.name; - if (classType.registeredClass.constructor_body === void 0) { - classType.registeredClass.constructor_body = []; - } - if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) { - throw new BindingError("Cannot register multiple constructors with identical number of parameters (" + (argCount - 1) + ") for class '" + classType.name + "'! Overload resolution is currently only performed using the parameter count, not actual type info!"); - } - classType.registeredClass.constructor_body[argCount - 1] = () => { - throwUnboundTypeError("Cannot construct " + classType.name + " due to unbound types", rawArgTypes); - }; - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - argTypes.splice(1, 0, null); - classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor); - return []; - }); - return []; - }); - } - function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual) { - var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - methodName = readLatin1String(methodName); - rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); - whenDependentTypesAreResolved([], [rawClassType], function(classType) { - classType = classType[0]; - var humanName = classType.name + "." + methodName; - if (methodName.startsWith("@@")) { - methodName = Symbol[methodName.substring(2)]; - } - if (isPureVirtual) { - classType.registeredClass.pureVirtualFunctions.push(methodName); - } - function unboundTypesHandler() { - throwUnboundTypeError("Cannot call " + humanName + " due to unbound types", rawArgTypes); - } - var proto = classType.registeredClass.instancePrototype; - var method = proto[methodName]; - if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) { - unboundTypesHandler.argCount = argCount - 2; - unboundTypesHandler.className = classType.name; - proto[methodName] = unboundTypesHandler; - } else { - ensureOverloadTable(proto, methodName, humanName); - proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; - } - whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) { - var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context); - if (proto[methodName].overloadTable === void 0) { - memberFunction.argCount = argCount - 2; - proto[methodName] = memberFunction; - } else { - proto[methodName].overloadTable[argCount - 2] = memberFunction; - } - return []; - }); - return []; - }); - } - var emval_free_list = []; - var emval_handle_array = [{}, { value: void 0 }, { value: null }, { value: true }, { value: false }]; - function __emval_decref(handle) { - if (handle > 4 && --emval_handle_array[handle].refcount === 0) { - emval_handle_array[handle] = void 0; - emval_free_list.push(handle); - } - } - function count_emval_handles() { - var count = 0; - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { - ++count; - } - } - return count; - } - function get_first_emval() { - for (var i = 5; i < emval_handle_array.length; ++i) { - if (emval_handle_array[i] !== void 0) { - return emval_handle_array[i]; - } - } - return null; - } - function init_emval() { - Module["count_emval_handles"] = count_emval_handles; - Module["get_first_emval"] = get_first_emval; - } - var Emval = { toValue: (handle) => { - if (!handle) { - throwBindingError("Cannot use deleted val. handle = " + handle); - } - return emval_handle_array[handle].value; - }, toHandle: (value) => { - switch (value) { - case void 0: - return 1; - case null: - return 2; - case true: - return 3; - case false: - return 4; - default: { - var handle = emval_free_list.length ? emval_free_list.pop() : emval_handle_array.length; - emval_handle_array[handle] = { refcount: 1, value }; - return handle; - } - } - } }; - function __embind_register_emval(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(handle) { - var rv = Emval.toValue(handle); - __emval_decref(handle); - return rv; - }, "toWireType": function(destructors, value) { - return Emval.toHandle(value); - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null }); - } - function enumReadValueFromPointer(name, shift, signed) { - switch (shift) { - case 0: - return function(pointer) { - var heap = signed ? HEAP8 : HEAPU8; - return this["fromWireType"](heap[pointer >>> 0]); - }; - case 1: - return function(pointer) { - var heap = signed ? HEAP16 : HEAPU16; - return this["fromWireType"](heap[pointer >>> 1]); - }; - case 2: - return function(pointer) { - var heap = signed ? HEAP32 : HEAPU32; - return this["fromWireType"](heap[pointer >>> 2]); - }; - default: - throw new TypeError("Unknown integer type: " + name); - } - } - function __embind_register_enum(rawType, name, size, isSigned) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - function ctor() { - } - ctor.values = {}; - registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) { - return this.constructor.values[c]; - }, "toWireType": function(destructors, c) { - return c.value; - }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null }); - exposePublicSymbol(name, ctor); - } - function requireRegisteredType(rawType, humanName) { - var impl = registeredTypes[rawType]; - if (impl === void 0) { - throwBindingError(humanName + " has unknown type " + getTypeName(rawType)); - } - return impl; - } - function __embind_register_enum_value(rawEnumType, name, enumValue) { - var enumType = requireRegisteredType(rawEnumType, "enum"); - name = readLatin1String(name); - var Enum = enumType.constructor; - var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(enumType.name + "_" + name, function() { - }) } }); - Enum.values[enumValue] = Value; - Enum[name] = Value; - } - function embindRepr(v) { - if (v === null) { - return "null"; - } - var t = typeof v; - if (t === "object" || t === "array" || t === "function") { - return v.toString(); - } else { - return "" + v; - } - } - function floatReadValueFromPointer(name, shift) { - switch (shift) { - case 2: - return function(pointer) { - return this["fromWireType"](HEAPF32[pointer >>> 2]); - }; - case 3: - return function(pointer) { - return this["fromWireType"](HEAPF64[pointer >>> 3]); - }; - default: - throw new TypeError("Unknown float type: " + name); - } - } - function __embind_register_float(rawType, name, size) { - var shift = getShiftFromSize(size); - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": function(value) { - return value; - }, "toWireType": function(destructors, value) { - return value; - }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null }); - } - function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn) { - var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr); - name = readLatin1String(name); - rawInvoker = embind__requireFunction(signature, rawInvoker); - exposePublicSymbol(name, function() { - throwUnboundTypeError("Cannot call " + name + " due to unbound types", argTypes); - }, argCount - 1); - whenDependentTypesAreResolved([], argTypes, function(argTypes2) { - var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1)); - replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn), argCount - 1); - return []; - }); - } - function integerReadValueFromPointer(name, shift, signed) { - switch (shift) { - case 0: - return signed ? function readS8FromPointer(pointer) { - return HEAP8[pointer >>> 0]; - } : function readU8FromPointer(pointer) { - return HEAPU8[pointer >>> 0]; - }; - case 1: - return signed ? function readS16FromPointer(pointer) { - return HEAP16[pointer >>> 1]; - } : function readU16FromPointer(pointer) { - return HEAPU16[pointer >>> 1]; - }; - case 2: - return signed ? function readS32FromPointer(pointer) { - return HEAP32[pointer >>> 2]; - } : function readU32FromPointer(pointer) { - return HEAPU32[pointer >>> 2]; - }; - default: - throw new TypeError("Unknown integer type: " + name); - } - } - function __embind_register_integer(primitiveType, name, size, minRange, maxRange) { - name = readLatin1String(name); - var shift = getShiftFromSize(size); - var fromWireType = (value) => value; - if (minRange === 0) { - var bitshift = 32 - 8 * size; - fromWireType = (value) => value << bitshift >>> bitshift; - } - var isUnsignedType = name.includes("unsigned"); - var checkAssertions = (value, toTypeName) => { - }; - var toWireType; - if (isUnsignedType) { - toWireType = function(destructors, value) { - checkAssertions(value, this.name); - return value >>> 0; - }; - } else { - toWireType = function(destructors, value) { - checkAssertions(value, this.name); - return value; - }; - } - registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null }); - } - function __embind_register_memory_view(rawType, dataTypeIndex, name) { - var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; - var TA = typeMapping[dataTypeIndex]; - function decodeMemoryView(handle) { - handle = handle >> 2; - var heap = HEAPU32; - var size = heap[handle >>> 0]; - var data = heap[handle + 1 >>> 0]; - return new TA(heap.buffer, data, size); - } - name = readLatin1String(name); - registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true }); - } - function __embind_register_std_string(rawType, name) { - name = readLatin1String(name); - var stdStringIsUTF8 = name === "std::string"; - registerType(rawType, { name, "fromWireType": function(value) { - var length = HEAPU32[value >>> 2]; - var payload = value + 4; - var str; - if (stdStringIsUTF8) { - var decodeStartPtr = payload; - for (var i = 0; i <= length; ++i) { - var currentBytePtr = payload + i; - if (i == length || HEAPU8[currentBytePtr >>> 0] == 0) { - var maxRead = currentBytePtr - decodeStartPtr; - var stringSegment = UTF8ToString(decodeStartPtr, maxRead); - if (str === void 0) { - str = stringSegment; - } else { - str += String.fromCharCode(0); - str += stringSegment; - } - decodeStartPtr = currentBytePtr + 1; - } - } - } else { - var a = new Array(length); - for (var i = 0; i < length; ++i) { - a[i] = String.fromCharCode(HEAPU8[payload + i >>> 0]); - } - str = a.join(""); - } - _free(value); - return str; - }, "toWireType": function(destructors, value) { - if (value instanceof ArrayBuffer) { - value = new Uint8Array(value); - } - var length; - var valueIsOfTypeString = typeof value == "string"; - if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) { - throwBindingError("Cannot pass non-string to std::string"); - } - if (stdStringIsUTF8 && valueIsOfTypeString) { - length = lengthBytesUTF8(value); - } else { - length = value.length; - } - var base = _malloc(4 + length + 1); - var ptr = base + 4; - ptr >>>= 0; - HEAPU32[base >>> 2] = length; - if (stdStringIsUTF8 && valueIsOfTypeString) { - stringToUTF8(value, ptr, length + 1); - } else { - if (valueIsOfTypeString) { - for (var i = 0; i < length; ++i) { - var charCode = value.charCodeAt(i); - if (charCode > 255) { - _free(ptr); - throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); - } - HEAPU8[ptr + i >>> 0] = charCode; - } - } else { - for (var i = 0; i < length; ++i) { - HEAPU8[ptr + i >>> 0] = value[i]; - } - } - } - if (destructors !== null) { - destructors.push(_free, base); - } - return base; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { - _free(ptr); - } }); - } - var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0; - function UTF16ToString(ptr, maxBytesToRead) { - var endPtr = ptr; - var idx = endPtr >> 1; - var maxIdx = idx + maxBytesToRead / 2; - while (!(idx >= maxIdx) && HEAPU16[idx >>> 0]) - ++idx; - endPtr = idx << 1; - if (endPtr - ptr > 32 && UTF16Decoder) - return UTF16Decoder.decode(HEAPU8.subarray(ptr >>> 0, endPtr >>> 0)); - var str = ""; - for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { - var codeUnit = HEAP16[ptr + i * 2 >>> 1]; - if (codeUnit == 0) - break; - str += String.fromCharCode(codeUnit); - } - return str; - } - function stringToUTF16(str, outPtr, maxBytesToWrite) { - if (maxBytesToWrite === void 0) { - maxBytesToWrite = 2147483647; - } - if (maxBytesToWrite < 2) - return 0; - maxBytesToWrite -= 2; - var startPtr = outPtr; - var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; - for (var i = 0; i < numCharsToWrite; ++i) { - var codeUnit = str.charCodeAt(i); - HEAP16[outPtr >>> 1] = codeUnit; - outPtr += 2; - } - HEAP16[outPtr >>> 1] = 0; - return outPtr - startPtr; - } - function lengthBytesUTF16(str) { - return str.length * 2; - } - function UTF32ToString(ptr, maxBytesToRead) { - var i = 0; - var str = ""; - while (!(i >= maxBytesToRead / 4)) { - var utf32 = HEAP32[ptr + i * 4 >>> 2]; - if (utf32 == 0) - break; - ++i; - if (utf32 >= 65536) { - var ch = utf32 - 65536; - str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); - } else { - str += String.fromCharCode(utf32); - } - } - return str; - } - function stringToUTF32(str, outPtr, maxBytesToWrite) { - outPtr >>>= 0; - if (maxBytesToWrite === void 0) { - maxBytesToWrite = 2147483647; - } - if (maxBytesToWrite < 4) - return 0; - var startPtr = outPtr; - var endPtr = startPtr + maxBytesToWrite - 4; - for (var i = 0; i < str.length; ++i) { - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 55296 && codeUnit <= 57343) { - var trailSurrogate = str.charCodeAt(++i); - codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; - } - HEAP32[outPtr >>> 2] = codeUnit; - outPtr += 4; - if (outPtr + 4 > endPtr) - break; - } - HEAP32[outPtr >>> 2] = 0; - return outPtr - startPtr; - } - function lengthBytesUTF32(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var codeUnit = str.charCodeAt(i); - if (codeUnit >= 55296 && codeUnit <= 57343) - ++i; - len += 4; - } - return len; - } - function __embind_register_std_wstring(rawType, charSize, name) { - name = readLatin1String(name); - var decodeString, encodeString, getHeap, lengthBytesUTF, shift; - if (charSize === 2) { - decodeString = UTF16ToString; - encodeString = stringToUTF16; - lengthBytesUTF = lengthBytesUTF16; - getHeap = () => HEAPU16; - shift = 1; - } else if (charSize === 4) { - decodeString = UTF32ToString; - encodeString = stringToUTF32; - lengthBytesUTF = lengthBytesUTF32; - getHeap = () => HEAPU32; - shift = 2; - } - registerType(rawType, { name, "fromWireType": function(value) { - var length = HEAPU32[value >>> 2]; - var HEAP = getHeap(); - var str; - var decodeStartPtr = value + 4; - for (var i = 0; i <= length; ++i) { - var currentBytePtr = value + 4 + i * charSize; - if (i == length || HEAP[currentBytePtr >>> shift] == 0) { - var maxReadBytes = currentBytePtr - decodeStartPtr; - var stringSegment = decodeString(decodeStartPtr, maxReadBytes); - if (str === void 0) { - str = stringSegment; - } else { - str += String.fromCharCode(0); - str += stringSegment; - } - decodeStartPtr = currentBytePtr + charSize; - } - } - _free(value); - return str; - }, "toWireType": function(destructors, value) { - if (!(typeof value == "string")) { - throwBindingError("Cannot pass non-string to C++ string type " + name); - } - var length = lengthBytesUTF(value); - var ptr = _malloc(4 + length + charSize); - ptr >>>= 0; - HEAPU32[ptr >>> 2] = length >> shift; - encodeString(value, ptr + 4, length + charSize); - if (destructors !== null) { - destructors.push(_free, ptr); - } - return ptr; - }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) { - _free(ptr); - } }); - } - function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { - tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] }; - } - function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { - tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); - } - function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) { - structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] }; - } - function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) { - structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext }); - } - function __embind_register_void(rawType, name) { - name = readLatin1String(name); - registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() { - return void 0; - }, "toWireType": function(destructors, o) { - return void 0; - } }); - } - function __emval_as(handle, returnType, destructorsRef) { - handle = Emval.toValue(handle); - returnType = requireRegisteredType(returnType, "emval::as"); - var destructors = []; - var rd = Emval.toHandle(destructors); - HEAPU32[destructorsRef >>> 2] = rd; - return returnType["toWireType"](destructors, handle); - } - function emval_lookupTypes(argCount, argTypes) { - var a = new Array(argCount); - for (var i = 0; i < argCount; ++i) { - a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >>> 2], "parameter " + i); - } - return a; - } - function __emval_call(handle, argCount, argTypes, argv) { - handle = Emval.toValue(handle); - var types = emval_lookupTypes(argCount, argTypes); - var args = new Array(argCount); - for (var i = 0; i < argCount; ++i) { - var type = types[i]; - args[i] = type["readValueFromPointer"](argv); - argv += type["argPackAdvance"]; - } - var rv = handle.apply(void 0, args); - return Emval.toHandle(rv); - } - var emval_symbols = {}; - function getStringOrSymbol(address) { - var symbol = emval_symbols[address]; - if (symbol === void 0) { - return readLatin1String(address); - } - return symbol; - } - function emval_get_global() { - if (typeof globalThis == "object") { - return globalThis; - } - return function() { - return Function; - }()("return this")(); - } - function __emval_get_global(name) { - if (name === 0) { - return Emval.toHandle(emval_get_global()); - } else { - name = getStringOrSymbol(name); - return Emval.toHandle(emval_get_global()[name]); - } - } - function __emval_get_property(handle, key) { - handle = Emval.toValue(handle); - key = Emval.toValue(key); - return Emval.toHandle(handle[key]); - } - function __emval_incref(handle) { - if (handle > 4) { - emval_handle_array[handle].refcount += 1; - } - } - function __emval_instanceof(object, constructor) { - object = Emval.toValue(object); - constructor = Emval.toValue(constructor); - return object instanceof constructor; - } - function __emval_is_number(handle) { - handle = Emval.toValue(handle); - return typeof handle == "number"; - } - function __emval_is_string(handle) { - handle = Emval.toValue(handle); - return typeof handle == "string"; - } - function __emval_new_array() { - return Emval.toHandle([]); - } - function __emval_new_cstring(v) { - return Emval.toHandle(getStringOrSymbol(v)); - } - function __emval_new_object() { - return Emval.toHandle({}); - } - function __emval_run_destructors(handle) { - var destructors = Emval.toValue(handle); - runDestructors(destructors); - __emval_decref(handle); - } - function __emval_set_property(handle, key, value) { - handle = Emval.toValue(handle); - key = Emval.toValue(key); - value = Emval.toValue(value); - handle[key] = value; - } - function __emval_take_value(type, arg) { - type = requireRegisteredType(type, "_emval_take_value"); - var v = type["readValueFromPointer"](arg); - return Emval.toHandle(v); - } - function _abort() { - abort(""); - } - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0); - } - function getHeapMax() { - return 4294901760; - } - function emscripten_realloc_buffer(size) { - var b = wasmMemory.buffer; - try { - wasmMemory.grow(size - b.byteLength + 65535 >>> 16); - updateMemoryViews(); - return 1; - } catch (e) { - } - } - function _emscripten_resize_heap(requestedSize) { - var oldSize = HEAPU8.length; - requestedSize = requestedSize >>> 0; - var maxHeapSize = getHeapMax(); - if (requestedSize > maxHeapSize) { - return false; - } - let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); - var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - return true; - } - } - return false; - } - var ENV = {}; - function getExecutableName() { - return thisProgram || "./this.program"; - } - function getEnvStrings() { - if (!getEnvStrings.strings) { - var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8"; - var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() }; - for (var x in ENV) { - if (ENV[x] === void 0) - delete env[x]; - else - env[x] = ENV[x]; - } - var strings = []; - for (var x in env) { - strings.push(x + "=" + env[x]); - } - getEnvStrings.strings = strings; - } - return getEnvStrings.strings; - } - function writeAsciiToMemory(str, buffer, dontAddNull) { - for (var i = 0; i < str.length; ++i) { - HEAP8[buffer++ >>> 0] = str.charCodeAt(i); - } - if (!dontAddNull) - HEAP8[buffer >>> 0] = 0; - } - var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - }, normalizeArray: (parts, allowAboveRoot) => { - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === ".") { - parts.splice(i, 1); - } else if (last === "..") { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift(".."); - } - } - return parts; - }, normalize: (path) => { - var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/"; - path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/"); - if (!path && !isAbsolute) { - path = "."; - } - if (path && trailingSlash) { - path += "/"; - } - return (isAbsolute ? "/" : "") + path; - }, dirname: (path) => { - var result = PATH.splitPath(path), root = result[0], dir = result[1]; - if (!root && !dir) { - return "."; - } - if (dir) { - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - }, basename: (path) => { - if (path === "/") - return "/"; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf("/"); - if (lastSlash === -1) - return path; - return path.substr(lastSlash + 1); - }, join: function() { - var paths = Array.prototype.slice.call(arguments); - return PATH.normalize(paths.join("/")); - }, join2: (l, r) => { - return PATH.normalize(l + "/" + r); - } }; - function getRandomDevice() { - if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") { - var randomBuffer = new Uint8Array(1); - return () => { - crypto.getRandomValues(randomBuffer); - return randomBuffer[0]; - }; - } else - return () => abort("randomDevice"); - } - var PATH_FS = { resolve: function() { - var resolvedPath = "", resolvedAbsolute = false; - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = i >= 0 ? arguments[i] : FS.cwd(); - if (typeof path != "string") { - throw new TypeError("Arguments to path.resolve must be strings"); - } else if (!path) { - return ""; - } - resolvedPath = path + "/" + resolvedPath; - resolvedAbsolute = PATH.isAbs(path); - } - resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/"); - return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; - }, relative: (from, to) => { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== "") - break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== "") - break; - } - if (start > end) - return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split("/")); - var toParts = trim(to.split("/")); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push(".."); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join("/"); - } }; - function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) - u8array.length = numBytesWritten; - return u8array; - } - var TTY = { ttys: [], init: function() { - }, shutdown: function() { - }, register: function(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops }; - FS.registerDevice(dev, TTY.stream_ops); - }, stream_ops: { open: function(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - }, close: function(stream) { - stream.tty.ops.fsync(stream.tty); - }, fsync: function(stream) { - stream.tty.ops.fsync(stream.tty); - }, read: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === void 0 && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === void 0) - break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, write: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset + i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } }, default_tty_ops: { get_char: function(tty) { - if (!tty.input.length) { - var result = null; - if (typeof window != "undefined" && typeof window.prompt == "function") { - result = window.prompt("Input: "); - if (result !== null) { - result += "\n"; - } - } else if (typeof readline == "function") { - result = readline(); - if (result !== null) { - result += "\n"; - } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); - }, put_char: function(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) - tty.output.push(val); - } - }, fsync: function(tty) { - if (tty.output && tty.output.length > 0) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } }, default_tty1_ops: { put_char: function(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) - tty.output.push(val); - } - }, fsync: function(tty) { - if (tty.output && tty.output.length > 0) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } } }; - function mmapAlloc(size) { - abort(); - } - var MEMFS = { ops_table: null, mount: function(mount) { - return MEMFS.createNode(null, "/", 16384 | 511, 0); - }, createNode: function(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - throw new FS.ErrnoError(63); - } - if (!MEMFS.ops_table) { - MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; - } - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - if (parent) { - parent.contents[name] = node; - parent.timestamp = node.timestamp; - } - return node; - }, getFileDataAsTypedArray: function(node) { - if (!node.contents) - return new Uint8Array(0); - if (node.contents.subarray) - return node.contents.subarray(0, node.usedBytes); - return new Uint8Array(node.contents); - }, expandFileStorage: function(node, newCapacity) { - newCapacity >>>= 0; - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) - return; - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0); - if (prevCapacity != 0) - newCapacity = Math.max(newCapacity, 256); - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); - if (node.usedBytes > 0) - node.contents.set(oldContents.subarray(0, node.usedBytes), 0); - }, resizeFileStorage: function(node, newSize) { - newSize >>>= 0; - if (node.usedBytes == newSize) - return; - if (newSize == 0) { - node.contents = null; - node.usedBytes = 0; - } else { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); - if (oldContents) { - node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); - } - node.usedBytes = newSize; - } - }, node_ops: { getattr: function(node) { - var attr = {}; - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - }, setattr: function(node, attr) { - if (attr.mode !== void 0) { - node.mode = attr.mode; - } - if (attr.timestamp !== void 0) { - node.timestamp = attr.timestamp; - } - if (attr.size !== void 0) { - MEMFS.resizeFileStorage(node, attr.size); - } - }, lookup: function(parent, name) { - throw FS.genericErrors[44]; - }, mknod: function(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - }, rename: function(old_node, new_dir, new_name) { - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); - } - } - } - delete old_node.parent.contents[old_node.name]; - old_node.parent.timestamp = Date.now(); - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - new_dir.timestamp = old_node.parent.timestamp; - old_node.parent = new_dir; - }, unlink: function(parent, name) { - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, rmdir: function(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - parent.timestamp = Date.now(); - }, readdir: function(node) { - var entries = [".", ".."]; - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - }, symlink: function(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); - node.link = oldpath; - return node; - }, readlink: function(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - } }, stream_ops: { read: function(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) - return 0; - var size = Math.min(stream.node.usedBytes - position, length); - if (size > 8 && contents.subarray) { - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) - buffer[offset + i] = contents[position + i]; - } - return size; - }, write: function(stream, buffer, offset, length, position, canOwn) { - if (buffer.buffer === HEAP8.buffer) { - canOwn = false; - } - if (!length) - return 0; - var node = stream.node; - node.timestamp = Date.now(); - if (buffer.subarray && (!node.contents || node.contents.subarray)) { - if (canOwn) { - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - MEMFS.expandFileStorage(node, position + length); - if (node.contents.subarray && buffer.subarray) { - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - }, llseek: function(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - }, allocate: function(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - }, mmap: function(stream, length, position, prot, flags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - if (!(flags & 2) && contents.buffer === HEAP8.buffer) { - allocated = false; - ptr = contents.byteOffset; - } else { - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call(contents, position, position + length); - } - } - allocated = true; - ptr = mmapAlloc(); - if (!ptr) { - throw new FS.ErrnoError(48); - } - ptr >>>= 0; - HEAP8.set(contents, ptr >>> 0); - } - return { ptr, allocated }; - }, msync: function(stream, buffer, offset, length, mmapFlags) { - MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); - return 0; - } } }; - function asyncLoad(url, onload, onerror, noRunDep) { - var dep = !noRunDep ? getUniqueRunDependency("al " + url) : ""; - readAsync(url, (arrayBuffer) => { - assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); - onload(new Uint8Array(arrayBuffer)); - if (dep) - removeRunDependency(); - }, (event) => { - if (onerror) { - onerror(); - } else { - throw 'Loading data file "' + url + '" failed.'; - } - }); - if (dep) - addRunDependency(); - } - var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => { - path = PATH_FS.resolve(path); - if (!path) - return { path: "", node: null }; - var defaults = { follow_mount: true, recurse_count: 0 }; - opts = Object.assign(defaults, opts); - if (opts.recurse_count > 8) { - throw new FS.ErrnoError(32); - } - var parts = path.split("/").filter((p) => !!p); - var current = FS.root; - var current_path = "/"; - for (var i = 0; i < parts.length; i++) { - var islast = i === parts.length - 1; - if (islast && opts.parent) { - break; - } - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - if (FS.isMountpoint(current)) { - if (!islast || islast && opts.follow_mount) { - current = current.mounted.root; - } - } - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); - var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); - current = lookup.node; - if (count++ > 40) { - throw new FS.ErrnoError(32); - } - } - } - } - return { path: current_path, node: current }; - }, getPath: (node) => { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) - return mount; - return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path; - } - path = path ? node.name + "/" + path : node.name; - node = node.parent; - } - }, hashName: (parentid, name) => { - var hash = 0; - for (var i = 0; i < name.length; i++) { - hash = (hash << 5) - hash + name.charCodeAt(i) | 0; - } - return (parentid + hash >>> 0) % FS.nameTable.length; - }, hashAddNode: (node) => { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - }, hashRemoveNode: (node) => { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; - } - current = current.name_next; - } - } - }, lookupNode: (parent, name) => { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode, parent); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - return FS.lookup(parent, name); - }, createNode: (parent, name, mode, rdev) => { - var node = new FS.FSNode(parent, name, mode, rdev); - FS.hashAddNode(node); - return node; - }, destroyNode: (node) => { - FS.hashRemoveNode(node); - }, isRoot: (node) => { - return node === node.parent; - }, isMountpoint: (node) => { - return !!node.mounted; - }, isFile: (mode) => { - return (mode & 61440) === 32768; - }, isDir: (mode) => { - return (mode & 61440) === 16384; - }, isLink: (mode) => { - return (mode & 61440) === 40960; - }, isChrdev: (mode) => { - return (mode & 61440) === 8192; - }, isBlkdev: (mode) => { - return (mode & 61440) === 24576; - }, isFIFO: (mode) => { - return (mode & 61440) === 4096; - }, isSocket: (mode) => { - return (mode & 49152) === 49152; - }, flagModes: { "r": 0, "r+": 2, "w": 577, "w+": 578, "a": 1089, "a+": 1090 }, modeStringToFlags: (str) => { - var flags = FS.flagModes[str]; - if (typeof flags == "undefined") { - throw new Error("Unknown file open mode: " + str); - } - return flags; - }, flagsToPermissionString: (flag) => { - var perms = ["r", "w", "rw"][flag & 3]; - if (flag & 512) { - perms += "w"; - } - return perms; - }, nodePermissions: (node, perms) => { - if (FS.ignorePermissions) { - return 0; - } - if (perms.includes("r") && !(node.mode & 292)) { - return 2; - } else if (perms.includes("w") && !(node.mode & 146)) { - return 2; - } else if (perms.includes("x") && !(node.mode & 73)) { - return 2; - } - return 0; - }, mayLookup: (dir) => { - var errCode = FS.nodePermissions(dir, "x"); - if (errCode) - return errCode; - if (!dir.node_ops.lookup) - return 2; - return 0; - }, mayCreate: (dir, name) => { - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) { - } - return FS.nodePermissions(dir, "wx"); - }, mayDelete: (dir, name, isdir) => { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, "wx"); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - }, mayOpen: (node, flags) => { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - }, MAX_OPEN_FDS: 4096, nextfd: (fd_start = 0, fd_end = FS.MAX_OPEN_FDS) => { - for (var fd = fd_start; fd <= fd_end; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd_start, fd_end) => { - if (!FS.FSStream) { - FS.FSStream = function() { - this.shared = {}; - }; - FS.FSStream.prototype = {}; - Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { - return this.node; - }, set: function(val) { - this.node = val; - } }, isRead: { get: function() { - return (this.flags & 2097155) !== 1; - } }, isWrite: { get: function() { - return (this.flags & 2097155) !== 0; - } }, isAppend: { get: function() { - return this.flags & 1024; - } }, flags: { get: function() { - return this.shared.flags; - }, set: function(val) { - this.shared.flags = val; - } }, position: { get: function() { - return this.shared.position; - }, set: function(val) { - this.shared.position = val; - } } }); - } - stream = Object.assign(new FS.FSStream(), stream); - var fd = FS.nextfd(fd_start, fd_end); - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - }, closeStream: (fd) => { - FS.streams[fd] = null; - }, chrdev_stream_ops: { open: (stream) => { - var device = FS.getDevice(stream.node.rdev); - stream.stream_ops = device.stream_ops; - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - }, llseek: () => { - throw new FS.ErrnoError(70); - } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => { - FS.devices[dev] = { stream_ops: ops }; - }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => { - var mounts = []; - var check = [mount]; - while (check.length) { - var m = check.pop(); - mounts.push(m); - check.push.apply(check, m.mounts); - } - return mounts; - }, syncfs: (populate, callback) => { - if (typeof populate == "function") { - callback = populate; - populate = false; - } - FS.syncFSRequests++; - if (FS.syncFSRequests > 1) { - err("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work"); - } - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - function doCallback(errCode) { - FS.syncFSRequests--; - return callback(errCode); - } - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); - } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - } - mounts.forEach((mount) => { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - }, mount: (type, opts, mountpoint) => { - var root = mountpoint === "/"; - var pseudo = !mountpoint; - var node; - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - mountpoint = lookup.path; - node = lookup.node; - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - var mount = { type, opts, mountpoint, mounts: [] }; - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - if (root) { - FS.root = mountRoot; - } else if (node) { - node.mounted = mount; - if (node.mount) { - node.mount.mounts.push(mount); - } - } - return mountRoot; - }, unmount: (mountpoint) => { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - Object.keys(FS.nameTable).forEach((hash) => { - var current = FS.nameTable[hash]; - while (current) { - var next = current.name_next; - if (mounts.includes(current.mount)) { - FS.destroyNode(current); - } - current = next; - } - }); - node.mounted = null; - var idx = node.mount.mounts.indexOf(mount); - node.mount.mounts.splice(idx, 1); - }, lookup: (parent, name) => { - return parent.node_ops.lookup(parent, name); - }, mknod: (path, mode, dev) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === "." || name === "..") { - throw new FS.ErrnoError(28); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - }, create: (path, mode) => { - mode = mode !== void 0 ? mode : 438; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - }, mkdir: (path, mode) => { - mode = mode !== void 0 ? mode : 511; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - }, mkdirTree: (path, mode) => { - var dirs = path.split("/"); - var d = ""; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) - continue; - d += "/" + dirs[i]; - try { - FS.mkdir(d, mode); - } catch (e) { - if (e.errno != 20) - throw e; - } - } - }, mkdev: (path, mode, dev) => { - if (typeof dev == "undefined") { - dev = mode; - mode = 438; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - }, symlink: (oldpath, newpath) => { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - }, rename: (old_path, new_path) => { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - var lookup, old_dir, new_dir; - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - if (!old_dir || !new_dir) - throw new FS.ErrnoError(44); - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - var old_node = FS.lookupNode(old_dir, old_name); - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(28); - } - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(55); - } - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) { - } - if (old_node === new_node) { - return; - } - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { - throw new FS.ErrnoError(10); - } - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - FS.hashRemoveNode(old_node); - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - } catch (e) { - throw e; - } finally { - FS.hashAddNode(old_node); - } - }, rmdir: (path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - }, readdir: (path) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); - }, unlink: (path) => { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - }, readlink: (path) => { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); - }, stat: (path, dontFollow) => { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); - }, lstat: (path) => { - return FS.stat(path, true); - }, chmod: (path, mode, dontFollow) => { - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() }); - }, lchmod: (path, mode) => { - FS.chmod(path, mode, true); - }, fchmod: (fd, mode) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chmod(stream.node, mode); - }, chown: (path, uid, gid, dontFollow) => { - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { timestamp: Date.now() }); - }, lchown: (path, uid, gid) => { - FS.chown(path, uid, gid, true); - }, fchown: (fd, uid, gid) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chown(stream.node, uid, gid); - }, truncate: (path, len) => { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path == "string") { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); - }, ftruncate: (fd, len) => { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.truncate(stream.node, len); - }, utime: (path, atime, mtime) => { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); - }, open: (path, flags, mode) => { - if (path === "") { - throw new FS.ErrnoError(44); - } - flags = typeof flags == "string" ? FS.modeStringToFlags(flags) : flags; - mode = typeof mode == "undefined" ? 438 : mode; - if (flags & 64) { - mode = mode & 4095 | 32768; - } else { - mode = 0; - } - var node; - if (typeof path == "object") { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); - node = lookup.node; - } catch (e) { - } - } - var created = false; - if (flags & 64) { - if (node) { - if (flags & 128) { - throw new FS.ErrnoError(20); - } - } else { - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - if (flags & 65536 && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - if (flags & 512 && !created) { - FS.truncate(node, 0); - } - flags &= ~(128 | 512 | 131072); - var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }); - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module["logReadFiles"] && !(flags & 1)) { - if (!FS.readFiles) - FS.readFiles = {}; - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - } - } - return stream; - }, close: (stream) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) - stream.getdents = null; - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - }, isClosed: (stream) => { - return stream.fd === null; - }, llseek: (stream, offset, whence) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - }, read: (stream, buffer, offset, length, position) => { - offset >>>= 0; - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position != "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); - if (!seeking) - stream.position += bytesRead; - return bytesRead; - }, write: (stream, buffer, offset, length, position, canOwn) => { - offset >>>= 0; - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - FS.llseek(stream, 0, 2); - } - var seeking = typeof position != "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); - if (!seeking) - stream.position += bytesWritten; - return bytesWritten; - }, allocate: (stream, offset, length) => { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - }, mmap: (stream, length, position, prot, flags) => { - if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - return stream.stream_ops.mmap(stream, length, position, prot, flags); - }, msync: (stream, buffer, offset, length, mmapFlags) => { - offset >>>= 0; - if (!stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - }, readFile: (path, opts = {}) => { - opts.flags = opts.flags || 0; - opts.encoding = opts.encoding || "binary"; - if (opts.encoding !== "utf8" && opts.encoding !== "binary") { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === "utf8") { - ret = UTF8ArrayToString(buf, 0); - } else if (opts.encoding === "binary") { - ret = buf; - } - FS.close(stream); - return ret; - }, writeFile: (path, data, opts = {}) => { - opts.flags = opts.flags || 577; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data == "string") { - var buf = new Uint8Array(lengthBytesUTF8(data) + 1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn); - } else { - throw new Error("Unsupported data type"); - } - FS.close(stream); - }, cwd: () => FS.currentPath, chdir: (path) => { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); - } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); - } - var errCode = FS.nodePermissions(lookup.node, "x"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - FS.currentPath = lookup.path; - }, createDefaultDirectories: () => { - FS.mkdir("/tmp"); - FS.mkdir("/home"); - FS.mkdir("/home/web_user"); - }, createDefaultDevices: () => { - FS.mkdir("/dev"); - FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length }); - FS.mkdev("/dev/null", FS.makedev(1, 3)); - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev("/dev/tty", FS.makedev(5, 0)); - FS.mkdev("/dev/tty1", FS.makedev(6, 0)); - var random_device = getRandomDevice(); - FS.createDevice("/dev", "random", random_device); - FS.createDevice("/dev", "urandom", random_device); - FS.mkdir("/dev/shm"); - FS.mkdir("/dev/shm/tmp"); - }, createSpecialDirectories: () => { - FS.mkdir("/proc"); - var proc_self = FS.mkdir("/proc/self"); - FS.mkdir("/proc/self/fd"); - FS.mount({ mount: () => { - var node = FS.createNode(proc_self, "fd", 16384 | 511, 73); - node.node_ops = { lookup: (parent, name) => { - var fd = +name; - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); - var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } }; - ret.parent = ret; - return ret; - } }; - return node; - } }, {}, "/proc/self/fd"); - }, createStandardStreams: () => { - if (Module["stdin"]) { - FS.createDevice("/dev", "stdin", Module["stdin"]); - } else { - FS.symlink("/dev/tty", "/dev/stdin"); - } - if (Module["stdout"]) { - FS.createDevice("/dev", "stdout", null, Module["stdout"]); - } else { - FS.symlink("/dev/tty", "/dev/stdout"); - } - if (Module["stderr"]) { - FS.createDevice("/dev", "stderr", null, Module["stderr"]); - } else { - FS.symlink("/dev/tty1", "/dev/stderr"); - } - FS.open("/dev/stdin", 0); - FS.open("/dev/stdout", 1); - FS.open("/dev/stderr", 1); - }, ensureErrnoError: () => { - if (FS.ErrnoError) - return; - FS.ErrnoError = function ErrnoError(errno, node) { - this.node = node; - this.setErrno = function(errno2) { - this.errno = errno2; - }; - this.setErrno(errno); - this.message = "FS error"; - }; - FS.ErrnoError.prototype = new Error(); - FS.ErrnoError.prototype.constructor = FS.ErrnoError; - [44].forEach((code) => { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ""; - }); - }, staticInit: () => { - FS.ensureErrnoError(); - FS.nameTable = new Array(4096); - FS.mount(MEMFS, {}, "/"); - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - FS.filesystems = { "MEMFS": MEMFS }; - }, init: (input, output, error) => { - FS.init.initialized = true; - FS.ensureErrnoError(); - Module["stdin"] = input || Module["stdin"]; - Module["stdout"] = output || Module["stdout"]; - Module["stderr"] = error || Module["stderr"]; - FS.createStandardStreams(); - }, quit: () => { - FS.init.initialized = false; - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - }, getMode: (canRead, canWrite) => { - var mode = 0; - if (canRead) - mode |= 292 | 73; - if (canWrite) - mode |= 146; - return mode; - }, findObject: (path, dontResolveLastLink) => { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (!ret.exists) { - return null; - } - return ret.object; - }, analyzePath: (path, dontResolveLastLink) => { - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) { - } - var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === "/"; - } catch (e) { - ret.error = e.errno; - } - return ret; - }, createPath: (parent, path, canRead, canWrite) => { - parent = typeof parent == "string" ? parent : FS.getPath(parent); - var parts = path.split("/").reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) - continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) { - } - parent = current; - } - return current; - }, createFile: (parent, name, properties, canRead, canWrite) => { - var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(canRead, canWrite); - return FS.create(path, mode); - }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => { - var path = name; - if (parent) { - parent = typeof parent == "string" ? parent : FS.getPath(parent); - path = name ? PATH.join2(parent, name) : parent; - } - var mode = FS.getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data == "string") { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) - arr[i] = data.charCodeAt(i); - data = arr; - } - FS.chmod(node, mode | 146); - var stream = FS.open(node, 577); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - return node; - }, createDevice: (parent, name, input, output) => { - var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); - var mode = FS.getMode(!!input, !!output); - if (!FS.createDevice.major) - FS.createDevice.major = 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - FS.registerDevice(dev, { open: (stream) => { - stream.seekable = false; - }, close: (stream) => { - if (output && output.buffer && output.buffer.length) { - output(10); - } - }, read: (stream, buffer, offset, length, pos) => { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = input(); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === void 0 && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === void 0) - break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, write: (stream, buffer, offset, length, pos) => { - for (var i = 0; i < length; i++) { - try { - output(buffer[offset + i]); - } catch (e) { - throw new FS.ErrnoError(29); - } - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } }); - return FS.mkdev(path, mode, dev); - }, forceLoadFile: (obj) => { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) - return true; - if (typeof XMLHttpRequest != "undefined") { - 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."); - } else if (read_) { - try { - obj.contents = intArrayFromString(read_(obj.url), true); - obj.usedBytes = obj.contents.length; - } catch (e) { - throw new FS.ErrnoError(29); - } - } else { - throw new Error("Cannot load without read() or XMLHttpRequest."); - } - }, createLazyFile: (parent, name, url, canRead, canWrite) => { - function LazyUint8Array() { - this.lengthKnown = false; - this.chunks = []; - } - LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { - if (idx > this.length - 1 || idx < 0) { - return void 0; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = idx / this.chunkSize | 0; - return this.getter(chunkNum)[chunkOffset]; - }; - LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { - this.getter = getter; - }; - LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { - var xhr = new XMLHttpRequest(); - xhr.open("HEAD", url, false); - xhr.send(null); - if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; - var chunkSize = 1024 * 1024; - if (!hasByteServing) - chunkSize = datalength; - var doXHR = (from, to) => { - if (from > to) - throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); - if (to > datalength - 1) - throw new Error("only " + datalength + " bytes available! programmer error!"); - var xhr2 = new XMLHttpRequest(); - xhr2.open("GET", url, false); - if (datalength !== chunkSize) - xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to); - xhr2.responseType = "arraybuffer"; - if (xhr2.overrideMimeType) { - xhr2.overrideMimeType("text/plain; charset=x-user-defined"); - } - xhr2.send(null); - if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr2.status); - if (xhr2.response !== void 0) { - return new Uint8Array(xhr2.response || []); - } - return intArrayFromString(xhr2.responseText || "", true); - }; - var lazyArray2 = this; - lazyArray2.setDataGetter((chunkNum) => { - var start = chunkNum * chunkSize; - var end = (chunkNum + 1) * chunkSize - 1; - end = Math.min(end, datalength - 1); - if (typeof lazyArray2.chunks[chunkNum] == "undefined") { - lazyArray2.chunks[chunkNum] = doXHR(start, end); - } - if (typeof lazyArray2.chunks[chunkNum] == "undefined") - throw new Error("doXHR failed!"); - return lazyArray2.chunks[chunkNum]; - }); - if (usesGzip || !datalength) { - chunkSize = datalength = 1; - datalength = this.getter(0).length; - chunkSize = datalength; - out("LazyFiles on gzip forces download of the whole file when length is accessed"); - } - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - }; - if (typeof XMLHttpRequest != "undefined") { - throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; - var lazyArray = new LazyUint8Array(); - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url }; - } - var node = FS.createFile(parent, name, properties, canRead, canWrite); - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; - } - Object.defineProperties(node, { usedBytes: { get: function() { - return this.contents.length; - } } }); - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach((key) => { - var fn = node.stream_ops[key]; - stream_ops[key] = function forceLoadLazyFile() { - FS.forceLoadFile(node); - return fn.apply(null, arguments); - }; - }); - function writeChunks(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= contents.length) - return 0; - var size = Math.min(contents.length - position, length); - if (contents.slice) { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; - } - } else { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents.get(position + i); - } - } - return size; - } - stream_ops.read = (stream, buffer, offset, length, position) => { - FS.forceLoadFile(node); - return writeChunks(stream, buffer, offset, length, position); - }; - stream_ops.mmap = (stream, length, position, prot, flags) => { - FS.forceLoadFile(node); - var ptr = mmapAlloc(); - if (!ptr) { - throw new FS.ErrnoError(48); - } - writeChunks(stream, HEAP8, ptr, length, position); - return { ptr, allocated: true }; - }; - node.stream_ops = stream_ops; - return node; - }, createPreloadedFile: (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - function processData(byteArray) { - function finish(byteArray2) { - if (preFinish) - preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn); - } - if (onload) - onload(); - removeRunDependency(); - } - if (Browser.handledByPreloadPlugin(byteArray, fullname, finish, () => { - if (onerror) - onerror(); - removeRunDependency(); - })) { - return; - } - finish(byteArray); - } - addRunDependency(); - if (typeof url == "string") { - asyncLoad(url, (byteArray) => processData(byteArray), onerror); - } else { - processData(url); - } - }, indexedDB: () => { - return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; - }, DB_NAME: () => { - return "EM_FS_" + window.location.pathname; - }, DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = () => { - out("creating db"); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - openRequest.onsuccess = () => { - var db = openRequest.result; - var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) - onload(); - else - onerror(); - } - paths.forEach((path) => { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = () => { - ok++; - if (ok + fail == total) - finish(); - }; - putRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }, loadFilesFromDB: (paths, onload = () => { - }, onerror = () => { - }) => { - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = onerror; - openRequest.onsuccess = () => { - var db = openRequest.result; - try { - var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); - } catch (e) { - onerror(e); - return; - } - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, fail = 0, total = paths.length; - function finish() { - if (fail == 0) - onload(); - else - onerror(); - } - paths.forEach((path) => { - var getRequest = files.get(path); - getRequest.onsuccess = () => { - if (FS.analyzePath(path).exists) { - FS.unlink(path); - } - FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); - ok++; - if (ok + fail == total) - finish(); - }; - getRequest.onerror = () => { - fail++; - if (ok + fail == total) - finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - } }; - var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) { - if (PATH.isAbs(path)) { - return path; - } - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = SYSCALLS.getStreamFromFD(dirfd); - dir = dirstream.path; - } - if (path.length == 0) { - if (!allowEmpty) { - throw new FS.ErrnoError(44); - } - return dir; - } - return PATH.join2(dir, path); - }, doStat: function(func, path, buf) { - try { - var stat = func(path); - } catch (e) { - if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) { - return -54; - } - throw e; - } - HEAP32[buf >>> 2] = stat.dev; - HEAP32[buf + 8 >>> 2] = stat.ino; - HEAP32[buf + 12 >>> 2] = stat.mode; - HEAPU32[buf + 16 >>> 2] = stat.nlink; - HEAP32[buf + 20 >>> 2] = stat.uid; - HEAP32[buf + 24 >>> 2] = stat.gid; - HEAP32[buf + 28 >>> 2] = stat.rdev; - tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >>> 2] = tempI64[0], HEAP32[buf + 44 >>> 2] = tempI64[1]; - HEAP32[buf + 48 >>> 2] = 4096; - HEAP32[buf + 52 >>> 2] = stat.blocks; - var atime = stat.atime.getTime(); - var mtime = stat.mtime.getTime(); - var ctime = stat.ctime.getTime(); - tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >>> 2] = tempI64[0], HEAP32[buf + 60 >>> 2] = tempI64[1]; - HEAPU32[buf + 64 >>> 2] = atime % 1e3 * 1e3; - tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >>> 2] = tempI64[0], HEAP32[buf + 76 >>> 2] = tempI64[1]; - HEAPU32[buf + 80 >>> 2] = mtime % 1e3 * 1e3; - tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >>> 2] = tempI64[0], HEAP32[buf + 92 >>> 2] = tempI64[1]; - HEAPU32[buf + 96 >>> 2] = ctime % 1e3 * 1e3; - tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 104 >>> 2] = tempI64[0], HEAP32[buf + 108 >>> 2] = tempI64[1]; - return 0; - }, doMsync: function(addr, stream, len, flags, offset) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (flags & 2) { - return 0; - } - addr >>>= 0; - var buffer = HEAPU8.slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - }, varargs: void 0, get: function() { - SYSCALLS.varargs += 4; - var ret = HEAP32[SYSCALLS.varargs - 4 >>> 2]; - return ret; - }, getStr: function(ptr) { - var ret = UTF8ToString(ptr); - return ret; - }, getStreamFromFD: function(fd) { - var stream = FS.getStream(fd); - if (!stream) - throw new FS.ErrnoError(8); - return stream; - } }; - function _environ_get(__environ, environ_buf) { - var bufSize = 0; - getEnvStrings().forEach(function(string, i) { - var ptr = environ_buf + bufSize; - HEAPU32[__environ + i * 4 >>> 2] = ptr; - writeAsciiToMemory(string, ptr); - bufSize += string.length + 1; - }); - return 0; - } - function _environ_sizes_get(penviron_count, penviron_buf_size) { - var strings = getEnvStrings(); - HEAPU32[penviron_count >>> 2] = strings.length; - var bufSize = 0; - strings.forEach(function(string) { - bufSize += string.length + 1; - }); - HEAPU32[penviron_buf_size >>> 2] = bufSize; - return 0; - } - function _fd_close(fd) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function doReadv(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[iov >>> 2]; - var len = HEAPU32[iov + 4 >>> 2]; - iov += 8; - var curr = FS.read(stream, HEAP8, ptr, len, offset); - if (curr < 0) - return -1; - ret += curr; - if (curr < len) - break; - if (typeof offset !== "undefined") { - offset += curr; - } - } - return ret; - } - function _fd_read(fd, iov, iovcnt, pnum) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doReadv(stream, iov, iovcnt); - HEAPU32[pnum >>> 2] = num; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function convertI32PairToI53Checked(lo, hi) { - return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN; - } - function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { - try { - var offset = convertI32PairToI53Checked(offset_low, offset_high); - if (isNaN(offset)) - return 61; - var stream = SYSCALLS.getStreamFromFD(fd); - FS.llseek(stream, offset, whence); - tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >>> 2] = tempI64[0], HEAP32[newOffset + 4 >>> 2] = tempI64[1]; - if (stream.getdents && offset === 0 && whence === 0) - stream.getdents = null; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function doWritev(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAPU32[iov >>> 2]; - var len = HEAPU32[iov + 4 >>> 2]; - iov += 8; - var curr = FS.write(stream, HEAP8, ptr, len, offset); - if (curr < 0) - return -1; - ret += curr; - if (typeof offset !== "undefined") { - offset += curr; - } - } - return ret; - } - function _fd_write(fd, iov, iovcnt, pnum) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = doWritev(stream, iov, iovcnt); - HEAPU32[pnum >>> 2] = num; - return 0; - } catch (e) { - if (typeof FS == "undefined" || !(e instanceof FS.ErrnoError)) - throw e; - return e.errno; - } - } - function __isLeapYear(year) { - return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); - } - function __arraySum(array, index) { - var sum = 0; - for (var i = 0; i <= index; sum += array[i++]) { - } - return sum; - } - var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - function __addDays(date, days) { - var newDate = new Date(date.getTime()); - while (days > 0) { - var leap = __isLeapYear(newDate.getFullYear()); - var currentMonth = newDate.getMonth(); - var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; - if (days > daysInCurrentMonth - newDate.getDate()) { - days -= daysInCurrentMonth - newDate.getDate() + 1; - newDate.setDate(1); - if (currentMonth < 11) { - newDate.setMonth(currentMonth + 1); - } else { - newDate.setMonth(0); - newDate.setFullYear(newDate.getFullYear() + 1); - } - } else { - newDate.setDate(newDate.getDate() + days); - return newDate; - } - } - return newDate; - } - function writeArrayToMemory(array, buffer) { - HEAP8.set(array, buffer >>> 0); - } - function _strftime(s, maxsize, format, tm) { - var tm_zone = HEAP32[tm + 40 >>> 2]; - var date = { tm_sec: HEAP32[tm >>> 2], tm_min: HEAP32[tm + 4 >>> 2], tm_hour: HEAP32[tm + 8 >>> 2], tm_mday: HEAP32[tm + 12 >>> 2], tm_mon: HEAP32[tm + 16 >>> 2], tm_year: HEAP32[tm + 20 >>> 2], tm_wday: HEAP32[tm + 24 >>> 2], tm_yday: HEAP32[tm + 28 >>> 2], tm_isdst: HEAP32[tm + 32 >>> 2], tm_gmtoff: HEAP32[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" }; - var pattern = UTF8ToString(format); - var EXPANSION_RULES_1 = { "%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 rule in EXPANSION_RULES_1) { - pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]); - } - var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; - function leadingSomething(value, digits, character) { - var str = typeof value == "number" ? value.toString() : value || ""; - while (str.length < digits) { - str = character[0] + str; - } - return str; - } - function leadingNulls(value, digits) { - return leadingSomething(value, digits, "0"); - } - function compareByDay(date1, date2) { - function sgn(value) { - return value < 0 ? -1 : value > 0 ? 1 : 0; - } - var compare; - if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { - if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { - compare = sgn(date1.getDate() - date2.getDate()); - } - } - return compare; - } - function getFirstWeekStartDate(janFourth) { - switch (janFourth.getDay()) { - case 0: - return new Date(janFourth.getFullYear() - 1, 11, 29); - case 1: - return janFourth; - case 2: - return new Date(janFourth.getFullYear(), 0, 3); - case 3: - return new Date(janFourth.getFullYear(), 0, 2); - case 4: - return new Date(janFourth.getFullYear(), 0, 1); - case 5: - return new Date(janFourth.getFullYear() - 1, 11, 31); - case 6: - return new Date(janFourth.getFullYear() - 1, 11, 30); - } - } - function getWeekBasedYear(date2) { - var thisDate = __addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday); - var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); - var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); - var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); - var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); - if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { - if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { - return thisDate.getFullYear() + 1; - } - return thisDate.getFullYear(); - } - return thisDate.getFullYear() - 1; - } - var EXPANSION_RULES_2 = { "%a": function(date2) { - return WEEKDAYS[date2.tm_wday].substring(0, 3); - }, "%A": function(date2) { - return WEEKDAYS[date2.tm_wday]; - }, "%b": function(date2) { - return MONTHS[date2.tm_mon].substring(0, 3); - }, "%B": function(date2) { - return MONTHS[date2.tm_mon]; - }, "%C": function(date2) { - var year = date2.tm_year + 1900; - return leadingNulls(year / 100 | 0, 2); - }, "%d": function(date2) { - return leadingNulls(date2.tm_mday, 2); - }, "%e": function(date2) { - return leadingSomething(date2.tm_mday, 2, " "); - }, "%g": function(date2) { - return getWeekBasedYear(date2).toString().substring(2); - }, "%G": function(date2) { - return getWeekBasedYear(date2); - }, "%H": function(date2) { - return leadingNulls(date2.tm_hour, 2); - }, "%I": function(date2) { - var twelveHour = date2.tm_hour; - if (twelveHour == 0) - twelveHour = 12; - else if (twelveHour > 12) - twelveHour -= 12; - return leadingNulls(twelveHour, 2); - }, "%j": function(date2) { - return leadingNulls(date2.tm_mday + __arraySum(__isLeapYear(date2.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3); - }, "%m": function(date2) { - return leadingNulls(date2.tm_mon + 1, 2); - }, "%M": function(date2) { - return leadingNulls(date2.tm_min, 2); - }, "%n": function() { - return "\n"; - }, "%p": function(date2) { - if (date2.tm_hour >= 0 && date2.tm_hour < 12) { - return "AM"; - } - return "PM"; - }, "%S": function(date2) { - return leadingNulls(date2.tm_sec, 2); - }, "%t": function() { - return " "; - }, "%u": function(date2) { - return date2.tm_wday || 7; - }, "%U": function(date2) { - var days = date2.tm_yday + 7 - date2.tm_wday; - return leadingNulls(Math.floor(days / 7), 2); - }, "%V": function(date2) { - var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7); - if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) { - val++; - } - if (!val) { - val = 52; - var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7; - if (dec31 == 4 || dec31 == 5 && __isLeapYear(date2.tm_year % 400 - 1)) { - val++; - } - } else if (val == 53) { - var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7; - if (jan1 != 4 && (jan1 != 3 || !__isLeapYear(date2.tm_year))) - val = 1; - } - return leadingNulls(val, 2); - }, "%w": function(date2) { - return date2.tm_wday; - }, "%W": function(date2) { - var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7; - return leadingNulls(Math.floor(days / 7), 2); - }, "%y": function(date2) { - return (date2.tm_year + 1900).toString().substring(2); - }, "%Y": function(date2) { - return date2.tm_year + 1900; - }, "%z": function(date2) { - var off = date2.tm_gmtoff; - var ahead = off >= 0; - off = Math.abs(off) / 60; - off = off / 60 * 100 + off % 60; - return (ahead ? "+" : "-") + String("0000" + off).slice(-4); - }, "%Z": function(date2) { - return date2.tm_zone; - }, "%%": function() { - return "%"; - } }; - pattern = pattern.replace(/%%/g, "\0\0"); - for (var rule in EXPANSION_RULES_2) { - if (pattern.includes(rule)) { - pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date)); - } - } - pattern = pattern.replace(/\0\0/g, "%"); - var bytes = intArrayFromString(pattern, false); - if (bytes.length > maxsize) { - return 0; - } - writeArrayToMemory(bytes, s); - return bytes.length - 1; - } - function _strftime_l(s, maxsize, format, tm, loc) { - return _strftime(s, maxsize, format, tm); - } - InternalError = Module["InternalError"] = extendError(Error, "InternalError"); - embind_init_charCodes(); - BindingError = Module["BindingError"] = extendError(Error, "BindingError"); - init_ClassHandle(); - init_embind(); - init_RegisteredPointer(); - UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError"); - init_emval(); - var FSNode = function(parent, name, mode, rdev) { - if (!parent) { - parent = this; - } - this.parent = parent; - this.mount = parent.mount; - this.mounted = null; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.node_ops = {}; - this.stream_ops = {}; - this.rdev = rdev; - }; - var readMode = 292 | 73; - var writeMode = 146; - Object.defineProperties(FSNode.prototype, { read: { get: function() { - return (this.mode & readMode) === readMode; - }, set: function(val) { - val ? this.mode |= readMode : this.mode &= ~readMode; - } }, write: { get: function() { - return (this.mode & writeMode) === writeMode; - }, set: function(val) { - val ? this.mode |= writeMode : this.mode &= ~writeMode; - } }, isFolder: { get: function() { - return FS.isDir(this.mode); - } }, isDevice: { get: function() { - return FS.isChrdev(this.mode); - } } }); - FS.FSNode = FSNode; - FS.staticInit(); - var wasmImports = { "f": ___cxa_throw, "R": __embind_finalize_value_array, "p": __embind_finalize_value_object, "F": __embind_register_bigint, "P": __embind_register_bool, "o": __embind_register_class, "n": __embind_register_class_constructor, "b": __embind_register_class_function, "O": __embind_register_emval, "B": __embind_register_enum, "s": __embind_register_enum_value, "z": __embind_register_float, "c": __embind_register_function, "r": __embind_register_integer, "h": __embind_register_memory_view, "A": __embind_register_std_string, "v": __embind_register_std_wstring, "S": __embind_register_value_array, "i": __embind_register_value_array_element, "q": __embind_register_value_object, "e": __embind_register_value_object_field, "Q": __embind_register_void, "m": __emval_as, "x": __emval_call, "a": __emval_decref, "D": __emval_get_global, "k": __emval_get_property, "t": __emval_incref, "U": __emval_instanceof, "w": __emval_is_number, "C": __emval_is_string, "T": __emval_new_array, "g": __emval_new_cstring, "u": __emval_new_object, "l": __emval_run_destructors, "j": __emval_set_property, "d": __emval_take_value, "y": _abort, "N": _emscripten_memcpy_big, "L": _emscripten_resize_heap, "H": _environ_get, "I": _environ_sizes_get, "J": _fd_close, "K": _fd_read, "E": _fd_seek, "M": _fd_write, "G": _strftime_l }; - createWasm(); - var _malloc = function() { - return (_malloc = Module["asm"]["Y"]).apply(null, arguments); - }; - var ___getTypeName = Module["___getTypeName"] = function() { - return (___getTypeName = Module["___getTypeName"] = Module["asm"]["Z"]).apply(null, arguments); - }; - Module["__embind_initialize_bindings"] = function() { - return (Module["__embind_initialize_bindings"] = Module["asm"]["_"]).apply(null, arguments); - }; - var _free = function() { - return (_free = Module["asm"]["$"]).apply(null, arguments); - }; - var ___cxa_is_pointer_type = function() { - return (___cxa_is_pointer_type = Module["asm"]["aa"]).apply(null, arguments); - }; - Module["dynCall_jiji"] = function() { - return (Module["dynCall_jiji"] = Module["asm"]["ba"]).apply(null, arguments); - }; - Module["dynCall_viijii"] = function() { - return (Module["dynCall_viijii"] = Module["asm"]["ca"]).apply(null, arguments); - }; - Module["dynCall_iiiiij"] = function() { - return (Module["dynCall_iiiiij"] = Module["asm"]["da"]).apply(null, arguments); - }; - Module["dynCall_iiiiijj"] = function() { - return (Module["dynCall_iiiiijj"] = Module["asm"]["ea"]).apply(null, arguments); - }; - Module["dynCall_iiiiiijj"] = function() { - return (Module["dynCall_iiiiiijj"] = Module["asm"]["fa"]).apply(null, arguments); - }; - var calledRun; - dependenciesFulfilled = function runCaller() { - if (!calledRun) - run(); - if (!calledRun) - dependenciesFulfilled = runCaller; - }; - function run() { - if (runDependencies > 0) { - return; - } - preRun(); - if (runDependencies > 0) { - return; - } - function doRun() { - if (calledRun) - return; - calledRun = true; - Module["calledRun"] = true; - if (ABORT) - return; - initRuntime(); - readyPromiseResolve(Module); - if (Module["onRuntimeInitialized"]) - Module["onRuntimeInitialized"](); - postRun(); - } - if (Module["setStatus"]) { - Module["setStatus"]("Running..."); - setTimeout(function() { - setTimeout(function() { - Module["setStatus"](""); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - } - if (Module["preInit"]) { - if (typeof Module["preInit"] == "function") - Module["preInit"] = [Module["preInit"]]; - while (Module["preInit"].length > 0) { - Module["preInit"].pop()(); - } - } - run(); - return WebIFCWasm3.ready; - }; - })(); - if (typeof exports === "object" && typeof module === "object") - module.exports = WebIFCWasm2; - else if (typeof define === "function" && define["amd"]) - define([], function() { - return WebIFCWasm2; - }); - else if (typeof exports === "object") - exports["WebIFCWasm"] = WebIFCWasm2; - } - }); - var Handle = class { - constructor(value) { - this.value = value; - this.type = 5; - } - }; - var IfcLineObject = class { - constructor(expressID) { - this.expressID = expressID; - this.type = 0; - } - }; - var Schemas; - (function(Schemas2) { - Schemas2["IFC2X3"] = "IFC2X3"; - Schemas2["IFC4"] = "IFC4"; - Schemas2["IFC4X3"] = "IFC4X3"; - })(Schemas || (Schemas = {})); - var IFC2X3; - (function(IFC2X32) { - class IfcAbsorbedDoseMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; - class IfcAccelerationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAccelerationMeasure = IfcAccelerationMeasure; - class IfcAmountOfSubstanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; - class IfcAngularVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; - class IfcAreaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcAreaMeasure = IfcAreaMeasure; - class IfcBoolean { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC2X32.IfcBoolean = IfcBoolean; - class IfcBoxAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcBoxAlignment = IfcBoxAlignment; - class IfcComplexNumber { - constructor(value) { - this.value = value; - } - } - IFC2X32.IfcComplexNumber = IfcComplexNumber; - class IfcCompoundPlaneAngleMeasure { - constructor(value) { - this.value = value; - } - } - IFC2X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; - class IfcContextDependentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcContextDependentMeasure = IfcContextDependentMeasure; - class IfcCountMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcCountMeasure = IfcCountMeasure; - class IfcCurvatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcCurvatureMeasure = IfcCurvatureMeasure; - class IfcDayInMonthNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDayInMonthNumber = IfcDayInMonthNumber; - class IfcDaylightSavingHour { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDaylightSavingHour = IfcDaylightSavingHour; - class IfcDescriptiveMeasure { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; - class IfcDimensionCount { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDimensionCount = IfcDimensionCount; - class IfcDoseEquivalentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; - class IfcDynamicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; - class IfcElectricCapacitanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; - class IfcElectricChargeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; - class IfcElectricConductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; - class IfcElectricCurrentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; - class IfcElectricResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; - class IfcElectricVoltageMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; - class IfcEnergyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcEnergyMeasure = IfcEnergyMeasure; - class IfcFontStyle { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcFontStyle = IfcFontStyle; - class IfcFontVariant { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcFontVariant = IfcFontVariant; - class IfcFontWeight { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcFontWeight = IfcFontWeight; - class IfcForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcForceMeasure = IfcForceMeasure; - class IfcFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcFrequencyMeasure = IfcFrequencyMeasure; - class IfcGloballyUniqueId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcGloballyUniqueId = IfcGloballyUniqueId; - class IfcHeatFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; - class IfcHeatingValueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; - class IfcHourInDay { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcHourInDay = IfcHourInDay; - class IfcIdentifier { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcIdentifier = IfcIdentifier; - class IfcIlluminanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; - class IfcInductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcInductanceMeasure = IfcInductanceMeasure; - class IfcInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcInteger = IfcInteger; - class IfcIntegerCountRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; - class IfcIonConcentrationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; - class IfcIsothermalMoistureCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; - class IfcKinematicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; - class IfcLabel { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcLabel = IfcLabel; - class IfcLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLengthMeasure = IfcLengthMeasure; - class IfcLinearForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLinearForceMeasure = IfcLinearForceMeasure; - class IfcLinearMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; - class IfcLinearStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; - class IfcLinearVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; - class IfcLogical { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC2X32.IfcLogical = IfcLogical; - class IfcLuminousFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; - class IfcLuminousIntensityDistributionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; - class IfcLuminousIntensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; - class IfcMagneticFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; - class IfcMagneticFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; - class IfcMassDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMassDensityMeasure = IfcMassDensityMeasure; - class IfcMassFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; - class IfcMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMassMeasure = IfcMassMeasure; - class IfcMassPerLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; - class IfcMinuteInHour { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMinuteInHour = IfcMinuteInHour; - class IfcModulusOfElasticityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; - class IfcModulusOfLinearSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; - class IfcModulusOfRotationalSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; - class IfcModulusOfSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; - class IfcMoistureDiffusivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; - class IfcMolecularWeightMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; - class IfcMomentOfInertiaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; - class IfcMonetaryMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMonetaryMeasure = IfcMonetaryMeasure; - class IfcMonthInYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcMonthInYearNumber = IfcMonthInYearNumber; - class IfcNormalisedRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; - class IfcNumericMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcNumericMeasure = IfcNumericMeasure; - class IfcPHMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPHMeasure = IfcPHMeasure; - class IfcParameterValue { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcParameterValue = IfcParameterValue; - class IfcPlanarForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; - class IfcPlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; - class IfcPositiveLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; - class IfcPositivePlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; - class IfcPositiveRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; - class IfcPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPowerMeasure = IfcPowerMeasure; - class IfcPresentableText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcPresentableText = IfcPresentableText; - class IfcPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcPressureMeasure = IfcPressureMeasure; - class IfcRadioActivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; - class IfcRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRatioMeasure = IfcRatioMeasure; - class IfcReal { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcReal = IfcReal; - class IfcRotationalFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; - class IfcRotationalMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; - class IfcRotationalStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; - class IfcSecondInMinute { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSecondInMinute = IfcSecondInMinute; - class IfcSectionModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; - class IfcSectionalAreaIntegralMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; - class IfcShearModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcShearModulusMeasure = IfcShearModulusMeasure; - class IfcSolidAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; - class IfcSoundPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; - class IfcSoundPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; - class IfcSpecificHeatCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; - class IfcSpecularExponent { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSpecularExponent = IfcSpecularExponent; - class IfcSpecularRoughness { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcSpecularRoughness = IfcSpecularRoughness; - class IfcTemperatureGradientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; - class IfcText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcText = IfcText; - class IfcTextAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcTextAlignment = IfcTextAlignment; - class IfcTextDecoration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcTextDecoration = IfcTextDecoration; - class IfcTextFontName { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcTextFontName = IfcTextFontName; - class IfcTextTransformation { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC2X32.IfcTextTransformation = IfcTextTransformation; - class IfcThermalAdmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; - class IfcThermalConductivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; - class IfcThermalExpansionCoefficientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; - class IfcThermalResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; - class IfcThermalTransmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; - class IfcThermodynamicTemperatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; - class IfcTimeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcTimeMeasure = IfcTimeMeasure; - class IfcTimeStamp { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcTimeStamp = IfcTimeStamp; - class IfcTorqueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcTorqueMeasure = IfcTorqueMeasure; - class IfcVaporPermeabilityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; - class IfcVolumeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcVolumeMeasure = IfcVolumeMeasure; - class IfcVolumetricFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; - class IfcWarpingConstantMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; - class IfcWarpingMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; - class IfcYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC2X32.IfcYearNumber = IfcYearNumber; - class IfcActionSourceTypeEnum { - } - IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; - IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; - IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; - IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; - IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; - IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; - IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; - IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; - IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; - IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; - IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; - IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; - IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; - IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; - IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; - IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; - IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; - IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; - IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; - IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; - IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; - IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; - IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; - IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; - class IfcActionTypeEnum { - } - IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; - IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; - IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; - IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcActionTypeEnum = IfcActionTypeEnum; - class IfcActuatorTypeEnum { - } - IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; - IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; - IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; - IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; - IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; - IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; - class IfcAddressTypeEnum { - } - IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; - IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; - IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcAddressTypeEnum = IfcAddressTypeEnum; - class IfcAheadOrBehind { - } - IfcAheadOrBehind.AHEAD = { type: 3, value: "AHEAD" }; - IfcAheadOrBehind.BEHIND = { type: 3, value: "BEHIND" }; - IFC2X32.IfcAheadOrBehind = IfcAheadOrBehind; - class IfcAirTerminalBoxTypeEnum { - } - IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; - class IfcAirTerminalTypeEnum { - } - IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; - IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; - IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; - IfcAirTerminalTypeEnum.EYEBALL = { type: 3, value: "EYEBALL" }; - IfcAirTerminalTypeEnum.IRIS = { type: 3, value: "IRIS" }; - IfcAirTerminalTypeEnum.LINEARGRILLE = { type: 3, value: "LINEARGRILLE" }; - IfcAirTerminalTypeEnum.LINEARDIFFUSER = { type: 3, value: "LINEARDIFFUSER" }; - IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; - class IfcAirToAirHeatRecoveryTypeEnum { - } - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; - IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; - IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; - IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; - class IfcAlarmTypeEnum { - } - IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; - IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; - IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; - IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; - IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; - IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; - IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; - class IfcAnalysisModelTypeEnum { - } - IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; - IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; - class IfcAnalysisTheoryTypeEnum { - } - IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; - IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; - class IfcArithmeticOperatorEnum { - } - IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; - IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; - IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; - IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; - IFC2X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; - class IfcAssemblyPlaceEnum { - } - IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; - IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; - IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; - class IfcBSplineCurveForm { - } - IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; - IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; - IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; - IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; - IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; - IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC2X32.IfcBSplineCurveForm = IfcBSplineCurveForm; - class IfcBeamTypeEnum { - } - IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; - IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; - IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; - IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; - IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcBeamTypeEnum = IfcBeamTypeEnum; - class IfcBenchmarkEnum { - } - IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; - IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; - IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; - IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; - IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; - IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; - IFC2X32.IfcBenchmarkEnum = IfcBenchmarkEnum; - class IfcBoilerTypeEnum { - } - IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; - IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; - class IfcBooleanOperator { - } - IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; - IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; - IFC2X32.IfcBooleanOperator = IfcBooleanOperator; - class IfcBuildingElementProxyTypeEnum { - } - IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; - class IfcCableCarrierFittingTypeEnum { - } - IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; - IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; - IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; - IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; - class IfcCableCarrierSegmentTypeEnum { - } - IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; - class IfcCableSegmentTypeEnum { - } - IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; - IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; - IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; - class IfcChangeActionEnum { - } - IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; - IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; - IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; - IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; - IfcChangeActionEnum.MODIFIEDADDED = { type: 3, value: "MODIFIEDADDED" }; - IfcChangeActionEnum.MODIFIEDDELETED = { type: 3, value: "MODIFIEDDELETED" }; - IFC2X32.IfcChangeActionEnum = IfcChangeActionEnum; - class IfcChillerTypeEnum { - } - IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; - IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcChillerTypeEnum = IfcChillerTypeEnum; - class IfcCoilTypeEnum { - } - IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; - IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; - IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; - IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; - IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; - IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; - IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCoilTypeEnum = IfcCoilTypeEnum; - class IfcColumnTypeEnum { - } - IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; - IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcColumnTypeEnum = IfcColumnTypeEnum; - class IfcCompressorTypeEnum { - } - IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; - IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; - IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; - IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; - IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; - IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; - IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; - IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; - IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; - IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; - IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; - IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; - IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; - IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; - IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; - IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; - class IfcCondenserTypeEnum { - } - IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; - IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; - IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; - IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; - class IfcConnectionTypeEnum { - } - IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; - IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; - IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; - IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; - class IfcConstraintEnum { - } - IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; - IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; - IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; - IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcConstraintEnum = IfcConstraintEnum; - class IfcControllerTypeEnum { - } - IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; - IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; - IfcControllerTypeEnum.PROPORTIONALINTEGRAL = { type: 3, value: "PROPORTIONALINTEGRAL" }; - IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE = { type: 3, value: "PROPORTIONALINTEGRALDERIVATIVE" }; - IfcControllerTypeEnum.TIMEDTWOPOSITION = { type: 3, value: "TIMEDTWOPOSITION" }; - IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; - IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcControllerTypeEnum = IfcControllerTypeEnum; - class IfcCooledBeamTypeEnum { - } - IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; - IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; - IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; - class IfcCoolingTowerTypeEnum { - } - IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; - IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; - class IfcCostScheduleTypeEnum { - } - IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; - IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; - IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; - IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; - IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; - IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; - class IfcCoveringTypeEnum { - } - IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; - IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; - IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; - IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; - IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; - IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; - class IfcCurrencyEnum { - } - IfcCurrencyEnum.AED = { type: 3, value: "AED" }; - IfcCurrencyEnum.AES = { type: 3, value: "AES" }; - IfcCurrencyEnum.ATS = { type: 3, value: "ATS" }; - IfcCurrencyEnum.AUD = { type: 3, value: "AUD" }; - IfcCurrencyEnum.BBD = { type: 3, value: "BBD" }; - IfcCurrencyEnum.BEG = { type: 3, value: "BEG" }; - IfcCurrencyEnum.BGL = { type: 3, value: "BGL" }; - IfcCurrencyEnum.BHD = { type: 3, value: "BHD" }; - IfcCurrencyEnum.BMD = { type: 3, value: "BMD" }; - IfcCurrencyEnum.BND = { type: 3, value: "BND" }; - IfcCurrencyEnum.BRL = { type: 3, value: "BRL" }; - IfcCurrencyEnum.BSD = { type: 3, value: "BSD" }; - IfcCurrencyEnum.BWP = { type: 3, value: "BWP" }; - IfcCurrencyEnum.BZD = { type: 3, value: "BZD" }; - IfcCurrencyEnum.CAD = { type: 3, value: "CAD" }; - IfcCurrencyEnum.CBD = { type: 3, value: "CBD" }; - IfcCurrencyEnum.CHF = { type: 3, value: "CHF" }; - IfcCurrencyEnum.CLP = { type: 3, value: "CLP" }; - IfcCurrencyEnum.CNY = { type: 3, value: "CNY" }; - IfcCurrencyEnum.CYS = { type: 3, value: "CYS" }; - IfcCurrencyEnum.CZK = { type: 3, value: "CZK" }; - IfcCurrencyEnum.DDP = { type: 3, value: "DDP" }; - IfcCurrencyEnum.DEM = { type: 3, value: "DEM" }; - IfcCurrencyEnum.DKK = { type: 3, value: "DKK" }; - IfcCurrencyEnum.EGL = { type: 3, value: "EGL" }; - IfcCurrencyEnum.EST = { type: 3, value: "EST" }; - IfcCurrencyEnum.EUR = { type: 3, value: "EUR" }; - IfcCurrencyEnum.FAK = { type: 3, value: "FAK" }; - IfcCurrencyEnum.FIM = { type: 3, value: "FIM" }; - IfcCurrencyEnum.FJD = { type: 3, value: "FJD" }; - IfcCurrencyEnum.FKP = { type: 3, value: "FKP" }; - IfcCurrencyEnum.FRF = { type: 3, value: "FRF" }; - IfcCurrencyEnum.GBP = { type: 3, value: "GBP" }; - IfcCurrencyEnum.GIP = { type: 3, value: "GIP" }; - IfcCurrencyEnum.GMD = { type: 3, value: "GMD" }; - IfcCurrencyEnum.GRX = { type: 3, value: "GRX" }; - IfcCurrencyEnum.HKD = { type: 3, value: "HKD" }; - IfcCurrencyEnum.HUF = { type: 3, value: "HUF" }; - IfcCurrencyEnum.ICK = { type: 3, value: "ICK" }; - IfcCurrencyEnum.IDR = { type: 3, value: "IDR" }; - IfcCurrencyEnum.ILS = { type: 3, value: "ILS" }; - IfcCurrencyEnum.INR = { type: 3, value: "INR" }; - IfcCurrencyEnum.IRP = { type: 3, value: "IRP" }; - IfcCurrencyEnum.ITL = { type: 3, value: "ITL" }; - IfcCurrencyEnum.JMD = { type: 3, value: "JMD" }; - IfcCurrencyEnum.JOD = { type: 3, value: "JOD" }; - IfcCurrencyEnum.JPY = { type: 3, value: "JPY" }; - IfcCurrencyEnum.KES = { type: 3, value: "KES" }; - IfcCurrencyEnum.KRW = { type: 3, value: "KRW" }; - IfcCurrencyEnum.KWD = { type: 3, value: "KWD" }; - IfcCurrencyEnum.KYD = { type: 3, value: "KYD" }; - IfcCurrencyEnum.LKR = { type: 3, value: "LKR" }; - IfcCurrencyEnum.LUF = { type: 3, value: "LUF" }; - IfcCurrencyEnum.MTL = { type: 3, value: "MTL" }; - IfcCurrencyEnum.MUR = { type: 3, value: "MUR" }; - IfcCurrencyEnum.MXN = { type: 3, value: "MXN" }; - IfcCurrencyEnum.MYR = { type: 3, value: "MYR" }; - IfcCurrencyEnum.NLG = { type: 3, value: "NLG" }; - IfcCurrencyEnum.NZD = { type: 3, value: "NZD" }; - IfcCurrencyEnum.OMR = { type: 3, value: "OMR" }; - IfcCurrencyEnum.PGK = { type: 3, value: "PGK" }; - IfcCurrencyEnum.PHP = { type: 3, value: "PHP" }; - IfcCurrencyEnum.PKR = { type: 3, value: "PKR" }; - IfcCurrencyEnum.PLN = { type: 3, value: "PLN" }; - IfcCurrencyEnum.PTN = { type: 3, value: "PTN" }; - IfcCurrencyEnum.QAR = { type: 3, value: "QAR" }; - IfcCurrencyEnum.RUR = { type: 3, value: "RUR" }; - IfcCurrencyEnum.SAR = { type: 3, value: "SAR" }; - IfcCurrencyEnum.SCR = { type: 3, value: "SCR" }; - IfcCurrencyEnum.SEK = { type: 3, value: "SEK" }; - IfcCurrencyEnum.SGD = { type: 3, value: "SGD" }; - IfcCurrencyEnum.SKP = { type: 3, value: "SKP" }; - IfcCurrencyEnum.THB = { type: 3, value: "THB" }; - IfcCurrencyEnum.TRL = { type: 3, value: "TRL" }; - IfcCurrencyEnum.TTD = { type: 3, value: "TTD" }; - IfcCurrencyEnum.TWD = { type: 3, value: "TWD" }; - IfcCurrencyEnum.USD = { type: 3, value: "USD" }; - IfcCurrencyEnum.VEB = { type: 3, value: "VEB" }; - IfcCurrencyEnum.VND = { type: 3, value: "VND" }; - IfcCurrencyEnum.XEU = { type: 3, value: "XEU" }; - IfcCurrencyEnum.ZAR = { type: 3, value: "ZAR" }; - IfcCurrencyEnum.ZWD = { type: 3, value: "ZWD" }; - IfcCurrencyEnum.NOK = { type: 3, value: "NOK" }; - IFC2X32.IfcCurrencyEnum = IfcCurrencyEnum; - class IfcCurtainWallTypeEnum { - } - IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; - class IfcDamperTypeEnum { - } - IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; - IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; - IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; - IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; - IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; - IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; - IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; - IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; - IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; - IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; - IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; - IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDamperTypeEnum = IfcDamperTypeEnum; - class IfcDataOriginEnum { - } - IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; - IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDataOriginEnum = IfcDataOriginEnum; - class IfcDerivedUnitEnum { - } - IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; - IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; - IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; - IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; - IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; - IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; - IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; - IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; - IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; - IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; - IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; - IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; - IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; - IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; - IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; - IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; - IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; - IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; - IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; - IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; - IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; - IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; - IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; - IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; - IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; - IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; - IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; - IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; - IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; - class IfcDimensionExtentUsage { - } - IfcDimensionExtentUsage.ORIGIN = { type: 3, value: "ORIGIN" }; - IfcDimensionExtentUsage.TARGET = { type: 3, value: "TARGET" }; - IFC2X32.IfcDimensionExtentUsage = IfcDimensionExtentUsage; - class IfcDirectionSenseEnum { - } - IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IFC2X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; - class IfcDistributionChamberElementTypeEnum { - } - IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; - IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; - IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; - IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; - IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; - IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; - class IfcDocumentConfidentialityEnum { - } - IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; - IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; - IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; - IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; - IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; - class IfcDocumentStatusEnum { - } - IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; - IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; - IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; - IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; - IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; - class IfcDoorPanelOperationEnum { - } - IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; - IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; - IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; - IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; - IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; - class IfcDoorPanelPositionEnum { - } - IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; - class IfcDoorStyleConstructionEnum { - } - IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; - IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; - class IfcDoorStyleOperationEnum { - } - IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; - class IfcDuctFittingTypeEnum { - } - IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; - class IfcDuctSegmentTypeEnum { - } - IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; - class IfcDuctSilencerTypeEnum { - } - IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; - IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; - IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; - class IfcElectricApplianceTypeEnum { - } - IfcElectricApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; - IfcElectricApplianceTypeEnum.DIRECTWATERHEATER = { type: 3, value: "DIRECTWATERHEATER" }; - IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; - IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; - IfcElectricApplianceTypeEnum.ELECTRICHEATER = { type: 3, value: "ELECTRICHEATER" }; - IfcElectricApplianceTypeEnum.FACSIMILE = { type: 3, value: "FACSIMILE" }; - IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; - IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; - IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; - IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; - IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER = { type: 3, value: "INDIRECTWATERHEATER" }; - IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; - IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; - IfcElectricApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; - IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; - IfcElectricApplianceTypeEnum.RADIANTHEATER = { type: 3, value: "RADIANTHEATER" }; - IfcElectricApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; - IfcElectricApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; - IfcElectricApplianceTypeEnum.TV = { type: 3, value: "TV" }; - IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; - IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; - IfcElectricApplianceTypeEnum.WATERHEATER = { type: 3, value: "WATERHEATER" }; - IfcElectricApplianceTypeEnum.WATERCOOLER = { type: 3, value: "WATERCOOLER" }; - IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; - class IfcElectricCurrentEnum { - } - IfcElectricCurrentEnum.ALTERNATING = { type: 3, value: "ALTERNATING" }; - IfcElectricCurrentEnum.DIRECT = { type: 3, value: "DIRECT" }; - IfcElectricCurrentEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricCurrentEnum = IfcElectricCurrentEnum; - class IfcElectricDistributionPointFunctionEnum { - } - IfcElectricDistributionPointFunctionEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; - IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcElectricDistributionPointFunctionEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; - IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL = { type: 3, value: "GASDETECTORPANEL" }; - IfcElectricDistributionPointFunctionEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; - IfcElectricDistributionPointFunctionEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; - IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcElectricDistributionPointFunctionEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcElectricDistributionPointFunctionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricDistributionPointFunctionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricDistributionPointFunctionEnum = IfcElectricDistributionPointFunctionEnum; - class IfcElectricFlowStorageDeviceTypeEnum { - } - IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; - IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; - class IfcElectricGeneratorTypeEnum { - } - IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; - class IfcElectricHeaterTypeEnum { - } - IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER = { type: 3, value: "ELECTRICPOINTHEATER" }; - IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER = { type: 3, value: "ELECTRICCABLEHEATER" }; - IfcElectricHeaterTypeEnum.ELECTRICMATHEATER = { type: 3, value: "ELECTRICMATHEATER" }; - IfcElectricHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricHeaterTypeEnum = IfcElectricHeaterTypeEnum; - class IfcElectricMotorTypeEnum { - } - IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; - IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; - IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; - IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; - IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; - IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; - class IfcElectricTimeControlTypeEnum { - } - IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; - IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; - IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; - class IfcElementAssemblyTypeEnum { - } - IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; - IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; - IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; - IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; - IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; - IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; - IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; - class IfcElementCompositionEnum { - } - IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IFC2X32.IfcElementCompositionEnum = IfcElementCompositionEnum; - class IfcEnergySequenceEnum { - } - IfcEnergySequenceEnum.PRIMARY = { type: 3, value: "PRIMARY" }; - IfcEnergySequenceEnum.SECONDARY = { type: 3, value: "SECONDARY" }; - IfcEnergySequenceEnum.TERTIARY = { type: 3, value: "TERTIARY" }; - IfcEnergySequenceEnum.AUXILIARY = { type: 3, value: "AUXILIARY" }; - IfcEnergySequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEnergySequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEnergySequenceEnum = IfcEnergySequenceEnum; - class IfcEnvironmentalImpactCategoryEnum { - } - IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE = { type: 3, value: "COMBINEDVALUE" }; - IfcEnvironmentalImpactCategoryEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcEnvironmentalImpactCategoryEnum.EXTRACTION = { type: 3, value: "EXTRACTION" }; - IfcEnvironmentalImpactCategoryEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; - IfcEnvironmentalImpactCategoryEnum.MANUFACTURE = { type: 3, value: "MANUFACTURE" }; - IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION = { type: 3, value: "TRANSPORTATION" }; - IfcEnvironmentalImpactCategoryEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEnvironmentalImpactCategoryEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEnvironmentalImpactCategoryEnum = IfcEnvironmentalImpactCategoryEnum; - class IfcEvaporativeCoolerTypeEnum { - } - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; - IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; - class IfcEvaporatorTypeEnum { - } - IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; - IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; - IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; - class IfcFanTypeEnum { - } - IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; - IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; - IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; - IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; - IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; - IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFanTypeEnum = IfcFanTypeEnum; - class IfcFilterTypeEnum { - } - IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; - IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; - IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; - IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; - IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; - IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFilterTypeEnum = IfcFilterTypeEnum; - class IfcFireSuppressionTerminalTypeEnum { - } - IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; - IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; - IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; - IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; - class IfcFlowDirectionEnum { - } - IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; - IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; - IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; - IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; - class IfcFlowInstrumentTypeEnum { - } - IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; - IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; - IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; - IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; - IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; - IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; - IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; - class IfcFlowMeterTypeEnum { - } - IfcFlowMeterTypeEnum.ELECTRICMETER = { type: 3, value: "ELECTRICMETER" }; - IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; - IfcFlowMeterTypeEnum.FLOWMETER = { type: 3, value: "FLOWMETER" }; - IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; - IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; - IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; - IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; - class IfcFootingTypeEnum { - } - IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; - IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; - IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; - IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; - IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcFootingTypeEnum = IfcFootingTypeEnum; - class IfcGasTerminalTypeEnum { - } - IfcGasTerminalTypeEnum.GASAPPLIANCE = { type: 3, value: "GASAPPLIANCE" }; - IfcGasTerminalTypeEnum.GASBOOSTER = { type: 3, value: "GASBOOSTER" }; - IfcGasTerminalTypeEnum.GASBURNER = { type: 3, value: "GASBURNER" }; - IfcGasTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGasTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcGasTerminalTypeEnum = IfcGasTerminalTypeEnum; - class IfcGeometricProjectionEnum { - } - IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; - IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; - IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; - IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; - IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; - IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; - IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; - IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; - class IfcGlobalOrLocalEnum { - } - IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; - IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; - IFC2X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; - class IfcHeatExchangerTypeEnum { - } - IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; - IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; - class IfcHumidifierTypeEnum { - } - IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; - IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; - IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; - IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; - IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; - IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; - IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; - IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; - IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; - IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; - IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; - IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; - IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; - IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; - class IfcInternalOrExternalEnum { - } - IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; - class IfcInventoryTypeEnum { - } - IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; - IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; - IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; - IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; - class IfcJunctionBoxTypeEnum { - } - IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; - class IfcLampTypeEnum { - } - IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLampTypeEnum = IfcLampTypeEnum; - class IfcLayerSetDirectionEnum { - } - IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; - IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; - IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; - IFC2X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; - class IfcLightDistributionCurveEnum { - } - IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; - IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; - IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; - IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; - class IfcLightEmissionSourceEnum { - } - IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; - IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; - class IfcLightFixtureTypeEnum { - } - IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; - IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; - IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; - class IfcLoadGroupTypeEnum { - } - IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; - IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP = { type: 3, value: "LOAD_COMBINATION_GROUP" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; - IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; - class IfcLogicalOperatorEnum { - } - IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; - IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; - IFC2X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; - class IfcMemberTypeEnum { - } - IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; - IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; - IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; - IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; - IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; - IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; - IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; - IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; - IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; - IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; - IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcMemberTypeEnum = IfcMemberTypeEnum; - class IfcMotorConnectionTypeEnum { - } - IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; - IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; - IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; - IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; - class IfcNullStyle { - } - IfcNullStyle.NULL = { type: 3, value: "NULL" }; - IFC2X32.IfcNullStyle = IfcNullStyle; - class IfcObjectTypeEnum { - } - IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; - IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; - IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; - IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; - IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; - IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; - IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcObjectTypeEnum = IfcObjectTypeEnum; - class IfcObjectiveEnum { - } - IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; - IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; - IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; - IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; - IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; - IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; - IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcObjectiveEnum = IfcObjectiveEnum; - class IfcOccupantTypeEnum { - } - IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; - IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; - IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; - IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; - IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; - IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; - IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; - IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; - class IfcOutletTypeEnum { - } - IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; - IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; - IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; - IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcOutletTypeEnum = IfcOutletTypeEnum; - class IfcPermeableCoveringOperationEnum { - } - IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; - IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; - IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; - IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; - class IfcPhysicalOrVirtualEnum { - } - IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; - IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; - class IfcPileConstructionEnum { - } - IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; - IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; - IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; - IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; - IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPileConstructionEnum = IfcPileConstructionEnum; - class IfcPileTypeEnum { - } - IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; - IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; - IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPileTypeEnum = IfcPileTypeEnum; - class IfcPipeFittingTypeEnum { - } - IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; - class IfcPipeSegmentTypeEnum { - } - IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; - IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; - IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; - class IfcPlateTypeEnum { - } - IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; - IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; - IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPlateTypeEnum = IfcPlateTypeEnum; - class IfcProcedureTypeEnum { - } - IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; - IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; - IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; - IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; - IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; - class IfcProfileTypeEnum { - } - IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; - IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; - IFC2X32.IfcProfileTypeEnum = IfcProfileTypeEnum; - class IfcProjectOrderRecordTypeEnum { - } - IfcProjectOrderRecordTypeEnum.CHANGE = { type: 3, value: "CHANGE" }; - IfcProjectOrderRecordTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; - IfcProjectOrderRecordTypeEnum.MOVE = { type: 3, value: "MOVE" }; - IfcProjectOrderRecordTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; - IfcProjectOrderRecordTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcProjectOrderRecordTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderRecordTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProjectOrderRecordTypeEnum = IfcProjectOrderRecordTypeEnum; - class IfcProjectOrderTypeEnum { - } - IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; - IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; - IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; - IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; - IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; - IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; - class IfcProjectedOrTrueLengthEnum { - } - IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; - IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; - IFC2X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; - class IfcPropertySourceEnum { - } - IfcPropertySourceEnum.DESIGN = { type: 3, value: "DESIGN" }; - IfcPropertySourceEnum.DESIGNMAXIMUM = { type: 3, value: "DESIGNMAXIMUM" }; - IfcPropertySourceEnum.DESIGNMINIMUM = { type: 3, value: "DESIGNMINIMUM" }; - IfcPropertySourceEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcPropertySourceEnum.ASBUILT = { type: 3, value: "ASBUILT" }; - IfcPropertySourceEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcPropertySourceEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcPropertySourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPropertySourceEnum.NOTKNOWN = { type: 3, value: "NOTKNOWN" }; - IFC2X32.IfcPropertySourceEnum = IfcPropertySourceEnum; - class IfcProtectiveDeviceTypeEnum { - } - IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; - IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE = { type: 3, value: "EARTHFAILUREDEVICE" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; - IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; - IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; - class IfcPumpTypeEnum { - } - IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; - IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; - IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; - IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; - IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; - IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcPumpTypeEnum = IfcPumpTypeEnum; - class IfcRailingTypeEnum { - } - IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; - IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; - IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRailingTypeEnum = IfcRailingTypeEnum; - class IfcRampFlightTypeEnum { - } - IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; - class IfcRampTypeEnum { - } - IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; - IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; - IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRampTypeEnum = IfcRampTypeEnum; - class IfcReflectanceMethodEnum { - } - IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; - IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; - IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; - IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; - IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; - IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; - IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; - IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; - class IfcReinforcingBarRoleEnum { - } - IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; - class IfcReinforcingBarSurfaceEnum { - } - IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; - IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; - IFC2X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; - class IfcResourceConsumptionEnum { - } - IfcResourceConsumptionEnum.CONSUMED = { type: 3, value: "CONSUMED" }; - IfcResourceConsumptionEnum.PARTIALLYCONSUMED = { type: 3, value: "PARTIALLYCONSUMED" }; - IfcResourceConsumptionEnum.NOTCONSUMED = { type: 3, value: "NOTCONSUMED" }; - IfcResourceConsumptionEnum.OCCUPIED = { type: 3, value: "OCCUPIED" }; - IfcResourceConsumptionEnum.PARTIALLYOCCUPIED = { type: 3, value: "PARTIALLYOCCUPIED" }; - IfcResourceConsumptionEnum.NOTOCCUPIED = { type: 3, value: "NOTOCCUPIED" }; - IfcResourceConsumptionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcResourceConsumptionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcResourceConsumptionEnum = IfcResourceConsumptionEnum; - class IfcRibPlateDirectionEnum { - } - IfcRibPlateDirectionEnum.DIRECTION_X = { type: 3, value: "DIRECTION_X" }; - IfcRibPlateDirectionEnum.DIRECTION_Y = { type: 3, value: "DIRECTION_Y" }; - IFC2X32.IfcRibPlateDirectionEnum = IfcRibPlateDirectionEnum; - class IfcRoleEnum { - } - IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; - IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; - IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; - IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; - IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; - IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; - IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; - IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; - IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; - IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; - IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; - IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; - IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; - IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; - IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; - IfcRoleEnum.COMISSIONINGENGINEER = { type: 3, value: "COMISSIONINGENGINEER" }; - IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; - IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; - IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; - IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; - IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; - IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; - IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcRoleEnum = IfcRoleEnum; - class IfcRoofTypeEnum { - } - IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; - IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; - IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; - IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; - IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; - IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; - IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; - IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; - IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; - IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; - IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; - IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; - IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcRoofTypeEnum = IfcRoofTypeEnum; - class IfcSIPrefix { - } - IfcSIPrefix.EXA = { type: 3, value: "EXA" }; - IfcSIPrefix.PETA = { type: 3, value: "PETA" }; - IfcSIPrefix.TERA = { type: 3, value: "TERA" }; - IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; - IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; - IfcSIPrefix.KILO = { type: 3, value: "KILO" }; - IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; - IfcSIPrefix.DECA = { type: 3, value: "DECA" }; - IfcSIPrefix.DECI = { type: 3, value: "DECI" }; - IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; - IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; - IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; - IfcSIPrefix.NANO = { type: 3, value: "NANO" }; - IfcSIPrefix.PICO = { type: 3, value: "PICO" }; - IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; - IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; - IFC2X32.IfcSIPrefix = IfcSIPrefix; - class IfcSIUnitName { - } - IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; - IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; - IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; - IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; - IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; - IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; - IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; - IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; - IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; - IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; - IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; - IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; - IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; - IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; - IfcSIUnitName.LUX = { type: 3, value: "LUX" }; - IfcSIUnitName.METRE = { type: 3, value: "METRE" }; - IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; - IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; - IfcSIUnitName.OHM = { type: 3, value: "OHM" }; - IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; - IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; - IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; - IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; - IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; - IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; - IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; - IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; - IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; - IfcSIUnitName.WATT = { type: 3, value: "WATT" }; - IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; - IFC2X32.IfcSIUnitName = IfcSIUnitName; - class IfcSanitaryTerminalTypeEnum { - } - IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; - IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; - IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; - IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; - IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; - IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; - IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; - IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; - IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; - IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; - IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; - class IfcSectionTypeEnum { - } - IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; - IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; - IFC2X32.IfcSectionTypeEnum = IfcSectionTypeEnum; - class IfcSensorTypeEnum { - } - IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; - IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; - IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; - IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; - IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; - IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; - IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; - IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; - IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; - IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; - IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; - IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; - IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; - IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSensorTypeEnum = IfcSensorTypeEnum; - class IfcSequenceEnum { - } - IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; - IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; - IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; - IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; - IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSequenceEnum = IfcSequenceEnum; - class IfcServiceLifeFactorTypeEnum { - } - IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS = { type: 3, value: "A_QUALITYOFCOMPONENTS" }; - IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL = { type: 3, value: "B_DESIGNLEVEL" }; - IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL = { type: 3, value: "C_WORKEXECUTIONLEVEL" }; - IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT = { type: 3, value: "D_INDOORENVIRONMENT" }; - IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT = { type: 3, value: "E_OUTDOORENVIRONMENT" }; - IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS = { type: 3, value: "F_INUSECONDITIONS" }; - IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL = { type: 3, value: "G_MAINTENANCELEVEL" }; - IfcServiceLifeFactorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcServiceLifeFactorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcServiceLifeFactorTypeEnum = IfcServiceLifeFactorTypeEnum; - class IfcServiceLifeTypeEnum { - } - IfcServiceLifeTypeEnum.ACTUALSERVICELIFE = { type: 3, value: "ACTUALSERVICELIFE" }; - IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE = { type: 3, value: "EXPECTEDSERVICELIFE" }; - IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE = { type: 3, value: "OPTIMISTICREFERENCESERVICELIFE" }; - IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE = { type: 3, value: "PESSIMISTICREFERENCESERVICELIFE" }; - IfcServiceLifeTypeEnum.REFERENCESERVICELIFE = { type: 3, value: "REFERENCESERVICELIFE" }; - IFC2X32.IfcServiceLifeTypeEnum = IfcServiceLifeTypeEnum; - class IfcSlabTypeEnum { - } - IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; - IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; - IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; - IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; - IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSlabTypeEnum = IfcSlabTypeEnum; - class IfcSoundScaleEnum { - } - IfcSoundScaleEnum.DBA = { type: 3, value: "DBA" }; - IfcSoundScaleEnum.DBB = { type: 3, value: "DBB" }; - IfcSoundScaleEnum.DBC = { type: 3, value: "DBC" }; - IfcSoundScaleEnum.NC = { type: 3, value: "NC" }; - IfcSoundScaleEnum.NR = { type: 3, value: "NR" }; - IfcSoundScaleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSoundScaleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSoundScaleEnum = IfcSoundScaleEnum; - class IfcSpaceHeaterTypeEnum { - } - IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR = { type: 3, value: "SECTIONALRADIATOR" }; - IfcSpaceHeaterTypeEnum.PANELRADIATOR = { type: 3, value: "PANELRADIATOR" }; - IfcSpaceHeaterTypeEnum.TUBULARRADIATOR = { type: 3, value: "TUBULARRADIATOR" }; - IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; - IfcSpaceHeaterTypeEnum.BASEBOARDHEATER = { type: 3, value: "BASEBOARDHEATER" }; - IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT = { type: 3, value: "FINNEDTUBEUNIT" }; - IfcSpaceHeaterTypeEnum.UNITHEATER = { type: 3, value: "UNITHEATER" }; - IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; - class IfcSpaceTypeEnum { - } - IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; - class IfcStackTerminalTypeEnum { - } - IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; - IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; - IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; - IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; - class IfcStairFlightTypeEnum { - } - IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; - IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; - IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; - class IfcStairTypeEnum { - } - IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; - IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; - IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; - IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; - IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; - IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStairTypeEnum = IfcStairTypeEnum; - class IfcStateEnum { - } - IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; - IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; - IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; - IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; - IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; - IFC2X32.IfcStateEnum = IfcStateEnum; - class IfcStructuralCurveTypeEnum { - } - IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; - IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; - IfcStructuralCurveTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcStructuralCurveTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; - IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; - IfcStructuralCurveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStructuralCurveTypeEnum = IfcStructuralCurveTypeEnum; - class IfcStructuralSurfaceTypeEnum { - } - IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; - IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; - IfcStructuralSurfaceTypeEnum.SHELL = { type: 3, value: "SHELL" }; - IfcStructuralSurfaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcStructuralSurfaceTypeEnum = IfcStructuralSurfaceTypeEnum; - class IfcSurfaceSide { - } - IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; - IFC2X32.IfcSurfaceSide = IfcSurfaceSide; - class IfcSurfaceTextureEnum { - } - IfcSurfaceTextureEnum.BUMP = { type: 3, value: "BUMP" }; - IfcSurfaceTextureEnum.OPACITY = { type: 3, value: "OPACITY" }; - IfcSurfaceTextureEnum.REFLECTION = { type: 3, value: "REFLECTION" }; - IfcSurfaceTextureEnum.SELFILLUMINATION = { type: 3, value: "SELFILLUMINATION" }; - IfcSurfaceTextureEnum.SHININESS = { type: 3, value: "SHININESS" }; - IfcSurfaceTextureEnum.SPECULAR = { type: 3, value: "SPECULAR" }; - IfcSurfaceTextureEnum.TEXTURE = { type: 3, value: "TEXTURE" }; - IfcSurfaceTextureEnum.TRANSPARENCYMAP = { type: 3, value: "TRANSPARENCYMAP" }; - IfcSurfaceTextureEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSurfaceTextureEnum = IfcSurfaceTextureEnum; - class IfcSwitchingDeviceTypeEnum { - } - IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; - IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; - IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; - IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; - IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; - IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; - class IfcTankTypeEnum { - } - IfcTankTypeEnum.PREFORMED = { type: 3, value: "PREFORMED" }; - IfcTankTypeEnum.SECTIONAL = { type: 3, value: "SECTIONAL" }; - IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; - IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; - IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTankTypeEnum = IfcTankTypeEnum; - class IfcTendonTypeEnum { - } - IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; - IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; - IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; - IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; - IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTendonTypeEnum = IfcTendonTypeEnum; - class IfcTextPath { - } - IfcTextPath.LEFT = { type: 3, value: "LEFT" }; - IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; - IfcTextPath.UP = { type: 3, value: "UP" }; - IfcTextPath.DOWN = { type: 3, value: "DOWN" }; - IFC2X32.IfcTextPath = IfcTextPath; - class IfcThermalLoadSourceEnum { - } - IfcThermalLoadSourceEnum.PEOPLE = { type: 3, value: "PEOPLE" }; - IfcThermalLoadSourceEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcThermalLoadSourceEnum.EQUIPMENT = { type: 3, value: "EQUIPMENT" }; - IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR = { type: 3, value: "VENTILATIONINDOORAIR" }; - IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR = { type: 3, value: "VENTILATIONOUTSIDEAIR" }; - IfcThermalLoadSourceEnum.RECIRCULATEDAIR = { type: 3, value: "RECIRCULATEDAIR" }; - IfcThermalLoadSourceEnum.EXHAUSTAIR = { type: 3, value: "EXHAUSTAIR" }; - IfcThermalLoadSourceEnum.AIREXCHANGERATE = { type: 3, value: "AIREXCHANGERATE" }; - IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE = { type: 3, value: "DRYBULBTEMPERATURE" }; - IfcThermalLoadSourceEnum.RELATIVEHUMIDITY = { type: 3, value: "RELATIVEHUMIDITY" }; - IfcThermalLoadSourceEnum.INFILTRATION = { type: 3, value: "INFILTRATION" }; - IfcThermalLoadSourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcThermalLoadSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcThermalLoadSourceEnum = IfcThermalLoadSourceEnum; - class IfcThermalLoadTypeEnum { - } - IfcThermalLoadTypeEnum.SENSIBLE = { type: 3, value: "SENSIBLE" }; - IfcThermalLoadTypeEnum.LATENT = { type: 3, value: "LATENT" }; - IfcThermalLoadTypeEnum.RADIANT = { type: 3, value: "RADIANT" }; - IfcThermalLoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcThermalLoadTypeEnum = IfcThermalLoadTypeEnum; - class IfcTimeSeriesDataTypeEnum { - } - IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; - class IfcTimeSeriesScheduleTypeEnum { - } - IfcTimeSeriesScheduleTypeEnum.ANNUAL = { type: 3, value: "ANNUAL" }; - IfcTimeSeriesScheduleTypeEnum.MONTHLY = { type: 3, value: "MONTHLY" }; - IfcTimeSeriesScheduleTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; - IfcTimeSeriesScheduleTypeEnum.DAILY = { type: 3, value: "DAILY" }; - IfcTimeSeriesScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTimeSeriesScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTimeSeriesScheduleTypeEnum = IfcTimeSeriesScheduleTypeEnum; - class IfcTransformerTypeEnum { - } - IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; - IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; - IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; - class IfcTransitionCode { - } - IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; - IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; - IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; - IFC2X32.IfcTransitionCode = IfcTransitionCode; - class IfcTransportElementTypeEnum { - } - IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; - IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; - IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; - IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; - class IfcTrimmingPreference { - } - IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; - IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC2X32.IfcTrimmingPreference = IfcTrimmingPreference; - class IfcTubeBundleTypeEnum { - } - IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; - IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; - class IfcUnitEnum { - } - IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; - IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; - IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; - IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; - IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; - IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; - IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; - IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; - IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; - IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; - IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; - IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; - IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; - IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; - IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; - IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; - IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; - IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; - IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; - IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; - IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; - IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; - IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; - IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; - IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; - IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; - IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; - IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC2X32.IfcUnitEnum = IfcUnitEnum; - class IfcUnitaryEquipmentTypeEnum { - } - IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; - IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; - IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; - IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; - IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; - class IfcValveTypeEnum { - } - IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; - IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; - IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; - IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; - IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; - IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; - IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; - IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; - IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; - IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; - IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; - IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; - IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; - IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; - IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; - IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; - IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; - IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; - IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; - IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; - IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcValveTypeEnum = IfcValveTypeEnum; - class IfcVibrationIsolatorTypeEnum { - } - IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; - IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; - IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; - class IfcWallTypeEnum { - } - IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; - IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; - IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; - IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWallTypeEnum = IfcWallTypeEnum; - class IfcWasteTerminalTypeEnum { - } - IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; - IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; - IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; - IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; - IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR = { type: 3, value: "GREASEINTERCEPTOR" }; - IfcWasteTerminalTypeEnum.OILINTERCEPTOR = { type: 3, value: "OILINTERCEPTOR" }; - IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR = { type: 3, value: "PETROLINTERCEPTOR" }; - IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; - IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; - IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; - IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; - class IfcWindowPanelOperationEnum { - } - IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; - IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; - IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; - IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; - IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; - IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; - IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; - IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; - IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; - IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; - IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; - IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; - class IfcWindowPanelPositionEnum { - } - IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; - IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; - IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; - class IfcWindowStyleConstructionEnum { - } - IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; - IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; - class IfcWindowStyleOperationEnum { - } - IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; - class IfcWorkControlTypeEnum { - } - IfcWorkControlTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkControlTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkControlTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC2X32.IfcWorkControlTypeEnum = IfcWorkControlTypeEnum; - class IfcActorRole extends IfcLineObject { - constructor(expressID, Role, UserDefinedRole, Description) { - super(expressID); - this.Role = Role; - this.UserDefinedRole = UserDefinedRole; - this.Description = Description; - this.type = 3630933823; - } - } - IFC2X32.IfcActorRole = IfcActorRole; - class IfcAddress extends IfcLineObject { - constructor(expressID, Purpose, Description, UserDefinedPurpose) { - super(expressID); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.type = 618182010; - } - } - IFC2X32.IfcAddress = IfcAddress; - class IfcApplication extends IfcLineObject { - constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { - super(expressID); - this.ApplicationDeveloper = ApplicationDeveloper; - this.Version = Version; - this.ApplicationFullName = ApplicationFullName; - this.ApplicationIdentifier = ApplicationIdentifier; - this.type = 639542469; - } - } - IFC2X32.IfcApplication = IfcApplication; - class IfcAppliedValue extends IfcLineObject { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.type = 411424972; - } - } - IFC2X32.IfcAppliedValue = IfcAppliedValue; - class IfcAppliedValueRelationship extends IfcLineObject { - constructor(expressID, ComponentOfTotal, Components, ArithmeticOperator, Name, Description) { - super(expressID); - this.ComponentOfTotal = ComponentOfTotal; - this.Components = Components; - this.ArithmeticOperator = ArithmeticOperator; - this.Name = Name; - this.Description = Description; - this.type = 1110488051; - } - } - IFC2X32.IfcAppliedValueRelationship = IfcAppliedValueRelationship; - class IfcApproval extends IfcLineObject { - constructor(expressID, Description, ApprovalDateTime, ApprovalStatus, ApprovalLevel, ApprovalQualifier, Name, Identifier) { - super(expressID); - this.Description = Description; - this.ApprovalDateTime = ApprovalDateTime; - this.ApprovalStatus = ApprovalStatus; - this.ApprovalLevel = ApprovalLevel; - this.ApprovalQualifier = ApprovalQualifier; - this.Name = Name; - this.Identifier = Identifier; - this.type = 130549933; - } - } - IFC2X32.IfcApproval = IfcApproval; - class IfcApprovalActorRelationship extends IfcLineObject { - constructor(expressID, Actor, Approval, Role) { - super(expressID); - this.Actor = Actor; - this.Approval = Approval; - this.Role = Role; - this.type = 2080292479; - } - } - IFC2X32.IfcApprovalActorRelationship = IfcApprovalActorRelationship; - class IfcApprovalPropertyRelationship extends IfcLineObject { - constructor(expressID, ApprovedProperties, Approval) { - super(expressID); - this.ApprovedProperties = ApprovedProperties; - this.Approval = Approval; - this.type = 390851274; - } - } - IFC2X32.IfcApprovalPropertyRelationship = IfcApprovalPropertyRelationship; - class IfcApprovalRelationship extends IfcLineObject { - constructor(expressID, RelatedApproval, RelatingApproval, Description, Name) { - super(expressID); - this.RelatedApproval = RelatedApproval; - this.RelatingApproval = RelatingApproval; - this.Description = Description; - this.Name = Name; - this.type = 3869604511; - } - } - IFC2X32.IfcApprovalRelationship = IfcApprovalRelationship; - class IfcBoundaryCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 4037036970; - } - } - IFC2X32.IfcBoundaryCondition = IfcBoundaryCondition; - class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, LinearStiffnessByLengthX, LinearStiffnessByLengthY, LinearStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { - super(expressID, Name); - this.Name = Name; - this.LinearStiffnessByLengthX = LinearStiffnessByLengthX; - this.LinearStiffnessByLengthY = LinearStiffnessByLengthY; - this.LinearStiffnessByLengthZ = LinearStiffnessByLengthZ; - this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; - this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; - this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; - this.type = 1560379544; - } - } - IFC2X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; - class IfcBoundaryFaceCondition extends IfcBoundaryCondition { - constructor(expressID, Name, LinearStiffnessByAreaX, LinearStiffnessByAreaY, LinearStiffnessByAreaZ) { - super(expressID, Name); - this.Name = Name; - this.LinearStiffnessByAreaX = LinearStiffnessByAreaX; - this.LinearStiffnessByAreaY = LinearStiffnessByAreaY; - this.LinearStiffnessByAreaZ = LinearStiffnessByAreaZ; - this.type = 3367102660; - } - } - IFC2X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; - class IfcBoundaryNodeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { - super(expressID, Name); - this.Name = Name; - this.LinearStiffnessX = LinearStiffnessX; - this.LinearStiffnessY = LinearStiffnessY; - this.LinearStiffnessZ = LinearStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.type = 1387855156; - } - } - IFC2X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; - class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { - constructor(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { - super(expressID, Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); - this.Name = Name; - this.LinearStiffnessX = LinearStiffnessX; - this.LinearStiffnessY = LinearStiffnessY; - this.LinearStiffnessZ = LinearStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.WarpingStiffness = WarpingStiffness; - this.type = 2069777674; - } - } - IFC2X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; - class IfcCalendarDate extends IfcLineObject { - constructor(expressID, DayComponent, MonthComponent, YearComponent) { - super(expressID); - this.DayComponent = DayComponent; - this.MonthComponent = MonthComponent; - this.YearComponent = YearComponent; - this.type = 622194075; - } - } - IFC2X32.IfcCalendarDate = IfcCalendarDate; - class IfcClassification extends IfcLineObject { - constructor(expressID, Source, Edition, EditionDate, Name) { - super(expressID); - this.Source = Source; - this.Edition = Edition; - this.EditionDate = EditionDate; - this.Name = Name; - this.type = 747523909; - } - } - IFC2X32.IfcClassification = IfcClassification; - class IfcClassificationItem extends IfcLineObject { - constructor(expressID, Notation, ItemOf, Title) { - super(expressID); - this.Notation = Notation; - this.ItemOf = ItemOf; - this.Title = Title; - this.type = 1767535486; - } - } - IFC2X32.IfcClassificationItem = IfcClassificationItem; - class IfcClassificationItemRelationship extends IfcLineObject { - constructor(expressID, RelatingItem, RelatedItems) { - super(expressID); - this.RelatingItem = RelatingItem; - this.RelatedItems = RelatedItems; - this.type = 1098599126; - } - } - IFC2X32.IfcClassificationItemRelationship = IfcClassificationItemRelationship; - class IfcClassificationNotation extends IfcLineObject { - constructor(expressID, NotationFacets) { - super(expressID); - this.NotationFacets = NotationFacets; - this.type = 938368621; - } - } - IFC2X32.IfcClassificationNotation = IfcClassificationNotation; - class IfcClassificationNotationFacet extends IfcLineObject { - constructor(expressID, NotationValue) { - super(expressID); - this.NotationValue = NotationValue; - this.type = 3639012971; - } - } - IFC2X32.IfcClassificationNotationFacet = IfcClassificationNotationFacet; - class IfcColourSpecification extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3264961684; - } - } - IFC2X32.IfcColourSpecification = IfcColourSpecification; - class IfcConnectionGeometry extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 2859738748; - } - } - IFC2X32.IfcConnectionGeometry = IfcConnectionGeometry; - class IfcConnectionPointGeometry extends IfcConnectionGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { - super(expressID); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.type = 2614616156; - } - } - IFC2X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; - class IfcConnectionPortGeometry extends IfcConnectionGeometry { - constructor(expressID, LocationAtRelatingElement, LocationAtRelatedElement, ProfileOfPort) { - super(expressID); - this.LocationAtRelatingElement = LocationAtRelatingElement; - this.LocationAtRelatedElement = LocationAtRelatedElement; - this.ProfileOfPort = ProfileOfPort; - this.type = 4257277454; - } - } - IFC2X32.IfcConnectionPortGeometry = IfcConnectionPortGeometry; - class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { - constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { - super(expressID); - this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; - this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; - this.type = 2732653382; - } - } - IFC2X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; - class IfcConstraint extends IfcLineObject { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.type = 1959218052; - } - } - IFC2X32.IfcConstraint = IfcConstraint; - class IfcConstraintAggregationRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints, LogicalAggregator) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedConstraints = RelatedConstraints; - this.LogicalAggregator = LogicalAggregator; - this.type = 1658513725; - } - } - IFC2X32.IfcConstraintAggregationRelationship = IfcConstraintAggregationRelationship; - class IfcConstraintClassificationRelationship extends IfcLineObject { - constructor(expressID, ClassifiedConstraint, RelatedClassifications) { - super(expressID); - this.ClassifiedConstraint = ClassifiedConstraint; - this.RelatedClassifications = RelatedClassifications; - this.type = 613356794; - } - } - IFC2X32.IfcConstraintClassificationRelationship = IfcConstraintClassificationRelationship; - class IfcConstraintRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingConstraint, RelatedConstraints) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedConstraints = RelatedConstraints; - this.type = 347226245; - } - } - IFC2X32.IfcConstraintRelationship = IfcConstraintRelationship; - class IfcCoordinatedUniversalTimeOffset extends IfcLineObject { - constructor(expressID, HourOffset, MinuteOffset, Sense) { - super(expressID); - this.HourOffset = HourOffset; - this.MinuteOffset = MinuteOffset; - this.Sense = Sense; - this.type = 1065062679; - } - } - IFC2X32.IfcCoordinatedUniversalTimeOffset = IfcCoordinatedUniversalTimeOffset; - class IfcCostValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, CostType, Condition) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.CostType = CostType; - this.Condition = Condition; - this.type = 602808272; - } - } - IFC2X32.IfcCostValue = IfcCostValue; - class IfcCurrencyRelationship extends IfcLineObject { - constructor(expressID, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { - super(expressID); - this.RelatingMonetaryUnit = RelatingMonetaryUnit; - this.RelatedMonetaryUnit = RelatedMonetaryUnit; - this.ExchangeRate = ExchangeRate; - this.RateDateTime = RateDateTime; - this.RateSource = RateSource; - this.type = 539742890; - } - } - IFC2X32.IfcCurrencyRelationship = IfcCurrencyRelationship; - class IfcCurveStyleFont extends IfcLineObject { - constructor(expressID, Name, PatternList) { - super(expressID); - this.Name = Name; - this.PatternList = PatternList; - this.type = 1105321065; - } - } - IFC2X32.IfcCurveStyleFont = IfcCurveStyleFont; - class IfcCurveStyleFontAndScaling extends IfcLineObject { - constructor(expressID, Name, CurveFont, CurveFontScaling) { - super(expressID); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveFontScaling = CurveFontScaling; - this.type = 2367409068; - } - } - IFC2X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; - class IfcCurveStyleFontPattern extends IfcLineObject { - constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { - super(expressID); - this.VisibleSegmentLength = VisibleSegmentLength; - this.InvisibleSegmentLength = InvisibleSegmentLength; - this.type = 3510044353; - } - } - IFC2X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; - class IfcDateAndTime extends IfcLineObject { - constructor(expressID, DateComponent, TimeComponent) { - super(expressID); - this.DateComponent = DateComponent; - this.TimeComponent = TimeComponent; - this.type = 1072939445; - } - } - IFC2X32.IfcDateAndTime = IfcDateAndTime; - class IfcDerivedUnit extends IfcLineObject { - constructor(expressID, Elements, UnitType, UserDefinedType) { - super(expressID); - this.Elements = Elements; - this.UnitType = UnitType; - this.UserDefinedType = UserDefinedType; - this.type = 1765591967; - } - } - IFC2X32.IfcDerivedUnit = IfcDerivedUnit; - class IfcDerivedUnitElement extends IfcLineObject { - constructor(expressID, Unit, Exponent) { - super(expressID); - this.Unit = Unit; - this.Exponent = Exponent; - this.type = 1045800335; - } - } - IFC2X32.IfcDerivedUnitElement = IfcDerivedUnitElement; - class IfcDimensionalExponents extends IfcLineObject { - constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { - super(expressID); - this.LengthExponent = LengthExponent; - this.MassExponent = MassExponent; - this.TimeExponent = TimeExponent; - this.ElectricCurrentExponent = ElectricCurrentExponent; - this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; - this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; - this.LuminousIntensityExponent = LuminousIntensityExponent; - this.type = 2949456006; - } - } - IFC2X32.IfcDimensionalExponents = IfcDimensionalExponents; - class IfcDocumentElectronicFormat extends IfcLineObject { - constructor(expressID, FileExtension, MimeContentType, MimeSubtype) { - super(expressID); - this.FileExtension = FileExtension; - this.MimeContentType = MimeContentType; - this.MimeSubtype = MimeSubtype; - this.type = 1376555844; - } - } - IFC2X32.IfcDocumentElectronicFormat = IfcDocumentElectronicFormat; - class IfcDocumentInformation extends IfcLineObject { - constructor(expressID, DocumentId, Name, Description, DocumentReferences, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { - super(expressID); - this.DocumentId = DocumentId; - this.Name = Name; - this.Description = Description; - this.DocumentReferences = DocumentReferences; - this.Purpose = Purpose; - this.IntendedUse = IntendedUse; - this.Scope = Scope; - this.Revision = Revision; - this.DocumentOwner = DocumentOwner; - this.Editors = Editors; - this.CreationTime = CreationTime; - this.LastRevisionTime = LastRevisionTime; - this.ElectronicFormat = ElectronicFormat; - this.ValidFrom = ValidFrom; - this.ValidUntil = ValidUntil; - this.Confidentiality = Confidentiality; - this.Status = Status; - this.type = 1154170062; - } - } - IFC2X32.IfcDocumentInformation = IfcDocumentInformation; - class IfcDocumentInformationRelationship extends IfcLineObject { - constructor(expressID, RelatingDocument, RelatedDocuments, RelationshipType) { - super(expressID); - this.RelatingDocument = RelatingDocument; - this.RelatedDocuments = RelatedDocuments; - this.RelationshipType = RelationshipType; - this.type = 770865208; - } - } - IFC2X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; - class IfcDraughtingCalloutRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.RelatingDraughtingCallout = RelatingDraughtingCallout; - this.RelatedDraughtingCallout = RelatedDraughtingCallout; - this.type = 3796139169; - } - } - IFC2X32.IfcDraughtingCalloutRelationship = IfcDraughtingCalloutRelationship; - class IfcEnvironmentalImpactValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, ImpactType, Category, UserDefinedCategory) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.ImpactType = ImpactType; - this.Category = Category; - this.UserDefinedCategory = UserDefinedCategory; - this.type = 1648886627; - } - } - IFC2X32.IfcEnvironmentalImpactValue = IfcEnvironmentalImpactValue; - class IfcExternalReference extends IfcLineObject { - constructor(expressID, Location, ItemReference, Name) { - super(expressID); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3200245327; - } - } - IFC2X32.IfcExternalReference = IfcExternalReference; - class IfcExternallyDefinedHatchStyle extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 2242383968; - } - } - IFC2X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; - class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 1040185647; - } - } - IFC2X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; - class IfcExternallyDefinedSymbol extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3207319532; - } - } - IFC2X32.IfcExternallyDefinedSymbol = IfcExternallyDefinedSymbol; - class IfcExternallyDefinedTextFont extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3548104201; - } - } - IFC2X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; - class IfcGridAxis extends IfcLineObject { - constructor(expressID, AxisTag, AxisCurve, SameSense) { - super(expressID); - this.AxisTag = AxisTag; - this.AxisCurve = AxisCurve; - this.SameSense = SameSense; - this.type = 852622518; - } - } - IFC2X32.IfcGridAxis = IfcGridAxis; - class IfcIrregularTimeSeriesValue extends IfcLineObject { - constructor(expressID, TimeStamp, ListValues) { - super(expressID); - this.TimeStamp = TimeStamp; - this.ListValues = ListValues; - this.type = 3020489413; - } - } - IFC2X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; - class IfcLibraryInformation extends IfcLineObject { - constructor(expressID, Name, Version, Publisher, VersionDate, LibraryReference) { - super(expressID); - this.Name = Name; - this.Version = Version; - this.Publisher = Publisher; - this.VersionDate = VersionDate; - this.LibraryReference = LibraryReference; - this.type = 2655187982; - } - } - IFC2X32.IfcLibraryInformation = IfcLibraryInformation; - class IfcLibraryReference extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3452421091; - } - } - IFC2X32.IfcLibraryReference = IfcLibraryReference; - class IfcLightDistributionData extends IfcLineObject { - constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { - super(expressID); - this.MainPlaneAngle = MainPlaneAngle; - this.SecondaryPlaneAngle = SecondaryPlaneAngle; - this.LuminousIntensity = LuminousIntensity; - this.type = 4162380809; - } - } - IFC2X32.IfcLightDistributionData = IfcLightDistributionData; - class IfcLightIntensityDistribution extends IfcLineObject { - constructor(expressID, LightDistributionCurve, DistributionData) { - super(expressID); - this.LightDistributionCurve = LightDistributionCurve; - this.DistributionData = DistributionData; - this.type = 1566485204; - } - } - IFC2X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; - class IfcLocalTime extends IfcLineObject { - constructor(expressID, HourComponent, MinuteComponent, SecondComponent, Zone, DaylightSavingOffset) { - super(expressID); - this.HourComponent = HourComponent; - this.MinuteComponent = MinuteComponent; - this.SecondComponent = SecondComponent; - this.Zone = Zone; - this.DaylightSavingOffset = DaylightSavingOffset; - this.type = 30780891; - } - } - IFC2X32.IfcLocalTime = IfcLocalTime; - class IfcMaterial extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 1838606355; - } - } - IFC2X32.IfcMaterial = IfcMaterial; - class IfcMaterialClassificationRelationship extends IfcLineObject { - constructor(expressID, MaterialClassifications, ClassifiedMaterial) { - super(expressID); - this.MaterialClassifications = MaterialClassifications; - this.ClassifiedMaterial = ClassifiedMaterial; - this.type = 1847130766; - } - } - IFC2X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; - class IfcMaterialLayer extends IfcLineObject { - constructor(expressID, Material, LayerThickness, IsVentilated) { - super(expressID); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.type = 248100487; - } - } - IFC2X32.IfcMaterialLayer = IfcMaterialLayer; - class IfcMaterialLayerSet extends IfcLineObject { - constructor(expressID, MaterialLayers, LayerSetName) { - super(expressID); - this.MaterialLayers = MaterialLayers; - this.LayerSetName = LayerSetName; - this.type = 3303938423; - } - } - IFC2X32.IfcMaterialLayerSet = IfcMaterialLayerSet; - class IfcMaterialLayerSetUsage extends IfcLineObject { - constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine) { - super(expressID); - this.ForLayerSet = ForLayerSet; - this.LayerSetDirection = LayerSetDirection; - this.DirectionSense = DirectionSense; - this.OffsetFromReferenceLine = OffsetFromReferenceLine; - this.type = 1303795690; - } - } - IFC2X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; - class IfcMaterialList extends IfcLineObject { - constructor(expressID, Materials) { - super(expressID); - this.Materials = Materials; - this.type = 2199411900; - } - } - IFC2X32.IfcMaterialList = IfcMaterialList; - class IfcMaterialProperties extends IfcLineObject { - constructor(expressID, Material) { - super(expressID); - this.Material = Material; - this.type = 3265635763; - } - } - IFC2X32.IfcMaterialProperties = IfcMaterialProperties; - class IfcMeasureWithUnit extends IfcLineObject { - constructor(expressID, ValueComponent, UnitComponent) { - super(expressID); - this.ValueComponent = ValueComponent; - this.UnitComponent = UnitComponent; - this.type = 2597039031; - } - } - IFC2X32.IfcMeasureWithUnit = IfcMeasureWithUnit; - class IfcMechanicalMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient) { - super(expressID, Material); - this.Material = Material; - this.DynamicViscosity = DynamicViscosity; - this.YoungModulus = YoungModulus; - this.ShearModulus = ShearModulus; - this.PoissonRatio = PoissonRatio; - this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; - this.type = 4256014907; - } - } - IFC2X32.IfcMechanicalMaterialProperties = IfcMechanicalMaterialProperties; - class IfcMechanicalSteelMaterialProperties extends IfcMechanicalMaterialProperties { - constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, YieldStress, UltimateStress, UltimateStrain, HardeningModule, ProportionalStress, PlasticStrain, Relaxations) { - super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); - this.Material = Material; - this.DynamicViscosity = DynamicViscosity; - this.YoungModulus = YoungModulus; - this.ShearModulus = ShearModulus; - this.PoissonRatio = PoissonRatio; - this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; - this.YieldStress = YieldStress; - this.UltimateStress = UltimateStress; - this.UltimateStrain = UltimateStrain; - this.HardeningModule = HardeningModule; - this.ProportionalStress = ProportionalStress; - this.PlasticStrain = PlasticStrain; - this.Relaxations = Relaxations; - this.type = 677618848; - } - } - IFC2X32.IfcMechanicalSteelMaterialProperties = IfcMechanicalSteelMaterialProperties; - class IfcMetric extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.Benchmark = Benchmark; - this.ValueSource = ValueSource; - this.DataValue = DataValue; - this.type = 3368373690; - } - } - IFC2X32.IfcMetric = IfcMetric; - class IfcMonetaryUnit extends IfcLineObject { - constructor(expressID, Currency) { - super(expressID); - this.Currency = Currency; - this.type = 2706619895; - } - } - IFC2X32.IfcMonetaryUnit = IfcMonetaryUnit; - class IfcNamedUnit extends IfcLineObject { - constructor(expressID, Dimensions, UnitType) { - super(expressID); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.type = 1918398963; - } - } - IFC2X32.IfcNamedUnit = IfcNamedUnit; - class IfcObjectPlacement extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3701648758; - } - } - IFC2X32.IfcObjectPlacement = IfcObjectPlacement; - class IfcObjective extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, ResultValues, ObjectiveQualifier, UserDefinedQualifier) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.BenchmarkValues = BenchmarkValues; - this.ResultValues = ResultValues; - this.ObjectiveQualifier = ObjectiveQualifier; - this.UserDefinedQualifier = UserDefinedQualifier; - this.type = 2251480897; - } - } - IFC2X32.IfcObjective = IfcObjective; - class IfcOpticalMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, VisibleTransmittance, SolarTransmittance, ThermalIrTransmittance, ThermalIrEmissivityBack, ThermalIrEmissivityFront, VisibleReflectanceBack, VisibleReflectanceFront, SolarReflectanceFront, SolarReflectanceBack) { - super(expressID, Material); - this.Material = Material; - this.VisibleTransmittance = VisibleTransmittance; - this.SolarTransmittance = SolarTransmittance; - this.ThermalIrTransmittance = ThermalIrTransmittance; - this.ThermalIrEmissivityBack = ThermalIrEmissivityBack; - this.ThermalIrEmissivityFront = ThermalIrEmissivityFront; - this.VisibleReflectanceBack = VisibleReflectanceBack; - this.VisibleReflectanceFront = VisibleReflectanceFront; - this.SolarReflectanceFront = SolarReflectanceFront; - this.SolarReflectanceBack = SolarReflectanceBack; - this.type = 1227763645; - } - } - IFC2X32.IfcOpticalMaterialProperties = IfcOpticalMaterialProperties; - class IfcOrganization extends IfcLineObject { - constructor(expressID, Id, Name, Description, Roles, Addresses) { - super(expressID); - this.Id = Id; - this.Name = Name; - this.Description = Description; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 4251960020; - } - } - IFC2X32.IfcOrganization = IfcOrganization; - class IfcOrganizationRelationship extends IfcLineObject { - constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.RelatingOrganization = RelatingOrganization; - this.RelatedOrganizations = RelatedOrganizations; - this.type = 1411181986; - } - } - IFC2X32.IfcOrganizationRelationship = IfcOrganizationRelationship; - class IfcOwnerHistory extends IfcLineObject { - constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { - super(expressID); - this.OwningUser = OwningUser; - this.OwningApplication = OwningApplication; - this.State = State; - this.ChangeAction = ChangeAction; - this.LastModifiedDate = LastModifiedDate; - this.LastModifyingUser = LastModifyingUser; - this.LastModifyingApplication = LastModifyingApplication; - this.CreationDate = CreationDate; - this.type = 1207048766; - } - } - IFC2X32.IfcOwnerHistory = IfcOwnerHistory; - class IfcPerson extends IfcLineObject { - constructor(expressID, Id, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { - super(expressID); - this.Id = Id; - this.FamilyName = FamilyName; - this.GivenName = GivenName; - this.MiddleNames = MiddleNames; - this.PrefixTitles = PrefixTitles; - this.SuffixTitles = SuffixTitles; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 2077209135; - } - } - IFC2X32.IfcPerson = IfcPerson; - class IfcPersonAndOrganization extends IfcLineObject { - constructor(expressID, ThePerson, TheOrganization, Roles) { - super(expressID); - this.ThePerson = ThePerson; - this.TheOrganization = TheOrganization; - this.Roles = Roles; - this.type = 101040310; - } - } - IFC2X32.IfcPersonAndOrganization = IfcPersonAndOrganization; - class IfcPhysicalQuantity extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2483315170; - } - } - IFC2X32.IfcPhysicalQuantity = IfcPhysicalQuantity; - class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.type = 2226359599; - } - } - IFC2X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; - class IfcPostalAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.InternalLocation = InternalLocation; - this.AddressLines = AddressLines; - this.PostalBox = PostalBox; - this.Town = Town; - this.Region = Region; - this.PostalCode = PostalCode; - this.Country = Country; - this.type = 3355820592; - } - } - IFC2X32.IfcPostalAddress = IfcPostalAddress; - class IfcPreDefinedItem extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3727388367; - } - } - IFC2X32.IfcPreDefinedItem = IfcPreDefinedItem; - class IfcPreDefinedSymbol extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 990879717; - } - } - IFC2X32.IfcPreDefinedSymbol = IfcPreDefinedSymbol; - class IfcPreDefinedTerminatorSymbol extends IfcPreDefinedSymbol { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 3213052703; - } - } - IFC2X32.IfcPreDefinedTerminatorSymbol = IfcPreDefinedTerminatorSymbol; - class IfcPreDefinedTextFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 1775413392; - } - } - IFC2X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; - class IfcPresentationLayerAssignment extends IfcLineObject { - constructor(expressID, Name, Description, AssignedItems, Identifier) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.type = 2022622350; - } - } - IFC2X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; - class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { - constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { - super(expressID, Name, Description, AssignedItems, Identifier); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.LayerOn = LayerOn; - this.LayerFrozen = LayerFrozen; - this.LayerBlocked = LayerBlocked; - this.LayerStyles = LayerStyles; - this.type = 1304840413; - } - } - IFC2X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; - class IfcPresentationStyle extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3119450353; - } - } - IFC2X32.IfcPresentationStyle = IfcPresentationStyle; - class IfcPresentationStyleAssignment extends IfcLineObject { - constructor(expressID, Styles) { - super(expressID); - this.Styles = Styles; - this.type = 2417041796; - } - } - IFC2X32.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; - class IfcProductRepresentation extends IfcLineObject { - constructor(expressID, Name, Description, Representations) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 2095639259; - } - } - IFC2X32.IfcProductRepresentation = IfcProductRepresentation; - class IfcProductsOfCombustionProperties extends IfcMaterialProperties { - constructor(expressID, Material, SpecificHeatCapacity, N20Content, COContent, CO2Content) { - super(expressID, Material); - this.Material = Material; - this.SpecificHeatCapacity = SpecificHeatCapacity; - this.N20Content = N20Content; - this.COContent = COContent; - this.CO2Content = CO2Content; - this.type = 2267347899; - } - } - IFC2X32.IfcProductsOfCombustionProperties = IfcProductsOfCombustionProperties; - class IfcProfileDef extends IfcLineObject { - constructor(expressID, ProfileType, ProfileName) { - super(expressID); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.type = 3958567839; - } - } - IFC2X32.IfcProfileDef = IfcProfileDef; - class IfcProfileProperties extends IfcLineObject { - constructor(expressID, ProfileName, ProfileDefinition) { - super(expressID); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.type = 2802850158; - } - } - IFC2X32.IfcProfileProperties = IfcProfileProperties; - class IfcProperty extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2598011224; - } - } - IFC2X32.IfcProperty = IfcProperty; - class IfcPropertyConstraintRelationship extends IfcLineObject { - constructor(expressID, RelatingConstraint, RelatedProperties, Name, Description) { - super(expressID); - this.RelatingConstraint = RelatingConstraint; - this.RelatedProperties = RelatedProperties; - this.Name = Name; - this.Description = Description; - this.type = 3896028662; - } - } - IFC2X32.IfcPropertyConstraintRelationship = IfcPropertyConstraintRelationship; - class IfcPropertyDependencyRelationship extends IfcLineObject { - constructor(expressID, DependingProperty, DependantProperty, Name, Description, Expression) { - super(expressID); - this.DependingProperty = DependingProperty; - this.DependantProperty = DependantProperty; - this.Name = Name; - this.Description = Description; - this.Expression = Expression; - this.type = 148025276; - } - } - IFC2X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; - class IfcPropertyEnumeration extends IfcLineObject { - constructor(expressID, Name, EnumerationValues, Unit) { - super(expressID); - this.Name = Name; - this.EnumerationValues = EnumerationValues; - this.Unit = Unit; - this.type = 3710013099; - } - } - IFC2X32.IfcPropertyEnumeration = IfcPropertyEnumeration; - class IfcQuantityArea extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, AreaValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.AreaValue = AreaValue; - this.type = 2044713172; - } - } - IFC2X32.IfcQuantityArea = IfcQuantityArea; - class IfcQuantityCount extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, CountValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.CountValue = CountValue; - this.type = 2093928680; - } - } - IFC2X32.IfcQuantityCount = IfcQuantityCount; - class IfcQuantityLength extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, LengthValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.LengthValue = LengthValue; - this.type = 931644368; - } - } - IFC2X32.IfcQuantityLength = IfcQuantityLength; - class IfcQuantityTime extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, TimeValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.TimeValue = TimeValue; - this.type = 3252649465; - } - } - IFC2X32.IfcQuantityTime = IfcQuantityTime; - class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, VolumeValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.VolumeValue = VolumeValue; - this.type = 2405470396; - } - } - IFC2X32.IfcQuantityVolume = IfcQuantityVolume; - class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, WeightValue) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.WeightValue = WeightValue; - this.type = 825690147; - } - } - IFC2X32.IfcQuantityWeight = IfcQuantityWeight; - class IfcReferencesValueDocument extends IfcLineObject { - constructor(expressID, ReferencedDocument, ReferencingValues, Name, Description) { - super(expressID); - this.ReferencedDocument = ReferencedDocument; - this.ReferencingValues = ReferencingValues; - this.Name = Name; - this.Description = Description; - this.type = 2692823254; - } - } - IFC2X32.IfcReferencesValueDocument = IfcReferencesValueDocument; - class IfcReinforcementBarProperties extends IfcLineObject { - constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { - super(expressID); - this.TotalCrossSectionArea = TotalCrossSectionArea; - this.SteelGrade = SteelGrade; - this.BarSurface = BarSurface; - this.EffectiveDepth = EffectiveDepth; - this.NominalBarDiameter = NominalBarDiameter; - this.BarCount = BarCount; - this.type = 1580146022; - } - } - IFC2X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; - class IfcRelaxation extends IfcLineObject { - constructor(expressID, RelaxationValue, InitialStress) { - super(expressID); - this.RelaxationValue = RelaxationValue; - this.InitialStress = InitialStress; - this.type = 1222501353; - } - } - IFC2X32.IfcRelaxation = IfcRelaxation; - class IfcRepresentation extends IfcLineObject { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1076942058; - } - } - IFC2X32.IfcRepresentation = IfcRepresentation; - class IfcRepresentationContext extends IfcLineObject { - constructor(expressID, ContextIdentifier, ContextType) { - super(expressID); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.type = 3377609919; - } - } - IFC2X32.IfcRepresentationContext = IfcRepresentationContext; - class IfcRepresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3008791417; - } - } - IFC2X32.IfcRepresentationItem = IfcRepresentationItem; - class IfcRepresentationMap extends IfcLineObject { - constructor(expressID, MappingOrigin, MappedRepresentation) { - super(expressID); - this.MappingOrigin = MappingOrigin; - this.MappedRepresentation = MappedRepresentation; - this.type = 1660063152; - } - } - IFC2X32.IfcRepresentationMap = IfcRepresentationMap; - class IfcRibPlateProfileProperties extends IfcProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, Thickness, RibHeight, RibWidth, RibSpacing, Direction) { - super(expressID, ProfileName, ProfileDefinition); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.Thickness = Thickness; - this.RibHeight = RibHeight; - this.RibWidth = RibWidth; - this.RibSpacing = RibSpacing; - this.Direction = Direction; - this.type = 3679540991; - } - } - IFC2X32.IfcRibPlateProfileProperties = IfcRibPlateProfileProperties; - class IfcRoot extends IfcLineObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2341007311; - } - } - IFC2X32.IfcRoot = IfcRoot; - class IfcSIUnit extends IfcNamedUnit { - constructor(expressID, UnitType, Prefix, Name) { - super(expressID, new Handle(0), UnitType); - this.UnitType = UnitType; - this.Prefix = Prefix; - this.Name = Name; - this.type = 448429030; - } - } - IFC2X32.IfcSIUnit = IfcSIUnit; - class IfcSectionProperties extends IfcLineObject { - constructor(expressID, SectionType, StartProfile, EndProfile) { - super(expressID); - this.SectionType = SectionType; - this.StartProfile = StartProfile; - this.EndProfile = EndProfile; - this.type = 2042790032; - } - } - IFC2X32.IfcSectionProperties = IfcSectionProperties; - class IfcSectionReinforcementProperties extends IfcLineObject { - constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { - super(expressID); - this.LongitudinalStartPosition = LongitudinalStartPosition; - this.LongitudinalEndPosition = LongitudinalEndPosition; - this.TransversePosition = TransversePosition; - this.ReinforcementRole = ReinforcementRole; - this.SectionDefinition = SectionDefinition; - this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; - this.type = 4165799628; - } - } - IFC2X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; - class IfcShapeAspect extends IfcLineObject { - constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { - super(expressID); - this.ShapeRepresentations = ShapeRepresentations; - this.Name = Name; - this.Description = Description; - this.ProductDefinitional = ProductDefinitional; - this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; - this.type = 867548509; - } - } - IFC2X32.IfcShapeAspect = IfcShapeAspect; - class IfcShapeModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3982875396; - } - } - IFC2X32.IfcShapeModel = IfcShapeModel; - class IfcShapeRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 4240577450; - } - } - IFC2X32.IfcShapeRepresentation = IfcShapeRepresentation; - class IfcSimpleProperty extends IfcProperty { - constructor(expressID, Name, Description) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.type = 3692461612; - } - } - IFC2X32.IfcSimpleProperty = IfcSimpleProperty; - class IfcStructuralConnectionCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2273995522; - } - } - IFC2X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; - class IfcStructuralLoad extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2162789131; - } - } - IFC2X32.IfcStructuralLoad = IfcStructuralLoad; - class IfcStructuralLoadStatic extends IfcStructuralLoad { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2525727697; - } - } - IFC2X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; - class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { - constructor(expressID, Name, DeltaT_Constant, DeltaT_Y, DeltaT_Z) { - super(expressID, Name); - this.Name = Name; - this.DeltaT_Constant = DeltaT_Constant; - this.DeltaT_Y = DeltaT_Y; - this.DeltaT_Z = DeltaT_Z; - this.type = 3408363356; - } - } - IFC2X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; - class IfcStyleModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 2830218821; - } - } - IFC2X32.IfcStyleModel = IfcStyleModel; - class IfcStyledItem extends IfcRepresentationItem { - constructor(expressID, Item, Styles, Name) { - super(expressID); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3958052878; - } - } - IFC2X32.IfcStyledItem = IfcStyledItem; - class IfcStyledRepresentation extends IfcStyleModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3049322572; - } - } - IFC2X32.IfcStyledRepresentation = IfcStyledRepresentation; - class IfcSurfaceStyle extends IfcPresentationStyle { - constructor(expressID, Name, Side, Styles) { - super(expressID, Name); - this.Name = Name; - this.Side = Side; - this.Styles = Styles; - this.type = 1300840506; - } - } - IFC2X32.IfcSurfaceStyle = IfcSurfaceStyle; - class IfcSurfaceStyleLighting extends IfcLineObject { - constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { - super(expressID); - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.DiffuseReflectionColour = DiffuseReflectionColour; - this.TransmissionColour = TransmissionColour; - this.ReflectanceColour = ReflectanceColour; - this.type = 3303107099; - } - } - IFC2X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; - class IfcSurfaceStyleRefraction extends IfcLineObject { - constructor(expressID, RefractionIndex, DispersionFactor) { - super(expressID); - this.RefractionIndex = RefractionIndex; - this.DispersionFactor = DispersionFactor; - this.type = 1607154358; - } - } - IFC2X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; - class IfcSurfaceStyleShading extends IfcLineObject { - constructor(expressID, SurfaceColour) { - super(expressID); - this.SurfaceColour = SurfaceColour; - this.type = 846575682; - } - } - IFC2X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; - class IfcSurfaceStyleWithTextures extends IfcLineObject { - constructor(expressID, Textures) { - super(expressID); - this.Textures = Textures; - this.type = 1351298697; - } - } - IFC2X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; - class IfcSurfaceTexture extends IfcLineObject { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform) { - super(expressID); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.type = 626085974; - } - } - IFC2X32.IfcSurfaceTexture = IfcSurfaceTexture; - class IfcSymbolStyle extends IfcPresentationStyle { - constructor(expressID, Name, StyleOfSymbol) { - super(expressID, Name); - this.Name = Name; - this.StyleOfSymbol = StyleOfSymbol; - this.type = 1290481447; - } - } - IFC2X32.IfcSymbolStyle = IfcSymbolStyle; - class IfcTable extends IfcLineObject { - constructor(expressID, Name, Rows) { - super(expressID); - this.Name = Name; - this.Rows = Rows; - this.type = 985171141; - } - } - IFC2X32.IfcTable = IfcTable; - class IfcTableRow extends IfcLineObject { - constructor(expressID, RowCells, IsHeading) { - super(expressID); - this.RowCells = RowCells; - this.IsHeading = IsHeading; - this.type = 531007025; - } - } - IFC2X32.IfcTableRow = IfcTableRow; - class IfcTelecomAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.TelephoneNumbers = TelephoneNumbers; - this.FacsimileNumbers = FacsimileNumbers; - this.PagerNumber = PagerNumber; - this.ElectronicMailAddresses = ElectronicMailAddresses; - this.WWWHomePageURL = WWWHomePageURL; - this.type = 912023232; - } - } - IFC2X32.IfcTelecomAddress = IfcTelecomAddress; - class IfcTextStyle extends IfcPresentationStyle { - constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle) { - super(expressID, Name); - this.Name = Name; - this.TextCharacterAppearance = TextCharacterAppearance; - this.TextStyle = TextStyle; - this.TextFontStyle = TextFontStyle; - this.type = 1447204868; - } - } - IFC2X32.IfcTextStyle = IfcTextStyle; - class IfcTextStyleFontModel extends IfcPreDefinedTextFont { - constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { - super(expressID, Name); - this.Name = Name; - this.FontFamily = FontFamily; - this.FontStyle = FontStyle; - this.FontVariant = FontVariant; - this.FontWeight = FontWeight; - this.FontSize = FontSize; - this.type = 1983826977; - } - } - IFC2X32.IfcTextStyleFontModel = IfcTextStyleFontModel; - class IfcTextStyleForDefinedFont extends IfcLineObject { - constructor(expressID, Colour, BackgroundColour) { - super(expressID); - this.Colour = Colour; - this.BackgroundColour = BackgroundColour; - this.type = 2636378356; - } - } - IFC2X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; - class IfcTextStyleTextModel extends IfcLineObject { - constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { - super(expressID); - this.TextIndent = TextIndent; - this.TextAlign = TextAlign; - this.TextDecoration = TextDecoration; - this.LetterSpacing = LetterSpacing; - this.WordSpacing = WordSpacing; - this.TextTransform = TextTransform; - this.LineHeight = LineHeight; - this.type = 1640371178; - } - } - IFC2X32.IfcTextStyleTextModel = IfcTextStyleTextModel; - class IfcTextStyleWithBoxCharacteristics extends IfcLineObject { - constructor(expressID, BoxHeight, BoxWidth, BoxSlantAngle, BoxRotateAngle, CharacterSpacing) { - super(expressID); - this.BoxHeight = BoxHeight; - this.BoxWidth = BoxWidth; - this.BoxSlantAngle = BoxSlantAngle; - this.BoxRotateAngle = BoxRotateAngle; - this.CharacterSpacing = CharacterSpacing; - this.type = 1484833681; - } - } - IFC2X32.IfcTextStyleWithBoxCharacteristics = IfcTextStyleWithBoxCharacteristics; - class IfcTextureCoordinate extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 280115917; - } - } - IFC2X32.IfcTextureCoordinate = IfcTextureCoordinate; - class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { - constructor(expressID, Mode, Parameter) { - super(expressID); - this.Mode = Mode; - this.Parameter = Parameter; - this.type = 1742049831; - } - } - IFC2X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; - class IfcTextureMap extends IfcTextureCoordinate { - constructor(expressID, TextureMaps) { - super(expressID); - this.TextureMaps = TextureMaps; - this.type = 2552916305; - } - } - IFC2X32.IfcTextureMap = IfcTextureMap; - class IfcTextureVertex extends IfcLineObject { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1210645708; - } - } - IFC2X32.IfcTextureVertex = IfcTextureVertex; - class IfcThermalMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, SpecificHeatCapacity, BoilingPoint, FreezingPoint, ThermalConductivity) { - super(expressID, Material); - this.Material = Material; - this.SpecificHeatCapacity = SpecificHeatCapacity; - this.BoilingPoint = BoilingPoint; - this.FreezingPoint = FreezingPoint; - this.ThermalConductivity = ThermalConductivity; - this.type = 3317419933; - } - } - IFC2X32.IfcThermalMaterialProperties = IfcThermalMaterialProperties; - class IfcTimeSeries extends IfcLineObject { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.type = 3101149627; - } - } - IFC2X32.IfcTimeSeries = IfcTimeSeries; - class IfcTimeSeriesReferenceRelationship extends IfcLineObject { - constructor(expressID, ReferencedTimeSeries, TimeSeriesReferences) { - super(expressID); - this.ReferencedTimeSeries = ReferencedTimeSeries; - this.TimeSeriesReferences = TimeSeriesReferences; - this.type = 1718945513; - } - } - IFC2X32.IfcTimeSeriesReferenceRelationship = IfcTimeSeriesReferenceRelationship; - class IfcTimeSeriesValue extends IfcLineObject { - constructor(expressID, ListValues) { - super(expressID); - this.ListValues = ListValues; - this.type = 581633288; - } - } - IFC2X32.IfcTimeSeriesValue = IfcTimeSeriesValue; - class IfcTopologicalRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1377556343; - } - } - IFC2X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; - class IfcTopologyRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1735638870; - } - } - IFC2X32.IfcTopologyRepresentation = IfcTopologyRepresentation; - class IfcUnitAssignment extends IfcLineObject { - constructor(expressID, Units) { - super(expressID); - this.Units = Units; - this.type = 180925521; - } - } - IFC2X32.IfcUnitAssignment = IfcUnitAssignment; - class IfcVertex extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2799835756; - } - } - IFC2X32.IfcVertex = IfcVertex; - class IfcVertexBasedTextureMap extends IfcLineObject { - constructor(expressID, TextureVertices, TexturePoints) { - super(expressID); - this.TextureVertices = TextureVertices; - this.TexturePoints = TexturePoints; - this.type = 3304826586; - } - } - IFC2X32.IfcVertexBasedTextureMap = IfcVertexBasedTextureMap; - class IfcVertexPoint extends IfcVertex { - constructor(expressID, VertexGeometry) { - super(expressID); - this.VertexGeometry = VertexGeometry; - this.type = 1907098498; - } - } - IFC2X32.IfcVertexPoint = IfcVertexPoint; - class IfcVirtualGridIntersection extends IfcLineObject { - constructor(expressID, IntersectingAxes, OffsetDistances) { - super(expressID); - this.IntersectingAxes = IntersectingAxes; - this.OffsetDistances = OffsetDistances; - this.type = 891718957; - } - } - IFC2X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; - class IfcWaterProperties extends IfcMaterialProperties { - constructor(expressID, Material, IsPotable, Hardness, AlkalinityConcentration, AcidityConcentration, ImpuritiesContent, PHLevel, DissolvedSolidsContent) { - super(expressID, Material); - this.Material = Material; - this.IsPotable = IsPotable; - this.Hardness = Hardness; - this.AlkalinityConcentration = AlkalinityConcentration; - this.AcidityConcentration = AcidityConcentration; - this.ImpuritiesContent = ImpuritiesContent; - this.PHLevel = PHLevel; - this.DissolvedSolidsContent = DissolvedSolidsContent; - this.type = 1065908215; - } - } - IFC2X32.IfcWaterProperties = IfcWaterProperties; - class IfcAnnotationOccurrence extends IfcStyledItem { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 2442683028; - } - } - IFC2X32.IfcAnnotationOccurrence = IfcAnnotationOccurrence; - class IfcAnnotationSurfaceOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 962685235; - } - } - IFC2X32.IfcAnnotationSurfaceOccurrence = IfcAnnotationSurfaceOccurrence; - class IfcAnnotationSymbolOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3612888222; - } - } - IFC2X32.IfcAnnotationSymbolOccurrence = IfcAnnotationSymbolOccurrence; - class IfcAnnotationTextOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 2297822566; - } - } - IFC2X32.IfcAnnotationTextOccurrence = IfcAnnotationTextOccurrence; - class IfcArbitraryClosedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.type = 3798115385; - } - } - IFC2X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; - class IfcArbitraryOpenProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.type = 1310608509; - } - } - IFC2X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; - class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { - super(expressID, ProfileType, ProfileName, OuterCurve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.InnerCurves = InnerCurves; - this.type = 2705031697; - } - } - IFC2X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; - class IfcBlobTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, RasterFormat, RasterCode) { - super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.RasterFormat = RasterFormat; - this.RasterCode = RasterCode; - this.type = 616511568; - } - } - IFC2X32.IfcBlobTexture = IfcBlobTexture; - class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { - super(expressID, ProfileType, ProfileName, Curve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.Thickness = Thickness; - this.type = 3150382593; - } - } - IFC2X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; - class IfcClassificationReference extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name, ReferencedSource) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.ReferencedSource = ReferencedSource; - this.type = 647927063; - } - } - IFC2X32.IfcClassificationReference = IfcClassificationReference; - class IfcColourRgb extends IfcColourSpecification { - constructor(expressID, Name, Red, Green, Blue) { - super(expressID, Name); - this.Name = Name; - this.Red = Red; - this.Green = Green; - this.Blue = Blue; - this.type = 776857604; - } - } - IFC2X32.IfcColourRgb = IfcColourRgb; - class IfcComplexProperty extends IfcProperty { - constructor(expressID, Name, Description, UsageName, HasProperties) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.HasProperties = HasProperties; - this.type = 2542286263; - } - } - IFC2X32.IfcComplexProperty = IfcComplexProperty; - class IfcCompositeProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Profiles, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Profiles = Profiles; - this.Label = Label; - this.type = 1485152156; - } - } - IFC2X32.IfcCompositeProfileDef = IfcCompositeProfileDef; - class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { - constructor(expressID, CfsFaces) { - super(expressID); - this.CfsFaces = CfsFaces; - this.type = 370225590; - } - } - IFC2X32.IfcConnectedFaceSet = IfcConnectedFaceSet; - class IfcConnectionCurveGeometry extends IfcConnectionGeometry { - constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { - super(expressID); - this.CurveOnRelatingElement = CurveOnRelatingElement; - this.CurveOnRelatedElement = CurveOnRelatedElement; - this.type = 1981873012; - } - } - IFC2X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; - class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { - super(expressID, PointOnRelatingElement, PointOnRelatedElement); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.EccentricityInX = EccentricityInX; - this.EccentricityInY = EccentricityInY; - this.EccentricityInZ = EccentricityInZ; - this.type = 45288368; - } - } - IFC2X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; - class IfcContextDependentUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.type = 3050246964; - } - } - IFC2X32.IfcContextDependentUnit = IfcContextDependentUnit; - class IfcConversionBasedUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.type = 2889183280; - } - } - IFC2X32.IfcConversionBasedUnit = IfcConversionBasedUnit; - class IfcCurveStyle extends IfcPresentationStyle { - constructor(expressID, Name, CurveFont, CurveWidth, CurveColour) { - super(expressID, Name); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveWidth = CurveWidth; - this.CurveColour = CurveColour; - this.type = 3800577675; - } - } - IFC2X32.IfcCurveStyle = IfcCurveStyle; - class IfcDerivedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 3632507154; - } - } - IFC2X32.IfcDerivedProfileDef = IfcDerivedProfileDef; - class IfcDimensionCalloutRelationship extends IfcDraughtingCalloutRelationship { - constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { - super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); - this.Name = Name; - this.Description = Description; - this.RelatingDraughtingCallout = RelatingDraughtingCallout; - this.RelatedDraughtingCallout = RelatedDraughtingCallout; - this.type = 2273265877; - } - } - IFC2X32.IfcDimensionCalloutRelationship = IfcDimensionCalloutRelationship; - class IfcDimensionPair extends IfcDraughtingCalloutRelationship { - constructor(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) { - super(expressID, Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout); - this.Name = Name; - this.Description = Description; - this.RelatingDraughtingCallout = RelatingDraughtingCallout; - this.RelatedDraughtingCallout = RelatedDraughtingCallout; - this.type = 1694125774; - } - } - IFC2X32.IfcDimensionPair = IfcDimensionPair; - class IfcDocumentReference extends IfcExternalReference { - constructor(expressID, Location, ItemReference, Name) { - super(expressID, Location, ItemReference, Name); - this.Location = Location; - this.ItemReference = ItemReference; - this.Name = Name; - this.type = 3732053477; - } - } - IFC2X32.IfcDocumentReference = IfcDocumentReference; - class IfcDraughtingPreDefinedTextFont extends IfcPreDefinedTextFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4170525392; - } - } - IFC2X32.IfcDraughtingPreDefinedTextFont = IfcDraughtingPreDefinedTextFont; - class IfcEdge extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeStart, EdgeEnd) { - super(expressID); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.type = 3900360178; - } - } - IFC2X32.IfcEdge = IfcEdge; - class IfcEdgeCurve extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.EdgeGeometry = EdgeGeometry; - this.SameSense = SameSense; - this.type = 476780140; - } - } - IFC2X32.IfcEdgeCurve = IfcEdgeCurve; - class IfcExtendedMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, ExtendedProperties, Description, Name) { - super(expressID, Material); - this.Material = Material; - this.ExtendedProperties = ExtendedProperties; - this.Description = Description; - this.Name = Name; - this.type = 1860660968; - } - } - IFC2X32.IfcExtendedMaterialProperties = IfcExtendedMaterialProperties; - class IfcFace extends IfcTopologicalRepresentationItem { - constructor(expressID, Bounds) { - super(expressID); - this.Bounds = Bounds; - this.type = 2556980723; - } - } - IFC2X32.IfcFace = IfcFace; - class IfcFaceBound extends IfcTopologicalRepresentationItem { - constructor(expressID, Bound, Orientation) { - super(expressID); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 1809719519; - } - } - IFC2X32.IfcFaceBound = IfcFaceBound; - class IfcFaceOuterBound extends IfcFaceBound { - constructor(expressID, Bound, Orientation) { - super(expressID, Bound, Orientation); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 803316827; - } - } - IFC2X32.IfcFaceOuterBound = IfcFaceOuterBound; - class IfcFaceSurface extends IfcFace { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3008276851; - } - } - IFC2X32.IfcFaceSurface = IfcFaceSurface; - class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { - super(expressID, Name); - this.Name = Name; - this.TensionFailureX = TensionFailureX; - this.TensionFailureY = TensionFailureY; - this.TensionFailureZ = TensionFailureZ; - this.CompressionFailureX = CompressionFailureX; - this.CompressionFailureY = CompressionFailureY; - this.CompressionFailureZ = CompressionFailureZ; - this.type = 4219587988; - } - } - IFC2X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; - class IfcFillAreaStyle extends IfcPresentationStyle { - constructor(expressID, Name, FillStyles) { - super(expressID, Name); - this.Name = Name; - this.FillStyles = FillStyles; - this.type = 738692330; - } - } - IFC2X32.IfcFillAreaStyle = IfcFillAreaStyle; - class IfcFuelProperties extends IfcMaterialProperties { - constructor(expressID, Material, CombustionTemperature, CarbonContent, LowerHeatingValue, HigherHeatingValue) { - super(expressID, Material); - this.Material = Material; - this.CombustionTemperature = CombustionTemperature; - this.CarbonContent = CarbonContent; - this.LowerHeatingValue = LowerHeatingValue; - this.HigherHeatingValue = HigherHeatingValue; - this.type = 3857492461; - } - } - IFC2X32.IfcFuelProperties = IfcFuelProperties; - class IfcGeneralMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, MolecularWeight, Porosity, MassDensity) { - super(expressID, Material); - this.Material = Material; - this.MolecularWeight = MolecularWeight; - this.Porosity = Porosity; - this.MassDensity = MassDensity; - this.type = 803998398; - } - } - IFC2X32.IfcGeneralMaterialProperties = IfcGeneralMaterialProperties; - class IfcGeneralProfileProperties extends IfcProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea) { - super(expressID, ProfileName, ProfileDefinition); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.PhysicalWeight = PhysicalWeight; - this.Perimeter = Perimeter; - this.MinimumPlateThickness = MinimumPlateThickness; - this.MaximumPlateThickness = MaximumPlateThickness; - this.CrossSectionArea = CrossSectionArea; - this.type = 1446786286; - } - } - IFC2X32.IfcGeneralProfileProperties = IfcGeneralProfileProperties; - class IfcGeometricRepresentationContext extends IfcRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { - super(expressID, ContextIdentifier, ContextType); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.CoordinateSpaceDimension = CoordinateSpaceDimension; - this.Precision = Precision; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.TrueNorth = TrueNorth; - this.type = 3448662350; - } - } - IFC2X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; - class IfcGeometricRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2453401579; - } - } - IFC2X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; - class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { - super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.ParentContext = ParentContext; - this.TargetScale = TargetScale; - this.TargetView = TargetView; - this.UserDefinedTargetView = UserDefinedTargetView; - this.type = 4142052618; - } - } - IFC2X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; - class IfcGeometricSet extends IfcGeometricRepresentationItem { - constructor(expressID, Elements) { - super(expressID); - this.Elements = Elements; - this.type = 3590301190; - } - } - IFC2X32.IfcGeometricSet = IfcGeometricSet; - class IfcGridPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementLocation, PlacementRefDirection) { - super(expressID); - this.PlacementLocation = PlacementLocation; - this.PlacementRefDirection = PlacementRefDirection; - this.type = 178086475; - } - } - IFC2X32.IfcGridPlacement = IfcGridPlacement; - class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { - constructor(expressID, BaseSurface, AgreementFlag) { - super(expressID); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.type = 812098782; - } - } - IFC2X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; - class IfcHygroscopicMaterialProperties extends IfcMaterialProperties { - constructor(expressID, Material, UpperVaporResistanceFactor, LowerVaporResistanceFactor, IsothermalMoistureCapacity, VaporPermeability, MoistureDiffusivity) { - super(expressID, Material); - this.Material = Material; - this.UpperVaporResistanceFactor = UpperVaporResistanceFactor; - this.LowerVaporResistanceFactor = LowerVaporResistanceFactor; - this.IsothermalMoistureCapacity = IsothermalMoistureCapacity; - this.VaporPermeability = VaporPermeability; - this.MoistureDiffusivity = MoistureDiffusivity; - this.type = 2445078500; - } - } - IFC2X32.IfcHygroscopicMaterialProperties = IfcHygroscopicMaterialProperties; - class IfcImageTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, UrlReference) { - super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.UrlReference = UrlReference; - this.type = 3905492369; - } - } - IFC2X32.IfcImageTexture = IfcImageTexture; - class IfcIrregularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.Values = Values; - this.type = 3741457305; - } - } - IFC2X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; - class IfcLightSource extends IfcGeometricRepresentationItem { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 1402838566; - } - } - IFC2X32.IfcLightSource = IfcLightSource; - class IfcLightSourceAmbient extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 125510826; - } - } - IFC2X32.IfcLightSourceAmbient = IfcLightSourceAmbient; - class IfcLightSourceDirectional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Orientation = Orientation; - this.type = 2604431987; - } - } - IFC2X32.IfcLightSourceDirectional = IfcLightSourceDirectional; - class IfcLightSourceGoniometric extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.ColourAppearance = ColourAppearance; - this.ColourTemperature = ColourTemperature; - this.LuminousFlux = LuminousFlux; - this.LightEmissionSource = LightEmissionSource; - this.LightDistributionDataSource = LightDistributionDataSource; - this.type = 4266656042; - } - } - IFC2X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; - class IfcLightSourcePositional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.type = 1520743889; - } - } - IFC2X32.IfcLightSourcePositional = IfcLightSourcePositional; - class IfcLightSourceSpot extends IfcLightSourcePositional { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.Orientation = Orientation; - this.ConcentrationExponent = ConcentrationExponent; - this.SpreadAngle = SpreadAngle; - this.BeamWidthAngle = BeamWidthAngle; - this.type = 3422422726; - } - } - IFC2X32.IfcLightSourceSpot = IfcLightSourceSpot; - class IfcLocalPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement) { - super(expressID); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.type = 2624227202; - } - } - IFC2X32.IfcLocalPlacement = IfcLocalPlacement; - class IfcLoop extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1008929658; - } - } - IFC2X32.IfcLoop = IfcLoop; - class IfcMappedItem extends IfcRepresentationItem { - constructor(expressID, MappingSource, MappingTarget) { - super(expressID); - this.MappingSource = MappingSource; - this.MappingTarget = MappingTarget; - this.type = 2347385850; - } - } - IFC2X32.IfcMappedItem = IfcMappedItem; - class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations, RepresentedMaterial) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.RepresentedMaterial = RepresentedMaterial; - this.type = 2022407955; - } - } - IFC2X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; - class IfcMechanicalConcreteMaterialProperties extends IfcMechanicalMaterialProperties { - constructor(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, CompressiveStrength, MaxAggregateSize, AdmixturesDescription, Workability, ProtectivePoreRatio, WaterImpermeability) { - super(expressID, Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient); - this.Material = Material; - this.DynamicViscosity = DynamicViscosity; - this.YoungModulus = YoungModulus; - this.ShearModulus = ShearModulus; - this.PoissonRatio = PoissonRatio; - this.ThermalExpansionCoefficient = ThermalExpansionCoefficient; - this.CompressiveStrength = CompressiveStrength; - this.MaxAggregateSize = MaxAggregateSize; - this.AdmixturesDescription = AdmixturesDescription; - this.Workability = Workability; - this.ProtectivePoreRatio = ProtectivePoreRatio; - this.WaterImpermeability = WaterImpermeability; - this.type = 1430189142; - } - } - IFC2X32.IfcMechanicalConcreteMaterialProperties = IfcMechanicalConcreteMaterialProperties; - class IfcObjectDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 219451334; - } - } - IFC2X32.IfcObjectDefinition = IfcObjectDefinition; - class IfcOneDirectionRepeatFactor extends IfcGeometricRepresentationItem { - constructor(expressID, RepeatFactor) { - super(expressID); - this.RepeatFactor = RepeatFactor; - this.type = 2833995503; - } - } - IFC2X32.IfcOneDirectionRepeatFactor = IfcOneDirectionRepeatFactor; - class IfcOpenShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2665983363; - } - } - IFC2X32.IfcOpenShell = IfcOpenShell; - class IfcOrientedEdge extends IfcEdge { - constructor(expressID, EdgeElement, Orientation) { - super(expressID, new Handle(0), new Handle(0)); - this.EdgeElement = EdgeElement; - this.Orientation = Orientation; - this.type = 1029017970; - } - } - IFC2X32.IfcOrientedEdge = IfcOrientedEdge; - class IfcParameterizedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Position) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.type = 2529465313; - } - } - IFC2X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; - class IfcPath extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 2519244187; - } - } - IFC2X32.IfcPath = IfcPath; - class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.HasQuantities = HasQuantities; - this.Discrimination = Discrimination; - this.Quality = Quality; - this.Usage = Usage; - this.type = 3021840470; - } - } - IFC2X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; - class IfcPixelTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, TextureType, TextureTransform, Width, Height, ColourComponents, Pixel) { - super(expressID, RepeatS, RepeatT, TextureType, TextureTransform); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.TextureType = TextureType; - this.TextureTransform = TextureTransform; - this.Width = Width; - this.Height = Height; - this.ColourComponents = ColourComponents; - this.Pixel = Pixel; - this.type = 597895409; - } - } - IFC2X32.IfcPixelTexture = IfcPixelTexture; - class IfcPlacement extends IfcGeometricRepresentationItem { - constructor(expressID, Location) { - super(expressID); - this.Location = Location; - this.type = 2004835150; - } - } - IFC2X32.IfcPlacement = IfcPlacement; - class IfcPlanarExtent extends IfcGeometricRepresentationItem { - constructor(expressID, SizeInX, SizeInY) { - super(expressID); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.type = 1663979128; - } - } - IFC2X32.IfcPlanarExtent = IfcPlanarExtent; - class IfcPoint extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2067069095; - } - } - IFC2X32.IfcPoint = IfcPoint; - class IfcPointOnCurve extends IfcPoint { - constructor(expressID, BasisCurve, PointParameter) { - super(expressID); - this.BasisCurve = BasisCurve; - this.PointParameter = PointParameter; - this.type = 4022376103; - } - } - IFC2X32.IfcPointOnCurve = IfcPointOnCurve; - class IfcPointOnSurface extends IfcPoint { - constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { - super(expressID); - this.BasisSurface = BasisSurface; - this.PointParameterU = PointParameterU; - this.PointParameterV = PointParameterV; - this.type = 1423911732; - } - } - IFC2X32.IfcPointOnSurface = IfcPointOnSurface; - class IfcPolyLoop extends IfcLoop { - constructor(expressID, Polygon) { - super(expressID); - this.Polygon = Polygon; - this.type = 2924175390; - } - } - IFC2X32.IfcPolyLoop = IfcPolyLoop; - class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Position = Position; - this.PolygonalBoundary = PolygonalBoundary; - this.type = 2775532180; - } - } - IFC2X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; - class IfcPreDefinedColour extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 759155922; - } - } - IFC2X32.IfcPreDefinedColour = IfcPreDefinedColour; - class IfcPreDefinedCurveFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2559016684; - } - } - IFC2X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; - class IfcPreDefinedDimensionSymbol extends IfcPreDefinedSymbol { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 433424934; - } - } - IFC2X32.IfcPreDefinedDimensionSymbol = IfcPreDefinedDimensionSymbol; - class IfcPreDefinedPointMarkerSymbol extends IfcPreDefinedSymbol { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 179317114; - } - } - IFC2X32.IfcPreDefinedPointMarkerSymbol = IfcPreDefinedPointMarkerSymbol; - class IfcProductDefinitionShape extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 673634403; - } - } - IFC2X32.IfcProductDefinitionShape = IfcProductDefinitionShape; - class IfcPropertyBoundedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UpperBoundValue = UpperBoundValue; - this.LowerBoundValue = LowerBoundValue; - this.Unit = Unit; - this.type = 871118103; - } - } - IFC2X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; - class IfcPropertyDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1680319473; - } - } - IFC2X32.IfcPropertyDefinition = IfcPropertyDefinition; - class IfcPropertyEnumeratedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.EnumerationValues = EnumerationValues; - this.EnumerationReference = EnumerationReference; - this.type = 4166981789; - } - } - IFC2X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; - class IfcPropertyListValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, ListValues, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.ListValues = ListValues; - this.Unit = Unit; - this.type = 2752243245; - } - } - IFC2X32.IfcPropertyListValue = IfcPropertyListValue; - class IfcPropertyReferenceValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UsageName, PropertyReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.PropertyReference = PropertyReference; - this.type = 941946838; - } - } - IFC2X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; - class IfcPropertySetDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3357820518; - } - } - IFC2X32.IfcPropertySetDefinition = IfcPropertySetDefinition; - class IfcPropertySingleValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, NominalValue, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.NominalValue = NominalValue; - this.Unit = Unit; - this.type = 3650150729; - } - } - IFC2X32.IfcPropertySingleValue = IfcPropertySingleValue; - class IfcPropertyTableValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.DefiningValues = DefiningValues; - this.DefinedValues = DefinedValues; - this.Expression = Expression; - this.DefiningUnit = DefiningUnit; - this.DefinedUnit = DefinedUnit; - this.type = 110355661; - } - } - IFC2X32.IfcPropertyTableValue = IfcPropertyTableValue; - class IfcRectangleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.type = 3615266464; - } - } - IFC2X32.IfcRectangleProfileDef = IfcRectangleProfileDef; - class IfcRegularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.TimeStep = TimeStep; - this.Values = Values; - this.type = 3413951693; - } - } - IFC2X32.IfcRegularTimeSeries = IfcRegularTimeSeries; - class IfcReinforcementDefinitionProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DefinitionType = DefinitionType; - this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; - this.type = 3765753017; - } - } - IFC2X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; - class IfcRelationship extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 478536968; - } - } - IFC2X32.IfcRelationship = IfcRelationship; - class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.RoundingRadius = RoundingRadius; - this.type = 2778083089; - } - } - IFC2X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; - class IfcSectionedSpine extends IfcGeometricRepresentationItem { - constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { - super(expressID); - this.SpineCurve = SpineCurve; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1509187699; - } - } - IFC2X32.IfcSectionedSpine = IfcSectionedSpine; - class IfcServiceLifeFactor extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PredefinedType, UpperValue, MostUsedValue, LowerValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PredefinedType = PredefinedType; - this.UpperValue = UpperValue; - this.MostUsedValue = MostUsedValue; - this.LowerValue = LowerValue; - this.type = 2411513650; - } - } - IFC2X32.IfcServiceLifeFactor = IfcServiceLifeFactor; - class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, SbsmBoundary) { - super(expressID); - this.SbsmBoundary = SbsmBoundary; - this.type = 4124623270; - } - } - IFC2X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; - class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { - super(expressID, Name); - this.Name = Name; - this.SlippageX = SlippageX; - this.SlippageY = SlippageY; - this.SlippageZ = SlippageZ; - this.type = 2609359061; - } - } - IFC2X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; - class IfcSolidModel extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 723233188; - } - } - IFC2X32.IfcSolidModel = IfcSolidModel; - class IfcSoundProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, IsAttenuating, SoundScale, SoundValues) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.IsAttenuating = IsAttenuating; - this.SoundScale = SoundScale; - this.SoundValues = SoundValues; - this.type = 2485662743; - } - } - IFC2X32.IfcSoundProperties = IfcSoundProperties; - class IfcSoundValue extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, SoundLevelTimeSeries, Frequency, SoundLevelSingleValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.SoundLevelTimeSeries = SoundLevelTimeSeries; - this.Frequency = Frequency; - this.SoundLevelSingleValue = SoundLevelSingleValue; - this.type = 1202362311; - } - } - IFC2X32.IfcSoundValue = IfcSoundValue; - class IfcSpaceThermalLoadProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableValueRatio, ThermalLoadSource, PropertySource, SourceDescription, MaximumValue, MinimumValue, ThermalLoadTimeSeriesValues, UserDefinedThermalLoadSource, UserDefinedPropertySource, ThermalLoadType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableValueRatio = ApplicableValueRatio; - this.ThermalLoadSource = ThermalLoadSource; - this.PropertySource = PropertySource; - this.SourceDescription = SourceDescription; - this.MaximumValue = MaximumValue; - this.MinimumValue = MinimumValue; - this.ThermalLoadTimeSeriesValues = ThermalLoadTimeSeriesValues; - this.UserDefinedThermalLoadSource = UserDefinedThermalLoadSource; - this.UserDefinedPropertySource = UserDefinedPropertySource; - this.ThermalLoadType = ThermalLoadType; - this.type = 390701378; - } - } - IFC2X32.IfcSpaceThermalLoadProperties = IfcSpaceThermalLoadProperties; - class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { - super(expressID, Name); - this.Name = Name; - this.LinearForceX = LinearForceX; - this.LinearForceY = LinearForceY; - this.LinearForceZ = LinearForceZ; - this.LinearMomentX = LinearMomentX; - this.LinearMomentY = LinearMomentY; - this.LinearMomentZ = LinearMomentZ; - this.type = 1595516126; - } - } - IFC2X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; - class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { - super(expressID, Name); - this.Name = Name; - this.PlanarForceX = PlanarForceX; - this.PlanarForceY = PlanarForceY; - this.PlanarForceZ = PlanarForceZ; - this.type = 2668620305; - } - } - IFC2X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; - class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { - super(expressID, Name); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.type = 2473145415; - } - } - IFC2X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; - class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { - super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.Distortion = Distortion; - this.type = 1973038258; - } - } - IFC2X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; - class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { - super(expressID, Name); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.type = 1597423693; - } - } - IFC2X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; - class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { - super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.WarpingMoment = WarpingMoment; - this.type = 1190533807; - } - } - IFC2X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; - class IfcStructuralProfileProperties extends IfcGeneralProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY) { - super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.PhysicalWeight = PhysicalWeight; - this.Perimeter = Perimeter; - this.MinimumPlateThickness = MinimumPlateThickness; - this.MaximumPlateThickness = MaximumPlateThickness; - this.CrossSectionArea = CrossSectionArea; - this.TorsionalConstantX = TorsionalConstantX; - this.MomentOfInertiaYZ = MomentOfInertiaYZ; - this.MomentOfInertiaY = MomentOfInertiaY; - this.MomentOfInertiaZ = MomentOfInertiaZ; - this.WarpingConstant = WarpingConstant; - this.ShearCentreZ = ShearCentreZ; - this.ShearCentreY = ShearCentreY; - this.ShearDeformationAreaZ = ShearDeformationAreaZ; - this.ShearDeformationAreaY = ShearDeformationAreaY; - this.MaximumSectionModulusY = MaximumSectionModulusY; - this.MinimumSectionModulusY = MinimumSectionModulusY; - this.MaximumSectionModulusZ = MaximumSectionModulusZ; - this.MinimumSectionModulusZ = MinimumSectionModulusZ; - this.TorsionalSectionModulus = TorsionalSectionModulus; - this.CentreOfGravityInX = CentreOfGravityInX; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 3843319758; - } - } - IFC2X32.IfcStructuralProfileProperties = IfcStructuralProfileProperties; - class IfcStructuralSteelProfileProperties extends IfcStructuralProfileProperties { - constructor(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY, ShearAreaZ, ShearAreaY, PlasticShapeFactorY, PlasticShapeFactorZ) { - super(expressID, ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY); - this.ProfileName = ProfileName; - this.ProfileDefinition = ProfileDefinition; - this.PhysicalWeight = PhysicalWeight; - this.Perimeter = Perimeter; - this.MinimumPlateThickness = MinimumPlateThickness; - this.MaximumPlateThickness = MaximumPlateThickness; - this.CrossSectionArea = CrossSectionArea; - this.TorsionalConstantX = TorsionalConstantX; - this.MomentOfInertiaYZ = MomentOfInertiaYZ; - this.MomentOfInertiaY = MomentOfInertiaY; - this.MomentOfInertiaZ = MomentOfInertiaZ; - this.WarpingConstant = WarpingConstant; - this.ShearCentreZ = ShearCentreZ; - this.ShearCentreY = ShearCentreY; - this.ShearDeformationAreaZ = ShearDeformationAreaZ; - this.ShearDeformationAreaY = ShearDeformationAreaY; - this.MaximumSectionModulusY = MaximumSectionModulusY; - this.MinimumSectionModulusY = MinimumSectionModulusY; - this.MaximumSectionModulusZ = MaximumSectionModulusZ; - this.MinimumSectionModulusZ = MinimumSectionModulusZ; - this.TorsionalSectionModulus = TorsionalSectionModulus; - this.CentreOfGravityInX = CentreOfGravityInX; - this.CentreOfGravityInY = CentreOfGravityInY; - this.ShearAreaZ = ShearAreaZ; - this.ShearAreaY = ShearAreaY; - this.PlasticShapeFactorY = PlasticShapeFactorY; - this.PlasticShapeFactorZ = PlasticShapeFactorZ; - this.type = 3653947884; - } - } - IFC2X32.IfcStructuralSteelProfileProperties = IfcStructuralSteelProfileProperties; - class IfcSubedge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.ParentEdge = ParentEdge; - this.type = 2233826070; - } - } - IFC2X32.IfcSubedge = IfcSubedge; - class IfcSurface extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2513912981; - } - } - IFC2X32.IfcSurface = IfcSurface; - class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { - constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { - super(expressID, SurfaceColour); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.DiffuseColour = DiffuseColour; - this.TransmissionColour = TransmissionColour; - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.ReflectionColour = ReflectionColour; - this.SpecularColour = SpecularColour; - this.SpecularHighlight = SpecularHighlight; - this.ReflectanceMethod = ReflectanceMethod; - this.type = 1878645084; - } - } - IFC2X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; - class IfcSweptAreaSolid extends IfcSolidModel { - constructor(expressID, SweptArea, Position) { - super(expressID); - this.SweptArea = SweptArea; - this.Position = Position; - this.type = 2247615214; - } - } - IFC2X32.IfcSweptAreaSolid = IfcSweptAreaSolid; - class IfcSweptDiskSolid extends IfcSolidModel { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { - super(expressID); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 1260650574; - } - } - IFC2X32.IfcSweptDiskSolid = IfcSweptDiskSolid; - class IfcSweptSurface extends IfcSurface { - constructor(expressID, SweptCurve, Position) { - super(expressID); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.type = 230924584; - } - } - IFC2X32.IfcSweptSurface = IfcSweptSurface; - class IfcTShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.WebEdgeRadius = WebEdgeRadius; - this.WebSlope = WebSlope; - this.FlangeSlope = FlangeSlope; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 3071757647; - } - } - IFC2X32.IfcTShapeProfileDef = IfcTShapeProfileDef; - class IfcTerminatorSymbol extends IfcAnnotationSymbolOccurrence { - constructor(expressID, Item, Styles, Name, AnnotatedCurve) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.AnnotatedCurve = AnnotatedCurve; - this.type = 3028897424; - } - } - IFC2X32.IfcTerminatorSymbol = IfcTerminatorSymbol; - class IfcTextLiteral extends IfcGeometricRepresentationItem { - constructor(expressID, Literal, Placement, Path) { - super(expressID); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.type = 4282788508; - } - } - IFC2X32.IfcTextLiteral = IfcTextLiteral; - class IfcTextLiteralWithExtent extends IfcTextLiteral { - constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { - super(expressID, Literal, Placement, Path); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.Extent = Extent; - this.BoxAlignment = BoxAlignment; - this.type = 3124975700; - } - } - IFC2X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; - class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomXDim = BottomXDim; - this.TopXDim = TopXDim; - this.YDim = YDim; - this.TopXOffset = TopXOffset; - this.type = 2715220739; - } - } - IFC2X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; - class IfcTwoDirectionRepeatFactor extends IfcOneDirectionRepeatFactor { - constructor(expressID, RepeatFactor, SecondRepeatFactor) { - super(expressID, RepeatFactor); - this.RepeatFactor = RepeatFactor; - this.SecondRepeatFactor = SecondRepeatFactor; - this.type = 1345879162; - } - } - IFC2X32.IfcTwoDirectionRepeatFactor = IfcTwoDirectionRepeatFactor; - class IfcTypeObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.type = 1628702193; - } - } - IFC2X32.IfcTypeObject = IfcTypeObject; - class IfcTypeProduct extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.type = 2347495698; - } - } - IFC2X32.IfcTypeProduct = IfcTypeProduct; - class IfcUShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope, CentreOfGravityInX) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.FlangeSlope = FlangeSlope; - this.CentreOfGravityInX = CentreOfGravityInX; - this.type = 427810014; - } - } - IFC2X32.IfcUShapeProfileDef = IfcUShapeProfileDef; - class IfcVector extends IfcGeometricRepresentationItem { - constructor(expressID, Orientation, Magnitude) { - super(expressID); - this.Orientation = Orientation; - this.Magnitude = Magnitude; - this.type = 1417489154; - } - } - IFC2X32.IfcVector = IfcVector; - class IfcVertexLoop extends IfcLoop { - constructor(expressID, LoopVertex) { - super(expressID); - this.LoopVertex = LoopVertex; - this.type = 2759199220; - } - } - IFC2X32.IfcVertexLoop = IfcVertexLoop; - class IfcWindowLiningProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.TransomThickness = TransomThickness; - this.MullionThickness = MullionThickness; - this.FirstTransomOffset = FirstTransomOffset; - this.SecondTransomOffset = SecondTransomOffset; - this.FirstMullionOffset = FirstMullionOffset; - this.SecondMullionOffset = SecondMullionOffset; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 336235671; - } - } - IFC2X32.IfcWindowLiningProperties = IfcWindowLiningProperties; - class IfcWindowPanelProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 512836454; - } - } - IFC2X32.IfcWindowPanelProperties = IfcWindowPanelProperties; - class IfcWindowStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ConstructionType = ConstructionType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 1299126871; - } - } - IFC2X32.IfcWindowStyle = IfcWindowStyle; - class IfcZShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.type = 2543172580; - } - } - IFC2X32.IfcZShapeProfileDef = IfcZShapeProfileDef; - class IfcAnnotationCurveOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3288037868; - } - } - IFC2X32.IfcAnnotationCurveOccurrence = IfcAnnotationCurveOccurrence; - class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { - constructor(expressID, OuterBoundary, InnerBoundaries) { - super(expressID); - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 669184980; - } - } - IFC2X32.IfcAnnotationFillArea = IfcAnnotationFillArea; - class IfcAnnotationFillAreaOccurrence extends IfcAnnotationOccurrence { - constructor(expressID, Item, Styles, Name, FillStyleTarget, GlobalOrLocal) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.FillStyleTarget = FillStyleTarget; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 2265737646; - } - } - IFC2X32.IfcAnnotationFillAreaOccurrence = IfcAnnotationFillAreaOccurrence; - class IfcAnnotationSurface extends IfcGeometricRepresentationItem { - constructor(expressID, Item, TextureCoordinates) { - super(expressID); - this.Item = Item; - this.TextureCoordinates = TextureCoordinates; - this.type = 1302238472; - } - } - IFC2X32.IfcAnnotationSurface = IfcAnnotationSurface; - class IfcAxis1Placement extends IfcPlacement { - constructor(expressID, Location, Axis) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.type = 4261334040; - } - } - IFC2X32.IfcAxis1Placement = IfcAxis1Placement; - class IfcAxis2Placement2D extends IfcPlacement { - constructor(expressID, Location, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.RefDirection = RefDirection; - this.type = 3125803723; - } - } - IFC2X32.IfcAxis2Placement2D = IfcAxis2Placement2D; - class IfcAxis2Placement3D extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 2740243338; - } - } - IFC2X32.IfcAxis2Placement3D = IfcAxis2Placement3D; - class IfcBooleanResult extends IfcGeometricRepresentationItem { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 2736907675; - } - } - IFC2X32.IfcBooleanResult = IfcBooleanResult; - class IfcBoundedSurface extends IfcSurface { - constructor(expressID) { - super(expressID); - this.type = 4182860854; - } - } - IFC2X32.IfcBoundedSurface = IfcBoundedSurface; - class IfcBoundingBox extends IfcGeometricRepresentationItem { - constructor(expressID, Corner, XDim, YDim, ZDim) { - super(expressID); - this.Corner = Corner; - this.XDim = XDim; - this.YDim = YDim; - this.ZDim = ZDim; - this.type = 2581212453; - } - } - IFC2X32.IfcBoundingBox = IfcBoundingBox; - class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Enclosure = Enclosure; - this.type = 2713105998; - } - } - IFC2X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; - class IfcCShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius, CentreOfGravityInX) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.WallThickness = WallThickness; - this.Girth = Girth; - this.InternalFilletRadius = InternalFilletRadius; - this.CentreOfGravityInX = CentreOfGravityInX; - this.type = 2898889636; - } - } - IFC2X32.IfcCShapeProfileDef = IfcCShapeProfileDef; - class IfcCartesianPoint extends IfcPoint { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1123145078; - } - } - IFC2X32.IfcCartesianPoint = IfcCartesianPoint; - class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 59481748; - } - } - IFC2X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; - class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 3749851601; - } - } - IFC2X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; - class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Scale2 = Scale2; - this.type = 3486308946; - } - } - IFC2X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; - class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.type = 3331915920; - } - } - IFC2X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; - class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.Scale2 = Scale2; - this.Scale3 = Scale3; - this.type = 1416205885; - } - } - IFC2X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; - class IfcCircleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.type = 1383045692; - } - } - IFC2X32.IfcCircleProfileDef = IfcCircleProfileDef; - class IfcClosedShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2205249479; - } - } - IFC2X32.IfcClosedShell = IfcClosedShell; - class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { - constructor(expressID, Transition, SameSense, ParentCurve) { - super(expressID); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.type = 2485617015; - } - } - IFC2X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; - class IfcCraneRailAShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, BaseWidth2, Radius, HeadWidth, HeadDepth2, HeadDepth3, WebThickness, BaseWidth4, BaseDepth1, BaseDepth2, BaseDepth3, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallHeight = OverallHeight; - this.BaseWidth2 = BaseWidth2; - this.Radius = Radius; - this.HeadWidth = HeadWidth; - this.HeadDepth2 = HeadDepth2; - this.HeadDepth3 = HeadDepth3; - this.WebThickness = WebThickness; - this.BaseWidth4 = BaseWidth4; - this.BaseDepth1 = BaseDepth1; - this.BaseDepth2 = BaseDepth2; - this.BaseDepth3 = BaseDepth3; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 4133800736; - } - } - IFC2X32.IfcCraneRailAShapeProfileDef = IfcCraneRailAShapeProfileDef; - class IfcCraneRailFShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallHeight, HeadWidth, Radius, HeadDepth2, HeadDepth3, WebThickness, BaseDepth1, BaseDepth2, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallHeight = OverallHeight; - this.HeadWidth = HeadWidth; - this.Radius = Radius; - this.HeadDepth2 = HeadDepth2; - this.HeadDepth3 = HeadDepth3; - this.WebThickness = WebThickness; - this.BaseDepth1 = BaseDepth1; - this.BaseDepth2 = BaseDepth2; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 194851669; - } - } - IFC2X32.IfcCraneRailFShapeProfileDef = IfcCraneRailFShapeProfileDef; - class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2506170314; - } - } - IFC2X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; - class IfcCsgSolid extends IfcSolidModel { - constructor(expressID, TreeRootExpression) { - super(expressID); - this.TreeRootExpression = TreeRootExpression; - this.type = 2147822146; - } - } - IFC2X32.IfcCsgSolid = IfcCsgSolid; - class IfcCurve extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2601014836; - } - } - IFC2X32.IfcCurve = IfcCurve; - class IfcCurveBoundedPlane extends IfcBoundedSurface { - constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { - super(expressID); - this.BasisSurface = BasisSurface; - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 2827736869; - } - } - IFC2X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; - class IfcDefinedSymbol extends IfcGeometricRepresentationItem { - constructor(expressID, Definition, Target) { - super(expressID); - this.Definition = Definition; - this.Target = Target; - this.type = 693772133; - } - } - IFC2X32.IfcDefinedSymbol = IfcDefinedSymbol; - class IfcDimensionCurve extends IfcAnnotationCurveOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 606661476; - } - } - IFC2X32.IfcDimensionCurve = IfcDimensionCurve; - class IfcDimensionCurveTerminator extends IfcTerminatorSymbol { - constructor(expressID, Item, Styles, Name, AnnotatedCurve, Role) { - super(expressID, Item, Styles, Name, AnnotatedCurve); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.AnnotatedCurve = AnnotatedCurve; - this.Role = Role; - this.type = 4054601972; - } - } - IFC2X32.IfcDimensionCurveTerminator = IfcDimensionCurveTerminator; - class IfcDirection extends IfcGeometricRepresentationItem { - constructor(expressID, DirectionRatios) { - super(expressID); - this.DirectionRatios = DirectionRatios; - this.type = 32440307; - } - } - IFC2X32.IfcDirection = IfcDirection; - class IfcDoorLiningProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.ThresholdDepth = ThresholdDepth; - this.ThresholdThickness = ThresholdThickness; - this.TransomThickness = TransomThickness; - this.TransomOffset = TransomOffset; - this.LiningOffset = LiningOffset; - this.ThresholdOffset = ThresholdOffset; - this.CasingThickness = CasingThickness; - this.CasingDepth = CasingDepth; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 2963535650; - } - } - IFC2X32.IfcDoorLiningProperties = IfcDoorLiningProperties; - class IfcDoorPanelProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PanelDepth = PanelDepth; - this.PanelOperation = PanelOperation; - this.PanelWidth = PanelWidth; - this.PanelPosition = PanelPosition; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 1714330368; - } - } - IFC2X32.IfcDoorPanelProperties = IfcDoorPanelProperties; - class IfcDoorStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.OperationType = OperationType; - this.ConstructionType = ConstructionType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 526551008; - } - } - IFC2X32.IfcDoorStyle = IfcDoorStyle; - class IfcDraughtingCallout extends IfcGeometricRepresentationItem { - constructor(expressID, Contents) { - super(expressID); - this.Contents = Contents; - this.type = 3073041342; - } - } - IFC2X32.IfcDraughtingCallout = IfcDraughtingCallout; - class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 445594917; - } - } - IFC2X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; - class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4006246654; - } - } - IFC2X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; - class IfcEdgeLoop extends IfcLoop { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 1472233963; - } - } - IFC2X32.IfcEdgeLoop = IfcEdgeLoop; - class IfcElementQuantity extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.MethodOfMeasurement = MethodOfMeasurement; - this.Quantities = Quantities; - this.type = 1883228015; - } - } - IFC2X32.IfcElementQuantity = IfcElementQuantity; - class IfcElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 339256511; - } - } - IFC2X32.IfcElementType = IfcElementType; - class IfcElementarySurface extends IfcSurface { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2777663545; - } - } - IFC2X32.IfcElementarySurface = IfcElementarySurface; - class IfcEllipseProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 2835456948; - } - } - IFC2X32.IfcEllipseProfileDef = IfcEllipseProfileDef; - class IfcEnergyProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.EnergySequence = EnergySequence; - this.UserDefinedEnergySequence = UserDefinedEnergySequence; - this.type = 80994333; - } - } - IFC2X32.IfcEnergyProperties = IfcEnergyProperties; - class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 477187591; - } - } - IFC2X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; - class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, FbsmFaces) { - super(expressID); - this.FbsmFaces = FbsmFaces; - this.type = 2047409740; - } - } - IFC2X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; - class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { - constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { - super(expressID); - this.HatchLineAppearance = HatchLineAppearance; - this.StartOfNextHatchLine = StartOfNextHatchLine; - this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; - this.PatternStart = PatternStart; - this.HatchLineAngle = HatchLineAngle; - this.type = 374418227; - } - } - IFC2X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; - class IfcFillAreaStyleTileSymbolWithStyle extends IfcGeometricRepresentationItem { - constructor(expressID, Symbol2) { - super(expressID); - this.Symbol = Symbol2; - this.type = 4203026998; - } - } - IFC2X32.IfcFillAreaStyleTileSymbolWithStyle = IfcFillAreaStyleTileSymbolWithStyle; - class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { - constructor(expressID, TilingPattern, Tiles, TilingScale) { - super(expressID); - this.TilingPattern = TilingPattern; - this.Tiles = Tiles; - this.TilingScale = TilingScale; - this.type = 315944413; - } - } - IFC2X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; - class IfcFluidFlowProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PropertySource, FlowConditionTimeSeries, VelocityTimeSeries, FlowrateTimeSeries, Fluid, PressureTimeSeries, UserDefinedPropertySource, TemperatureSingleValue, WetBulbTemperatureSingleValue, WetBulbTemperatureTimeSeries, TemperatureTimeSeries, FlowrateSingleValue, FlowConditionSingleValue, VelocitySingleValue, PressureSingleValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PropertySource = PropertySource; - this.FlowConditionTimeSeries = FlowConditionTimeSeries; - this.VelocityTimeSeries = VelocityTimeSeries; - this.FlowrateTimeSeries = FlowrateTimeSeries; - this.Fluid = Fluid; - this.PressureTimeSeries = PressureTimeSeries; - this.UserDefinedPropertySource = UserDefinedPropertySource; - this.TemperatureSingleValue = TemperatureSingleValue; - this.WetBulbTemperatureSingleValue = WetBulbTemperatureSingleValue; - this.WetBulbTemperatureTimeSeries = WetBulbTemperatureTimeSeries; - this.TemperatureTimeSeries = TemperatureTimeSeries; - this.FlowrateSingleValue = FlowrateSingleValue; - this.FlowConditionSingleValue = FlowConditionSingleValue; - this.VelocitySingleValue = VelocitySingleValue; - this.PressureSingleValue = PressureSingleValue; - this.type = 3455213021; - } - } - IFC2X32.IfcFluidFlowProperties = IfcFluidFlowProperties; - class IfcFurnishingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 4238390223; - } - } - IFC2X32.IfcFurnishingElementType = IfcFurnishingElementType; - class IfcFurnitureType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.AssemblyPlace = AssemblyPlace; - this.type = 1268542332; - } - } - IFC2X32.IfcFurnitureType = IfcFurnitureType; - class IfcGeometricCurveSet extends IfcGeometricSet { - constructor(expressID, Elements) { - super(expressID, Elements); - this.Elements = Elements; - this.type = 987898635; - } - } - IFC2X32.IfcGeometricCurveSet = IfcGeometricCurveSet; - class IfcIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.type = 1484403080; - } - } - IFC2X32.IfcIShapeProfileDef = IfcIShapeProfileDef; - class IfcLShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope, CentreOfGravityInX, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.Thickness = Thickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.LegSlope = LegSlope; - this.CentreOfGravityInX = CentreOfGravityInX; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 572779678; - } - } - IFC2X32.IfcLShapeProfileDef = IfcLShapeProfileDef; - class IfcLine extends IfcCurve { - constructor(expressID, Pnt, Dir) { - super(expressID); - this.Pnt = Pnt; - this.Dir = Dir; - this.type = 1281925730; - } - } - IFC2X32.IfcLine = IfcLine; - class IfcManifoldSolidBrep extends IfcSolidModel { - constructor(expressID, Outer) { - super(expressID); - this.Outer = Outer; - this.type = 1425443689; - } - } - IFC2X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; - class IfcObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3888040117; - } - } - IFC2X32.IfcObject = IfcObject; - class IfcOffsetCurve2D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.type = 3388369263; - } - } - IFC2X32.IfcOffsetCurve2D = IfcOffsetCurve2D; - class IfcOffsetCurve3D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.RefDirection = RefDirection; - this.type = 3505215534; - } - } - IFC2X32.IfcOffsetCurve3D = IfcOffsetCurve3D; - class IfcPermeableCoveringProperties extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 3566463478; - } - } - IFC2X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; - class IfcPlanarBox extends IfcPlanarExtent { - constructor(expressID, SizeInX, SizeInY, Placement) { - super(expressID, SizeInX, SizeInY); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.Placement = Placement; - this.type = 603570806; - } - } - IFC2X32.IfcPlanarBox = IfcPlanarBox; - class IfcPlane extends IfcElementarySurface { - constructor(expressID, Position) { - super(expressID, Position); - this.Position = Position; - this.type = 220341763; - } - } - IFC2X32.IfcPlane = IfcPlane; - class IfcProcess extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2945172077; - } - } - IFC2X32.IfcProcess = IfcProcess; - class IfcProduct extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 4208778838; - } - } - IFC2X32.IfcProduct = IfcProduct; - class IfcProject extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 103090709; - } - } - IFC2X32.IfcProject = IfcProject; - class IfcProjectionCurve extends IfcAnnotationCurveOccurrence { - constructor(expressID, Item, Styles, Name) { - super(expressID, Item, Styles, Name); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 4194566429; - } - } - IFC2X32.IfcProjectionCurve = IfcProjectionCurve; - class IfcPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.HasProperties = HasProperties; - this.type = 1451395588; - } - } - IFC2X32.IfcPropertySet = IfcPropertySet; - class IfcProxy extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.ProxyType = ProxyType; - this.Tag = Tag; - this.type = 3219374653; - } - } - IFC2X32.IfcProxy = IfcProxy; - class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.WallThickness = WallThickness; - this.InnerFilletRadius = InnerFilletRadius; - this.OuterFilletRadius = OuterFilletRadius; - this.type = 2770003689; - } - } - IFC2X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; - class IfcRectangularPyramid extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, Height) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.Height = Height; - this.type = 2798486643; - } - } - IFC2X32.IfcRectangularPyramid = IfcRectangularPyramid; - class IfcRectangularTrimmedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { - super(expressID); - this.BasisSurface = BasisSurface; - this.U1 = U1; - this.V1 = V1; - this.U2 = U2; - this.V2 = V2; - this.Usense = Usense; - this.Vsense = Vsense; - this.type = 3454111270; - } - } - IFC2X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; - class IfcRelAssigns extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.type = 3939117080; - } - } - IFC2X32.IfcRelAssigns = IfcRelAssigns; - class IfcRelAssignsToActor extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 1683148259; - } - } - IFC2X32.IfcRelAssignsToActor = IfcRelAssignsToActor; - class IfcRelAssignsToControl extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 2495723537; - } - } - IFC2X32.IfcRelAssignsToControl = IfcRelAssignsToControl; - class IfcRelAssignsToGroup extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.type = 1307041759; - } - } - IFC2X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; - class IfcRelAssignsToProcess extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProcess = RelatingProcess; - this.QuantityInProcess = QuantityInProcess; - this.type = 4278684876; - } - } - IFC2X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; - class IfcRelAssignsToProduct extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProduct = RelatingProduct; - this.type = 2857406711; - } - } - IFC2X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; - class IfcRelAssignsToProjectOrder extends IfcRelAssignsToControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 3372526763; - } - } - IFC2X32.IfcRelAssignsToProjectOrder = IfcRelAssignsToProjectOrder; - class IfcRelAssignsToResource extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingResource = RelatingResource; - this.type = 205026976; - } - } - IFC2X32.IfcRelAssignsToResource = IfcRelAssignsToResource; - class IfcRelAssociates extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 1865459582; - } - } - IFC2X32.IfcRelAssociates = IfcRelAssociates; - class IfcRelAssociatesAppliedValue extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingAppliedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingAppliedValue = RelatingAppliedValue; - this.type = 1327628568; - } - } - IFC2X32.IfcRelAssociatesAppliedValue = IfcRelAssociatesAppliedValue; - class IfcRelAssociatesApproval extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingApproval = RelatingApproval; - this.type = 4095574036; - } - } - IFC2X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; - class IfcRelAssociatesClassification extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingClassification = RelatingClassification; - this.type = 919958153; - } - } - IFC2X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; - class IfcRelAssociatesConstraint extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.Intent = Intent; - this.RelatingConstraint = RelatingConstraint; - this.type = 2728634034; - } - } - IFC2X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; - class IfcRelAssociatesDocument extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingDocument = RelatingDocument; - this.type = 982818633; - } - } - IFC2X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; - class IfcRelAssociatesLibrary extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingLibrary = RelatingLibrary; - this.type = 3840914261; - } - } - IFC2X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; - class IfcRelAssociatesMaterial extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingMaterial = RelatingMaterial; - this.type = 2655215786; - } - } - IFC2X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; - class IfcRelAssociatesProfileProperties extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileProperties, ProfileSectionLocation, ProfileOrientation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingProfileProperties = RelatingProfileProperties; - this.ProfileSectionLocation = ProfileSectionLocation; - this.ProfileOrientation = ProfileOrientation; - this.type = 2851387026; - } - } - IFC2X32.IfcRelAssociatesProfileProperties = IfcRelAssociatesProfileProperties; - class IfcRelConnects extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 826625072; - } - } - IFC2X32.IfcRelConnects = IfcRelConnects; - class IfcRelConnectsElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.type = 1204542856; - } - } - IFC2X32.IfcRelConnectsElements = IfcRelConnectsElements; - class IfcRelConnectsPathElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RelatingPriorities = RelatingPriorities; - this.RelatedPriorities = RelatedPriorities; - this.RelatedConnectionType = RelatedConnectionType; - this.RelatingConnectionType = RelatingConnectionType; - this.type = 3945020480; - } - } - IFC2X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; - class IfcRelConnectsPortToElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedElement = RelatedElement; - this.type = 4201705270; - } - } - IFC2X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; - class IfcRelConnectsPorts extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedPort = RelatedPort; - this.RealizingElement = RealizingElement; - this.type = 3190031847; - } - } - IFC2X32.IfcRelConnectsPorts = IfcRelConnectsPorts; - class IfcRelConnectsStructuralActivity extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralActivity = RelatedStructuralActivity; - this.type = 2127690289; - } - } - IFC2X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; - class IfcRelConnectsStructuralElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralMember) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralMember = RelatedStructuralMember; - this.type = 3912681535; - } - } - IFC2X32.IfcRelConnectsStructuralElement = IfcRelConnectsStructuralElement; - class IfcRelConnectsStructuralMember extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 1638771189; - } - } - IFC2X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; - class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.ConnectionConstraint = ConnectionConstraint; - this.type = 504942748; - } - } - IFC2X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; - class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RealizingElements = RealizingElements; - this.ConnectionType = ConnectionType; - this.type = 3678494232; - } - } - IFC2X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; - class IfcRelContainedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 3242617779; - } - } - IFC2X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; - class IfcRelCoversBldgElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedCoverings = RelatedCoverings; - this.type = 886880790; - } - } - IFC2X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; - class IfcRelCoversSpaces extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedSpace, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedSpace = RelatedSpace; - this.RelatedCoverings = RelatedCoverings; - this.type = 2802773753; - } - } - IFC2X32.IfcRelCoversSpaces = IfcRelCoversSpaces; - class IfcRelDecomposes extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 2551354335; - } - } - IFC2X32.IfcRelDecomposes = IfcRelDecomposes; - class IfcRelDefines extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 693640335; - } - } - IFC2X32.IfcRelDefines = IfcRelDefines; - class IfcRelDefinesByProperties extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.type = 4186316022; - } - } - IFC2X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; - class IfcRelDefinesByType extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingType = RelatingType; - this.type = 781010003; - } - } - IFC2X32.IfcRelDefinesByType = IfcRelDefinesByType; - class IfcRelFillsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingOpeningElement = RelatingOpeningElement; - this.RelatedBuildingElement = RelatedBuildingElement; - this.type = 3940055652; - } - } - IFC2X32.IfcRelFillsElement = IfcRelFillsElement; - class IfcRelFlowControlElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedControlElements = RelatedControlElements; - this.RelatingFlowElement = RelatingFlowElement; - this.type = 279856033; - } - } - IFC2X32.IfcRelFlowControlElements = IfcRelFlowControlElements; - class IfcRelInteractionRequirements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DailyInteraction, ImportanceRating, LocationOfInteraction, RelatedSpaceProgram, RelatingSpaceProgram) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DailyInteraction = DailyInteraction; - this.ImportanceRating = ImportanceRating; - this.LocationOfInteraction = LocationOfInteraction; - this.RelatedSpaceProgram = RelatedSpaceProgram; - this.RelatingSpaceProgram = RelatingSpaceProgram; - this.type = 4189434867; - } - } - IFC2X32.IfcRelInteractionRequirements = IfcRelInteractionRequirements; - class IfcRelNests extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 3268803585; - } - } - IFC2X32.IfcRelNests = IfcRelNests; - class IfcRelOccupiesSpaces extends IfcRelAssignsToActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 2051452291; - } - } - IFC2X32.IfcRelOccupiesSpaces = IfcRelOccupiesSpaces; - class IfcRelOverridesProperties extends IfcRelDefinesByProperties { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition, OverridingProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.OverridingProperties = OverridingProperties; - this.type = 202636808; - } - } - IFC2X32.IfcRelOverridesProperties = IfcRelOverridesProperties; - class IfcRelProjectsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedFeatureElement = RelatedFeatureElement; - this.type = 750771296; - } - } - IFC2X32.IfcRelProjectsElement = IfcRelProjectsElement; - class IfcRelReferencedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 1245217292; - } - } - IFC2X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; - class IfcRelSchedulesCostItems extends IfcRelAssignsToControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 1058617721; - } - } - IFC2X32.IfcRelSchedulesCostItems = IfcRelSchedulesCostItems; - class IfcRelSequence extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingProcess = RelatingProcess; - this.RelatedProcess = RelatedProcess; - this.TimeLag = TimeLag; - this.SequenceType = SequenceType; - this.type = 4122056220; - } - } - IFC2X32.IfcRelSequence = IfcRelSequence; - class IfcRelServicesBuildings extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSystem = RelatingSystem; - this.RelatedBuildings = RelatedBuildings; - this.type = 366585022; - } - } - IFC2X32.IfcRelServicesBuildings = IfcRelServicesBuildings; - class IfcRelSpaceBoundary extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.type = 3451746338; - } - } - IFC2X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; - class IfcRelVoidsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedOpeningElement = RelatedOpeningElement; - this.type = 1401173127; - } - } - IFC2X32.IfcRelVoidsElement = IfcRelVoidsElement; - class IfcResource extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2914609552; - } - } - IFC2X32.IfcResource = IfcResource; - class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.type = 1856042241; - } - } - IFC2X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; - class IfcRightCircularCone extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, BottomRadius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.BottomRadius = BottomRadius; - this.type = 4158566097; - } - } - IFC2X32.IfcRightCircularCone = IfcRightCircularCone; - class IfcRightCircularCylinder extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, Radius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.Radius = Radius; - this.type = 3626867408; - } - } - IFC2X32.IfcRightCircularCylinder = IfcRightCircularCylinder; - class IfcSpatialStructureElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 2706606064; - } - } - IFC2X32.IfcSpatialStructureElement = IfcSpatialStructureElement; - class IfcSpatialStructureElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893378262; - } - } - IFC2X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; - class IfcSphere extends IfcCsgPrimitive3D { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 451544542; - } - } - IFC2X32.IfcSphere = IfcSphere; - class IfcStructuralActivity extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3544373492; - } - } - IFC2X32.IfcStructuralActivity = IfcStructuralActivity; - class IfcStructuralItem extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3136571912; - } - } - IFC2X32.IfcStructuralItem = IfcStructuralItem; - class IfcStructuralMember extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 530289379; - } - } - IFC2X32.IfcStructuralMember = IfcStructuralMember; - class IfcStructuralReaction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3689010777; - } - } - IFC2X32.IfcStructuralReaction = IfcStructuralReaction; - class IfcStructuralSurfaceMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 3979015343; - } - } - IFC2X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; - class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness, SubsequentThickness, VaryingThicknessLocation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.SubsequentThickness = SubsequentThickness; - this.VaryingThicknessLocation = VaryingThicknessLocation; - this.type = 2218152070; - } - } - IFC2X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; - class IfcStructuredDimensionCallout extends IfcDraughtingCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 4070609034; - } - } - IFC2X32.IfcStructuredDimensionCallout = IfcStructuredDimensionCallout; - class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.ReferenceSurface = ReferenceSurface; - this.type = 2028607225; - } - } - IFC2X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; - class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 2809605785; - } - } - IFC2X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; - class IfcSurfaceOfRevolution extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, AxisPosition) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.AxisPosition = AxisPosition; - this.type = 4124788165; - } - } - IFC2X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; - class IfcSystemFurnitureElementType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1580310250; - } - } - IFC2X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; - class IfcTask extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TaskId = TaskId; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.type = 3473067441; - } - } - IFC2X32.IfcTask = IfcTask; - class IfcTransportElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2097647324; - } - } - IFC2X32.IfcTransportElementType = IfcTransportElementType; - class IfcActor extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.type = 2296667514; - } - } - IFC2X32.IfcActor = IfcActor; - class IfcAnnotation extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1674181508; - } - } - IFC2X32.IfcAnnotation = IfcAnnotation; - class IfcAsymmetricIShapeProfileDef extends IfcIShapeProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, CentreOfGravityInY) { - super(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.TopFlangeWidth = TopFlangeWidth; - this.TopFlangeThickness = TopFlangeThickness; - this.TopFlangeFilletRadius = TopFlangeFilletRadius; - this.CentreOfGravityInY = CentreOfGravityInY; - this.type = 3207858831; - } - } - IFC2X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; - class IfcBlock extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, ZLength) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.ZLength = ZLength; - this.type = 1334484129; - } - } - IFC2X32.IfcBlock = IfcBlock; - class IfcBooleanClippingResult extends IfcBooleanResult { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID, Operator, FirstOperand, SecondOperand); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 3649129432; - } - } - IFC2X32.IfcBooleanClippingResult = IfcBooleanClippingResult; - class IfcBoundedCurve extends IfcCurve { - constructor(expressID) { - super(expressID); - this.type = 1260505505; - } - } - IFC2X32.IfcBoundedCurve = IfcBoundedCurve; - class IfcBuilding extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.ElevationOfRefHeight = ElevationOfRefHeight; - this.ElevationOfTerrain = ElevationOfTerrain; - this.BuildingAddress = BuildingAddress; - this.type = 4031249490; - } - } - IFC2X32.IfcBuilding = IfcBuilding; - class IfcBuildingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1950629157; - } - } - IFC2X32.IfcBuildingElementType = IfcBuildingElementType; - class IfcBuildingStorey extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.Elevation = Elevation; - this.type = 3124254112; - } - } - IFC2X32.IfcBuildingStorey = IfcBuildingStorey; - class IfcCircleHollowProfileDef extends IfcCircleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { - super(expressID, ProfileType, ProfileName, Position, Radius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.WallThickness = WallThickness; - this.type = 2937912522; - } - } - IFC2X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; - class IfcColumnType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 300633059; - } - } - IFC2X32.IfcColumnType = IfcColumnType; - class IfcCompositeCurve extends IfcBoundedCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 3732776249; - } - } - IFC2X32.IfcCompositeCurve = IfcCompositeCurve; - class IfcConic extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2510884976; - } - } - IFC2X32.IfcConic = IfcConic; - class IfcConstructionResource extends IfcResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 2559216714; - } - } - IFC2X32.IfcConstructionResource = IfcConstructionResource; - class IfcControl extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3293443760; - } - } - IFC2X32.IfcControl = IfcControl; - class IfcCostItem extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3895139033; - } - } - IFC2X32.IfcCostItem = IfcCostItem; - class IfcCostSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SubmittedBy, PreparedBy, SubmittedOn, Status, TargetUsers, UpdateDate, ID, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.SubmittedBy = SubmittedBy; - this.PreparedBy = PreparedBy; - this.SubmittedOn = SubmittedOn; - this.Status = Status; - this.TargetUsers = TargetUsers; - this.UpdateDate = UpdateDate; - this.ID = ID; - this.PredefinedType = PredefinedType; - this.type = 1419761937; - } - } - IFC2X32.IfcCostSchedule = IfcCostSchedule; - class IfcCoveringType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1916426348; - } - } - IFC2X32.IfcCoveringType = IfcCoveringType; - class IfcCrewResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 3295246426; - } - } - IFC2X32.IfcCrewResource = IfcCrewResource; - class IfcCurtainWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1457835157; - } - } - IFC2X32.IfcCurtainWallType = IfcCurtainWallType; - class IfcDimensionCurveDirectedCallout extends IfcDraughtingCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 681481545; - } - } - IFC2X32.IfcDimensionCurveDirectedCallout = IfcDimensionCurveDirectedCallout; - class IfcDistributionElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3256556792; - } - } - IFC2X32.IfcDistributionElementType = IfcDistributionElementType; - class IfcDistributionFlowElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3849074793; - } - } - IFC2X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; - class IfcElectricalBaseProperties extends IfcEnergyProperties { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence, ElectricCurrentType, InputVoltage, InputFrequency, FullLoadCurrent, MinimumCircuitCurrent, MaximumPowerInput, RatedPowerInput, InputPhase) { - super(expressID, GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.EnergySequence = EnergySequence; - this.UserDefinedEnergySequence = UserDefinedEnergySequence; - this.ElectricCurrentType = ElectricCurrentType; - this.InputVoltage = InputVoltage; - this.InputFrequency = InputFrequency; - this.FullLoadCurrent = FullLoadCurrent; - this.MinimumCircuitCurrent = MinimumCircuitCurrent; - this.MaximumPowerInput = MaximumPowerInput; - this.RatedPowerInput = RatedPowerInput; - this.InputPhase = InputPhase; - this.type = 360485395; - } - } - IFC2X32.IfcElectricalBaseProperties = IfcElectricalBaseProperties; - class IfcElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1758889154; - } - } - IFC2X32.IfcElement = IfcElement; - class IfcElementAssembly extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 4123344466; - } - } - IFC2X32.IfcElementAssembly = IfcElementAssembly; - class IfcElementComponent extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1623761950; - } - } - IFC2X32.IfcElementComponent = IfcElementComponent; - class IfcElementComponentType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2590856083; - } - } - IFC2X32.IfcElementComponentType = IfcElementComponentType; - class IfcEllipse extends IfcConic { - constructor(expressID, Position, SemiAxis1, SemiAxis2) { - super(expressID, Position); - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 1704287377; - } - } - IFC2X32.IfcEllipse = IfcEllipse; - class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2107101300; - } - } - IFC2X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; - class IfcEquipmentElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1962604670; - } - } - IFC2X32.IfcEquipmentElement = IfcEquipmentElement; - class IfcEquipmentStandard extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3272907226; - } - } - IFC2X32.IfcEquipmentStandard = IfcEquipmentStandard; - class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3174744832; - } - } - IFC2X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; - class IfcEvaporatorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3390157468; - } - } - IFC2X32.IfcEvaporatorType = IfcEvaporatorType; - class IfcFacetedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 807026263; - } - } - IFC2X32.IfcFacetedBrep = IfcFacetedBrep; - class IfcFacetedBrepWithVoids extends IfcManifoldSolidBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 3737207727; - } - } - IFC2X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; - class IfcFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 647756555; - } - } - IFC2X32.IfcFastener = IfcFastener; - class IfcFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2489546625; - } - } - IFC2X32.IfcFastenerType = IfcFastenerType; - class IfcFeatureElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2827207264; - } - } - IFC2X32.IfcFeatureElement = IfcFeatureElement; - class IfcFeatureElementAddition extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2143335405; - } - } - IFC2X32.IfcFeatureElementAddition = IfcFeatureElementAddition; - class IfcFeatureElementSubtraction extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1287392070; - } - } - IFC2X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; - class IfcFlowControllerType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3907093117; - } - } - IFC2X32.IfcFlowControllerType = IfcFlowControllerType; - class IfcFlowFittingType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3198132628; - } - } - IFC2X32.IfcFlowFittingType = IfcFlowFittingType; - class IfcFlowMeterType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3815607619; - } - } - IFC2X32.IfcFlowMeterType = IfcFlowMeterType; - class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1482959167; - } - } - IFC2X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; - class IfcFlowSegmentType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1834744321; - } - } - IFC2X32.IfcFlowSegmentType = IfcFlowSegmentType; - class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1339347760; - } - } - IFC2X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; - class IfcFlowTerminalType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2297155007; - } - } - IFC2X32.IfcFlowTerminalType = IfcFlowTerminalType; - class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3009222698; - } - } - IFC2X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; - class IfcFurnishingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 263784265; - } - } - IFC2X32.IfcFurnishingElement = IfcFurnishingElement; - class IfcFurnitureStandard extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 814719939; - } - } - IFC2X32.IfcFurnitureStandard = IfcFurnitureStandard; - class IfcGasTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 200128114; - } - } - IFC2X32.IfcGasTerminalType = IfcGasTerminalType; - class IfcGrid extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.UAxes = UAxes; - this.VAxes = VAxes; - this.WAxes = WAxes; - this.type = 3009204131; - } - } - IFC2X32.IfcGrid = IfcGrid; - class IfcGroup extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2706460486; - } - } - IFC2X32.IfcGroup = IfcGroup; - class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1251058090; - } - } - IFC2X32.IfcHeatExchangerType = IfcHeatExchangerType; - class IfcHumidifierType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1806887404; - } - } - IFC2X32.IfcHumidifierType = IfcHumidifierType; - class IfcInventory extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, InventoryType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.InventoryType = InventoryType; - this.Jurisdiction = Jurisdiction; - this.ResponsiblePersons = ResponsiblePersons; - this.LastUpdateDate = LastUpdateDate; - this.CurrentValue = CurrentValue; - this.OriginalValue = OriginalValue; - this.type = 2391368822; - } - } - IFC2X32.IfcInventory = IfcInventory; - class IfcJunctionBoxType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4288270099; - } - } - IFC2X32.IfcJunctionBoxType = IfcJunctionBoxType; - class IfcLaborResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SkillSet) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.SkillSet = SkillSet; - this.type = 3827777499; - } - } - IFC2X32.IfcLaborResource = IfcLaborResource; - class IfcLampType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1051575348; - } - } - IFC2X32.IfcLampType = IfcLampType; - class IfcLightFixtureType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1161773419; - } - } - IFC2X32.IfcLightFixtureType = IfcLightFixtureType; - class IfcLinearDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 2506943328; - } - } - IFC2X32.IfcLinearDimension = IfcLinearDimension; - class IfcMechanicalFastener extends IfcFastener { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.type = 377706215; - } - } - IFC2X32.IfcMechanicalFastener = IfcMechanicalFastener; - class IfcMechanicalFastenerType extends IfcFastenerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2108223431; - } - } - IFC2X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; - class IfcMemberType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3181161470; - } - } - IFC2X32.IfcMemberType = IfcMemberType; - class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 977012517; - } - } - IFC2X32.IfcMotorConnectionType = IfcMotorConnectionType; - class IfcMove extends IfcTask { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, MoveFrom, MoveTo, PunchList) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TaskId = TaskId; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.MoveFrom = MoveFrom; - this.MoveTo = MoveTo; - this.PunchList = PunchList; - this.type = 1916936684; - } - } - IFC2X32.IfcMove = IfcMove; - class IfcOccupant extends IfcActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.PredefinedType = PredefinedType; - this.type = 4143007308; - } - } - IFC2X32.IfcOccupant = IfcOccupant; - class IfcOpeningElement extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3588315303; - } - } - IFC2X32.IfcOpeningElement = IfcOpeningElement; - class IfcOrderAction extends IfcTask { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, ActionID) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TaskId = TaskId; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.ActionID = ActionID; - this.type = 3425660407; - } - } - IFC2X32.IfcOrderAction = IfcOrderAction; - class IfcOutletType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2837617999; - } - } - IFC2X32.IfcOutletType = IfcOutletType; - class IfcPerformanceHistory extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LifeCyclePhase) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LifeCyclePhase = LifeCyclePhase; - this.type = 2382730787; - } - } - IFC2X32.IfcPerformanceHistory = IfcPerformanceHistory; - class IfcPermit extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PermitID) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PermitID = PermitID; - this.type = 3327091369; - } - } - IFC2X32.IfcPermit = IfcPermit; - class IfcPipeFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 804291784; - } - } - IFC2X32.IfcPipeFittingType = IfcPipeFittingType; - class IfcPipeSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4231323485; - } - } - IFC2X32.IfcPipeSegmentType = IfcPipeSegmentType; - class IfcPlateType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4017108033; - } - } - IFC2X32.IfcPlateType = IfcPlateType; - class IfcPolyline extends IfcBoundedCurve { - constructor(expressID, Points) { - super(expressID); - this.Points = Points; - this.type = 3724593414; - } - } - IFC2X32.IfcPolyline = IfcPolyline; - class IfcPort extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3740093272; - } - } - IFC2X32.IfcPort = IfcPort; - class IfcProcedure extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ProcedureID, ProcedureType, UserDefinedProcedureType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ProcedureID = ProcedureID; - this.ProcedureType = ProcedureType; - this.UserDefinedProcedureType = UserDefinedProcedureType; - this.type = 2744685151; - } - } - IFC2X32.IfcProcedure = IfcProcedure; - class IfcProjectOrder extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ID, PredefinedType, Status) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ID = ID; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.type = 2904328755; - } - } - IFC2X32.IfcProjectOrder = IfcProjectOrder; - class IfcProjectOrderRecord extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Records, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Records = Records; - this.PredefinedType = PredefinedType; - this.type = 3642467123; - } - } - IFC2X32.IfcProjectOrderRecord = IfcProjectOrderRecord; - class IfcProjectionElement extends IfcFeatureElementAddition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3651124850; - } - } - IFC2X32.IfcProjectionElement = IfcProjectionElement; - class IfcProtectiveDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1842657554; - } - } - IFC2X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; - class IfcPumpType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2250791053; - } - } - IFC2X32.IfcPumpType = IfcPumpType; - class IfcRadiusDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 3248260540; - } - } - IFC2X32.IfcRadiusDimension = IfcRadiusDimension; - class IfcRailingType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2893384427; - } - } - IFC2X32.IfcRailingType = IfcRailingType; - class IfcRampFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2324767716; - } - } - IFC2X32.IfcRampFlightType = IfcRampFlightType; - class IfcRelAggregates extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 160246688; - } - } - IFC2X32.IfcRelAggregates = IfcRelAggregates; - class IfcRelAssignsTasks extends IfcRelAssignsToControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl, TimeForTask) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.TimeForTask = TimeForTask; - this.type = 2863920197; - } - } - IFC2X32.IfcRelAssignsTasks = IfcRelAssignsTasks; - class IfcSanitaryTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1768891740; - } - } - IFC2X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; - class IfcScheduleTimeControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ActualStart, EarlyStart, LateStart, ScheduleStart, ActualFinish, EarlyFinish, LateFinish, ScheduleFinish, ScheduleDuration, ActualDuration, RemainingTime, FreeFloat, TotalFloat, IsCritical, StatusTime, StartFloat, FinishFloat, Completion) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ActualStart = ActualStart; - this.EarlyStart = EarlyStart; - this.LateStart = LateStart; - this.ScheduleStart = ScheduleStart; - this.ActualFinish = ActualFinish; - this.EarlyFinish = EarlyFinish; - this.LateFinish = LateFinish; - this.ScheduleFinish = ScheduleFinish; - this.ScheduleDuration = ScheduleDuration; - this.ActualDuration = ActualDuration; - this.RemainingTime = RemainingTime; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.StartFloat = StartFloat; - this.FinishFloat = FinishFloat; - this.Completion = Completion; - this.type = 3517283431; - } - } - IFC2X32.IfcScheduleTimeControl = IfcScheduleTimeControl; - class IfcServiceLife extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ServiceLifeType, ServiceLifeDuration) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ServiceLifeType = ServiceLifeType; - this.ServiceLifeDuration = ServiceLifeDuration; - this.type = 4105383287; - } - } - IFC2X32.IfcServiceLife = IfcServiceLife; - class IfcSite extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.RefLatitude = RefLatitude; - this.RefLongitude = RefLongitude; - this.RefElevation = RefElevation; - this.LandTitleNumber = LandTitleNumber; - this.SiteAddress = SiteAddress; - this.type = 4097777520; - } - } - IFC2X32.IfcSite = IfcSite; - class IfcSlabType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2533589738; - } - } - IFC2X32.IfcSlabType = IfcSlabType; - class IfcSpace extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, InteriorOrExteriorSpace, ElevationWithFlooring) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.InteriorOrExteriorSpace = InteriorOrExteriorSpace; - this.ElevationWithFlooring = ElevationWithFlooring; - this.type = 3856911033; - } - } - IFC2X32.IfcSpace = IfcSpace; - class IfcSpaceHeaterType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1305183839; - } - } - IFC2X32.IfcSpaceHeaterType = IfcSpaceHeaterType; - class IfcSpaceProgram extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, SpaceProgramIdentifier, MaxRequiredArea, MinRequiredArea, RequestedLocation, StandardRequiredArea) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.SpaceProgramIdentifier = SpaceProgramIdentifier; - this.MaxRequiredArea = MaxRequiredArea; - this.MinRequiredArea = MinRequiredArea; - this.RequestedLocation = RequestedLocation; - this.StandardRequiredArea = StandardRequiredArea; - this.type = 652456506; - } - } - IFC2X32.IfcSpaceProgram = IfcSpaceProgram; - class IfcSpaceType extends IfcSpatialStructureElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3812236995; - } - } - IFC2X32.IfcSpaceType = IfcSpaceType; - class IfcStackTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3112655638; - } - } - IFC2X32.IfcStackTerminalType = IfcStackTerminalType; - class IfcStairFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1039846685; - } - } - IFC2X32.IfcStairFlightType = IfcStairFlightType; - class IfcStructuralAction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.type = 682877961; - } - } - IFC2X32.IfcStructuralAction = IfcStructuralAction; - class IfcStructuralConnection extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1179482911; - } - } - IFC2X32.IfcStructuralConnection = IfcStructuralConnection; - class IfcStructuralCurveConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 4243806635; - } - } - IFC2X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; - class IfcStructuralCurveMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 214636428; - } - } - IFC2X32.IfcStructuralCurveMember = IfcStructuralCurveMember; - class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 2445595289; - } - } - IFC2X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; - class IfcStructuralLinearAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.type = 1807405624; - } - } - IFC2X32.IfcStructuralLinearAction = IfcStructuralLinearAction; - class IfcStructuralLinearActionVarying extends IfcStructuralLinearAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; - this.SubsequentAppliedLoads = SubsequentAppliedLoads; - this.type = 1721250024; - } - } - IFC2X32.IfcStructuralLinearActionVarying = IfcStructuralLinearActionVarying; - class IfcStructuralLoadGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.type = 1252848954; - } - } - IFC2X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; - class IfcStructuralPlanarAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.type = 1621171031; - } - } - IFC2X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; - class IfcStructuralPlanarActionVarying extends IfcStructuralPlanarAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.ProjectedOrTrue = ProjectedOrTrue; - this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation; - this.SubsequentAppliedLoads = SubsequentAppliedLoads; - this.type = 3987759626; - } - } - IFC2X32.IfcStructuralPlanarActionVarying = IfcStructuralPlanarActionVarying; - class IfcStructuralPointAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.CausedBy = CausedBy; - this.type = 2082059205; - } - } - IFC2X32.IfcStructuralPointAction = IfcStructuralPointAction; - class IfcStructuralPointConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 734778138; - } - } - IFC2X32.IfcStructuralPointConnection = IfcStructuralPointConnection; - class IfcStructuralPointReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 1235345126; - } - } - IFC2X32.IfcStructuralPointReaction = IfcStructuralPointReaction; - class IfcStructuralResultGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheoryType = TheoryType; - this.ResultForLoadGroup = ResultForLoadGroup; - this.IsLinear = IsLinear; - this.type = 2986769608; - } - } - IFC2X32.IfcStructuralResultGroup = IfcStructuralResultGroup; - class IfcStructuralSurfaceConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1975003073; - } - } - IFC2X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; - class IfcSubContractResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SubContractor, JobDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.SubContractor = SubContractor; - this.JobDescription = JobDescription; - this.type = 148013059; - } - } - IFC2X32.IfcSubContractResource = IfcSubContractResource; - class IfcSwitchingDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2315554128; - } - } - IFC2X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; - class IfcSystem extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2254336722; - } - } - IFC2X32.IfcSystem = IfcSystem; - class IfcTankType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 5716631; - } - } - IFC2X32.IfcTankType = IfcTankType; - class IfcTimeSeriesSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ApplicableDates, TimeSeriesScheduleType, TimeSeries) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ApplicableDates = ApplicableDates; - this.TimeSeriesScheduleType = TimeSeriesScheduleType; - this.TimeSeries = TimeSeries; - this.type = 1637806684; - } - } - IFC2X32.IfcTimeSeriesSchedule = IfcTimeSeriesSchedule; - class IfcTransformerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1692211062; - } - } - IFC2X32.IfcTransformerType = IfcTransformerType; - class IfcTransportElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OperationType, CapacityByWeight, CapacityByNumber) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OperationType = OperationType; - this.CapacityByWeight = CapacityByWeight; - this.CapacityByNumber = CapacityByNumber; - this.type = 1620046519; - } - } - IFC2X32.IfcTransportElement = IfcTransportElement; - class IfcTrimmedCurve extends IfcBoundedCurve { - constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Trim1 = Trim1; - this.Trim2 = Trim2; - this.SenseAgreement = SenseAgreement; - this.MasterRepresentation = MasterRepresentation; - this.type = 3593883385; - } - } - IFC2X32.IfcTrimmedCurve = IfcTrimmedCurve; - class IfcTubeBundleType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1600972822; - } - } - IFC2X32.IfcTubeBundleType = IfcTubeBundleType; - class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1911125066; - } - } - IFC2X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; - class IfcValveType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 728799441; - } - } - IFC2X32.IfcValveType = IfcValveType; - class IfcVirtualElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2769231204; - } - } - IFC2X32.IfcVirtualElement = IfcVirtualElement; - class IfcWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1898987631; - } - } - IFC2X32.IfcWallType = IfcWallType; - class IfcWasteTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1133259667; - } - } - IFC2X32.IfcWasteTerminalType = IfcWasteTerminalType; - class IfcWorkControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identifier = Identifier; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.WorkControlType = WorkControlType; - this.UserDefinedControlType = UserDefinedControlType; - this.type = 1028945134; - } - } - IFC2X32.IfcWorkControl = IfcWorkControl; - class IfcWorkPlan extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identifier = Identifier; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.WorkControlType = WorkControlType; - this.UserDefinedControlType = UserDefinedControlType; - this.type = 4218914973; - } - } - IFC2X32.IfcWorkPlan = IfcWorkPlan; - class IfcWorkSchedule extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identifier = Identifier; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.WorkControlType = WorkControlType; - this.UserDefinedControlType = UserDefinedControlType; - this.type = 3342526732; - } - } - IFC2X32.IfcWorkSchedule = IfcWorkSchedule; - class IfcZone extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 1033361043; - } - } - IFC2X32.IfcZone = IfcZone; - class Ifc2DCompositeCurve extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 1213861670; - } - } - IFC2X32.Ifc2DCompositeCurve = Ifc2DCompositeCurve; - class IfcActionRequest extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, RequestID) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.RequestID = RequestID; - this.type = 3821786052; - } - } - IFC2X32.IfcActionRequest = IfcActionRequest; - class IfcAirTerminalBoxType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1411407467; - } - } - IFC2X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; - class IfcAirTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3352864051; - } - } - IFC2X32.IfcAirTerminalType = IfcAirTerminalType; - class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1871374353; - } - } - IFC2X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; - class IfcAngularDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 2470393545; - } - } - IFC2X32.IfcAngularDimension = IfcAngularDimension; - class IfcAsset extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, AssetID, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.AssetID = AssetID; - this.OriginalValue = OriginalValue; - this.CurrentValue = CurrentValue; - this.TotalReplacementCost = TotalReplacementCost; - this.Owner = Owner; - this.User = User; - this.ResponsiblePerson = ResponsiblePerson; - this.IncorporationDate = IncorporationDate; - this.DepreciatedValue = DepreciatedValue; - this.type = 3460190687; - } - } - IFC2X32.IfcAsset = IfcAsset; - class IfcBSplineCurve extends IfcBoundedCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1967976161; - } - } - IFC2X32.IfcBSplineCurve = IfcBSplineCurve; - class IfcBeamType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 819618141; - } - } - IFC2X32.IfcBeamType = IfcBeamType; - class IfcBezierCurve extends IfcBSplineCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1916977116; - } - } - IFC2X32.IfcBezierCurve = IfcBezierCurve; - class IfcBoilerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 231477066; - } - } - IFC2X32.IfcBoilerType = IfcBoilerType; - class IfcBuildingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3299480353; - } - } - IFC2X32.IfcBuildingElement = IfcBuildingElement; - class IfcBuildingElementComponent extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 52481810; - } - } - IFC2X32.IfcBuildingElementComponent = IfcBuildingElementComponent; - class IfcBuildingElementPart extends IfcBuildingElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2979338954; - } - } - IFC2X32.IfcBuildingElementPart = IfcBuildingElementPart; - class IfcBuildingElementProxy extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.CompositionType = CompositionType; - this.type = 1095909175; - } - } - IFC2X32.IfcBuildingElementProxy = IfcBuildingElementProxy; - class IfcBuildingElementProxyType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1909888760; - } - } - IFC2X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; - class IfcCableCarrierFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 395041908; - } - } - IFC2X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; - class IfcCableCarrierSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3293546465; - } - } - IFC2X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; - class IfcCableSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1285652485; - } - } - IFC2X32.IfcCableSegmentType = IfcCableSegmentType; - class IfcChillerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2951183804; - } - } - IFC2X32.IfcChillerType = IfcChillerType; - class IfcCircle extends IfcConic { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 2611217952; - } - } - IFC2X32.IfcCircle = IfcCircle; - class IfcCoilType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2301859152; - } - } - IFC2X32.IfcCoilType = IfcCoilType; - class IfcColumn extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 843113511; - } - } - IFC2X32.IfcColumn = IfcColumn; - class IfcCompressorType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3850581409; - } - } - IFC2X32.IfcCompressorType = IfcCompressorType; - class IfcCondenserType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2816379211; - } - } - IFC2X32.IfcCondenserType = IfcCondenserType; - class IfcCondition extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2188551683; - } - } - IFC2X32.IfcCondition = IfcCondition; - class IfcConditionCriterion extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Criterion, CriterionDateTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Criterion = Criterion; - this.CriterionDateTime = CriterionDateTime; - this.type = 1163958913; - } - } - IFC2X32.IfcConditionCriterion = IfcConditionCriterion; - class IfcConstructionEquipmentResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 3898045240; - } - } - IFC2X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; - class IfcConstructionMaterialResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, Suppliers, UsageRatio) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.Suppliers = Suppliers; - this.UsageRatio = UsageRatio; - this.type = 1060000209; - } - } - IFC2X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; - class IfcConstructionProductResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ResourceIdentifier = ResourceIdentifier; - this.ResourceGroup = ResourceGroup; - this.ResourceConsumption = ResourceConsumption; - this.BaseQuantity = BaseQuantity; - this.type = 488727124; - } - } - IFC2X32.IfcConstructionProductResource = IfcConstructionProductResource; - class IfcCooledBeamType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 335055490; - } - } - IFC2X32.IfcCooledBeamType = IfcCooledBeamType; - class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2954562838; - } - } - IFC2X32.IfcCoolingTowerType = IfcCoolingTowerType; - class IfcCovering extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1973544240; - } - } - IFC2X32.IfcCovering = IfcCovering; - class IfcCurtainWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3495092785; - } - } - IFC2X32.IfcCurtainWall = IfcCurtainWall; - class IfcDamperType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3961806047; - } - } - IFC2X32.IfcDamperType = IfcDamperType; - class IfcDiameterDimension extends IfcDimensionCurveDirectedCallout { - constructor(expressID, Contents) { - super(expressID, Contents); - this.Contents = Contents; - this.type = 4147604152; - } - } - IFC2X32.IfcDiameterDimension = IfcDiameterDimension; - class IfcDiscreteAccessory extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1335981549; - } - } - IFC2X32.IfcDiscreteAccessory = IfcDiscreteAccessory; - class IfcDiscreteAccessoryType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2635815018; - } - } - IFC2X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; - class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1599208980; - } - } - IFC2X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; - class IfcDistributionControlElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2063403501; - } - } - IFC2X32.IfcDistributionControlElementType = IfcDistributionControlElementType; - class IfcDistributionElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1945004755; - } - } - IFC2X32.IfcDistributionElement = IfcDistributionElement; - class IfcDistributionFlowElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3040386961; - } - } - IFC2X32.IfcDistributionFlowElement = IfcDistributionFlowElement; - class IfcDistributionPort extends IfcPort { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.FlowDirection = FlowDirection; - this.type = 3041715199; - } - } - IFC2X32.IfcDistributionPort = IfcDistributionPort; - class IfcDoor extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.type = 395920057; - } - } - IFC2X32.IfcDoor = IfcDoor; - class IfcDuctFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 869906466; - } - } - IFC2X32.IfcDuctFittingType = IfcDuctFittingType; - class IfcDuctSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3760055223; - } - } - IFC2X32.IfcDuctSegmentType = IfcDuctSegmentType; - class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2030761528; - } - } - IFC2X32.IfcDuctSilencerType = IfcDuctSilencerType; - class IfcEdgeFeature extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.FeatureLength = FeatureLength; - this.type = 855621170; - } - } - IFC2X32.IfcEdgeFeature = IfcEdgeFeature; - class IfcElectricApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 663422040; - } - } - IFC2X32.IfcElectricApplianceType = IfcElectricApplianceType; - class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3277789161; - } - } - IFC2X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; - class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1534661035; - } - } - IFC2X32.IfcElectricGeneratorType = IfcElectricGeneratorType; - class IfcElectricHeaterType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1365060375; - } - } - IFC2X32.IfcElectricHeaterType = IfcElectricHeaterType; - class IfcElectricMotorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1217240411; - } - } - IFC2X32.IfcElectricMotorType = IfcElectricMotorType; - class IfcElectricTimeControlType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 712377611; - } - } - IFC2X32.IfcElectricTimeControlType = IfcElectricTimeControlType; - class IfcElectricalCircuit extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 1634875225; - } - } - IFC2X32.IfcElectricalCircuit = IfcElectricalCircuit; - class IfcElectricalElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 857184966; - } - } - IFC2X32.IfcElectricalElement = IfcElectricalElement; - class IfcEnergyConversionDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1658829314; - } - } - IFC2X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; - class IfcFanType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 346874300; - } - } - IFC2X32.IfcFanType = IfcFanType; - class IfcFilterType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1810631287; - } - } - IFC2X32.IfcFilterType = IfcFilterType; - class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4222183408; - } - } - IFC2X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; - class IfcFlowController extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2058353004; - } - } - IFC2X32.IfcFlowController = IfcFlowController; - class IfcFlowFitting extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4278956645; - } - } - IFC2X32.IfcFlowFitting = IfcFlowFitting; - class IfcFlowInstrumentType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4037862832; - } - } - IFC2X32.IfcFlowInstrumentType = IfcFlowInstrumentType; - class IfcFlowMovingDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3132237377; - } - } - IFC2X32.IfcFlowMovingDevice = IfcFlowMovingDevice; - class IfcFlowSegment extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 987401354; - } - } - IFC2X32.IfcFlowSegment = IfcFlowSegment; - class IfcFlowStorageDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 707683696; - } - } - IFC2X32.IfcFlowStorageDevice = IfcFlowStorageDevice; - class IfcFlowTerminal extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2223149337; - } - } - IFC2X32.IfcFlowTerminal = IfcFlowTerminal; - class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3508470533; - } - } - IFC2X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; - class IfcFooting extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 900683007; - } - } - IFC2X32.IfcFooting = IfcFooting; - class IfcMember extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1073191201; - } - } - IFC2X32.IfcMember = IfcMember; - class IfcPile extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.ConstructionType = ConstructionType; - this.type = 1687234759; - } - } - IFC2X32.IfcPile = IfcPile; - class IfcPlate extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3171933400; - } - } - IFC2X32.IfcPlate = IfcPlate; - class IfcRailing extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2262370178; - } - } - IFC2X32.IfcRailing = IfcRailing; - class IfcRamp extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ShapeType = ShapeType; - this.type = 3024970846; - } - } - IFC2X32.IfcRamp = IfcRamp; - class IfcRampFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3283111854; - } - } - IFC2X32.IfcRampFlight = IfcRampFlight; - class IfcRationalBezierCurve extends IfcBezierCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, WeightsData) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.WeightsData = WeightsData; - this.type = 3055160366; - } - } - IFC2X32.IfcRationalBezierCurve = IfcRationalBezierCurve; - class IfcReinforcingElement extends IfcBuildingElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 3027567501; - } - } - IFC2X32.IfcReinforcingElement = IfcReinforcingElement; - class IfcReinforcingMesh extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.type = 2320036040; - } - } - IFC2X32.IfcReinforcingMesh = IfcReinforcingMesh; - class IfcRoof extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ShapeType = ShapeType; - this.type = 2016517767; - } - } - IFC2X32.IfcRoof = IfcRoof; - class IfcRoundedEdgeFeature extends IfcEdgeFeature { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Radius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.FeatureLength = FeatureLength; - this.Radius = Radius; - this.type = 1376911519; - } - } - IFC2X32.IfcRoundedEdgeFeature = IfcRoundedEdgeFeature; - class IfcSensorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1783015770; - } - } - IFC2X32.IfcSensorType = IfcSensorType; - class IfcSlab extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1529196076; - } - } - IFC2X32.IfcSlab = IfcSlab; - class IfcStair extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ShapeType = ShapeType; - this.type = 331165859; - } - } - IFC2X32.IfcStair = IfcStair; - class IfcStairFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRiser, NumberOfTreads, RiserHeight, TreadLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NumberOfRiser = NumberOfRiser; - this.NumberOfTreads = NumberOfTreads; - this.RiserHeight = RiserHeight; - this.TreadLength = TreadLength; - this.type = 4252922144; - } - } - IFC2X32.IfcStairFlight = IfcStairFlight; - class IfcStructuralAnalysisModel extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.OrientationOf2DPlane = OrientationOf2DPlane; - this.LoadedBy = LoadedBy; - this.HasResults = HasResults; - this.type = 2515109513; - } - } - IFC2X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; - class IfcTendon extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.TensionForce = TensionForce; - this.PreStress = PreStress; - this.FrictionCoefficient = FrictionCoefficient; - this.AnchorageSlip = AnchorageSlip; - this.MinCurvatureRadius = MinCurvatureRadius; - this.type = 3824725483; - } - } - IFC2X32.IfcTendon = IfcTendon; - class IfcTendonAnchor extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 2347447852; - } - } - IFC2X32.IfcTendonAnchor = IfcTendonAnchor; - class IfcVibrationIsolatorType extends IfcDiscreteAccessoryType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3313531582; - } - } - IFC2X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; - class IfcWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2391406946; - } - } - IFC2X32.IfcWall = IfcWall; - class IfcWallStandardCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3512223829; - } - } - IFC2X32.IfcWallStandardCase = IfcWallStandardCase; - class IfcWindow extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.type = 3304561284; - } - } - IFC2X32.IfcWindow = IfcWindow; - class IfcActuatorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2874132201; - } - } - IFC2X32.IfcActuatorType = IfcActuatorType; - class IfcAlarmType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3001207471; - } - } - IFC2X32.IfcAlarmType = IfcAlarmType; - class IfcBeam extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 753842376; - } - } - IFC2X32.IfcBeam = IfcBeam; - class IfcChamferEdgeFeature extends IfcEdgeFeature { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Width, Height) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.FeatureLength = FeatureLength; - this.Width = Width; - this.Height = Height; - this.type = 2454782716; - } - } - IFC2X32.IfcChamferEdgeFeature = IfcChamferEdgeFeature; - class IfcControllerType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 578613899; - } - } - IFC2X32.IfcControllerType = IfcControllerType; - class IfcDistributionChamberElement extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1052013943; - } - } - IFC2X32.IfcDistributionChamberElement = IfcDistributionChamberElement; - class IfcDistributionControlElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ControlElementId) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.ControlElementId = ControlElementId; - this.type = 1062813311; - } - } - IFC2X32.IfcDistributionControlElement = IfcDistributionControlElement; - class IfcElectricDistributionPoint extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, DistributionPointFunction, UserDefinedFunction) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.DistributionPointFunction = DistributionPointFunction; - this.UserDefinedFunction = UserDefinedFunction; - this.type = 3700593921; - } - } - IFC2X32.IfcElectricDistributionPoint = IfcElectricDistributionPoint; - class IfcReinforcingBar extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, BarRole, BarSurface) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.BarRole = BarRole; - this.BarSurface = BarSurface; - this.type = 979691226; - } - } - IFC2X32.IfcReinforcingBar = IfcReinforcingBar; - })(IFC2X3 || (IFC2X3 = {})); - var IFC4; - (function(IFC42) { - class IfcAbsorbedDoseMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; - class IfcAccelerationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAccelerationMeasure = IfcAccelerationMeasure; - class IfcAmountOfSubstanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; - class IfcAngularVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; - class IfcArcIndex { - constructor(value) { - this.value = value; - } - } - IFC42.IfcArcIndex = IfcArcIndex; - class IfcAreaDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAreaDensityMeasure = IfcAreaDensityMeasure; - class IfcAreaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcAreaMeasure = IfcAreaMeasure; - class IfcBinary { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcBinary = IfcBinary; - class IfcBoolean { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC42.IfcBoolean = IfcBoolean; - class IfcBoxAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcBoxAlignment = IfcBoxAlignment; - class IfcCardinalPointReference { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcCardinalPointReference = IfcCardinalPointReference; - class IfcComplexNumber { - constructor(value) { - this.value = value; - } - } - IFC42.IfcComplexNumber = IfcComplexNumber; - class IfcCompoundPlaneAngleMeasure { - constructor(value) { - this.value = value; - } - } - IFC42.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; - class IfcContextDependentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcContextDependentMeasure = IfcContextDependentMeasure; - class IfcCountMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcCountMeasure = IfcCountMeasure; - class IfcCurvatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcCurvatureMeasure = IfcCurvatureMeasure; - class IfcDate { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcDate = IfcDate; - class IfcDateTime { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcDateTime = IfcDateTime; - class IfcDayInMonthNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDayInMonthNumber = IfcDayInMonthNumber; - class IfcDayInWeekNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDayInWeekNumber = IfcDayInWeekNumber; - class IfcDescriptiveMeasure { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcDescriptiveMeasure = IfcDescriptiveMeasure; - class IfcDimensionCount { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDimensionCount = IfcDimensionCount; - class IfcDoseEquivalentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; - class IfcDuration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcDuration = IfcDuration; - class IfcDynamicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; - class IfcElectricCapacitanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; - class IfcElectricChargeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricChargeMeasure = IfcElectricChargeMeasure; - class IfcElectricConductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; - class IfcElectricCurrentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; - class IfcElectricResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; - class IfcElectricVoltageMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; - class IfcEnergyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcEnergyMeasure = IfcEnergyMeasure; - class IfcFontStyle { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcFontStyle = IfcFontStyle; - class IfcFontVariant { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcFontVariant = IfcFontVariant; - class IfcFontWeight { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcFontWeight = IfcFontWeight; - class IfcForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcForceMeasure = IfcForceMeasure; - class IfcFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcFrequencyMeasure = IfcFrequencyMeasure; - class IfcGloballyUniqueId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcGloballyUniqueId = IfcGloballyUniqueId; - class IfcHeatFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; - class IfcHeatingValueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcHeatingValueMeasure = IfcHeatingValueMeasure; - class IfcIdentifier { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcIdentifier = IfcIdentifier; - class IfcIlluminanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcIlluminanceMeasure = IfcIlluminanceMeasure; - class IfcInductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcInductanceMeasure = IfcInductanceMeasure; - class IfcInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcInteger = IfcInteger; - class IfcIntegerCountRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; - class IfcIonConcentrationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; - class IfcIsothermalMoistureCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; - class IfcKinematicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; - class IfcLabel { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcLabel = IfcLabel; - class IfcLanguageId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcLanguageId = IfcLanguageId; - class IfcLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLengthMeasure = IfcLengthMeasure; - class IfcLineIndex { - constructor(value) { - this.value = value; - } - } - IFC42.IfcLineIndex = IfcLineIndex; - class IfcLinearForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLinearForceMeasure = IfcLinearForceMeasure; - class IfcLinearMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLinearMomentMeasure = IfcLinearMomentMeasure; - class IfcLinearStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; - class IfcLinearVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; - class IfcLogical { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC42.IfcLogical = IfcLogical; - class IfcLuminousFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; - class IfcLuminousIntensityDistributionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; - class IfcLuminousIntensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; - class IfcMagneticFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; - class IfcMagneticFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; - class IfcMassDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMassDensityMeasure = IfcMassDensityMeasure; - class IfcMassFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; - class IfcMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMassMeasure = IfcMassMeasure; - class IfcMassPerLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; - class IfcModulusOfElasticityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; - class IfcModulusOfLinearSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; - class IfcModulusOfRotationalSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; - class IfcModulusOfSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; - class IfcMoistureDiffusivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; - class IfcMolecularWeightMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; - class IfcMomentOfInertiaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; - class IfcMonetaryMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMonetaryMeasure = IfcMonetaryMeasure; - class IfcMonthInYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcMonthInYearNumber = IfcMonthInYearNumber; - class IfcNonNegativeLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; - class IfcNormalisedRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; - class IfcNumericMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcNumericMeasure = IfcNumericMeasure; - class IfcPHMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPHMeasure = IfcPHMeasure; - class IfcParameterValue { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcParameterValue = IfcParameterValue; - class IfcPlanarForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPlanarForceMeasure = IfcPlanarForceMeasure; - class IfcPlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; - class IfcPositiveInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPositiveInteger = IfcPositiveInteger; - class IfcPositiveLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; - class IfcPositivePlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; - class IfcPositiveRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; - class IfcPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPowerMeasure = IfcPowerMeasure; - class IfcPresentableText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcPresentableText = IfcPresentableText; - class IfcPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcPressureMeasure = IfcPressureMeasure; - class IfcPropertySetDefinitionSet { - constructor(value) { - this.value = value; - } - } - IFC42.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; - class IfcRadioActivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRadioActivityMeasure = IfcRadioActivityMeasure; - class IfcRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRatioMeasure = IfcRatioMeasure; - class IfcReal { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcReal = IfcReal; - class IfcRotationalFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; - class IfcRotationalMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRotationalMassMeasure = IfcRotationalMassMeasure; - class IfcRotationalStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; - class IfcSectionModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSectionModulusMeasure = IfcSectionModulusMeasure; - class IfcSectionalAreaIntegralMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; - class IfcShearModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcShearModulusMeasure = IfcShearModulusMeasure; - class IfcSolidAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSolidAngleMeasure = IfcSolidAngleMeasure; - class IfcSoundPowerLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; - class IfcSoundPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSoundPowerMeasure = IfcSoundPowerMeasure; - class IfcSoundPressureLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; - class IfcSoundPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSoundPressureMeasure = IfcSoundPressureMeasure; - class IfcSpecificHeatCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; - class IfcSpecularExponent { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSpecularExponent = IfcSpecularExponent; - class IfcSpecularRoughness { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcSpecularRoughness = IfcSpecularRoughness; - class IfcTemperatureGradientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; - class IfcTemperatureRateOfChangeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; - class IfcText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcText = IfcText; - class IfcTextAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTextAlignment = IfcTextAlignment; - class IfcTextDecoration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTextDecoration = IfcTextDecoration; - class IfcTextFontName { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTextFontName = IfcTextFontName; - class IfcTextTransformation { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTextTransformation = IfcTextTransformation; - class IfcThermalAdmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; - class IfcThermalConductivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; - class IfcThermalExpansionCoefficientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; - class IfcThermalResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; - class IfcThermalTransmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; - class IfcThermodynamicTemperatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; - class IfcTime { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcTime = IfcTime; - class IfcTimeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTimeMeasure = IfcTimeMeasure; - class IfcTimeStamp { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTimeStamp = IfcTimeStamp; - class IfcTorqueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcTorqueMeasure = IfcTorqueMeasure; - class IfcURIReference { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC42.IfcURIReference = IfcURIReference; - class IfcVaporPermeabilityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; - class IfcVolumeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcVolumeMeasure = IfcVolumeMeasure; - class IfcVolumetricFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; - class IfcWarpingConstantMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; - class IfcWarpingMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC42.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; - class IfcActionRequestTypeEnum { - } - IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; - IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; - IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; - IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; - IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; - class IfcActionSourceTypeEnum { - } - IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; - IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; - IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; - IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; - IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; - IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; - IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; - IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; - IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; - IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; - IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; - IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; - IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; - IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; - IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; - IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; - IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; - IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; - IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; - IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; - IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; - IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; - IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; - IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; - class IfcActionTypeEnum { - } - IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; - IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; - IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; - IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActionTypeEnum = IfcActionTypeEnum; - class IfcActuatorTypeEnum { - } - IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; - IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; - IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; - IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; - IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; - IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcActuatorTypeEnum = IfcActuatorTypeEnum; - class IfcAddressTypeEnum { - } - IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; - IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; - IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcAddressTypeEnum = IfcAddressTypeEnum; - class IfcAirTerminalBoxTypeEnum { - } - IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; - class IfcAirTerminalTypeEnum { - } - IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; - IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; - IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; - IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; - IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; - class IfcAirToAirHeatRecoveryTypeEnum { - } - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; - IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; - IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; - IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; - class IfcAlarmTypeEnum { - } - IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; - IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; - IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; - IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; - IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; - IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; - IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAlarmTypeEnum = IfcAlarmTypeEnum; - class IfcAnalysisModelTypeEnum { - } - IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; - IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; - class IfcAnalysisTheoryTypeEnum { - } - IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; - IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; - class IfcArithmeticOperatorEnum { - } - IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; - IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; - IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; - IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; - IFC42.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; - class IfcAssemblyPlaceEnum { - } - IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; - IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; - IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; - class IfcAudioVisualApplianceTypeEnum { - } - IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; - IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; - IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; - IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; - IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; - IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; - IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; - IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; - IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; - IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; - IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; - class IfcBSplineCurveForm { - } - IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; - IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; - IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; - IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; - IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; - IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcBSplineCurveForm = IfcBSplineCurveForm; - class IfcBSplineSurfaceForm { - } - IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; - IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; - IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; - IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; - IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; - IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; - IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; - IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; - IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; - IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; - IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; - class IfcBeamTypeEnum { - } - IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; - IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; - IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; - IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; - IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; - IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; - IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBeamTypeEnum = IfcBeamTypeEnum; - class IfcBenchmarkEnum { - } - IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; - IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; - IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; - IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; - IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; - IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; - IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; - IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; - IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; - IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; - IFC42.IfcBenchmarkEnum = IfcBenchmarkEnum; - class IfcBoilerTypeEnum { - } - IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; - IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBoilerTypeEnum = IfcBoilerTypeEnum; - class IfcBooleanOperator { - } - IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; - IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; - IFC42.IfcBooleanOperator = IfcBooleanOperator; - class IfcBuildingElementPartTypeEnum { - } - IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; - IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; - class IfcBuildingElementProxyTypeEnum { - } - IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; - IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = { type: 3, value: "PROVISIONFORSPACE" }; - IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; - class IfcBuildingSystemTypeEnum { - } - IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; - IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; - IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; - IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; - IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; - class IfcBurnerTypeEnum { - } - IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcBurnerTypeEnum = IfcBurnerTypeEnum; - class IfcCableCarrierFittingTypeEnum { - } - IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; - IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" }; - IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; - IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; - class IfcCableCarrierSegmentTypeEnum { - } - IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; - class IfcCableFittingTypeEnum { - } - IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; - class IfcCableSegmentTypeEnum { - } - IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; - IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; - IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; - IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; - IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; - class IfcChangeActionEnum { - } - IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; - IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; - IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; - IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; - IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcChangeActionEnum = IfcChangeActionEnum; - class IfcChillerTypeEnum { - } - IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; - IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcChillerTypeEnum = IfcChillerTypeEnum; - class IfcChimneyTypeEnum { - } - IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcChimneyTypeEnum = IfcChimneyTypeEnum; - class IfcCoilTypeEnum { - } - IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; - IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; - IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; - IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; - IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; - IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; - IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; - IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCoilTypeEnum = IfcCoilTypeEnum; - class IfcColumnTypeEnum { - } - IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; - IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; - IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcColumnTypeEnum = IfcColumnTypeEnum; - class IfcCommunicationsApplianceTypeEnum { - } - IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; - IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; - IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; - IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; - IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; - IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; - IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; - IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; - IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; - IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; - class IfcComplexPropertyTemplateTypeEnum { - } - IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; - IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; - IFC42.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; - class IfcCompressorTypeEnum { - } - IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; - IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; - IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; - IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; - IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; - IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; - IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; - IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; - IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; - IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; - IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; - IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; - IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; - IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; - IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; - IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCompressorTypeEnum = IfcCompressorTypeEnum; - class IfcCondenserTypeEnum { - } - IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; - IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; - IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCondenserTypeEnum = IfcCondenserTypeEnum; - class IfcConnectionTypeEnum { - } - IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; - IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; - IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; - IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConnectionTypeEnum = IfcConnectionTypeEnum; - class IfcConstraintEnum { - } - IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; - IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; - IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; - IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConstraintEnum = IfcConstraintEnum; - class IfcConstructionEquipmentResourceTypeEnum { - } - IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; - IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; - IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; - IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; - IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; - IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; - IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; - class IfcConstructionMaterialResourceTypeEnum { - } - IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; - IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; - IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; - IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; - IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; - IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; - class IfcConstructionProductResourceTypeEnum { - } - IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; - IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; - IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; - class IfcControllerTypeEnum { - } - IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; - IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; - IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; - IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; - IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; - IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcControllerTypeEnum = IfcControllerTypeEnum; - class IfcCooledBeamTypeEnum { - } - IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; - IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; - IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; - class IfcCoolingTowerTypeEnum { - } - IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; - IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; - class IfcCostItemTypeEnum { - } - IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCostItemTypeEnum = IfcCostItemTypeEnum; - class IfcCostScheduleTypeEnum { - } - IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; - IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; - IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; - IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; - IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; - IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; - class IfcCoveringTypeEnum { - } - IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; - IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; - IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; - IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; - IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; - IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; - IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; - IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCoveringTypeEnum = IfcCoveringTypeEnum; - class IfcCrewResourceTypeEnum { - } - IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; - class IfcCurtainWallTypeEnum { - } - IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; - class IfcCurveInterpolationEnum { - } - IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; - IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; - IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; - class IfcDamperTypeEnum { - } - IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; - IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; - IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; - IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; - IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; - IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; - IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; - IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; - IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; - IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; - IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; - IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDamperTypeEnum = IfcDamperTypeEnum; - class IfcDataOriginEnum { - } - IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; - IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDataOriginEnum = IfcDataOriginEnum; - class IfcDerivedUnitEnum { - } - IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; - IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; - IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; - IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; - IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; - IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; - IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; - IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; - IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; - IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; - IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; - IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; - IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; - IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; - IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; - IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; - IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; - IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; - IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; - IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; - IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; - IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; - IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; - IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; - IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; - IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; - IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; - IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; - IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; - IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; - IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcDerivedUnitEnum = IfcDerivedUnitEnum; - class IfcDirectionSenseEnum { - } - IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IFC42.IfcDirectionSenseEnum = IfcDirectionSenseEnum; - class IfcDiscreteAccessoryTypeEnum { - } - IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; - IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; - IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; - IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; - class IfcDistributionChamberElementTypeEnum { - } - IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; - IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; - IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; - IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; - IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; - IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; - class IfcDistributionPortTypeEnum { - } - IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; - IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; - IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; - IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; - class IfcDistributionSystemEnum { - } - IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; - IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; - IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; - IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; - IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; - IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; - IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; - IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; - IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; - IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; - IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; - IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; - IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; - IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; - IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; - IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; - IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; - IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; - IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; - IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; - IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; - IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; - IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; - IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; - IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; - IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; - IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; - IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; - IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; - IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; - IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; - IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; - IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; - IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; - IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; - IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; - IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDistributionSystemEnum = IfcDistributionSystemEnum; - class IfcDocumentConfidentialityEnum { - } - IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; - IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; - IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; - IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; - IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; - class IfcDocumentStatusEnum { - } - IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; - IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; - IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; - IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; - IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDocumentStatusEnum = IfcDocumentStatusEnum; - class IfcDoorPanelOperationEnum { - } - IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; - IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; - IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; - IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; - IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; - IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; - class IfcDoorPanelPositionEnum { - } - IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; - class IfcDoorStyleConstructionEnum { - } - IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; - IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; - class IfcDoorStyleOperationEnum { - } - IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; - class IfcDoorTypeEnum { - } - IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; - IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; - IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; - IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorTypeEnum = IfcDoorTypeEnum; - class IfcDoorTypeOperationEnum { - } - IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorTypeOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; - IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; - IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; - class IfcDuctFittingTypeEnum { - } - IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; - class IfcDuctSegmentTypeEnum { - } - IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; - class IfcDuctSilencerTypeEnum { - } - IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; - IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; - IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; - class IfcElectricApplianceTypeEnum { - } - IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; - IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; - IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; - IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; - IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; - IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; - IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; - IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; - IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; - IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; - IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; - IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; - IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; - class IfcElectricDistributionBoardTypeEnum { - } - IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; - class IfcElectricFlowStorageDeviceTypeEnum { - } - IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; - IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; - class IfcElectricGeneratorTypeEnum { - } - IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; - IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; - IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; - IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; - class IfcElectricMotorTypeEnum { - } - IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; - IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; - IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; - IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; - IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; - IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; - class IfcElectricTimeControlTypeEnum { - } - IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; - IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; - IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; - class IfcElementAssemblyTypeEnum { - } - IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; - IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; - IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; - IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; - IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; - IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; - IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; - class IfcElementCompositionEnum { - } - IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IFC42.IfcElementCompositionEnum = IfcElementCompositionEnum; - class IfcEngineTypeEnum { - } - IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; - IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; - IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEngineTypeEnum = IfcEngineTypeEnum; - class IfcEvaporativeCoolerTypeEnum { - } - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; - IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; - class IfcEvaporatorTypeEnum { - } - IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; - IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; - IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; - class IfcEventTriggerTypeEnum { - } - IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; - IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; - IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; - IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; - IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; - class IfcEventTypeEnum { - } - IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; - IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; - IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; - IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcEventTypeEnum = IfcEventTypeEnum; - class IfcExternalSpatialElementTypeEnum { - } - IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; - class IfcFanTypeEnum { - } - IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; - IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; - IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; - IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; - IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; - IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFanTypeEnum = IfcFanTypeEnum; - class IfcFastenerTypeEnum { - } - IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; - IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; - IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; - IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFastenerTypeEnum = IfcFastenerTypeEnum; - class IfcFilterTypeEnum { - } - IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; - IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; - IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; - IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; - IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; - IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; - IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFilterTypeEnum = IfcFilterTypeEnum; - class IfcFireSuppressionTerminalTypeEnum { - } - IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; - IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; - IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; - IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; - class IfcFlowDirectionEnum { - } - IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; - IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; - IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; - IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFlowDirectionEnum = IfcFlowDirectionEnum; - class IfcFlowInstrumentTypeEnum { - } - IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; - IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; - IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; - IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; - IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; - IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; - IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; - class IfcFlowMeterTypeEnum { - } - IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; - IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; - IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; - IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; - IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; - class IfcFootingTypeEnum { - } - IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; - IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; - IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; - IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; - IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; - IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFootingTypeEnum = IfcFootingTypeEnum; - class IfcFurnitureTypeEnum { - } - IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; - IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; - IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; - IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; - IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; - IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; - IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; - IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; - class IfcGeographicElementTypeEnum { - } - IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; - IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; - class IfcGeometricProjectionEnum { - } - IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; - IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; - IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; - IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; - IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; - IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; - IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; - IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; - class IfcGlobalOrLocalEnum { - } - IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; - IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; - IFC42.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; - class IfcGridTypeEnum { - } - IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; - IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; - IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; - IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcGridTypeEnum = IfcGridTypeEnum; - class IfcHeatExchangerTypeEnum { - } - IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; - IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; - class IfcHumidifierTypeEnum { - } - IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; - IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; - IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; - IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; - IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; - IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; - IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; - IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; - IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; - IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; - IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; - IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; - IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; - IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; - class IfcInterceptorTypeEnum { - } - IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; - IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; - IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; - IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; - IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; - class IfcInternalOrExternalEnum { - } - IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; - class IfcInventoryTypeEnum { - } - IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; - IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; - IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; - IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcInventoryTypeEnum = IfcInventoryTypeEnum; - class IfcJunctionBoxTypeEnum { - } - IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; - IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; - IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; - class IfcKnotType { - } - IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; - IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; - IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; - IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcKnotType = IfcKnotType; - class IfcLaborResourceTypeEnum { - } - IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; - IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; - IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; - IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; - IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; - IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; - IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; - IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; - IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; - IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; - IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; - IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; - IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; - IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; - class IfcLampTypeEnum { - } - IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; - IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLampTypeEnum.LED = { type: 3, value: "LED" }; - IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; - IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLampTypeEnum = IfcLampTypeEnum; - class IfcLayerSetDirectionEnum { - } - IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; - IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; - IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; - IFC42.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; - class IfcLightDistributionCurveEnum { - } - IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; - IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; - IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; - IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; - class IfcLightEmissionSourceEnum { - } - IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; - IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; - class IfcLightFixtureTypeEnum { - } - IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; - IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; - IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; - IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; - class IfcLoadGroupTypeEnum { - } - IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; - IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; - IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; - class IfcLogicalOperatorEnum { - } - IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; - IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; - IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; - IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; - IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; - IFC42.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; - class IfcMechanicalFastenerTypeEnum { - } - IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; - IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; - IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; - IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; - IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; - IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; - IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; - IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; - IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; - class IfcMedicalDeviceTypeEnum { - } - IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; - IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; - IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; - IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; - IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; - IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; - class IfcMemberTypeEnum { - } - IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; - IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; - IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; - IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; - IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; - IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; - IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; - IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; - IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; - IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; - IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMemberTypeEnum = IfcMemberTypeEnum; - class IfcMotorConnectionTypeEnum { - } - IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; - IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; - IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; - IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; - class IfcNullStyle { - } - IfcNullStyle.NULL = { type: 3, value: "NULL" }; - IFC42.IfcNullStyle = IfcNullStyle; - class IfcObjectTypeEnum { - } - IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; - IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; - IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; - IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; - IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; - IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; - IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcObjectTypeEnum = IfcObjectTypeEnum; - class IfcObjectiveEnum { - } - IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; - IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; - IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; - IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; - IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; - IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; - IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; - IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; - IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; - IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcObjectiveEnum = IfcObjectiveEnum; - class IfcOccupantTypeEnum { - } - IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; - IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; - IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; - IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; - IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; - IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; - IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; - IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcOccupantTypeEnum = IfcOccupantTypeEnum; - class IfcOpeningElementTypeEnum { - } - IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; - IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; - IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; - class IfcOutletTypeEnum { - } - IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; - IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; - IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; - IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; - IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; - IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcOutletTypeEnum = IfcOutletTypeEnum; - class IfcPerformanceHistoryTypeEnum { - } - IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; - class IfcPermeableCoveringOperationEnum { - } - IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; - IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; - IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; - IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; - class IfcPermitTypeEnum { - } - IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; - IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; - IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPermitTypeEnum = IfcPermitTypeEnum; - class IfcPhysicalOrVirtualEnum { - } - IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; - IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; - class IfcPileConstructionEnum { - } - IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; - IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; - IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; - IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; - IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPileConstructionEnum = IfcPileConstructionEnum; - class IfcPileTypeEnum { - } - IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; - IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; - IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; - IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; - IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; - IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPileTypeEnum = IfcPileTypeEnum; - class IfcPipeFittingTypeEnum { - } - IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; - class IfcPipeSegmentTypeEnum { - } - IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; - IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; - IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; - IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; - class IfcPlateTypeEnum { - } - IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; - IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; - IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPlateTypeEnum = IfcPlateTypeEnum; - class IfcPreferredSurfaceCurveRepresentation { - } - IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; - IFC42.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; - class IfcProcedureTypeEnum { - } - IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; - IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; - IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; - IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; - IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProcedureTypeEnum = IfcProcedureTypeEnum; - class IfcProfileTypeEnum { - } - IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; - IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; - IFC42.IfcProfileTypeEnum = IfcProfileTypeEnum; - class IfcProjectOrderTypeEnum { - } - IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; - IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; - IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; - IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; - IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; - IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; - class IfcProjectedOrTrueLengthEnum { - } - IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; - IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; - IFC42.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; - class IfcProjectionElementTypeEnum { - } - IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; - class IfcPropertySetTemplateTypeEnum { - } - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; - class IfcProtectiveDeviceTrippingUnitTypeEnum { - } - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; - class IfcProtectiveDeviceTypeEnum { - } - IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; - IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; - IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; - IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; - class IfcPumpTypeEnum { - } - IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; - IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; - IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; - IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; - IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; - IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; - IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; - IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcPumpTypeEnum = IfcPumpTypeEnum; - class IfcRailingTypeEnum { - } - IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; - IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; - IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRailingTypeEnum = IfcRailingTypeEnum; - class IfcRampFlightTypeEnum { - } - IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; - class IfcRampTypeEnum { - } - IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; - IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; - IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRampTypeEnum = IfcRampTypeEnum; - class IfcRecurrenceTypeEnum { - } - IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; - IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; - IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; - IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; - IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; - IFC42.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; - class IfcReflectanceMethodEnum { - } - IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; - IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; - IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; - IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; - IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; - IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; - IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; - IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; - class IfcReinforcingBarRoleEnum { - } - IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; - class IfcReinforcingBarSurfaceEnum { - } - IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; - IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; - IFC42.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; - class IfcReinforcingBarTypeEnum { - } - IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; - class IfcReinforcingMeshTypeEnum { - } - IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; - class IfcRoleEnum { - } - IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; - IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; - IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; - IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; - IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; - IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; - IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; - IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; - IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; - IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; - IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; - IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; - IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; - IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; - IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; - IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; - IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; - IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; - IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; - IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; - IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; - IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; - IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcRoleEnum = IfcRoleEnum; - class IfcRoofTypeEnum { - } - IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; - IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; - IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; - IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; - IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; - IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; - IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; - IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; - IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; - IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; - IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; - IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; - IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcRoofTypeEnum = IfcRoofTypeEnum; - class IfcSIPrefix { - } - IfcSIPrefix.EXA = { type: 3, value: "EXA" }; - IfcSIPrefix.PETA = { type: 3, value: "PETA" }; - IfcSIPrefix.TERA = { type: 3, value: "TERA" }; - IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; - IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; - IfcSIPrefix.KILO = { type: 3, value: "KILO" }; - IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; - IfcSIPrefix.DECA = { type: 3, value: "DECA" }; - IfcSIPrefix.DECI = { type: 3, value: "DECI" }; - IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; - IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; - IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; - IfcSIPrefix.NANO = { type: 3, value: "NANO" }; - IfcSIPrefix.PICO = { type: 3, value: "PICO" }; - IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; - IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; - IFC42.IfcSIPrefix = IfcSIPrefix; - class IfcSIUnitName { - } - IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; - IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; - IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; - IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; - IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; - IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; - IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; - IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; - IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; - IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; - IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; - IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; - IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; - IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; - IfcSIUnitName.LUX = { type: 3, value: "LUX" }; - IfcSIUnitName.METRE = { type: 3, value: "METRE" }; - IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; - IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; - IfcSIUnitName.OHM = { type: 3, value: "OHM" }; - IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; - IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; - IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; - IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; - IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; - IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; - IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; - IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; - IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; - IfcSIUnitName.WATT = { type: 3, value: "WATT" }; - IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; - IFC42.IfcSIUnitName = IfcSIUnitName; - class IfcSanitaryTerminalTypeEnum { - } - IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; - IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; - IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; - IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; - IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; - IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; - IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; - IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; - IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; - IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; - IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; - class IfcSectionTypeEnum { - } - IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; - IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; - IFC42.IfcSectionTypeEnum = IfcSectionTypeEnum; - class IfcSensorTypeEnum { - } - IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; - IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; - IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; - IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; - IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; - IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; - IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; - IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; - IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; - IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; - IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; - IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; - IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; - IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; - IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; - IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; - IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; - IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; - IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; - IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; - IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; - IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; - IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; - IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; - IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSensorTypeEnum = IfcSensorTypeEnum; - class IfcSequenceEnum { - } - IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; - IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; - IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; - IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; - IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSequenceEnum = IfcSequenceEnum; - class IfcShadingDeviceTypeEnum { - } - IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; - IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; - IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; - IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; - class IfcSimplePropertyTemplateTypeEnum { - } - IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; - IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; - IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; - IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; - IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; - IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; - IFC42.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; - class IfcSlabTypeEnum { - } - IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; - IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; - IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; - IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; - IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSlabTypeEnum = IfcSlabTypeEnum; - class IfcSolarDeviceTypeEnum { - } - IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; - IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; - IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; - class IfcSpaceHeaterTypeEnum { - } - IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; - IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; - IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; - class IfcSpaceTypeEnum { - } - IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; - IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; - IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; - IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSpaceTypeEnum = IfcSpaceTypeEnum; - class IfcSpatialZoneTypeEnum { - } - IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; - IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; - IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; - class IfcStackTerminalTypeEnum { - } - IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; - IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; - IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; - IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; - class IfcStairFlightTypeEnum { - } - IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; - IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; - IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; - class IfcStairTypeEnum { - } - IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; - IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; - IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; - IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; - IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; - IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStairTypeEnum = IfcStairTypeEnum; - class IfcStateEnum { - } - IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; - IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; - IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; - IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; - IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; - IFC42.IfcStateEnum = IfcStateEnum; - class IfcStructuralCurveActivityTypeEnum { - } - IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; - IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; - IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; - IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; - class IfcStructuralCurveMemberTypeEnum { - } - IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; - class IfcStructuralSurfaceActivityTypeEnum { - } - IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; - IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; - IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; - class IfcStructuralSurfaceMemberTypeEnum { - } - IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; - IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; - class IfcSubContractResourceTypeEnum { - } - IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; - IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; - class IfcSurfaceFeatureTypeEnum { - } - IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; - IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; - IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; - IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; - class IfcSurfaceSide { - } - IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; - IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; - IFC42.IfcSurfaceSide = IfcSurfaceSide; - class IfcSwitchingDeviceTypeEnum { - } - IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; - IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; - IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; - IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; - IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; - IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; - IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; - IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; - IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; - IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; - class IfcSystemFurnitureElementTypeEnum { - } - IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; - IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; - IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; - class IfcTankTypeEnum { - } - IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; - IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; - IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; - IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; - IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; - IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; - IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; - IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTankTypeEnum = IfcTankTypeEnum; - class IfcTaskDurationEnum { - } - IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; - IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; - IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTaskDurationEnum = IfcTaskDurationEnum; - class IfcTaskTypeEnum { - } - IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; - IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; - IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; - IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; - IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; - IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; - IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; - IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; - IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; - IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; - IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTaskTypeEnum = IfcTaskTypeEnum; - class IfcTendonAnchorTypeEnum { - } - IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; - IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; - IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; - class IfcTendonTypeEnum { - } - IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; - IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; - IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; - IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; - IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTendonTypeEnum = IfcTendonTypeEnum; - class IfcTextPath { - } - IfcTextPath.LEFT = { type: 3, value: "LEFT" }; - IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; - IfcTextPath.UP = { type: 3, value: "UP" }; - IfcTextPath.DOWN = { type: 3, value: "DOWN" }; - IFC42.IfcTextPath = IfcTextPath; - class IfcTimeSeriesDataTypeEnum { - } - IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; - class IfcTransformerTypeEnum { - } - IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; - IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; - IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; - IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; - IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTransformerTypeEnum = IfcTransformerTypeEnum; - class IfcTransitionCode { - } - IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; - IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; - IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; - IFC42.IfcTransitionCode = IfcTransitionCode; - class IfcTransportElementTypeEnum { - } - IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; - IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; - IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; - IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; - IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; - IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; - class IfcTrimmingPreference { - } - IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; - IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC42.IfcTrimmingPreference = IfcTrimmingPreference; - class IfcTubeBundleTypeEnum { - } - IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; - IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; - class IfcUnitEnum { - } - IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; - IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; - IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; - IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; - IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; - IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; - IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; - IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; - IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; - IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; - IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; - IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; - IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; - IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; - IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; - IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; - IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; - IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; - IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; - IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; - IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; - IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; - IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; - IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; - IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; - IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; - IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; - IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC42.IfcUnitEnum = IfcUnitEnum; - class IfcUnitaryControlElementTypeEnum { - } - IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; - IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; - IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; - IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; - IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; - IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; - IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; - IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; - IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; - class IfcUnitaryEquipmentTypeEnum { - } - IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; - IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; - IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; - IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; - IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; - IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; - class IfcValveTypeEnum { - } - IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; - IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; - IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; - IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; - IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; - IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; - IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; - IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; - IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; - IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; - IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; - IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; - IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; - IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; - IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; - IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; - IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; - IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; - IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; - IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; - IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcValveTypeEnum = IfcValveTypeEnum; - class IfcVibrationIsolatorTypeEnum { - } - IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; - IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; - IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; - class IfcVoidingFeatureTypeEnum { - } - IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; - IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; - IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; - IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; - IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; - IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; - class IfcWallTypeEnum { - } - IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; - IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; - IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; - IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; - IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; - IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; - IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; - IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWallTypeEnum = IfcWallTypeEnum; - class IfcWasteTerminalTypeEnum { - } - IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; - IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; - IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; - IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; - IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; - IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; - IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; - IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; - class IfcWindowPanelOperationEnum { - } - IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; - IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; - IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; - IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; - IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; - IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; - IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; - IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; - IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; - IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; - IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; - IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; - class IfcWindowPanelPositionEnum { - } - IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; - IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; - IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; - class IfcWindowStyleConstructionEnum { - } - IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; - IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; - class IfcWindowStyleOperationEnum { - } - IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; - class IfcWindowTypeEnum { - } - IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; - IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; - IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; - IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowTypeEnum = IfcWindowTypeEnum; - class IfcWindowTypePartitioningEnum { - } - IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; - class IfcWorkCalendarTypeEnum { - } - IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; - IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; - IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; - IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; - class IfcWorkPlanTypeEnum { - } - IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; - class IfcWorkScheduleTypeEnum { - } - IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC42.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; - class IfcActorRole extends IfcLineObject { - constructor(expressID, Role, UserDefinedRole, Description) { - super(expressID); - this.Role = Role; - this.UserDefinedRole = UserDefinedRole; - this.Description = Description; - this.type = 3630933823; - } - } - IFC42.IfcActorRole = IfcActorRole; - class IfcAddress extends IfcLineObject { - constructor(expressID, Purpose, Description, UserDefinedPurpose) { - super(expressID); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.type = 618182010; - } - } - IFC42.IfcAddress = IfcAddress; - class IfcApplication extends IfcLineObject { - constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { - super(expressID); - this.ApplicationDeveloper = ApplicationDeveloper; - this.Version = Version; - this.ApplicationFullName = ApplicationFullName; - this.ApplicationIdentifier = ApplicationIdentifier; - this.type = 639542469; - } - } - IFC42.IfcApplication = IfcApplication; - class IfcAppliedValue extends IfcLineObject { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 411424972; - } - } - IFC42.IfcAppliedValue = IfcAppliedValue; - class IfcApproval extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { - super(expressID); - this.Identifier = Identifier; - this.Name = Name; - this.Description = Description; - this.TimeOfApproval = TimeOfApproval; - this.Status = Status; - this.Level = Level; - this.Qualifier = Qualifier; - this.RequestingApproval = RequestingApproval; - this.GivingApproval = GivingApproval; - this.type = 130549933; - } - } - IFC42.IfcApproval = IfcApproval; - class IfcBoundaryCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 4037036970; - } - } - IFC42.IfcBoundaryCondition = IfcBoundaryCondition; - class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; - this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; - this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; - this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; - this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; - this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; - this.type = 1560379544; - } - } - IFC42.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; - class IfcBoundaryFaceCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; - this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; - this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; - this.type = 3367102660; - } - } - IFC42.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; - class IfcBoundaryNodeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.type = 1387855156; - } - } - IFC42.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; - class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { - super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); - this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.WarpingStiffness = WarpingStiffness; - this.type = 2069777674; - } - } - IFC42.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; - class IfcConnectionGeometry extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 2859738748; - } - } - IFC42.IfcConnectionGeometry = IfcConnectionGeometry; - class IfcConnectionPointGeometry extends IfcConnectionGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { - super(expressID); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.type = 2614616156; - } - } - IFC42.IfcConnectionPointGeometry = IfcConnectionPointGeometry; - class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { - constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { - super(expressID); - this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; - this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; - this.type = 2732653382; - } - } - IFC42.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; - class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { - constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { - super(expressID); - this.VolumeOnRelatingElement = VolumeOnRelatingElement; - this.VolumeOnRelatedElement = VolumeOnRelatedElement; - this.type = 775493141; - } - } - IFC42.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; - class IfcConstraint extends IfcLineObject { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.type = 1959218052; - } - } - IFC42.IfcConstraint = IfcConstraint; - class IfcCoordinateOperation extends IfcLineObject { - constructor(expressID, SourceCRS, TargetCRS) { - super(expressID); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.type = 1785450214; - } - } - IFC42.IfcCoordinateOperation = IfcCoordinateOperation; - class IfcCoordinateReferenceSystem extends IfcLineObject { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.type = 1466758467; - } - } - IFC42.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; - class IfcCostValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 602808272; - } - } - IFC42.IfcCostValue = IfcCostValue; - class IfcDerivedUnit extends IfcLineObject { - constructor(expressID, Elements, UnitType, UserDefinedType) { - super(expressID); - this.Elements = Elements; - this.UnitType = UnitType; - this.UserDefinedType = UserDefinedType; - this.type = 1765591967; - } - } - IFC42.IfcDerivedUnit = IfcDerivedUnit; - class IfcDerivedUnitElement extends IfcLineObject { - constructor(expressID, Unit, Exponent) { - super(expressID); - this.Unit = Unit; - this.Exponent = Exponent; - this.type = 1045800335; - } - } - IFC42.IfcDerivedUnitElement = IfcDerivedUnitElement; - class IfcDimensionalExponents extends IfcLineObject { - constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { - super(expressID); - this.LengthExponent = LengthExponent; - this.MassExponent = MassExponent; - this.TimeExponent = TimeExponent; - this.ElectricCurrentExponent = ElectricCurrentExponent; - this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; - this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; - this.LuminousIntensityExponent = LuminousIntensityExponent; - this.type = 2949456006; - } - } - IFC42.IfcDimensionalExponents = IfcDimensionalExponents; - class IfcExternalInformation extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 4294318154; - } - } - IFC42.IfcExternalInformation = IfcExternalInformation; - class IfcExternalReference extends IfcLineObject { - constructor(expressID, Location, Identification, Name) { - super(expressID); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 3200245327; - } - } - IFC42.IfcExternalReference = IfcExternalReference; - class IfcExternallyDefinedHatchStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 2242383968; - } - } - IFC42.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; - class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 1040185647; - } - } - IFC42.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; - class IfcExternallyDefinedTextFont extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 3548104201; - } - } - IFC42.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; - class IfcGridAxis extends IfcLineObject { - constructor(expressID, AxisTag, AxisCurve, SameSense) { - super(expressID); - this.AxisTag = AxisTag; - this.AxisCurve = AxisCurve; - this.SameSense = SameSense; - this.type = 852622518; - } - } - IFC42.IfcGridAxis = IfcGridAxis; - class IfcIrregularTimeSeriesValue extends IfcLineObject { - constructor(expressID, TimeStamp, ListValues) { - super(expressID); - this.TimeStamp = TimeStamp; - this.ListValues = ListValues; - this.type = 3020489413; - } - } - IFC42.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; - class IfcLibraryInformation extends IfcExternalInformation { - constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { - super(expressID); - this.Name = Name; - this.Version = Version; - this.Publisher = Publisher; - this.VersionDate = VersionDate; - this.Location = Location; - this.Description = Description; - this.type = 2655187982; - } - } - IFC42.IfcLibraryInformation = IfcLibraryInformation; - class IfcLibraryReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Language = Language; - this.ReferencedLibrary = ReferencedLibrary; - this.type = 3452421091; - } - } - IFC42.IfcLibraryReference = IfcLibraryReference; - class IfcLightDistributionData extends IfcLineObject { - constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { - super(expressID); - this.MainPlaneAngle = MainPlaneAngle; - this.SecondaryPlaneAngle = SecondaryPlaneAngle; - this.LuminousIntensity = LuminousIntensity; - this.type = 4162380809; - } - } - IFC42.IfcLightDistributionData = IfcLightDistributionData; - class IfcLightIntensityDistribution extends IfcLineObject { - constructor(expressID, LightDistributionCurve, DistributionData) { - super(expressID); - this.LightDistributionCurve = LightDistributionCurve; - this.DistributionData = DistributionData; - this.type = 1566485204; - } - } - IFC42.IfcLightIntensityDistribution = IfcLightIntensityDistribution; - class IfcMapConversion extends IfcCoordinateOperation { - constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) { - super(expressID, SourceCRS, TargetCRS); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.Eastings = Eastings; - this.Northings = Northings; - this.OrthogonalHeight = OrthogonalHeight; - this.XAxisAbscissa = XAxisAbscissa; - this.XAxisOrdinate = XAxisOrdinate; - this.Scale = Scale; - this.type = 3057273783; - } - } - IFC42.IfcMapConversion = IfcMapConversion; - class IfcMaterialClassificationRelationship extends IfcLineObject { - constructor(expressID, MaterialClassifications, ClassifiedMaterial) { - super(expressID); - this.MaterialClassifications = MaterialClassifications; - this.ClassifiedMaterial = ClassifiedMaterial; - this.type = 1847130766; - } - } - IFC42.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; - class IfcMaterialDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 760658860; - } - } - IFC42.IfcMaterialDefinition = IfcMaterialDefinition; - class IfcMaterialLayer extends IfcMaterialDefinition { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { - super(expressID); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.type = 248100487; - } - } - IFC42.IfcMaterialLayer = IfcMaterialLayer; - class IfcMaterialLayerSet extends IfcMaterialDefinition { - constructor(expressID, MaterialLayers, LayerSetName, Description) { - super(expressID); - this.MaterialLayers = MaterialLayers; - this.LayerSetName = LayerSetName; - this.Description = Description; - this.type = 3303938423; - } - } - IFC42.IfcMaterialLayerSet = IfcMaterialLayerSet; - class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { - super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.OffsetDirection = OffsetDirection; - this.OffsetValues = OffsetValues; - this.type = 1847252529; - } - } - IFC42.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; - class IfcMaterialList extends IfcLineObject { - constructor(expressID, Materials) { - super(expressID); - this.Materials = Materials; - this.type = 2199411900; - } - } - IFC42.IfcMaterialList = IfcMaterialList; - class IfcMaterialProfile extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Profile, Priority, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.type = 2235152071; - } - } - IFC42.IfcMaterialProfile = IfcMaterialProfile; - class IfcMaterialProfileSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.MaterialProfiles = MaterialProfiles; - this.CompositeProfile = CompositeProfile; - this.type = 164193824; - } - } - IFC42.IfcMaterialProfileSet = IfcMaterialProfileSet; - class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { - constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { - super(expressID, Name, Description, Material, Profile, Priority, Category); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.OffsetValues = OffsetValues; - this.type = 552965576; - } - } - IFC42.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; - class IfcMaterialUsageDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 1507914824; - } - } - IFC42.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; - class IfcMeasureWithUnit extends IfcLineObject { - constructor(expressID, ValueComponent, UnitComponent) { - super(expressID); - this.ValueComponent = ValueComponent; - this.UnitComponent = UnitComponent; - this.type = 2597039031; - } - } - IFC42.IfcMeasureWithUnit = IfcMeasureWithUnit; - class IfcMetric extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.Benchmark = Benchmark; - this.ValueSource = ValueSource; - this.DataValue = DataValue; - this.ReferencePath = ReferencePath; - this.type = 3368373690; - } - } - IFC42.IfcMetric = IfcMetric; - class IfcMonetaryUnit extends IfcLineObject { - constructor(expressID, Currency) { - super(expressID); - this.Currency = Currency; - this.type = 2706619895; - } - } - IFC42.IfcMonetaryUnit = IfcMonetaryUnit; - class IfcNamedUnit extends IfcLineObject { - constructor(expressID, Dimensions, UnitType) { - super(expressID); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.type = 1918398963; - } - } - IFC42.IfcNamedUnit = IfcNamedUnit; - class IfcObjectPlacement extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3701648758; - } - } - IFC42.IfcObjectPlacement = IfcObjectPlacement; - class IfcObjective extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.BenchmarkValues = BenchmarkValues; - this.LogicalAggregator = LogicalAggregator; - this.ObjectiveQualifier = ObjectiveQualifier; - this.UserDefinedQualifier = UserDefinedQualifier; - this.type = 2251480897; - } - } - IFC42.IfcObjective = IfcObjective; - class IfcOrganization extends IfcLineObject { - constructor(expressID, Identification, Name, Description, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 4251960020; - } - } - IFC42.IfcOrganization = IfcOrganization; - class IfcOwnerHistory extends IfcLineObject { - constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { - super(expressID); - this.OwningUser = OwningUser; - this.OwningApplication = OwningApplication; - this.State = State; - this.ChangeAction = ChangeAction; - this.LastModifiedDate = LastModifiedDate; - this.LastModifyingUser = LastModifyingUser; - this.LastModifyingApplication = LastModifyingApplication; - this.CreationDate = CreationDate; - this.type = 1207048766; - } - } - IFC42.IfcOwnerHistory = IfcOwnerHistory; - class IfcPerson extends IfcLineObject { - constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.FamilyName = FamilyName; - this.GivenName = GivenName; - this.MiddleNames = MiddleNames; - this.PrefixTitles = PrefixTitles; - this.SuffixTitles = SuffixTitles; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 2077209135; - } - } - IFC42.IfcPerson = IfcPerson; - class IfcPersonAndOrganization extends IfcLineObject { - constructor(expressID, ThePerson, TheOrganization, Roles) { - super(expressID); - this.ThePerson = ThePerson; - this.TheOrganization = TheOrganization; - this.Roles = Roles; - this.type = 101040310; - } - } - IFC42.IfcPersonAndOrganization = IfcPersonAndOrganization; - class IfcPhysicalQuantity extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2483315170; - } - } - IFC42.IfcPhysicalQuantity = IfcPhysicalQuantity; - class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.type = 2226359599; - } - } - IFC42.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; - class IfcPostalAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.InternalLocation = InternalLocation; - this.AddressLines = AddressLines; - this.PostalBox = PostalBox; - this.Town = Town; - this.Region = Region; - this.PostalCode = PostalCode; - this.Country = Country; - this.type = 3355820592; - } - } - IFC42.IfcPostalAddress = IfcPostalAddress; - class IfcPresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 677532197; - } - } - IFC42.IfcPresentationItem = IfcPresentationItem; - class IfcPresentationLayerAssignment extends IfcLineObject { - constructor(expressID, Name, Description, AssignedItems, Identifier) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.type = 2022622350; - } - } - IFC42.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; - class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { - constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { - super(expressID, Name, Description, AssignedItems, Identifier); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.LayerOn = LayerOn; - this.LayerFrozen = LayerFrozen; - this.LayerBlocked = LayerBlocked; - this.LayerStyles = LayerStyles; - this.type = 1304840413; - } - } - IFC42.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; - class IfcPresentationStyle extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3119450353; - } - } - IFC42.IfcPresentationStyle = IfcPresentationStyle; - class IfcPresentationStyleAssignment extends IfcLineObject { - constructor(expressID, Styles) { - super(expressID); - this.Styles = Styles; - this.type = 2417041796; - } - } - IFC42.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment; - class IfcProductRepresentation extends IfcLineObject { - constructor(expressID, Name, Description, Representations) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 2095639259; - } - } - IFC42.IfcProductRepresentation = IfcProductRepresentation; - class IfcProfileDef extends IfcLineObject { - constructor(expressID, ProfileType, ProfileName) { - super(expressID); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.type = 3958567839; - } - } - IFC42.IfcProfileDef = IfcProfileDef; - class IfcProjectedCRS extends IfcCoordinateReferenceSystem { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { - super(expressID, Name, Description, GeodeticDatum, VerticalDatum); - this.Name = Name; - this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.MapProjection = MapProjection; - this.MapZone = MapZone; - this.MapUnit = MapUnit; - this.type = 3843373140; - } - } - IFC42.IfcProjectedCRS = IfcProjectedCRS; - class IfcPropertyAbstraction extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 986844984; - } - } - IFC42.IfcPropertyAbstraction = IfcPropertyAbstraction; - class IfcPropertyEnumeration extends IfcPropertyAbstraction { - constructor(expressID, Name, EnumerationValues, Unit) { - super(expressID); - this.Name = Name; - this.EnumerationValues = EnumerationValues; - this.Unit = Unit; - this.type = 3710013099; - } - } - IFC42.IfcPropertyEnumeration = IfcPropertyEnumeration; - class IfcQuantityArea extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, AreaValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.AreaValue = AreaValue; - this.Formula = Formula; - this.type = 2044713172; - } - } - IFC42.IfcQuantityArea = IfcQuantityArea; - class IfcQuantityCount extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, CountValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.CountValue = CountValue; - this.Formula = Formula; - this.type = 2093928680; - } - } - IFC42.IfcQuantityCount = IfcQuantityCount; - class IfcQuantityLength extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, LengthValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.LengthValue = LengthValue; - this.Formula = Formula; - this.type = 931644368; - } - } - IFC42.IfcQuantityLength = IfcQuantityLength; - class IfcQuantityTime extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, TimeValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.TimeValue = TimeValue; - this.Formula = Formula; - this.type = 3252649465; - } - } - IFC42.IfcQuantityTime = IfcQuantityTime; - class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.VolumeValue = VolumeValue; - this.Formula = Formula; - this.type = 2405470396; - } - } - IFC42.IfcQuantityVolume = IfcQuantityVolume; - class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, WeightValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.WeightValue = WeightValue; - this.Formula = Formula; - this.type = 825690147; - } - } - IFC42.IfcQuantityWeight = IfcQuantityWeight; - class IfcRecurrencePattern extends IfcLineObject { - constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { - super(expressID); - this.RecurrenceType = RecurrenceType; - this.DayComponent = DayComponent; - this.WeekdayComponent = WeekdayComponent; - this.MonthComponent = MonthComponent; - this.Position = Position; - this.Interval = Interval; - this.Occurrences = Occurrences; - this.TimePeriods = TimePeriods; - this.type = 3915482550; - } - } - IFC42.IfcRecurrencePattern = IfcRecurrencePattern; - class IfcReference extends IfcLineObject { - constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { - super(expressID); - this.TypeIdentifier = TypeIdentifier; - this.AttributeIdentifier = AttributeIdentifier; - this.InstanceName = InstanceName; - this.ListPositions = ListPositions; - this.InnerReference = InnerReference; - this.type = 2433181523; - } - } - IFC42.IfcReference = IfcReference; - class IfcRepresentation extends IfcLineObject { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1076942058; - } - } - IFC42.IfcRepresentation = IfcRepresentation; - class IfcRepresentationContext extends IfcLineObject { - constructor(expressID, ContextIdentifier, ContextType) { - super(expressID); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.type = 3377609919; - } - } - IFC42.IfcRepresentationContext = IfcRepresentationContext; - class IfcRepresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3008791417; - } - } - IFC42.IfcRepresentationItem = IfcRepresentationItem; - class IfcRepresentationMap extends IfcLineObject { - constructor(expressID, MappingOrigin, MappedRepresentation) { - super(expressID); - this.MappingOrigin = MappingOrigin; - this.MappedRepresentation = MappedRepresentation; - this.type = 1660063152; - } - } - IFC42.IfcRepresentationMap = IfcRepresentationMap; - class IfcResourceLevelRelationship extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2439245199; - } - } - IFC42.IfcResourceLevelRelationship = IfcResourceLevelRelationship; - class IfcRoot extends IfcLineObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2341007311; - } - } - IFC42.IfcRoot = IfcRoot; - class IfcSIUnit extends IfcNamedUnit { - constructor(expressID, UnitType, Prefix, Name) { - super(expressID, new Handle(0), UnitType); - this.UnitType = UnitType; - this.Prefix = Prefix; - this.Name = Name; - this.type = 448429030; - } - } - IFC42.IfcSIUnit = IfcSIUnit; - class IfcSchedulingTime extends IfcLineObject { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { - super(expressID); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.type = 1054537805; - } - } - IFC42.IfcSchedulingTime = IfcSchedulingTime; - class IfcShapeAspect extends IfcLineObject { - constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { - super(expressID); - this.ShapeRepresentations = ShapeRepresentations; - this.Name = Name; - this.Description = Description; - this.ProductDefinitional = ProductDefinitional; - this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; - this.type = 867548509; - } - } - IFC42.IfcShapeAspect = IfcShapeAspect; - class IfcShapeModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3982875396; - } - } - IFC42.IfcShapeModel = IfcShapeModel; - class IfcShapeRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 4240577450; - } - } - IFC42.IfcShapeRepresentation = IfcShapeRepresentation; - class IfcStructuralConnectionCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2273995522; - } - } - IFC42.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; - class IfcStructuralLoad extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2162789131; - } - } - IFC42.IfcStructuralLoad = IfcStructuralLoad; - class IfcStructuralLoadConfiguration extends IfcStructuralLoad { - constructor(expressID, Name, Values, Locations) { - super(expressID, Name); - this.Name = Name; - this.Values = Values; - this.Locations = Locations; - this.type = 3478079324; - } - } - IFC42.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; - class IfcStructuralLoadOrResult extends IfcStructuralLoad { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 609421318; - } - } - IFC42.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; - class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2525727697; - } - } - IFC42.IfcStructuralLoadStatic = IfcStructuralLoadStatic; - class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { - constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { - super(expressID, Name); - this.Name = Name; - this.DeltaTConstant = DeltaTConstant; - this.DeltaTY = DeltaTY; - this.DeltaTZ = DeltaTZ; - this.type = 3408363356; - } - } - IFC42.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; - class IfcStyleModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 2830218821; - } - } - IFC42.IfcStyleModel = IfcStyleModel; - class IfcStyledItem extends IfcRepresentationItem { - constructor(expressID, Item, Styles, Name) { - super(expressID); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3958052878; - } - } - IFC42.IfcStyledItem = IfcStyledItem; - class IfcStyledRepresentation extends IfcStyleModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3049322572; - } - } - IFC42.IfcStyledRepresentation = IfcStyledRepresentation; - class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { - constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { - super(expressID, Name); - this.Name = Name; - this.SurfaceReinforcement1 = SurfaceReinforcement1; - this.SurfaceReinforcement2 = SurfaceReinforcement2; - this.ShearReinforcement = ShearReinforcement; - this.type = 2934153892; - } - } - IFC42.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; - class IfcSurfaceStyle extends IfcPresentationStyle { - constructor(expressID, Name, Side, Styles) { - super(expressID, Name); - this.Name = Name; - this.Side = Side; - this.Styles = Styles; - this.type = 1300840506; - } - } - IFC42.IfcSurfaceStyle = IfcSurfaceStyle; - class IfcSurfaceStyleLighting extends IfcPresentationItem { - constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { - super(expressID); - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.DiffuseReflectionColour = DiffuseReflectionColour; - this.TransmissionColour = TransmissionColour; - this.ReflectanceColour = ReflectanceColour; - this.type = 3303107099; - } - } - IFC42.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; - class IfcSurfaceStyleRefraction extends IfcPresentationItem { - constructor(expressID, RefractionIndex, DispersionFactor) { - super(expressID); - this.RefractionIndex = RefractionIndex; - this.DispersionFactor = DispersionFactor; - this.type = 1607154358; - } - } - IFC42.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; - class IfcSurfaceStyleShading extends IfcPresentationItem { - constructor(expressID, SurfaceColour, Transparency) { - super(expressID); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.type = 846575682; - } - } - IFC42.IfcSurfaceStyleShading = IfcSurfaceStyleShading; - class IfcSurfaceStyleWithTextures extends IfcPresentationItem { - constructor(expressID, Textures) { - super(expressID); - this.Textures = Textures; - this.type = 1351298697; - } - } - IFC42.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; - class IfcSurfaceTexture extends IfcPresentationItem { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { - super(expressID); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.type = 626085974; - } - } - IFC42.IfcSurfaceTexture = IfcSurfaceTexture; - class IfcTable extends IfcLineObject { - constructor(expressID, Name, Rows, Columns) { - super(expressID); - this.Name = Name; - this.Rows = Rows; - this.Columns = Columns; - this.type = 985171141; - } - } - IFC42.IfcTable = IfcTable; - class IfcTableColumn extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { - super(expressID); - this.Identifier = Identifier; - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.ReferencePath = ReferencePath; - this.type = 2043862942; - } - } - IFC42.IfcTableColumn = IfcTableColumn; - class IfcTableRow extends IfcLineObject { - constructor(expressID, RowCells, IsHeading) { - super(expressID); - this.RowCells = RowCells; - this.IsHeading = IsHeading; - this.type = 531007025; - } - } - IFC42.IfcTableRow = IfcTableRow; - class IfcTaskTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.type = 1549132990; - } - } - IFC42.IfcTaskTime = IfcTaskTime; - class IfcTaskTimeRecurring extends IfcTaskTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.Recurrence = Recurrence; - this.type = 2771591690; - } - } - IFC42.IfcTaskTimeRecurring = IfcTaskTimeRecurring; - class IfcTelecomAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.TelephoneNumbers = TelephoneNumbers; - this.FacsimileNumbers = FacsimileNumbers; - this.PagerNumber = PagerNumber; - this.ElectronicMailAddresses = ElectronicMailAddresses; - this.WWWHomePageURL = WWWHomePageURL; - this.MessagingIDs = MessagingIDs; - this.type = 912023232; - } - } - IFC42.IfcTelecomAddress = IfcTelecomAddress; - class IfcTextStyle extends IfcPresentationStyle { - constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.TextCharacterAppearance = TextCharacterAppearance; - this.TextStyle = TextStyle; - this.TextFontStyle = TextFontStyle; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 1447204868; - } - } - IFC42.IfcTextStyle = IfcTextStyle; - class IfcTextStyleForDefinedFont extends IfcPresentationItem { - constructor(expressID, Colour, BackgroundColour) { - super(expressID); - this.Colour = Colour; - this.BackgroundColour = BackgroundColour; - this.type = 2636378356; - } - } - IFC42.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; - class IfcTextStyleTextModel extends IfcPresentationItem { - constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { - super(expressID); - this.TextIndent = TextIndent; - this.TextAlign = TextAlign; - this.TextDecoration = TextDecoration; - this.LetterSpacing = LetterSpacing; - this.WordSpacing = WordSpacing; - this.TextTransform = TextTransform; - this.LineHeight = LineHeight; - this.type = 1640371178; - } - } - IFC42.IfcTextStyleTextModel = IfcTextStyleTextModel; - class IfcTextureCoordinate extends IfcPresentationItem { - constructor(expressID, Maps) { - super(expressID); - this.Maps = Maps; - this.type = 280115917; - } - } - IFC42.IfcTextureCoordinate = IfcTextureCoordinate; - class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { - constructor(expressID, Maps, Mode, Parameter) { - super(expressID, Maps); - this.Maps = Maps; - this.Mode = Mode; - this.Parameter = Parameter; - this.type = 1742049831; - } - } - IFC42.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; - class IfcTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, Vertices, MappedTo) { - super(expressID, Maps); - this.Maps = Maps; - this.Vertices = Vertices; - this.MappedTo = MappedTo; - this.type = 2552916305; - } - } - IFC42.IfcTextureMap = IfcTextureMap; - class IfcTextureVertex extends IfcPresentationItem { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1210645708; - } - } - IFC42.IfcTextureVertex = IfcTextureVertex; - class IfcTextureVertexList extends IfcPresentationItem { - constructor(expressID, TexCoordsList) { - super(expressID); - this.TexCoordsList = TexCoordsList; - this.type = 3611470254; - } - } - IFC42.IfcTextureVertexList = IfcTextureVertexList; - class IfcTimePeriod extends IfcLineObject { - constructor(expressID, StartTime, EndTime) { - super(expressID); - this.StartTime = StartTime; - this.EndTime = EndTime; - this.type = 1199560280; - } - } - IFC42.IfcTimePeriod = IfcTimePeriod; - class IfcTimeSeries extends IfcLineObject { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.type = 3101149627; - } - } - IFC42.IfcTimeSeries = IfcTimeSeries; - class IfcTimeSeriesValue extends IfcLineObject { - constructor(expressID, ListValues) { - super(expressID); - this.ListValues = ListValues; - this.type = 581633288; - } - } - IFC42.IfcTimeSeriesValue = IfcTimeSeriesValue; - class IfcTopologicalRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1377556343; - } - } - IFC42.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; - class IfcTopologyRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1735638870; - } - } - IFC42.IfcTopologyRepresentation = IfcTopologyRepresentation; - class IfcUnitAssignment extends IfcLineObject { - constructor(expressID, Units) { - super(expressID); - this.Units = Units; - this.type = 180925521; - } - } - IFC42.IfcUnitAssignment = IfcUnitAssignment; - class IfcVertex extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2799835756; - } - } - IFC42.IfcVertex = IfcVertex; - class IfcVertexPoint extends IfcVertex { - constructor(expressID, VertexGeometry) { - super(expressID); - this.VertexGeometry = VertexGeometry; - this.type = 1907098498; - } - } - IFC42.IfcVertexPoint = IfcVertexPoint; - class IfcVirtualGridIntersection extends IfcLineObject { - constructor(expressID, IntersectingAxes, OffsetDistances) { - super(expressID); - this.IntersectingAxes = IntersectingAxes; - this.OffsetDistances = OffsetDistances; - this.type = 891718957; - } - } - IFC42.IfcVirtualGridIntersection = IfcVirtualGridIntersection; - class IfcWorkTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.RecurrencePattern = RecurrencePattern; - this.Start = Start; - this.Finish = Finish; - this.type = 1236880293; - } - } - IFC42.IfcWorkTime = IfcWorkTime; - class IfcApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingApproval = RelatingApproval; - this.RelatedApprovals = RelatedApprovals; - this.type = 3869604511; - } - } - IFC42.IfcApprovalRelationship = IfcApprovalRelationship; - class IfcArbitraryClosedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.type = 3798115385; - } - } - IFC42.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; - class IfcArbitraryOpenProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.type = 1310608509; - } - } - IFC42.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; - class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { - super(expressID, ProfileType, ProfileName, OuterCurve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.InnerCurves = InnerCurves; - this.type = 2705031697; - } - } - IFC42.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; - class IfcBlobTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.RasterFormat = RasterFormat; - this.RasterCode = RasterCode; - this.type = 616511568; - } - } - IFC42.IfcBlobTexture = IfcBlobTexture; - class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { - super(expressID, ProfileType, ProfileName, Curve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.Thickness = Thickness; - this.type = 3150382593; - } - } - IFC42.IfcCenterLineProfileDef = IfcCenterLineProfileDef; - class IfcClassification extends IfcExternalInformation { - constructor(expressID, Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) { - super(expressID); - this.Source = Source; - this.Edition = Edition; - this.EditionDate = EditionDate; - this.Name = Name; - this.Description = Description; - this.Location = Location; - this.ReferenceTokens = ReferenceTokens; - this.type = 747523909; - } - } - IFC42.IfcClassification = IfcClassification; - class IfcClassificationReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.ReferencedSource = ReferencedSource; - this.Description = Description; - this.Sort = Sort; - this.type = 647927063; - } - } - IFC42.IfcClassificationReference = IfcClassificationReference; - class IfcColourRgbList extends IfcPresentationItem { - constructor(expressID, ColourList) { - super(expressID); - this.ColourList = ColourList; - this.type = 3285139300; - } - } - IFC42.IfcColourRgbList = IfcColourRgbList; - class IfcColourSpecification extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3264961684; - } - } - IFC42.IfcColourSpecification = IfcColourSpecification; - class IfcCompositeProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Profiles, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Profiles = Profiles; - this.Label = Label; - this.type = 1485152156; - } - } - IFC42.IfcCompositeProfileDef = IfcCompositeProfileDef; - class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { - constructor(expressID, CfsFaces) { - super(expressID); - this.CfsFaces = CfsFaces; - this.type = 370225590; - } - } - IFC42.IfcConnectedFaceSet = IfcConnectedFaceSet; - class IfcConnectionCurveGeometry extends IfcConnectionGeometry { - constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { - super(expressID); - this.CurveOnRelatingElement = CurveOnRelatingElement; - this.CurveOnRelatedElement = CurveOnRelatedElement; - this.type = 1981873012; - } - } - IFC42.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; - class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { - super(expressID, PointOnRelatingElement, PointOnRelatedElement); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.EccentricityInX = EccentricityInX; - this.EccentricityInY = EccentricityInY; - this.EccentricityInZ = EccentricityInZ; - this.type = 45288368; - } - } - IFC42.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; - class IfcContextDependentUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.type = 3050246964; - } - } - IFC42.IfcContextDependentUnit = IfcContextDependentUnit; - class IfcConversionBasedUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.type = 2889183280; - } - } - IFC42.IfcConversionBasedUnit = IfcConversionBasedUnit; - class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { - super(expressID, Dimensions, UnitType, Name, ConversionFactor); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.ConversionOffset = ConversionOffset; - this.type = 2713554722; - } - } - IFC42.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; - class IfcCurrencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingMonetaryUnit = RelatingMonetaryUnit; - this.RelatedMonetaryUnit = RelatedMonetaryUnit; - this.ExchangeRate = ExchangeRate; - this.RateDateTime = RateDateTime; - this.RateSource = RateSource; - this.type = 539742890; - } - } - IFC42.IfcCurrencyRelationship = IfcCurrencyRelationship; - class IfcCurveStyle extends IfcPresentationStyle { - constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveWidth = CurveWidth; - this.CurveColour = CurveColour; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 3800577675; - } - } - IFC42.IfcCurveStyle = IfcCurveStyle; - class IfcCurveStyleFont extends IfcPresentationItem { - constructor(expressID, Name, PatternList) { - super(expressID); - this.Name = Name; - this.PatternList = PatternList; - this.type = 1105321065; - } - } - IFC42.IfcCurveStyleFont = IfcCurveStyleFont; - class IfcCurveStyleFontAndScaling extends IfcPresentationItem { - constructor(expressID, Name, CurveFont, CurveFontScaling) { - super(expressID); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveFontScaling = CurveFontScaling; - this.type = 2367409068; - } - } - IFC42.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; - class IfcCurveStyleFontPattern extends IfcPresentationItem { - constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { - super(expressID); - this.VisibleSegmentLength = VisibleSegmentLength; - this.InvisibleSegmentLength = InvisibleSegmentLength; - this.type = 3510044353; - } - } - IFC42.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; - class IfcDerivedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 3632507154; - } - } - IFC42.IfcDerivedProfileDef = IfcDerivedProfileDef; - class IfcDocumentInformation extends IfcExternalInformation { - constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { - super(expressID); - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Location = Location; - this.Purpose = Purpose; - this.IntendedUse = IntendedUse; - this.Scope = Scope; - this.Revision = Revision; - this.DocumentOwner = DocumentOwner; - this.Editors = Editors; - this.CreationTime = CreationTime; - this.LastRevisionTime = LastRevisionTime; - this.ElectronicFormat = ElectronicFormat; - this.ValidFrom = ValidFrom; - this.ValidUntil = ValidUntil; - this.Confidentiality = Confidentiality; - this.Status = Status; - this.type = 1154170062; - } - } - IFC42.IfcDocumentInformation = IfcDocumentInformation; - class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingDocument = RelatingDocument; - this.RelatedDocuments = RelatedDocuments; - this.RelationshipType = RelationshipType; - this.type = 770865208; - } - } - IFC42.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; - class IfcDocumentReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.ReferencedDocument = ReferencedDocument; - this.type = 3732053477; - } - } - IFC42.IfcDocumentReference = IfcDocumentReference; - class IfcEdge extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeStart, EdgeEnd) { - super(expressID); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.type = 3900360178; - } - } - IFC42.IfcEdge = IfcEdge; - class IfcEdgeCurve extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.EdgeGeometry = EdgeGeometry; - this.SameSense = SameSense; - this.type = 476780140; - } - } - IFC42.IfcEdgeCurve = IfcEdgeCurve; - class IfcEventTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ActualDate = ActualDate; - this.EarlyDate = EarlyDate; - this.LateDate = LateDate; - this.ScheduleDate = ScheduleDate; - this.type = 211053100; - } - } - IFC42.IfcEventTime = IfcEventTime; - class IfcExtendedProperties extends IfcPropertyAbstraction { - constructor(expressID, Name, Description, Properties2) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.type = 297599258; - } - } - IFC42.IfcExtendedProperties = IfcExtendedProperties; - class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingReference = RelatingReference; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1437805879; - } - } - IFC42.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; - class IfcFace extends IfcTopologicalRepresentationItem { - constructor(expressID, Bounds) { - super(expressID); - this.Bounds = Bounds; - this.type = 2556980723; - } - } - IFC42.IfcFace = IfcFace; - class IfcFaceBound extends IfcTopologicalRepresentationItem { - constructor(expressID, Bound, Orientation) { - super(expressID); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 1809719519; - } - } - IFC42.IfcFaceBound = IfcFaceBound; - class IfcFaceOuterBound extends IfcFaceBound { - constructor(expressID, Bound, Orientation) { - super(expressID, Bound, Orientation); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 803316827; - } - } - IFC42.IfcFaceOuterBound = IfcFaceOuterBound; - class IfcFaceSurface extends IfcFace { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3008276851; - } - } - IFC42.IfcFaceSurface = IfcFaceSurface; - class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { - super(expressID, Name); - this.Name = Name; - this.TensionFailureX = TensionFailureX; - this.TensionFailureY = TensionFailureY; - this.TensionFailureZ = TensionFailureZ; - this.CompressionFailureX = CompressionFailureX; - this.CompressionFailureY = CompressionFailureY; - this.CompressionFailureZ = CompressionFailureZ; - this.type = 4219587988; - } - } - IFC42.IfcFailureConnectionCondition = IfcFailureConnectionCondition; - class IfcFillAreaStyle extends IfcPresentationStyle { - constructor(expressID, Name, FillStyles, ModelorDraughting) { - super(expressID, Name); - this.Name = Name; - this.FillStyles = FillStyles; - this.ModelorDraughting = ModelorDraughting; - this.type = 738692330; - } - } - IFC42.IfcFillAreaStyle = IfcFillAreaStyle; - class IfcGeometricRepresentationContext extends IfcRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { - super(expressID, ContextIdentifier, ContextType); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.CoordinateSpaceDimension = CoordinateSpaceDimension; - this.Precision = Precision; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.TrueNorth = TrueNorth; - this.type = 3448662350; - } - } - IFC42.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; - class IfcGeometricRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2453401579; - } - } - IFC42.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; - class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { - super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.ParentContext = ParentContext; - this.TargetScale = TargetScale; - this.TargetView = TargetView; - this.UserDefinedTargetView = UserDefinedTargetView; - this.type = 4142052618; - } - } - IFC42.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; - class IfcGeometricSet extends IfcGeometricRepresentationItem { - constructor(expressID, Elements) { - super(expressID); - this.Elements = Elements; - this.type = 3590301190; - } - } - IFC42.IfcGeometricSet = IfcGeometricSet; - class IfcGridPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementLocation, PlacementRefDirection) { - super(expressID); - this.PlacementLocation = PlacementLocation; - this.PlacementRefDirection = PlacementRefDirection; - this.type = 178086475; - } - } - IFC42.IfcGridPlacement = IfcGridPlacement; - class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { - constructor(expressID, BaseSurface, AgreementFlag) { - super(expressID); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.type = 812098782; - } - } - IFC42.IfcHalfSpaceSolid = IfcHalfSpaceSolid; - class IfcImageTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.URLReference = URLReference; - this.type = 3905492369; - } - } - IFC42.IfcImageTexture = IfcImageTexture; - class IfcIndexedColourMap extends IfcPresentationItem { - constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { - super(expressID); - this.MappedTo = MappedTo; - this.Opacity = Opacity; - this.Colours = Colours; - this.ColourIndex = ColourIndex; - this.type = 3570813810; - } - } - IFC42.IfcIndexedColourMap = IfcIndexedColourMap; - class IfcIndexedTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, MappedTo, TexCoords) { - super(expressID, Maps); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.type = 1437953363; - } - } - IFC42.IfcIndexedTextureMap = IfcIndexedTextureMap; - class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { - constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { - super(expressID, Maps, MappedTo, TexCoords); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.TexCoordIndex = TexCoordIndex; - this.type = 2133299955; - } - } - IFC42.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; - class IfcIrregularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.Values = Values; - this.type = 3741457305; - } - } - IFC42.IfcIrregularTimeSeries = IfcIrregularTimeSeries; - class IfcLagTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.LagValue = LagValue; - this.DurationType = DurationType; - this.type = 1585845231; - } - } - IFC42.IfcLagTime = IfcLagTime; - class IfcLightSource extends IfcGeometricRepresentationItem { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 1402838566; - } - } - IFC42.IfcLightSource = IfcLightSource; - class IfcLightSourceAmbient extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 125510826; - } - } - IFC42.IfcLightSourceAmbient = IfcLightSourceAmbient; - class IfcLightSourceDirectional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Orientation = Orientation; - this.type = 2604431987; - } - } - IFC42.IfcLightSourceDirectional = IfcLightSourceDirectional; - class IfcLightSourceGoniometric extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.ColourAppearance = ColourAppearance; - this.ColourTemperature = ColourTemperature; - this.LuminousFlux = LuminousFlux; - this.LightEmissionSource = LightEmissionSource; - this.LightDistributionDataSource = LightDistributionDataSource; - this.type = 4266656042; - } - } - IFC42.IfcLightSourceGoniometric = IfcLightSourceGoniometric; - class IfcLightSourcePositional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.type = 1520743889; - } - } - IFC42.IfcLightSourcePositional = IfcLightSourcePositional; - class IfcLightSourceSpot extends IfcLightSourcePositional { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.Orientation = Orientation; - this.ConcentrationExponent = ConcentrationExponent; - this.SpreadAngle = SpreadAngle; - this.BeamWidthAngle = BeamWidthAngle; - this.type = 3422422726; - } - } - IFC42.IfcLightSourceSpot = IfcLightSourceSpot; - class IfcLocalPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement) { - super(expressID); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.type = 2624227202; - } - } - IFC42.IfcLocalPlacement = IfcLocalPlacement; - class IfcLoop extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1008929658; - } - } - IFC42.IfcLoop = IfcLoop; - class IfcMappedItem extends IfcRepresentationItem { - constructor(expressID, MappingSource, MappingTarget) { - super(expressID); - this.MappingSource = MappingSource; - this.MappingTarget = MappingTarget; - this.type = 2347385850; - } - } - IFC42.IfcMappedItem = IfcMappedItem; - class IfcMaterial extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.type = 1838606355; - } - } - IFC42.IfcMaterial = IfcMaterial; - class IfcMaterialConstituent extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Fraction, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Fraction = Fraction; - this.Category = Category; - this.type = 3708119e3; - } - } - IFC42.IfcMaterialConstituent = IfcMaterialConstituent; - class IfcMaterialConstituentSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialConstituents) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.MaterialConstituents = MaterialConstituents; - this.type = 2852063980; - } - } - IFC42.IfcMaterialConstituentSet = IfcMaterialConstituentSet; - class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations, RepresentedMaterial) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.RepresentedMaterial = RepresentedMaterial; - this.type = 2022407955; - } - } - IFC42.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; - class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { - super(expressID); - this.ForLayerSet = ForLayerSet; - this.LayerSetDirection = LayerSetDirection; - this.DirectionSense = DirectionSense; - this.OffsetFromReferenceLine = OffsetFromReferenceLine; - this.ReferenceExtent = ReferenceExtent; - this.type = 1303795690; - } - } - IFC42.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; - class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { - super(expressID); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.type = 3079605661; - } - } - IFC42.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; - class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { - super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.ForProfileEndSet = ForProfileEndSet; - this.CardinalEndPoint = CardinalEndPoint; - this.type = 3404854881; - } - } - IFC42.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; - class IfcMaterialProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, Material) { - super(expressID, Name, Description, Properties2); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.Material = Material; - this.type = 3265635763; - } - } - IFC42.IfcMaterialProperties = IfcMaterialProperties; - class IfcMaterialRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, Expression) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingMaterial = RelatingMaterial; - this.RelatedMaterials = RelatedMaterials; - this.Expression = Expression; - this.type = 853536259; - } - } - IFC42.IfcMaterialRelationship = IfcMaterialRelationship; - class IfcMirroredProfileDef extends IfcDerivedProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Label) { - super(expressID, ProfileType, ProfileName, ParentProfile, new Handle(0), Label); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Label = Label; - this.type = 2998442950; - } - } - IFC42.IfcMirroredProfileDef = IfcMirroredProfileDef; - class IfcObjectDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 219451334; - } - } - IFC42.IfcObjectDefinition = IfcObjectDefinition; - class IfcOpenShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2665983363; - } - } - IFC42.IfcOpenShell = IfcOpenShell; - class IfcOrganizationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingOrganization = RelatingOrganization; - this.RelatedOrganizations = RelatedOrganizations; - this.type = 1411181986; - } - } - IFC42.IfcOrganizationRelationship = IfcOrganizationRelationship; - class IfcOrientedEdge extends IfcEdge { - constructor(expressID, EdgeElement, Orientation) { - super(expressID, new Handle(0), new Handle(0)); - this.EdgeElement = EdgeElement; - this.Orientation = Orientation; - this.type = 1029017970; - } - } - IFC42.IfcOrientedEdge = IfcOrientedEdge; - class IfcParameterizedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Position) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.type = 2529465313; - } - } - IFC42.IfcParameterizedProfileDef = IfcParameterizedProfileDef; - class IfcPath extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 2519244187; - } - } - IFC42.IfcPath = IfcPath; - class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.HasQuantities = HasQuantities; - this.Discrimination = Discrimination; - this.Quality = Quality; - this.Usage = Usage; - this.type = 3021840470; - } - } - IFC42.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; - class IfcPixelTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.Width = Width; - this.Height = Height; - this.ColourComponents = ColourComponents; - this.Pixel = Pixel; - this.type = 597895409; - } - } - IFC42.IfcPixelTexture = IfcPixelTexture; - class IfcPlacement extends IfcGeometricRepresentationItem { - constructor(expressID, Location) { - super(expressID); - this.Location = Location; - this.type = 2004835150; - } - } - IFC42.IfcPlacement = IfcPlacement; - class IfcPlanarExtent extends IfcGeometricRepresentationItem { - constructor(expressID, SizeInX, SizeInY) { - super(expressID); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.type = 1663979128; - } - } - IFC42.IfcPlanarExtent = IfcPlanarExtent; - class IfcPoint extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2067069095; - } - } - IFC42.IfcPoint = IfcPoint; - class IfcPointOnCurve extends IfcPoint { - constructor(expressID, BasisCurve, PointParameter) { - super(expressID); - this.BasisCurve = BasisCurve; - this.PointParameter = PointParameter; - this.type = 4022376103; - } - } - IFC42.IfcPointOnCurve = IfcPointOnCurve; - class IfcPointOnSurface extends IfcPoint { - constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { - super(expressID); - this.BasisSurface = BasisSurface; - this.PointParameterU = PointParameterU; - this.PointParameterV = PointParameterV; - this.type = 1423911732; - } - } - IFC42.IfcPointOnSurface = IfcPointOnSurface; - class IfcPolyLoop extends IfcLoop { - constructor(expressID, Polygon) { - super(expressID); - this.Polygon = Polygon; - this.type = 2924175390; - } - } - IFC42.IfcPolyLoop = IfcPolyLoop; - class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Position = Position; - this.PolygonalBoundary = PolygonalBoundary; - this.type = 2775532180; - } - } - IFC42.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; - class IfcPreDefinedItem extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3727388367; - } - } - IFC42.IfcPreDefinedItem = IfcPreDefinedItem; - class IfcPreDefinedProperties extends IfcPropertyAbstraction { - constructor(expressID) { - super(expressID); - this.type = 3778827333; - } - } - IFC42.IfcPreDefinedProperties = IfcPreDefinedProperties; - class IfcPreDefinedTextFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 1775413392; - } - } - IFC42.IfcPreDefinedTextFont = IfcPreDefinedTextFont; - class IfcProductDefinitionShape extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 673634403; - } - } - IFC42.IfcProductDefinitionShape = IfcProductDefinitionShape; - class IfcProfileProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, ProfileDefinition) { - super(expressID, Name, Description, Properties2); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.ProfileDefinition = ProfileDefinition; - this.type = 2802850158; - } - } - IFC42.IfcProfileProperties = IfcProfileProperties; - class IfcProperty extends IfcPropertyAbstraction { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2598011224; - } - } - IFC42.IfcProperty = IfcProperty; - class IfcPropertyDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1680319473; - } - } - IFC42.IfcPropertyDefinition = IfcPropertyDefinition; - class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.DependingProperty = DependingProperty; - this.DependantProperty = DependantProperty; - this.Expression = Expression; - this.type = 148025276; - } - } - IFC42.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; - class IfcPropertySetDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3357820518; - } - } - IFC42.IfcPropertySetDefinition = IfcPropertySetDefinition; - class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1482703590; - } - } - IFC42.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; - class IfcQuantitySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2090586900; - } - } - IFC42.IfcQuantitySet = IfcQuantitySet; - class IfcRectangleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.type = 3615266464; - } - } - IFC42.IfcRectangleProfileDef = IfcRectangleProfileDef; - class IfcRegularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.TimeStep = TimeStep; - this.Values = Values; - this.type = 3413951693; - } - } - IFC42.IfcRegularTimeSeries = IfcRegularTimeSeries; - class IfcReinforcementBarProperties extends IfcPreDefinedProperties { - constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { - super(expressID); - this.TotalCrossSectionArea = TotalCrossSectionArea; - this.SteelGrade = SteelGrade; - this.BarSurface = BarSurface; - this.EffectiveDepth = EffectiveDepth; - this.NominalBarDiameter = NominalBarDiameter; - this.BarCount = BarCount; - this.type = 1580146022; - } - } - IFC42.IfcReinforcementBarProperties = IfcReinforcementBarProperties; - class IfcRelationship extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 478536968; - } - } - IFC42.IfcRelationship = IfcRelationship; - class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatedResourceObjects = RelatedResourceObjects; - this.RelatingApproval = RelatingApproval; - this.type = 2943643501; - } - } - IFC42.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; - class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1608871552; - } - } - IFC42.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; - class IfcResourceTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ScheduleWork = ScheduleWork; - this.ScheduleUsage = ScheduleUsage; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.ScheduleContour = ScheduleContour; - this.LevelingDelay = LevelingDelay; - this.IsOverAllocated = IsOverAllocated; - this.StatusTime = StatusTime; - this.ActualWork = ActualWork; - this.ActualUsage = ActualUsage; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingWork = RemainingWork; - this.RemainingUsage = RemainingUsage; - this.Completion = Completion; - this.type = 1042787934; - } - } - IFC42.IfcResourceTime = IfcResourceTime; - class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.RoundingRadius = RoundingRadius; - this.type = 2778083089; - } - } - IFC42.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; - class IfcSectionProperties extends IfcPreDefinedProperties { - constructor(expressID, SectionType, StartProfile, EndProfile) { - super(expressID); - this.SectionType = SectionType; - this.StartProfile = StartProfile; - this.EndProfile = EndProfile; - this.type = 2042790032; - } - } - IFC42.IfcSectionProperties = IfcSectionProperties; - class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { - constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { - super(expressID); - this.LongitudinalStartPosition = LongitudinalStartPosition; - this.LongitudinalEndPosition = LongitudinalEndPosition; - this.TransversePosition = TransversePosition; - this.ReinforcementRole = ReinforcementRole; - this.SectionDefinition = SectionDefinition; - this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; - this.type = 4165799628; - } - } - IFC42.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; - class IfcSectionedSpine extends IfcGeometricRepresentationItem { - constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { - super(expressID); - this.SpineCurve = SpineCurve; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1509187699; - } - } - IFC42.IfcSectionedSpine = IfcSectionedSpine; - class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, SbsmBoundary) { - super(expressID); - this.SbsmBoundary = SbsmBoundary; - this.type = 4124623270; - } - } - IFC42.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; - class IfcSimpleProperty extends IfcProperty { - constructor(expressID, Name, Description) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.type = 3692461612; - } - } - IFC42.IfcSimpleProperty = IfcSimpleProperty; - class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { - super(expressID, Name); - this.Name = Name; - this.SlippageX = SlippageX; - this.SlippageY = SlippageY; - this.SlippageZ = SlippageZ; - this.type = 2609359061; - } - } - IFC42.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; - class IfcSolidModel extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 723233188; - } - } - IFC42.IfcSolidModel = IfcSolidModel; - class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { - super(expressID, Name); - this.Name = Name; - this.LinearForceX = LinearForceX; - this.LinearForceY = LinearForceY; - this.LinearForceZ = LinearForceZ; - this.LinearMomentX = LinearMomentX; - this.LinearMomentY = LinearMomentY; - this.LinearMomentZ = LinearMomentZ; - this.type = 1595516126; - } - } - IFC42.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; - class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { - super(expressID, Name); - this.Name = Name; - this.PlanarForceX = PlanarForceX; - this.PlanarForceY = PlanarForceY; - this.PlanarForceZ = PlanarForceZ; - this.type = 2668620305; - } - } - IFC42.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; - class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { - super(expressID, Name); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.type = 2473145415; - } - } - IFC42.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; - class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { - super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.Distortion = Distortion; - this.type = 1973038258; - } - } - IFC42.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; - class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { - super(expressID, Name); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.type = 1597423693; - } - } - IFC42.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; - class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { - super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.WarpingMoment = WarpingMoment; - this.type = 1190533807; - } - } - IFC42.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; - class IfcSubedge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.ParentEdge = ParentEdge; - this.type = 2233826070; - } - } - IFC42.IfcSubedge = IfcSubedge; - class IfcSurface extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2513912981; - } - } - IFC42.IfcSurface = IfcSurface; - class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { - constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { - super(expressID, SurfaceColour, Transparency); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.DiffuseColour = DiffuseColour; - this.TransmissionColour = TransmissionColour; - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.ReflectionColour = ReflectionColour; - this.SpecularColour = SpecularColour; - this.SpecularHighlight = SpecularHighlight; - this.ReflectanceMethod = ReflectanceMethod; - this.type = 1878645084; - } - } - IFC42.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; - class IfcSweptAreaSolid extends IfcSolidModel { - constructor(expressID, SweptArea, Position) { - super(expressID); - this.SweptArea = SweptArea; - this.Position = Position; - this.type = 2247615214; - } - } - IFC42.IfcSweptAreaSolid = IfcSweptAreaSolid; - class IfcSweptDiskSolid extends IfcSolidModel { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { - super(expressID); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 1260650574; - } - } - IFC42.IfcSweptDiskSolid = IfcSweptDiskSolid; - class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { - super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FilletRadius = FilletRadius; - this.type = 1096409881; - } - } - IFC42.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; - class IfcSweptSurface extends IfcSurface { - constructor(expressID, SweptCurve, Position) { - super(expressID); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.type = 230924584; - } - } - IFC42.IfcSweptSurface = IfcSweptSurface; - class IfcTShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.WebEdgeRadius = WebEdgeRadius; - this.WebSlope = WebSlope; - this.FlangeSlope = FlangeSlope; - this.type = 3071757647; - } - } - IFC42.IfcTShapeProfileDef = IfcTShapeProfileDef; - class IfcTessellatedItem extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 901063453; - } - } - IFC42.IfcTessellatedItem = IfcTessellatedItem; - class IfcTextLiteral extends IfcGeometricRepresentationItem { - constructor(expressID, Literal, Placement, Path) { - super(expressID); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.type = 4282788508; - } - } - IFC42.IfcTextLiteral = IfcTextLiteral; - class IfcTextLiteralWithExtent extends IfcTextLiteral { - constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { - super(expressID, Literal, Placement, Path); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.Extent = Extent; - this.BoxAlignment = BoxAlignment; - this.type = 3124975700; - } - } - IFC42.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; - class IfcTextStyleFontModel extends IfcPreDefinedTextFont { - constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { - super(expressID, Name); - this.Name = Name; - this.FontFamily = FontFamily; - this.FontStyle = FontStyle; - this.FontVariant = FontVariant; - this.FontWeight = FontWeight; - this.FontSize = FontSize; - this.type = 1983826977; - } - } - IFC42.IfcTextStyleFontModel = IfcTextStyleFontModel; - class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomXDim = BottomXDim; - this.TopXDim = TopXDim; - this.YDim = YDim; - this.TopXOffset = TopXOffset; - this.type = 2715220739; - } - } - IFC42.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; - class IfcTypeObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.type = 1628702193; - } - } - IFC42.IfcTypeObject = IfcTypeObject; - class IfcTypeProcess extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.type = 3736923433; - } - } - IFC42.IfcTypeProcess = IfcTypeProcess; - class IfcTypeProduct extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.type = 2347495698; - } - } - IFC42.IfcTypeProduct = IfcTypeProduct; - class IfcTypeResource extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.type = 3698973494; - } - } - IFC42.IfcTypeResource = IfcTypeResource; - class IfcUShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 427810014; - } - } - IFC42.IfcUShapeProfileDef = IfcUShapeProfileDef; - class IfcVector extends IfcGeometricRepresentationItem { - constructor(expressID, Orientation, Magnitude) { - super(expressID); - this.Orientation = Orientation; - this.Magnitude = Magnitude; - this.type = 1417489154; - } - } - IFC42.IfcVector = IfcVector; - class IfcVertexLoop extends IfcLoop { - constructor(expressID, LoopVertex) { - super(expressID); - this.LoopVertex = LoopVertex; - this.type = 2759199220; - } - } - IFC42.IfcVertexLoop = IfcVertexLoop; - class IfcWindowStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ConstructionType = ConstructionType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 1299126871; - } - } - IFC42.IfcWindowStyle = IfcWindowStyle; - class IfcZShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.type = 2543172580; - } - } - IFC42.IfcZShapeProfileDef = IfcZShapeProfileDef; - class IfcAdvancedFace extends IfcFaceSurface { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds, FaceSurface, SameSense); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3406155212; - } - } - IFC42.IfcAdvancedFace = IfcAdvancedFace; - class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { - constructor(expressID, OuterBoundary, InnerBoundaries) { - super(expressID); - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 669184980; - } - } - IFC42.IfcAnnotationFillArea = IfcAnnotationFillArea; - class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomFlangeWidth = BottomFlangeWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.BottomFlangeThickness = BottomFlangeThickness; - this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; - this.TopFlangeWidth = TopFlangeWidth; - this.TopFlangeThickness = TopFlangeThickness; - this.TopFlangeFilletRadius = TopFlangeFilletRadius; - this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; - this.BottomFlangeSlope = BottomFlangeSlope; - this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; - this.TopFlangeSlope = TopFlangeSlope; - this.type = 3207858831; - } - } - IFC42.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; - class IfcAxis1Placement extends IfcPlacement { - constructor(expressID, Location, Axis) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.type = 4261334040; - } - } - IFC42.IfcAxis1Placement = IfcAxis1Placement; - class IfcAxis2Placement2D extends IfcPlacement { - constructor(expressID, Location, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.RefDirection = RefDirection; - this.type = 3125803723; - } - } - IFC42.IfcAxis2Placement2D = IfcAxis2Placement2D; - class IfcAxis2Placement3D extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 2740243338; - } - } - IFC42.IfcAxis2Placement3D = IfcAxis2Placement3D; - class IfcBooleanResult extends IfcGeometricRepresentationItem { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 2736907675; - } - } - IFC42.IfcBooleanResult = IfcBooleanResult; - class IfcBoundedSurface extends IfcSurface { - constructor(expressID) { - super(expressID); - this.type = 4182860854; - } - } - IFC42.IfcBoundedSurface = IfcBoundedSurface; - class IfcBoundingBox extends IfcGeometricRepresentationItem { - constructor(expressID, Corner, XDim, YDim, ZDim) { - super(expressID); - this.Corner = Corner; - this.XDim = XDim; - this.YDim = YDim; - this.ZDim = ZDim; - this.type = 2581212453; - } - } - IFC42.IfcBoundingBox = IfcBoundingBox; - class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Enclosure = Enclosure; - this.type = 2713105998; - } - } - IFC42.IfcBoxedHalfSpace = IfcBoxedHalfSpace; - class IfcCShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.WallThickness = WallThickness; - this.Girth = Girth; - this.InternalFilletRadius = InternalFilletRadius; - this.type = 2898889636; - } - } - IFC42.IfcCShapeProfileDef = IfcCShapeProfileDef; - class IfcCartesianPoint extends IfcPoint { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1123145078; - } - } - IFC42.IfcCartesianPoint = IfcCartesianPoint; - class IfcCartesianPointList extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 574549367; - } - } - IFC42.IfcCartesianPointList = IfcCartesianPointList; - class IfcCartesianPointList2D extends IfcCartesianPointList { - constructor(expressID, CoordList) { - super(expressID); - this.CoordList = CoordList; - this.type = 1675464909; - } - } - IFC42.IfcCartesianPointList2D = IfcCartesianPointList2D; - class IfcCartesianPointList3D extends IfcCartesianPointList { - constructor(expressID, CoordList) { - super(expressID); - this.CoordList = CoordList; - this.type = 2059837836; - } - } - IFC42.IfcCartesianPointList3D = IfcCartesianPointList3D; - class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 59481748; - } - } - IFC42.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; - class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 3749851601; - } - } - IFC42.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; - class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Scale2 = Scale2; - this.type = 3486308946; - } - } - IFC42.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; - class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.type = 3331915920; - } - } - IFC42.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; - class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.Scale2 = Scale2; - this.Scale3 = Scale3; - this.type = 1416205885; - } - } - IFC42.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; - class IfcCircleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.type = 1383045692; - } - } - IFC42.IfcCircleProfileDef = IfcCircleProfileDef; - class IfcClosedShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2205249479; - } - } - IFC42.IfcClosedShell = IfcClosedShell; - class IfcColourRgb extends IfcColourSpecification { - constructor(expressID, Name, Red, Green, Blue) { - super(expressID, Name); - this.Name = Name; - this.Red = Red; - this.Green = Green; - this.Blue = Blue; - this.type = 776857604; - } - } - IFC42.IfcColourRgb = IfcColourRgb; - class IfcComplexProperty extends IfcProperty { - constructor(expressID, Name, Description, UsageName, HasProperties) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.HasProperties = HasProperties; - this.type = 2542286263; - } - } - IFC42.IfcComplexProperty = IfcComplexProperty; - class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem { - constructor(expressID, Transition, SameSense, ParentCurve) { - super(expressID); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.type = 2485617015; - } - } - IFC42.IfcCompositeCurveSegment = IfcCompositeCurveSegment; - class IfcConstructionResourceType extends IfcTypeResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2574617495; - } - } - IFC42.IfcConstructionResourceType = IfcConstructionResourceType; - class IfcContext extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 3419103109; - } - } - IFC42.IfcContext = IfcContext; - class IfcCrewResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1815067380; - } - } - IFC42.IfcCrewResourceType = IfcCrewResourceType; - class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2506170314; - } - } - IFC42.IfcCsgPrimitive3D = IfcCsgPrimitive3D; - class IfcCsgSolid extends IfcSolidModel { - constructor(expressID, TreeRootExpression) { - super(expressID); - this.TreeRootExpression = TreeRootExpression; - this.type = 2147822146; - } - } - IFC42.IfcCsgSolid = IfcCsgSolid; - class IfcCurve extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2601014836; - } - } - IFC42.IfcCurve = IfcCurve; - class IfcCurveBoundedPlane extends IfcBoundedSurface { - constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { - super(expressID); - this.BasisSurface = BasisSurface; - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 2827736869; - } - } - IFC42.IfcCurveBoundedPlane = IfcCurveBoundedPlane; - class IfcCurveBoundedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { - super(expressID); - this.BasisSurface = BasisSurface; - this.Boundaries = Boundaries; - this.ImplicitOuter = ImplicitOuter; - this.type = 2629017746; - } - } - IFC42.IfcCurveBoundedSurface = IfcCurveBoundedSurface; - class IfcDirection extends IfcGeometricRepresentationItem { - constructor(expressID, DirectionRatios) { - super(expressID); - this.DirectionRatios = DirectionRatios; - this.type = 32440307; - } - } - IFC42.IfcDirection = IfcDirection; - class IfcDoorStyle extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.OperationType = OperationType; - this.ConstructionType = ConstructionType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.Sizeable = Sizeable; - this.type = 526551008; - } - } - IFC42.IfcDoorStyle = IfcDoorStyle; - class IfcEdgeLoop extends IfcLoop { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 1472233963; - } - } - IFC42.IfcEdgeLoop = IfcEdgeLoop; - class IfcElementQuantity extends IfcQuantitySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.MethodOfMeasurement = MethodOfMeasurement; - this.Quantities = Quantities; - this.type = 1883228015; - } - } - IFC42.IfcElementQuantity = IfcElementQuantity; - class IfcElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 339256511; - } - } - IFC42.IfcElementType = IfcElementType; - class IfcElementarySurface extends IfcSurface { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2777663545; - } - } - IFC42.IfcElementarySurface = IfcElementarySurface; - class IfcEllipseProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 2835456948; - } - } - IFC42.IfcEllipseProfileDef = IfcEllipseProfileDef; - class IfcEventType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.type = 4024345920; - } - } - IFC42.IfcEventType = IfcEventType; - class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 477187591; - } - } - IFC42.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; - class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { - super(expressID, SweptArea, Position, ExtrudedDirection, Depth); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.EndSweptArea = EndSweptArea; - this.type = 2804161546; - } - } - IFC42.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; - class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, FbsmFaces) { - super(expressID); - this.FbsmFaces = FbsmFaces; - this.type = 2047409740; - } - } - IFC42.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; - class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { - constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { - super(expressID); - this.HatchLineAppearance = HatchLineAppearance; - this.StartOfNextHatchLine = StartOfNextHatchLine; - this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; - this.PatternStart = PatternStart; - this.HatchLineAngle = HatchLineAngle; - this.type = 374418227; - } - } - IFC42.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; - class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { - constructor(expressID, TilingPattern, Tiles, TilingScale) { - super(expressID); - this.TilingPattern = TilingPattern; - this.Tiles = Tiles; - this.TilingScale = TilingScale; - this.type = 315944413; - } - } - IFC42.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; - class IfcFixedReferenceSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FixedReference = FixedReference; - this.type = 2652556860; - } - } - IFC42.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; - class IfcFurnishingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 4238390223; - } - } - IFC42.IfcFurnishingElementType = IfcFurnishingElementType; - class IfcFurnitureType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 1268542332; - } - } - IFC42.IfcFurnitureType = IfcFurnitureType; - class IfcGeographicElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4095422895; - } - } - IFC42.IfcGeographicElementType = IfcGeographicElementType; - class IfcGeometricCurveSet extends IfcGeometricSet { - constructor(expressID, Elements) { - super(expressID, Elements); - this.Elements = Elements; - this.type = 987898635; - } - } - IFC42.IfcGeometricCurveSet = IfcGeometricCurveSet; - class IfcIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 1484403080; - } - } - IFC42.IfcIShapeProfileDef = IfcIShapeProfileDef; - class IfcIndexedPolygonalFace extends IfcTessellatedItem { - constructor(expressID, CoordIndex) { - super(expressID); - this.CoordIndex = CoordIndex; - this.type = 178912537; - } - } - IFC42.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; - class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { - constructor(expressID, CoordIndex, InnerCoordIndices) { - super(expressID, CoordIndex); - this.CoordIndex = CoordIndex; - this.InnerCoordIndices = InnerCoordIndices; - this.type = 2294589976; - } - } - IFC42.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; - class IfcLShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.Thickness = Thickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.LegSlope = LegSlope; - this.type = 572779678; - } - } - IFC42.IfcLShapeProfileDef = IfcLShapeProfileDef; - class IfcLaborResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 428585644; - } - } - IFC42.IfcLaborResourceType = IfcLaborResourceType; - class IfcLine extends IfcCurve { - constructor(expressID, Pnt, Dir) { - super(expressID); - this.Pnt = Pnt; - this.Dir = Dir; - this.type = 1281925730; - } - } - IFC42.IfcLine = IfcLine; - class IfcManifoldSolidBrep extends IfcSolidModel { - constructor(expressID, Outer) { - super(expressID); - this.Outer = Outer; - this.type = 1425443689; - } - } - IFC42.IfcManifoldSolidBrep = IfcManifoldSolidBrep; - class IfcObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3888040117; - } - } - IFC42.IfcObject = IfcObject; - class IfcOffsetCurve2D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.type = 3388369263; - } - } - IFC42.IfcOffsetCurve2D = IfcOffsetCurve2D; - class IfcOffsetCurve3D extends IfcCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.RefDirection = RefDirection; - this.type = 3505215534; - } - } - IFC42.IfcOffsetCurve3D = IfcOffsetCurve3D; - class IfcPcurve extends IfcCurve { - constructor(expressID, BasisSurface, ReferenceCurve) { - super(expressID); - this.BasisSurface = BasisSurface; - this.ReferenceCurve = ReferenceCurve; - this.type = 1682466193; - } - } - IFC42.IfcPcurve = IfcPcurve; - class IfcPlanarBox extends IfcPlanarExtent { - constructor(expressID, SizeInX, SizeInY, Placement) { - super(expressID, SizeInX, SizeInY); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.Placement = Placement; - this.type = 603570806; - } - } - IFC42.IfcPlanarBox = IfcPlanarBox; - class IfcPlane extends IfcElementarySurface { - constructor(expressID, Position) { - super(expressID, Position); - this.Position = Position; - this.type = 220341763; - } - } - IFC42.IfcPlane = IfcPlane; - class IfcPreDefinedColour extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 759155922; - } - } - IFC42.IfcPreDefinedColour = IfcPreDefinedColour; - class IfcPreDefinedCurveFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2559016684; - } - } - IFC42.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; - class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3967405729; - } - } - IFC42.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; - class IfcProcedureType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.type = 569719735; - } - } - IFC42.IfcProcedureType = IfcProcedureType; - class IfcProcess extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2945172077; - } - } - IFC42.IfcProcess = IfcProcess; - class IfcProduct extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 4208778838; - } - } - IFC42.IfcProduct = IfcProduct; - class IfcProject extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 103090709; - } - } - IFC42.IfcProject = IfcProject; - class IfcProjectLibrary extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 653396225; - } - } - IFC42.IfcProjectLibrary = IfcProjectLibrary; - class IfcPropertyBoundedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UpperBoundValue = UpperBoundValue; - this.LowerBoundValue = LowerBoundValue; - this.Unit = Unit; - this.SetPointValue = SetPointValue; - this.type = 871118103; - } - } - IFC42.IfcPropertyBoundedValue = IfcPropertyBoundedValue; - class IfcPropertyEnumeratedValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, EnumerationValues, EnumerationReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.EnumerationValues = EnumerationValues; - this.EnumerationReference = EnumerationReference; - this.type = 4166981789; - } - } - IFC42.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; - class IfcPropertyListValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, ListValues, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.ListValues = ListValues; - this.Unit = Unit; - this.type = 2752243245; - } - } - IFC42.IfcPropertyListValue = IfcPropertyListValue; - class IfcPropertyReferenceValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, UsageName, PropertyReference) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.PropertyReference = PropertyReference; - this.type = 941946838; - } - } - IFC42.IfcPropertyReferenceValue = IfcPropertyReferenceValue; - class IfcPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.HasProperties = HasProperties; - this.type = 1451395588; - } - } - IFC42.IfcPropertySet = IfcPropertySet; - class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.ApplicableEntity = ApplicableEntity; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 492091185; - } - } - IFC42.IfcPropertySetTemplate = IfcPropertySetTemplate; - class IfcPropertySingleValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, NominalValue, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.NominalValue = NominalValue; - this.Unit = Unit; - this.type = 3650150729; - } - } - IFC42.IfcPropertySingleValue = IfcPropertySingleValue; - class IfcPropertyTableValue extends IfcSimpleProperty { - constructor(expressID, Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.DefiningValues = DefiningValues; - this.DefinedValues = DefinedValues; - this.Expression = Expression; - this.DefiningUnit = DefiningUnit; - this.DefinedUnit = DefinedUnit; - this.CurveInterpolation = CurveInterpolation; - this.type = 110355661; - } - } - IFC42.IfcPropertyTableValue = IfcPropertyTableValue; - class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3521284610; - } - } - IFC42.IfcPropertyTemplate = IfcPropertyTemplate; - class IfcProxy extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.ProxyType = ProxyType; - this.Tag = Tag; - this.type = 3219374653; - } - } - IFC42.IfcProxy = IfcProxy; - class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.WallThickness = WallThickness; - this.InnerFilletRadius = InnerFilletRadius; - this.OuterFilletRadius = OuterFilletRadius; - this.type = 2770003689; - } - } - IFC42.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; - class IfcRectangularPyramid extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, Height) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.Height = Height; - this.type = 2798486643; - } - } - IFC42.IfcRectangularPyramid = IfcRectangularPyramid; - class IfcRectangularTrimmedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { - super(expressID); - this.BasisSurface = BasisSurface; - this.U1 = U1; - this.V1 = V1; - this.U2 = U2; - this.V2 = V2; - this.Usense = Usense; - this.Vsense = Vsense; - this.type = 3454111270; - } - } - IFC42.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; - class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DefinitionType = DefinitionType; - this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; - this.type = 3765753017; - } - } - IFC42.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; - class IfcRelAssigns extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.type = 3939117080; - } - } - IFC42.IfcRelAssigns = IfcRelAssigns; - class IfcRelAssignsToActor extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 1683148259; - } - } - IFC42.IfcRelAssignsToActor = IfcRelAssignsToActor; - class IfcRelAssignsToControl extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 2495723537; - } - } - IFC42.IfcRelAssignsToControl = IfcRelAssignsToControl; - class IfcRelAssignsToGroup extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.type = 1307041759; - } - } - IFC42.IfcRelAssignsToGroup = IfcRelAssignsToGroup; - class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.Factor = Factor; - this.type = 1027710054; - } - } - IFC42.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; - class IfcRelAssignsToProcess extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProcess = RelatingProcess; - this.QuantityInProcess = QuantityInProcess; - this.type = 4278684876; - } - } - IFC42.IfcRelAssignsToProcess = IfcRelAssignsToProcess; - class IfcRelAssignsToProduct extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProduct = RelatingProduct; - this.type = 2857406711; - } - } - IFC42.IfcRelAssignsToProduct = IfcRelAssignsToProduct; - class IfcRelAssignsToResource extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingResource = RelatingResource; - this.type = 205026976; - } - } - IFC42.IfcRelAssignsToResource = IfcRelAssignsToResource; - class IfcRelAssociates extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 1865459582; - } - } - IFC42.IfcRelAssociates = IfcRelAssociates; - class IfcRelAssociatesApproval extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingApproval = RelatingApproval; - this.type = 4095574036; - } - } - IFC42.IfcRelAssociatesApproval = IfcRelAssociatesApproval; - class IfcRelAssociatesClassification extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingClassification = RelatingClassification; - this.type = 919958153; - } - } - IFC42.IfcRelAssociatesClassification = IfcRelAssociatesClassification; - class IfcRelAssociatesConstraint extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.Intent = Intent; - this.RelatingConstraint = RelatingConstraint; - this.type = 2728634034; - } - } - IFC42.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; - class IfcRelAssociatesDocument extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingDocument = RelatingDocument; - this.type = 982818633; - } - } - IFC42.IfcRelAssociatesDocument = IfcRelAssociatesDocument; - class IfcRelAssociatesLibrary extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingLibrary = RelatingLibrary; - this.type = 3840914261; - } - } - IFC42.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; - class IfcRelAssociatesMaterial extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingMaterial = RelatingMaterial; - this.type = 2655215786; - } - } - IFC42.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; - class IfcRelConnects extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 826625072; - } - } - IFC42.IfcRelConnects = IfcRelConnects; - class IfcRelConnectsElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.type = 1204542856; - } - } - IFC42.IfcRelConnectsElements = IfcRelConnectsElements; - class IfcRelConnectsPathElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RelatingPriorities = RelatingPriorities; - this.RelatedPriorities = RelatedPriorities; - this.RelatedConnectionType = RelatedConnectionType; - this.RelatingConnectionType = RelatingConnectionType; - this.type = 3945020480; - } - } - IFC42.IfcRelConnectsPathElements = IfcRelConnectsPathElements; - class IfcRelConnectsPortToElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedElement = RelatedElement; - this.type = 4201705270; - } - } - IFC42.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; - class IfcRelConnectsPorts extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedPort = RelatedPort; - this.RealizingElement = RealizingElement; - this.type = 3190031847; - } - } - IFC42.IfcRelConnectsPorts = IfcRelConnectsPorts; - class IfcRelConnectsStructuralActivity extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralActivity = RelatedStructuralActivity; - this.type = 2127690289; - } - } - IFC42.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; - class IfcRelConnectsStructuralMember extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 1638771189; - } - } - IFC42.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; - class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.ConnectionConstraint = ConnectionConstraint; - this.type = 504942748; - } - } - IFC42.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; - class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RealizingElements = RealizingElements; - this.ConnectionType = ConnectionType; - this.type = 3678494232; - } - } - IFC42.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; - class IfcRelContainedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 3242617779; - } - } - IFC42.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; - class IfcRelCoversBldgElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedCoverings = RelatedCoverings; - this.type = 886880790; - } - } - IFC42.IfcRelCoversBldgElements = IfcRelCoversBldgElements; - class IfcRelCoversSpaces extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedCoverings = RelatedCoverings; - this.type = 2802773753; - } - } - IFC42.IfcRelCoversSpaces = IfcRelCoversSpaces; - class IfcRelDeclares extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingContext = RelatingContext; - this.RelatedDefinitions = RelatedDefinitions; - this.type = 2565941209; - } - } - IFC42.IfcRelDeclares = IfcRelDeclares; - class IfcRelDecomposes extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2551354335; - } - } - IFC42.IfcRelDecomposes = IfcRelDecomposes; - class IfcRelDefines extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 693640335; - } - } - IFC42.IfcRelDefines = IfcRelDefines; - class IfcRelDefinesByObject extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingObject = RelatingObject; - this.type = 1462361463; - } - } - IFC42.IfcRelDefinesByObject = IfcRelDefinesByObject; - class IfcRelDefinesByProperties extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.type = 4186316022; - } - } - IFC42.IfcRelDefinesByProperties = IfcRelDefinesByProperties; - class IfcRelDefinesByTemplate extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedPropertySets = RelatedPropertySets; - this.RelatingTemplate = RelatingTemplate; - this.type = 307848117; - } - } - IFC42.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; - class IfcRelDefinesByType extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingType = RelatingType; - this.type = 781010003; - } - } - IFC42.IfcRelDefinesByType = IfcRelDefinesByType; - class IfcRelFillsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingOpeningElement = RelatingOpeningElement; - this.RelatedBuildingElement = RelatedBuildingElement; - this.type = 3940055652; - } - } - IFC42.IfcRelFillsElement = IfcRelFillsElement; - class IfcRelFlowControlElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedControlElements = RelatedControlElements; - this.RelatingFlowElement = RelatingFlowElement; - this.type = 279856033; - } - } - IFC42.IfcRelFlowControlElements = IfcRelFlowControlElements; - class IfcRelInterferesElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.InterferenceGeometry = InterferenceGeometry; - this.InterferenceType = InterferenceType; - this.ImpliedOrder = ImpliedOrder; - this.type = 427948657; - } - } - IFC42.IfcRelInterferesElements = IfcRelInterferesElements; - class IfcRelNests extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 3268803585; - } - } - IFC42.IfcRelNests = IfcRelNests; - class IfcRelProjectsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedFeatureElement = RelatedFeatureElement; - this.type = 750771296; - } - } - IFC42.IfcRelProjectsElement = IfcRelProjectsElement; - class IfcRelReferencedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 1245217292; - } - } - IFC42.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; - class IfcRelSequence extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingProcess = RelatingProcess; - this.RelatedProcess = RelatedProcess; - this.TimeLag = TimeLag; - this.SequenceType = SequenceType; - this.UserDefinedSequenceType = UserDefinedSequenceType; - this.type = 4122056220; - } - } - IFC42.IfcRelSequence = IfcRelSequence; - class IfcRelServicesBuildings extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSystem = RelatingSystem; - this.RelatedBuildings = RelatedBuildings; - this.type = 366585022; - } - } - IFC42.IfcRelServicesBuildings = IfcRelServicesBuildings; - class IfcRelSpaceBoundary extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.type = 3451746338; - } - } - IFC42.IfcRelSpaceBoundary = IfcRelSpaceBoundary; - class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.type = 3523091289; - } - } - IFC42.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; - class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.CorrespondingBoundary = CorrespondingBoundary; - this.type = 1521410863; - } - } - IFC42.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; - class IfcRelVoidsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedOpeningElement = RelatedOpeningElement; - this.type = 1401173127; - } - } - IFC42.IfcRelVoidsElement = IfcRelVoidsElement; - class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { - constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { - super(expressID, Transition, SameSense, ParentCurve); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.ParamLength = ParamLength; - this.type = 816062949; - } - } - IFC42.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; - class IfcResource extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2914609552; - } - } - IFC42.IfcResource = IfcResource; - class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.type = 1856042241; - } - } - IFC42.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; - class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { - super(expressID, SweptArea, Position, Axis, Angle); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.EndSweptArea = EndSweptArea; - this.type = 3243963512; - } - } - IFC42.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; - class IfcRightCircularCone extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, BottomRadius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.BottomRadius = BottomRadius; - this.type = 4158566097; - } - } - IFC42.IfcRightCircularCone = IfcRightCircularCone; - class IfcRightCircularCylinder extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, Radius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.Radius = Radius; - this.type = 3626867408; - } - } - IFC42.IfcRightCircularCylinder = IfcRightCircularCylinder; - class IfcSimplePropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.PrimaryMeasureType = PrimaryMeasureType; - this.SecondaryMeasureType = SecondaryMeasureType; - this.Enumerators = Enumerators; - this.PrimaryUnit = PrimaryUnit; - this.SecondaryUnit = SecondaryUnit; - this.Expression = Expression; - this.AccessState = AccessState; - this.type = 3663146110; - } - } - IFC42.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; - class IfcSpatialElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 1412071761; - } - } - IFC42.IfcSpatialElement = IfcSpatialElement; - class IfcSpatialElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 710998568; - } - } - IFC42.IfcSpatialElementType = IfcSpatialElementType; - class IfcSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 2706606064; - } - } - IFC42.IfcSpatialStructureElement = IfcSpatialStructureElement; - class IfcSpatialStructureElementType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893378262; - } - } - IFC42.IfcSpatialStructureElementType = IfcSpatialStructureElementType; - class IfcSpatialZone extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 463610769; - } - } - IFC42.IfcSpatialZone = IfcSpatialZone; - class IfcSpatialZoneType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 2481509218; - } - } - IFC42.IfcSpatialZoneType = IfcSpatialZoneType; - class IfcSphere extends IfcCsgPrimitive3D { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 451544542; - } - } - IFC42.IfcSphere = IfcSphere; - class IfcSphericalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 4015995234; - } - } - IFC42.IfcSphericalSurface = IfcSphericalSurface; - class IfcStructuralActivity extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3544373492; - } - } - IFC42.IfcStructuralActivity = IfcStructuralActivity; - class IfcStructuralItem extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3136571912; - } - } - IFC42.IfcStructuralItem = IfcStructuralItem; - class IfcStructuralMember extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 530289379; - } - } - IFC42.IfcStructuralMember = IfcStructuralMember; - class IfcStructuralReaction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3689010777; - } - } - IFC42.IfcStructuralReaction = IfcStructuralReaction; - class IfcStructuralSurfaceMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 3979015343; - } - } - IFC42.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; - class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 2218152070; - } - } - IFC42.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; - class IfcStructuralSurfaceReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 603775116; - } - } - IFC42.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; - class IfcSubContractResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4095615324; - } - } - IFC42.IfcSubContractResourceType = IfcSubContractResourceType; - class IfcSurfaceCurve extends IfcCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 699246055; - } - } - IFC42.IfcSurfaceCurve = IfcSurfaceCurve; - class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.ReferenceSurface = ReferenceSurface; - this.type = 2028607225; - } - } - IFC42.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; - class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 2809605785; - } - } - IFC42.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; - class IfcSurfaceOfRevolution extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, AxisPosition) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.AxisPosition = AxisPosition; - this.type = 4124788165; - } - } - IFC42.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; - class IfcSystemFurnitureElementType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1580310250; - } - } - IFC42.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; - class IfcTask extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.TaskTime = TaskTime; - this.PredefinedType = PredefinedType; - this.type = 3473067441; - } - } - IFC42.IfcTask = IfcTask; - class IfcTaskType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.WorkMethod = WorkMethod; - this.type = 3206491090; - } - } - IFC42.IfcTaskType = IfcTaskType; - class IfcTessellatedFaceSet extends IfcTessellatedItem { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 2387106220; - } - } - IFC42.IfcTessellatedFaceSet = IfcTessellatedFaceSet; - class IfcToroidalSurface extends IfcElementarySurface { - constructor(expressID, Position, MajorRadius, MinorRadius) { - super(expressID, Position); - this.Position = Position; - this.MajorRadius = MajorRadius; - this.MinorRadius = MinorRadius; - this.type = 1935646853; - } - } - IFC42.IfcToroidalSurface = IfcToroidalSurface; - class IfcTransportElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2097647324; - } - } - IFC42.IfcTransportElementType = IfcTransportElementType; - class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Normals, Closed, CoordIndex, PnIndex) { - super(expressID, Coordinates); - this.Coordinates = Coordinates; - this.Normals = Normals; - this.Closed = Closed; - this.CoordIndex = CoordIndex; - this.PnIndex = PnIndex; - this.type = 2916149573; - } - } - IFC42.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; - class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.TransomThickness = TransomThickness; - this.MullionThickness = MullionThickness; - this.FirstTransomOffset = FirstTransomOffset; - this.SecondTransomOffset = SecondTransomOffset; - this.FirstMullionOffset = FirstMullionOffset; - this.SecondMullionOffset = SecondMullionOffset; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningOffset = LiningOffset; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 336235671; - } - } - IFC42.IfcWindowLiningProperties = IfcWindowLiningProperties; - class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 512836454; - } - } - IFC42.IfcWindowPanelProperties = IfcWindowPanelProperties; - class IfcActor extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.type = 2296667514; - } - } - IFC42.IfcActor = IfcActor; - class IfcAdvancedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 1635779807; - } - } - IFC42.IfcAdvancedBrep = IfcAdvancedBrep; - class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 2603310189; - } - } - IFC42.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; - class IfcAnnotation extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1674181508; - } - } - IFC42.IfcAnnotation = IfcAnnotation; - class IfcBSplineSurface extends IfcBoundedSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { - super(expressID); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.type = 2887950389; - } - } - IFC42.IfcBSplineSurface = IfcBSplineSurface; - class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.type = 167062518; - } - } - IFC42.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; - class IfcBlock extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, ZLength) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.ZLength = ZLength; - this.type = 1334484129; - } - } - IFC42.IfcBlock = IfcBlock; - class IfcBooleanClippingResult extends IfcBooleanResult { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID, Operator, FirstOperand, SecondOperand); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 3649129432; - } - } - IFC42.IfcBooleanClippingResult = IfcBooleanClippingResult; - class IfcBoundedCurve extends IfcCurve { - constructor(expressID) { - super(expressID); - this.type = 1260505505; - } - } - IFC42.IfcBoundedCurve = IfcBoundedCurve; - class IfcBuilding extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.ElevationOfRefHeight = ElevationOfRefHeight; - this.ElevationOfTerrain = ElevationOfTerrain; - this.BuildingAddress = BuildingAddress; - this.type = 4031249490; - } - } - IFC42.IfcBuilding = IfcBuilding; - class IfcBuildingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1950629157; - } - } - IFC42.IfcBuildingElementType = IfcBuildingElementType; - class IfcBuildingStorey extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.Elevation = Elevation; - this.type = 3124254112; - } - } - IFC42.IfcBuildingStorey = IfcBuildingStorey; - class IfcChimneyType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2197970202; - } - } - IFC42.IfcChimneyType = IfcChimneyType; - class IfcCircleHollowProfileDef extends IfcCircleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { - super(expressID, ProfileType, ProfileName, Position, Radius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.WallThickness = WallThickness; - this.type = 2937912522; - } - } - IFC42.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; - class IfcCivilElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893394355; - } - } - IFC42.IfcCivilElementType = IfcCivilElementType; - class IfcColumnType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 300633059; - } - } - IFC42.IfcColumnType = IfcColumnType; - class IfcComplexPropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.TemplateType = TemplateType; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 3875453745; - } - } - IFC42.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; - class IfcCompositeCurve extends IfcBoundedCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 3732776249; - } - } - IFC42.IfcCompositeCurve = IfcCompositeCurve; - class IfcCompositeCurveOnSurface extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 15328376; - } - } - IFC42.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; - class IfcConic extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2510884976; - } - } - IFC42.IfcConic = IfcConic; - class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 2185764099; - } - } - IFC42.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; - class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4105962743; - } - } - IFC42.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; - class IfcConstructionProductResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1525564444; - } - } - IFC42.IfcConstructionProductResourceType = IfcConstructionProductResourceType; - class IfcConstructionResource extends IfcResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2559216714; - } - } - IFC42.IfcConstructionResource = IfcConstructionResource; - class IfcControl extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.type = 3293443760; - } - } - IFC42.IfcControl = IfcControl; - class IfcCostItem extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.CostValues = CostValues; - this.CostQuantities = CostQuantities; - this.type = 3895139033; - } - } - IFC42.IfcCostItem = IfcCostItem; - class IfcCostSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.SubmittedOn = SubmittedOn; - this.UpdateDate = UpdateDate; - this.type = 1419761937; - } - } - IFC42.IfcCostSchedule = IfcCostSchedule; - class IfcCoveringType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1916426348; - } - } - IFC42.IfcCoveringType = IfcCoveringType; - class IfcCrewResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3295246426; - } - } - IFC42.IfcCrewResource = IfcCrewResource; - class IfcCurtainWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1457835157; - } - } - IFC42.IfcCurtainWallType = IfcCurtainWallType; - class IfcCylindricalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 1213902940; - } - } - IFC42.IfcCylindricalSurface = IfcCylindricalSurface; - class IfcDistributionElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3256556792; - } - } - IFC42.IfcDistributionElementType = IfcDistributionElementType; - class IfcDistributionFlowElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3849074793; - } - } - IFC42.IfcDistributionFlowElementType = IfcDistributionFlowElementType; - class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.ThresholdDepth = ThresholdDepth; - this.ThresholdThickness = ThresholdThickness; - this.TransomThickness = TransomThickness; - this.TransomOffset = TransomOffset; - this.LiningOffset = LiningOffset; - this.ThresholdOffset = ThresholdOffset; - this.CasingThickness = CasingThickness; - this.CasingDepth = CasingDepth; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 2963535650; - } - } - IFC42.IfcDoorLiningProperties = IfcDoorLiningProperties; - class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PanelDepth = PanelDepth; - this.PanelOperation = PanelOperation; - this.PanelWidth = PanelWidth; - this.PanelPosition = PanelPosition; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 1714330368; - } - } - IFC42.IfcDoorPanelProperties = IfcDoorPanelProperties; - class IfcDoorType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 2323601079; - } - } - IFC42.IfcDoorType = IfcDoorType; - class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 445594917; - } - } - IFC42.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; - class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4006246654; - } - } - IFC42.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; - class IfcElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1758889154; - } - } - IFC42.IfcElement = IfcElement; - class IfcElementAssembly extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 4123344466; - } - } - IFC42.IfcElementAssembly = IfcElementAssembly; - class IfcElementAssemblyType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2397081782; - } - } - IFC42.IfcElementAssemblyType = IfcElementAssemblyType; - class IfcElementComponent extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1623761950; - } - } - IFC42.IfcElementComponent = IfcElementComponent; - class IfcElementComponentType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2590856083; - } - } - IFC42.IfcElementComponentType = IfcElementComponentType; - class IfcEllipse extends IfcConic { - constructor(expressID, Position, SemiAxis1, SemiAxis2) { - super(expressID, Position); - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 1704287377; - } - } - IFC42.IfcEllipse = IfcEllipse; - class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2107101300; - } - } - IFC42.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; - class IfcEngineType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 132023988; - } - } - IFC42.IfcEngineType = IfcEngineType; - class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3174744832; - } - } - IFC42.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; - class IfcEvaporatorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3390157468; - } - } - IFC42.IfcEvaporatorType = IfcEvaporatorType; - class IfcEvent extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.EventOccurenceTime = EventOccurenceTime; - this.type = 4148101412; - } - } - IFC42.IfcEvent = IfcEvent; - class IfcExternalSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 2853485674; - } - } - IFC42.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; - class IfcFacetedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 807026263; - } - } - IFC42.IfcFacetedBrep = IfcFacetedBrep; - class IfcFacetedBrepWithVoids extends IfcFacetedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 3737207727; - } - } - IFC42.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; - class IfcFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 647756555; - } - } - IFC42.IfcFastener = IfcFastener; - class IfcFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2489546625; - } - } - IFC42.IfcFastenerType = IfcFastenerType; - class IfcFeatureElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2827207264; - } - } - IFC42.IfcFeatureElement = IfcFeatureElement; - class IfcFeatureElementAddition extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2143335405; - } - } - IFC42.IfcFeatureElementAddition = IfcFeatureElementAddition; - class IfcFeatureElementSubtraction extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1287392070; - } - } - IFC42.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; - class IfcFlowControllerType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3907093117; - } - } - IFC42.IfcFlowControllerType = IfcFlowControllerType; - class IfcFlowFittingType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3198132628; - } - } - IFC42.IfcFlowFittingType = IfcFlowFittingType; - class IfcFlowMeterType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3815607619; - } - } - IFC42.IfcFlowMeterType = IfcFlowMeterType; - class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1482959167; - } - } - IFC42.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; - class IfcFlowSegmentType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1834744321; - } - } - IFC42.IfcFlowSegmentType = IfcFlowSegmentType; - class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1339347760; - } - } - IFC42.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; - class IfcFlowTerminalType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2297155007; - } - } - IFC42.IfcFlowTerminalType = IfcFlowTerminalType; - class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3009222698; - } - } - IFC42.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; - class IfcFootingType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1893162501; - } - } - IFC42.IfcFootingType = IfcFootingType; - class IfcFurnishingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 263784265; - } - } - IFC42.IfcFurnishingElement = IfcFurnishingElement; - class IfcFurniture extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1509553395; - } - } - IFC42.IfcFurniture = IfcFurniture; - class IfcGeographicElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3493046030; - } - } - IFC42.IfcGeographicElement = IfcGeographicElement; - class IfcGrid extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.UAxes = UAxes; - this.VAxes = VAxes; - this.WAxes = WAxes; - this.PredefinedType = PredefinedType; - this.type = 3009204131; - } - } - IFC42.IfcGrid = IfcGrid; - class IfcGroup extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2706460486; - } - } - IFC42.IfcGroup = IfcGroup; - class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1251058090; - } - } - IFC42.IfcHeatExchangerType = IfcHeatExchangerType; - class IfcHumidifierType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1806887404; - } - } - IFC42.IfcHumidifierType = IfcHumidifierType; - class IfcIndexedPolyCurve extends IfcBoundedCurve { - constructor(expressID, Points, Segments, SelfIntersect) { - super(expressID); - this.Points = Points; - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 2571569899; - } - } - IFC42.IfcIndexedPolyCurve = IfcIndexedPolyCurve; - class IfcInterceptorType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3946677679; - } - } - IFC42.IfcInterceptorType = IfcInterceptorType; - class IfcIntersectionCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 3113134337; - } - } - IFC42.IfcIntersectionCurve = IfcIntersectionCurve; - class IfcInventory extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.Jurisdiction = Jurisdiction; - this.ResponsiblePersons = ResponsiblePersons; - this.LastUpdateDate = LastUpdateDate; - this.CurrentValue = CurrentValue; - this.OriginalValue = OriginalValue; - this.type = 2391368822; - } - } - IFC42.IfcInventory = IfcInventory; - class IfcJunctionBoxType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4288270099; - } - } - IFC42.IfcJunctionBoxType = IfcJunctionBoxType; - class IfcLaborResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3827777499; - } - } - IFC42.IfcLaborResource = IfcLaborResource; - class IfcLampType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1051575348; - } - } - IFC42.IfcLampType = IfcLampType; - class IfcLightFixtureType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1161773419; - } - } - IFC42.IfcLightFixtureType = IfcLightFixtureType; - class IfcMechanicalFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.PredefinedType = PredefinedType; - this.type = 377706215; - } - } - IFC42.IfcMechanicalFastener = IfcMechanicalFastener; - class IfcMechanicalFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.type = 2108223431; - } - } - IFC42.IfcMechanicalFastenerType = IfcMechanicalFastenerType; - class IfcMedicalDeviceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1114901282; - } - } - IFC42.IfcMedicalDeviceType = IfcMedicalDeviceType; - class IfcMemberType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3181161470; - } - } - IFC42.IfcMemberType = IfcMemberType; - class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 977012517; - } - } - IFC42.IfcMotorConnectionType = IfcMotorConnectionType; - class IfcOccupant extends IfcActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.PredefinedType = PredefinedType; - this.type = 4143007308; - } - } - IFC42.IfcOccupant = IfcOccupant; - class IfcOpeningElement extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3588315303; - } - } - IFC42.IfcOpeningElement = IfcOpeningElement; - class IfcOpeningStandardCase extends IfcOpeningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3079942009; - } - } - IFC42.IfcOpeningStandardCase = IfcOpeningStandardCase; - class IfcOutletType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2837617999; - } - } - IFC42.IfcOutletType = IfcOutletType; - class IfcPerformanceHistory extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LifeCyclePhase = LifeCyclePhase; - this.PredefinedType = PredefinedType; - this.type = 2382730787; - } - } - IFC42.IfcPerformanceHistory = IfcPerformanceHistory; - class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 3566463478; - } - } - IFC42.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; - class IfcPermit extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3327091369; - } - } - IFC42.IfcPermit = IfcPermit; - class IfcPileType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1158309216; - } - } - IFC42.IfcPileType = IfcPileType; - class IfcPipeFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 804291784; - } - } - IFC42.IfcPipeFittingType = IfcPipeFittingType; - class IfcPipeSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4231323485; - } - } - IFC42.IfcPipeSegmentType = IfcPipeSegmentType; - class IfcPlateType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4017108033; - } - } - IFC42.IfcPlateType = IfcPlateType; - class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Closed, Faces, PnIndex) { - super(expressID, Coordinates); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Faces = Faces; - this.PnIndex = PnIndex; - this.type = 2839578677; - } - } - IFC42.IfcPolygonalFaceSet = IfcPolygonalFaceSet; - class IfcPolyline extends IfcBoundedCurve { - constructor(expressID, Points) { - super(expressID); - this.Points = Points; - this.type = 3724593414; - } - } - IFC42.IfcPolyline = IfcPolyline; - class IfcPort extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3740093272; - } - } - IFC42.IfcPort = IfcPort; - class IfcProcedure extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.type = 2744685151; - } - } - IFC42.IfcProcedure = IfcProcedure; - class IfcProjectOrder extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 2904328755; - } - } - IFC42.IfcProjectOrder = IfcProjectOrder; - class IfcProjectionElement extends IfcFeatureElementAddition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3651124850; - } - } - IFC42.IfcProjectionElement = IfcProjectionElement; - class IfcProtectiveDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1842657554; - } - } - IFC42.IfcProtectiveDeviceType = IfcProtectiveDeviceType; - class IfcPumpType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2250791053; - } - } - IFC42.IfcPumpType = IfcPumpType; - class IfcRailingType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2893384427; - } - } - IFC42.IfcRailingType = IfcRailingType; - class IfcRampFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2324767716; - } - } - IFC42.IfcRampFlightType = IfcRampFlightType; - class IfcRampType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1469900589; - } - } - IFC42.IfcRampType = IfcRampType; - class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 683857671; - } - } - IFC42.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; - class IfcReinforcingElement extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 3027567501; - } - } - IFC42.IfcReinforcingElement = IfcReinforcingElement; - class IfcReinforcingElementType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 964333572; - } - } - IFC42.IfcReinforcingElementType = IfcReinforcingElementType; - class IfcReinforcingMesh extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.PredefinedType = PredefinedType; - this.type = 2320036040; - } - } - IFC42.IfcReinforcingMesh = IfcReinforcingMesh; - class IfcReinforcingMeshType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2310774935; - } - } - IFC42.IfcReinforcingMeshType = IfcReinforcingMeshType; - class IfcRelAggregates extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 160246688; - } - } - IFC42.IfcRelAggregates = IfcRelAggregates; - class IfcRoofType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2781568857; - } - } - IFC42.IfcRoofType = IfcRoofType; - class IfcSanitaryTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1768891740; - } - } - IFC42.IfcSanitaryTerminalType = IfcSanitaryTerminalType; - class IfcSeamCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 2157484638; - } - } - IFC42.IfcSeamCurve = IfcSeamCurve; - class IfcShadingDeviceType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4074543187; - } - } - IFC42.IfcShadingDeviceType = IfcShadingDeviceType; - class IfcSite extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.RefLatitude = RefLatitude; - this.RefLongitude = RefLongitude; - this.RefElevation = RefElevation; - this.LandTitleNumber = LandTitleNumber; - this.SiteAddress = SiteAddress; - this.type = 4097777520; - } - } - IFC42.IfcSite = IfcSite; - class IfcSlabType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2533589738; - } - } - IFC42.IfcSlabType = IfcSlabType; - class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1072016465; - } - } - IFC42.IfcSolarDeviceType = IfcSolarDeviceType; - class IfcSpace extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.ElevationWithFlooring = ElevationWithFlooring; - this.type = 3856911033; - } - } - IFC42.IfcSpace = IfcSpace; - class IfcSpaceHeaterType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1305183839; - } - } - IFC42.IfcSpaceHeaterType = IfcSpaceHeaterType; - class IfcSpaceType extends IfcSpatialStructureElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 3812236995; - } - } - IFC42.IfcSpaceType = IfcSpaceType; - class IfcStackTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3112655638; - } - } - IFC42.IfcStackTerminalType = IfcStackTerminalType; - class IfcStairFlightType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1039846685; - } - } - IFC42.IfcStairFlightType = IfcStairFlightType; - class IfcStairType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 338393293; - } - } - IFC42.IfcStairType = IfcStairType; - class IfcStructuralAction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 682877961; - } - } - IFC42.IfcStructuralAction = IfcStructuralAction; - class IfcStructuralConnection extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1179482911; - } - } - IFC42.IfcStructuralConnection = IfcStructuralConnection; - class IfcStructuralCurveAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1004757350; - } - } - IFC42.IfcStructuralCurveAction = IfcStructuralCurveAction; - class IfcStructuralCurveConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.Axis = Axis; - this.type = 4243806635; - } - } - IFC42.IfcStructuralCurveConnection = IfcStructuralCurveConnection; - class IfcStructuralCurveMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 214636428; - } - } - IFC42.IfcStructuralCurveMember = IfcStructuralCurveMember; - class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 2445595289; - } - } - IFC42.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; - class IfcStructuralCurveReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 2757150158; - } - } - IFC42.IfcStructuralCurveReaction = IfcStructuralCurveReaction; - class IfcStructuralLinearAction extends IfcStructuralCurveAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1807405624; - } - } - IFC42.IfcStructuralLinearAction = IfcStructuralLinearAction; - class IfcStructuralLoadGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.type = 1252848954; - } - } - IFC42.IfcStructuralLoadGroup = IfcStructuralLoadGroup; - class IfcStructuralPointAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 2082059205; - } - } - IFC42.IfcStructuralPointAction = IfcStructuralPointAction; - class IfcStructuralPointConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 734778138; - } - } - IFC42.IfcStructuralPointConnection = IfcStructuralPointConnection; - class IfcStructuralPointReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 1235345126; - } - } - IFC42.IfcStructuralPointReaction = IfcStructuralPointReaction; - class IfcStructuralResultGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheoryType = TheoryType; - this.ResultForLoadGroup = ResultForLoadGroup; - this.IsLinear = IsLinear; - this.type = 2986769608; - } - } - IFC42.IfcStructuralResultGroup = IfcStructuralResultGroup; - class IfcStructuralSurfaceAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 3657597509; - } - } - IFC42.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; - class IfcStructuralSurfaceConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1975003073; - } - } - IFC42.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; - class IfcSubContractResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 148013059; - } - } - IFC42.IfcSubContractResource = IfcSubContractResource; - class IfcSurfaceFeature extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3101698114; - } - } - IFC42.IfcSurfaceFeature = IfcSurfaceFeature; - class IfcSwitchingDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2315554128; - } - } - IFC42.IfcSwitchingDeviceType = IfcSwitchingDeviceType; - class IfcSystem extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2254336722; - } - } - IFC42.IfcSystem = IfcSystem; - class IfcSystemFurnitureElement extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 413509423; - } - } - IFC42.IfcSystemFurnitureElement = IfcSystemFurnitureElement; - class IfcTankType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 5716631; - } - } - IFC42.IfcTankType = IfcTankType; - class IfcTendon extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.TensionForce = TensionForce; - this.PreStress = PreStress; - this.FrictionCoefficient = FrictionCoefficient; - this.AnchorageSlip = AnchorageSlip; - this.MinCurvatureRadius = MinCurvatureRadius; - this.type = 3824725483; - } - } - IFC42.IfcTendon = IfcTendon; - class IfcTendonAnchor extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.type = 2347447852; - } - } - IFC42.IfcTendonAnchor = IfcTendonAnchor; - class IfcTendonAnchorType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3081323446; - } - } - IFC42.IfcTendonAnchorType = IfcTendonAnchorType; - class IfcTendonType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.SheathDiameter = SheathDiameter; - this.type = 2415094496; - } - } - IFC42.IfcTendonType = IfcTendonType; - class IfcTransformerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1692211062; - } - } - IFC42.IfcTransformerType = IfcTransformerType; - class IfcTransportElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1620046519; - } - } - IFC42.IfcTransportElement = IfcTransportElement; - class IfcTrimmedCurve extends IfcBoundedCurve { - constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Trim1 = Trim1; - this.Trim2 = Trim2; - this.SenseAgreement = SenseAgreement; - this.MasterRepresentation = MasterRepresentation; - this.type = 3593883385; - } - } - IFC42.IfcTrimmedCurve = IfcTrimmedCurve; - class IfcTubeBundleType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1600972822; - } - } - IFC42.IfcTubeBundleType = IfcTubeBundleType; - class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1911125066; - } - } - IFC42.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; - class IfcValveType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 728799441; - } - } - IFC42.IfcValveType = IfcValveType; - class IfcVibrationIsolator extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391383451; - } - } - IFC42.IfcVibrationIsolator = IfcVibrationIsolator; - class IfcVibrationIsolatorType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3313531582; - } - } - IFC42.IfcVibrationIsolatorType = IfcVibrationIsolatorType; - class IfcVirtualElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2769231204; - } - } - IFC42.IfcVirtualElement = IfcVirtualElement; - class IfcVoidingFeature extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 926996030; - } - } - IFC42.IfcVoidingFeature = IfcVoidingFeature; - class IfcWallType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1898987631; - } - } - IFC42.IfcWallType = IfcWallType; - class IfcWasteTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1133259667; - } - } - IFC42.IfcWasteTerminalType = IfcWasteTerminalType; - class IfcWindowType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 4009809668; - } - } - IFC42.IfcWindowType = IfcWindowType; - class IfcWorkCalendar extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.WorkingTimes = WorkingTimes; - this.ExceptionTimes = ExceptionTimes; - this.PredefinedType = PredefinedType; - this.type = 4088093105; - } - } - IFC42.IfcWorkCalendar = IfcWorkCalendar; - class IfcWorkControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.type = 1028945134; - } - } - IFC42.IfcWorkControl = IfcWorkControl; - class IfcWorkPlan extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 4218914973; - } - } - IFC42.IfcWorkPlan = IfcWorkPlan; - class IfcWorkSchedule extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 3342526732; - } - } - IFC42.IfcWorkSchedule = IfcWorkSchedule; - class IfcZone extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.type = 1033361043; - } - } - IFC42.IfcZone = IfcZone; - class IfcActionRequest extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3821786052; - } - } - IFC42.IfcActionRequest = IfcActionRequest; - class IfcAirTerminalBoxType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1411407467; - } - } - IFC42.IfcAirTerminalBoxType = IfcAirTerminalBoxType; - class IfcAirTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3352864051; - } - } - IFC42.IfcAirTerminalType = IfcAirTerminalType; - class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1871374353; - } - } - IFC42.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; - class IfcAsset extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.OriginalValue = OriginalValue; - this.CurrentValue = CurrentValue; - this.TotalReplacementCost = TotalReplacementCost; - this.Owner = Owner; - this.User = User; - this.ResponsiblePerson = ResponsiblePerson; - this.IncorporationDate = IncorporationDate; - this.DepreciatedValue = DepreciatedValue; - this.type = 3460190687; - } - } - IFC42.IfcAsset = IfcAsset; - class IfcAudioVisualApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1532957894; - } - } - IFC42.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; - class IfcBSplineCurve extends IfcBoundedCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1967976161; - } - } - IFC42.IfcBSplineCurve = IfcBSplineCurve; - class IfcBSplineCurveWithKnots extends IfcBSplineCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.type = 2461110595; - } - } - IFC42.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; - class IfcBeamType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 819618141; - } - } - IFC42.IfcBeamType = IfcBeamType; - class IfcBoilerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 231477066; - } - } - IFC42.IfcBoilerType = IfcBoilerType; - class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 1136057603; - } - } - IFC42.IfcBoundaryCurve = IfcBoundaryCurve; - class IfcBuildingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3299480353; - } - } - IFC42.IfcBuildingElement = IfcBuildingElement; - class IfcBuildingElementPart extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2979338954; - } - } - IFC42.IfcBuildingElementPart = IfcBuildingElementPart; - class IfcBuildingElementPartType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 39481116; - } - } - IFC42.IfcBuildingElementPartType = IfcBuildingElementPartType; - class IfcBuildingElementProxy extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1095909175; - } - } - IFC42.IfcBuildingElementProxy = IfcBuildingElementProxy; - class IfcBuildingElementProxyType extends IfcBuildingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1909888760; - } - } - IFC42.IfcBuildingElementProxyType = IfcBuildingElementProxyType; - class IfcBuildingSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 1177604601; - } - } - IFC42.IfcBuildingSystem = IfcBuildingSystem; - class IfcBurnerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2188180465; - } - } - IFC42.IfcBurnerType = IfcBurnerType; - class IfcCableCarrierFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 395041908; - } - } - IFC42.IfcCableCarrierFittingType = IfcCableCarrierFittingType; - class IfcCableCarrierSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3293546465; - } - } - IFC42.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; - class IfcCableFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2674252688; - } - } - IFC42.IfcCableFittingType = IfcCableFittingType; - class IfcCableSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1285652485; - } - } - IFC42.IfcCableSegmentType = IfcCableSegmentType; - class IfcChillerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2951183804; - } - } - IFC42.IfcChillerType = IfcChillerType; - class IfcChimney extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3296154744; - } - } - IFC42.IfcChimney = IfcChimney; - class IfcCircle extends IfcConic { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 2611217952; - } - } - IFC42.IfcCircle = IfcCircle; - class IfcCivilElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1677625105; - } - } - IFC42.IfcCivilElement = IfcCivilElement; - class IfcCoilType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2301859152; - } - } - IFC42.IfcCoilType = IfcCoilType; - class IfcColumn extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 843113511; - } - } - IFC42.IfcColumn = IfcColumn; - class IfcColumnStandardCase extends IfcColumn { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 905975707; - } - } - IFC42.IfcColumnStandardCase = IfcColumnStandardCase; - class IfcCommunicationsApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 400855858; - } - } - IFC42.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; - class IfcCompressorType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3850581409; - } - } - IFC42.IfcCompressorType = IfcCompressorType; - class IfcCondenserType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2816379211; - } - } - IFC42.IfcCondenserType = IfcCondenserType; - class IfcConstructionEquipmentResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3898045240; - } - } - IFC42.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; - class IfcConstructionMaterialResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1060000209; - } - } - IFC42.IfcConstructionMaterialResource = IfcConstructionMaterialResource; - class IfcConstructionProductResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 488727124; - } - } - IFC42.IfcConstructionProductResource = IfcConstructionProductResource; - class IfcCooledBeamType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 335055490; - } - } - IFC42.IfcCooledBeamType = IfcCooledBeamType; - class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2954562838; - } - } - IFC42.IfcCoolingTowerType = IfcCoolingTowerType; - class IfcCovering extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1973544240; - } - } - IFC42.IfcCovering = IfcCovering; - class IfcCurtainWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3495092785; - } - } - IFC42.IfcCurtainWall = IfcCurtainWall; - class IfcDamperType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3961806047; - } - } - IFC42.IfcDamperType = IfcDamperType; - class IfcDiscreteAccessory extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1335981549; - } - } - IFC42.IfcDiscreteAccessory = IfcDiscreteAccessory; - class IfcDiscreteAccessoryType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2635815018; - } - } - IFC42.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; - class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1599208980; - } - } - IFC42.IfcDistributionChamberElementType = IfcDistributionChamberElementType; - class IfcDistributionControlElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2063403501; - } - } - IFC42.IfcDistributionControlElementType = IfcDistributionControlElementType; - class IfcDistributionElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1945004755; - } - } - IFC42.IfcDistributionElement = IfcDistributionElement; - class IfcDistributionFlowElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3040386961; - } - } - IFC42.IfcDistributionFlowElement = IfcDistributionFlowElement; - class IfcDistributionPort extends IfcPort { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.FlowDirection = FlowDirection; - this.PredefinedType = PredefinedType; - this.SystemType = SystemType; - this.type = 3041715199; - } - } - IFC42.IfcDistributionPort = IfcDistributionPort; - class IfcDistributionSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 3205830791; - } - } - IFC42.IfcDistributionSystem = IfcDistributionSystem; - class IfcDoor extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 395920057; - } - } - IFC42.IfcDoor = IfcDoor; - class IfcDoorStandardCase extends IfcDoor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 3242481149; - } - } - IFC42.IfcDoorStandardCase = IfcDoorStandardCase; - class IfcDuctFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 869906466; - } - } - IFC42.IfcDuctFittingType = IfcDuctFittingType; - class IfcDuctSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3760055223; - } - } - IFC42.IfcDuctSegmentType = IfcDuctSegmentType; - class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2030761528; - } - } - IFC42.IfcDuctSilencerType = IfcDuctSilencerType; - class IfcElectricApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 663422040; - } - } - IFC42.IfcElectricApplianceType = IfcElectricApplianceType; - class IfcElectricDistributionBoardType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2417008758; - } - } - IFC42.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; - class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3277789161; - } - } - IFC42.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; - class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1534661035; - } - } - IFC42.IfcElectricGeneratorType = IfcElectricGeneratorType; - class IfcElectricMotorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1217240411; - } - } - IFC42.IfcElectricMotorType = IfcElectricMotorType; - class IfcElectricTimeControlType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 712377611; - } - } - IFC42.IfcElectricTimeControlType = IfcElectricTimeControlType; - class IfcEnergyConversionDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1658829314; - } - } - IFC42.IfcEnergyConversionDevice = IfcEnergyConversionDevice; - class IfcEngine extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2814081492; - } - } - IFC42.IfcEngine = IfcEngine; - class IfcEvaporativeCooler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3747195512; - } - } - IFC42.IfcEvaporativeCooler = IfcEvaporativeCooler; - class IfcEvaporator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 484807127; - } - } - IFC42.IfcEvaporator = IfcEvaporator; - class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 1209101575; - } - } - IFC42.IfcExternalSpatialElement = IfcExternalSpatialElement; - class IfcFanType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 346874300; - } - } - IFC42.IfcFanType = IfcFanType; - class IfcFilterType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1810631287; - } - } - IFC42.IfcFilterType = IfcFilterType; - class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4222183408; - } - } - IFC42.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; - class IfcFlowController extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2058353004; - } - } - IFC42.IfcFlowController = IfcFlowController; - class IfcFlowFitting extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4278956645; - } - } - IFC42.IfcFlowFitting = IfcFlowFitting; - class IfcFlowInstrumentType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4037862832; - } - } - IFC42.IfcFlowInstrumentType = IfcFlowInstrumentType; - class IfcFlowMeter extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2188021234; - } - } - IFC42.IfcFlowMeter = IfcFlowMeter; - class IfcFlowMovingDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3132237377; - } - } - IFC42.IfcFlowMovingDevice = IfcFlowMovingDevice; - class IfcFlowSegment extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 987401354; - } - } - IFC42.IfcFlowSegment = IfcFlowSegment; - class IfcFlowStorageDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 707683696; - } - } - IFC42.IfcFlowStorageDevice = IfcFlowStorageDevice; - class IfcFlowTerminal extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2223149337; - } - } - IFC42.IfcFlowTerminal = IfcFlowTerminal; - class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3508470533; - } - } - IFC42.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; - class IfcFooting extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 900683007; - } - } - IFC42.IfcFooting = IfcFooting; - class IfcHeatExchanger extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3319311131; - } - } - IFC42.IfcHeatExchanger = IfcHeatExchanger; - class IfcHumidifier extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2068733104; - } - } - IFC42.IfcHumidifier = IfcHumidifier; - class IfcInterceptor extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4175244083; - } - } - IFC42.IfcInterceptor = IfcInterceptor; - class IfcJunctionBox extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2176052936; - } - } - IFC42.IfcJunctionBox = IfcJunctionBox; - class IfcLamp extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 76236018; - } - } - IFC42.IfcLamp = IfcLamp; - class IfcLightFixture extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 629592764; - } - } - IFC42.IfcLightFixture = IfcLightFixture; - class IfcMedicalDevice extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1437502449; - } - } - IFC42.IfcMedicalDevice = IfcMedicalDevice; - class IfcMember extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1073191201; - } - } - IFC42.IfcMember = IfcMember; - class IfcMemberStandardCase extends IfcMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1911478936; - } - } - IFC42.IfcMemberStandardCase = IfcMemberStandardCase; - class IfcMotorConnection extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2474470126; - } - } - IFC42.IfcMotorConnection = IfcMotorConnection; - class IfcOuterBoundaryCurve extends IfcBoundaryCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 144952367; - } - } - IFC42.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; - class IfcOutlet extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3694346114; - } - } - IFC42.IfcOutlet = IfcOutlet; - class IfcPile extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.ConstructionType = ConstructionType; - this.type = 1687234759; - } - } - IFC42.IfcPile = IfcPile; - class IfcPipeFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 310824031; - } - } - IFC42.IfcPipeFitting = IfcPipeFitting; - class IfcPipeSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3612865200; - } - } - IFC42.IfcPipeSegment = IfcPipeSegment; - class IfcPlate extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3171933400; - } - } - IFC42.IfcPlate = IfcPlate; - class IfcPlateStandardCase extends IfcPlate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1156407060; - } - } - IFC42.IfcPlateStandardCase = IfcPlateStandardCase; - class IfcProtectiveDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 738039164; - } - } - IFC42.IfcProtectiveDevice = IfcProtectiveDevice; - class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 655969474; - } - } - IFC42.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; - class IfcPump extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 90941305; - } - } - IFC42.IfcPump = IfcPump; - class IfcRailing extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2262370178; - } - } - IFC42.IfcRailing = IfcRailing; - class IfcRamp extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3024970846; - } - } - IFC42.IfcRamp = IfcRamp; - class IfcRampFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3283111854; - } - } - IFC42.IfcRampFlight = IfcRampFlight; - class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 1232101972; - } - } - IFC42.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; - class IfcReinforcingBar extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.PredefinedType = PredefinedType; - this.BarSurface = BarSurface; - this.type = 979691226; - } - } - IFC42.IfcReinforcingBar = IfcReinforcingBar; - class IfcReinforcingBarType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.BarSurface = BarSurface; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2572171363; - } - } - IFC42.IfcReinforcingBarType = IfcReinforcingBarType; - class IfcRoof extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2016517767; - } - } - IFC42.IfcRoof = IfcRoof; - class IfcSanitaryTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3053780830; - } - } - IFC42.IfcSanitaryTerminal = IfcSanitaryTerminal; - class IfcSensorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1783015770; - } - } - IFC42.IfcSensorType = IfcSensorType; - class IfcShadingDevice extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1329646415; - } - } - IFC42.IfcShadingDevice = IfcShadingDevice; - class IfcSlab extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1529196076; - } - } - IFC42.IfcSlab = IfcSlab; - class IfcSlabElementedCase extends IfcSlab { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3127900445; - } - } - IFC42.IfcSlabElementedCase = IfcSlabElementedCase; - class IfcSlabStandardCase extends IfcSlab { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3027962421; - } - } - IFC42.IfcSlabStandardCase = IfcSlabStandardCase; - class IfcSolarDevice extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3420628829; - } - } - IFC42.IfcSolarDevice = IfcSolarDevice; - class IfcSpaceHeater extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1999602285; - } - } - IFC42.IfcSpaceHeater = IfcSpaceHeater; - class IfcStackTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1404847402; - } - } - IFC42.IfcStackTerminal = IfcStackTerminal; - class IfcStair extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 331165859; - } - } - IFC42.IfcStair = IfcStair; - class IfcStairFlight extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NumberOfRisers = NumberOfRisers; - this.NumberOfTreads = NumberOfTreads; - this.RiserHeight = RiserHeight; - this.TreadLength = TreadLength; - this.PredefinedType = PredefinedType; - this.type = 4252922144; - } - } - IFC42.IfcStairFlight = IfcStairFlight; - class IfcStructuralAnalysisModel extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.OrientationOf2DPlane = OrientationOf2DPlane; - this.LoadedBy = LoadedBy; - this.HasResults = HasResults; - this.SharedPlacement = SharedPlacement; - this.type = 2515109513; - } - } - IFC42.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; - class IfcStructuralLoadCase extends IfcStructuralLoadGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.SelfWeightCoefficients = SelfWeightCoefficients; - this.type = 385403989; - } - } - IFC42.IfcStructuralLoadCase = IfcStructuralLoadCase; - class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1621171031; - } - } - IFC42.IfcStructuralPlanarAction = IfcStructuralPlanarAction; - class IfcSwitchingDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1162798199; - } - } - IFC42.IfcSwitchingDevice = IfcSwitchingDevice; - class IfcTank extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 812556717; - } - } - IFC42.IfcTank = IfcTank; - class IfcTransformer extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3825984169; - } - } - IFC42.IfcTransformer = IfcTransformer; - class IfcTubeBundle extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3026737570; - } - } - IFC42.IfcTubeBundle = IfcTubeBundle; - class IfcUnitaryControlElementType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3179687236; - } - } - IFC42.IfcUnitaryControlElementType = IfcUnitaryControlElementType; - class IfcUnitaryEquipment extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4292641817; - } - } - IFC42.IfcUnitaryEquipment = IfcUnitaryEquipment; - class IfcValve extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4207607924; - } - } - IFC42.IfcValve = IfcValve; - class IfcWall extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391406946; - } - } - IFC42.IfcWall = IfcWall; - class IfcWallElementedCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4156078855; - } - } - IFC42.IfcWallElementedCase = IfcWallElementedCase; - class IfcWallStandardCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3512223829; - } - } - IFC42.IfcWallStandardCase = IfcWallStandardCase; - class IfcWasteTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4237592921; - } - } - IFC42.IfcWasteTerminal = IfcWasteTerminal; - class IfcWindow extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 3304561284; - } - } - IFC42.IfcWindow = IfcWindow; - class IfcWindowStandardCase extends IfcWindow { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 486154966; - } - } - IFC42.IfcWindowStandardCase = IfcWindowStandardCase; - class IfcActuatorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2874132201; - } - } - IFC42.IfcActuatorType = IfcActuatorType; - class IfcAirTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1634111441; - } - } - IFC42.IfcAirTerminal = IfcAirTerminal; - class IfcAirTerminalBox extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 177149247; - } - } - IFC42.IfcAirTerminalBox = IfcAirTerminalBox; - class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2056796094; - } - } - IFC42.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; - class IfcAlarmType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3001207471; - } - } - IFC42.IfcAlarmType = IfcAlarmType; - class IfcAudioVisualAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 277319702; - } - } - IFC42.IfcAudioVisualAppliance = IfcAudioVisualAppliance; - class IfcBeam extends IfcBuildingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 753842376; - } - } - IFC42.IfcBeam = IfcBeam; - class IfcBeamStandardCase extends IfcBeam { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2906023776; - } - } - IFC42.IfcBeamStandardCase = IfcBeamStandardCase; - class IfcBoiler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 32344328; - } - } - IFC42.IfcBoiler = IfcBoiler; - class IfcBurner extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2938176219; - } - } - IFC42.IfcBurner = IfcBurner; - class IfcCableCarrierFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 635142910; - } - } - IFC42.IfcCableCarrierFitting = IfcCableCarrierFitting; - class IfcCableCarrierSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3758799889; - } - } - IFC42.IfcCableCarrierSegment = IfcCableCarrierSegment; - class IfcCableFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1051757585; - } - } - IFC42.IfcCableFitting = IfcCableFitting; - class IfcCableSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4217484030; - } - } - IFC42.IfcCableSegment = IfcCableSegment; - class IfcChiller extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3902619387; - } - } - IFC42.IfcChiller = IfcChiller; - class IfcCoil extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 639361253; - } - } - IFC42.IfcCoil = IfcCoil; - class IfcCommunicationsAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3221913625; - } - } - IFC42.IfcCommunicationsAppliance = IfcCommunicationsAppliance; - class IfcCompressor extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3571504051; - } - } - IFC42.IfcCompressor = IfcCompressor; - class IfcCondenser extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2272882330; - } - } - IFC42.IfcCondenser = IfcCondenser; - class IfcControllerType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 578613899; - } - } - IFC42.IfcControllerType = IfcControllerType; - class IfcCooledBeam extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4136498852; - } - } - IFC42.IfcCooledBeam = IfcCooledBeam; - class IfcCoolingTower extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3640358203; - } - } - IFC42.IfcCoolingTower = IfcCoolingTower; - class IfcDamper extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4074379575; - } - } - IFC42.IfcDamper = IfcDamper; - class IfcDistributionChamberElement extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1052013943; - } - } - IFC42.IfcDistributionChamberElement = IfcDistributionChamberElement; - class IfcDistributionCircuit extends IfcDistributionSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 562808652; - } - } - IFC42.IfcDistributionCircuit = IfcDistributionCircuit; - class IfcDistributionControlElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1062813311; - } - } - IFC42.IfcDistributionControlElement = IfcDistributionControlElement; - class IfcDuctFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 342316401; - } - } - IFC42.IfcDuctFitting = IfcDuctFitting; - class IfcDuctSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3518393246; - } - } - IFC42.IfcDuctSegment = IfcDuctSegment; - class IfcDuctSilencer extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1360408905; - } - } - IFC42.IfcDuctSilencer = IfcDuctSilencer; - class IfcElectricAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1904799276; - } - } - IFC42.IfcElectricAppliance = IfcElectricAppliance; - class IfcElectricDistributionBoard extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 862014818; - } - } - IFC42.IfcElectricDistributionBoard = IfcElectricDistributionBoard; - class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3310460725; - } - } - IFC42.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; - class IfcElectricGenerator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 264262732; - } - } - IFC42.IfcElectricGenerator = IfcElectricGenerator; - class IfcElectricMotor extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 402227799; - } - } - IFC42.IfcElectricMotor = IfcElectricMotor; - class IfcElectricTimeControl extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1003880860; - } - } - IFC42.IfcElectricTimeControl = IfcElectricTimeControl; - class IfcFan extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3415622556; - } - } - IFC42.IfcFan = IfcFan; - class IfcFilter extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 819412036; - } - } - IFC42.IfcFilter = IfcFilter; - class IfcFireSuppressionTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1426591983; - } - } - IFC42.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; - class IfcFlowInstrument extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 182646315; - } - } - IFC42.IfcFlowInstrument = IfcFlowInstrument; - class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2295281155; - } - } - IFC42.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; - class IfcSensor extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4086658281; - } - } - IFC42.IfcSensor = IfcSensor; - class IfcUnitaryControlElement extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 630975310; - } - } - IFC42.IfcUnitaryControlElement = IfcUnitaryControlElement; - class IfcActuator extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4288193352; - } - } - IFC42.IfcActuator = IfcActuator; - class IfcAlarm extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3087945054; - } - } - IFC42.IfcAlarm = IfcAlarm; - class IfcController extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 25142252; - } - } - IFC42.IfcController = IfcController; - })(IFC4 || (IFC4 = {})); - var IFC4X3; - (function(IFC4X32) { - class IfcAbsorbedDoseMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure; - class IfcAccelerationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAccelerationMeasure = IfcAccelerationMeasure; - class IfcAmountOfSubstanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure; - class IfcAngularVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure; - class IfcArcIndex { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcArcIndex = IfcArcIndex; - class IfcAreaDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAreaDensityMeasure = IfcAreaDensityMeasure; - class IfcAreaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcAreaMeasure = IfcAreaMeasure; - class IfcBinary { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcBinary = IfcBinary; - class IfcBoolean { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC4X32.IfcBoolean = IfcBoolean; - class IfcBoxAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcBoxAlignment = IfcBoxAlignment; - class IfcCardinalPointReference { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcCardinalPointReference = IfcCardinalPointReference; - class IfcComplexNumber { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcComplexNumber = IfcComplexNumber; - class IfcCompoundPlaneAngleMeasure { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure; - class IfcContextDependentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcContextDependentMeasure = IfcContextDependentMeasure; - class IfcCountMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcCountMeasure = IfcCountMeasure; - class IfcCurvatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcCurvatureMeasure = IfcCurvatureMeasure; - class IfcDate { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcDate = IfcDate; - class IfcDateTime { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcDateTime = IfcDateTime; - class IfcDayInMonthNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDayInMonthNumber = IfcDayInMonthNumber; - class IfcDayInWeekNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDayInWeekNumber = IfcDayInWeekNumber; - class IfcDescriptiveMeasure { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure; - class IfcDimensionCount { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDimensionCount = IfcDimensionCount; - class IfcDoseEquivalentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure; - class IfcDuration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcDuration = IfcDuration; - class IfcDynamicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure; - class IfcElectricCapacitanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure; - class IfcElectricChargeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure; - class IfcElectricConductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure; - class IfcElectricCurrentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure; - class IfcElectricResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure; - class IfcElectricVoltageMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure; - class IfcEnergyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcEnergyMeasure = IfcEnergyMeasure; - class IfcFontStyle { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcFontStyle = IfcFontStyle; - class IfcFontVariant { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcFontVariant = IfcFontVariant; - class IfcFontWeight { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcFontWeight = IfcFontWeight; - class IfcForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcForceMeasure = IfcForceMeasure; - class IfcFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcFrequencyMeasure = IfcFrequencyMeasure; - class IfcGloballyUniqueId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcGloballyUniqueId = IfcGloballyUniqueId; - class IfcHeatFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure; - class IfcHeatingValueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure; - class IfcIdentifier { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcIdentifier = IfcIdentifier; - class IfcIlluminanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure; - class IfcInductanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcInductanceMeasure = IfcInductanceMeasure; - class IfcInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcInteger = IfcInteger; - class IfcIntegerCountRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure; - class IfcIonConcentrationMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure; - class IfcIsothermalMoistureCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure; - class IfcKinematicViscosityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure; - class IfcLabel { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcLabel = IfcLabel; - class IfcLanguageId { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcLanguageId = IfcLanguageId; - class IfcLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLengthMeasure = IfcLengthMeasure; - class IfcLineIndex { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcLineIndex = IfcLineIndex; - class IfcLinearForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLinearForceMeasure = IfcLinearForceMeasure; - class IfcLinearMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure; - class IfcLinearStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure; - class IfcLinearVelocityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure; - class IfcLogical { - constructor(v) { - this.type = 3; - this.value = v == "true" ? true : false; - } - } - IFC4X32.IfcLogical = IfcLogical; - class IfcLuminousFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure; - class IfcLuminousIntensityDistributionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure; - class IfcLuminousIntensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure; - class IfcMagneticFluxDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure; - class IfcMagneticFluxMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure; - class IfcMassDensityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMassDensityMeasure = IfcMassDensityMeasure; - class IfcMassFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure; - class IfcMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMassMeasure = IfcMassMeasure; - class IfcMassPerLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure; - class IfcModulusOfElasticityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure; - class IfcModulusOfLinearSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure; - class IfcModulusOfRotationalSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure; - class IfcModulusOfSubgradeReactionMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure; - class IfcMoistureDiffusivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure; - class IfcMolecularWeightMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure; - class IfcMomentOfInertiaMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure; - class IfcMonetaryMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMonetaryMeasure = IfcMonetaryMeasure; - class IfcMonthInYearNumber { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcMonthInYearNumber = IfcMonthInYearNumber; - class IfcNonNegativeLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure; - class IfcNormalisedRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure; - class IfcNumericMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcNumericMeasure = IfcNumericMeasure; - class IfcPHMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPHMeasure = IfcPHMeasure; - class IfcParameterValue { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcParameterValue = IfcParameterValue; - class IfcPlanarForceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure; - class IfcPlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure; - class IfcPositiveInteger { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPositiveInteger = IfcPositiveInteger; - class IfcPositiveLengthMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure; - class IfcPositivePlaneAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure; - class IfcPositiveRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure; - class IfcPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPowerMeasure = IfcPowerMeasure; - class IfcPresentableText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcPresentableText = IfcPresentableText; - class IfcPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcPressureMeasure = IfcPressureMeasure; - class IfcPropertySetDefinitionSet { - constructor(value) { - this.value = value; - } - } - IFC4X32.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet; - class IfcRadioActivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure; - class IfcRatioMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRatioMeasure = IfcRatioMeasure; - class IfcReal { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcReal = IfcReal; - class IfcRotationalFrequencyMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure; - class IfcRotationalMassMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure; - class IfcRotationalStiffnessMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure; - class IfcSectionModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure; - class IfcSectionalAreaIntegralMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure; - class IfcShearModulusMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcShearModulusMeasure = IfcShearModulusMeasure; - class IfcSolidAngleMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure; - class IfcSoundPowerLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure; - class IfcSoundPowerMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure; - class IfcSoundPressureLevelMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure; - class IfcSoundPressureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure; - class IfcSpecificHeatCapacityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure; - class IfcSpecularExponent { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSpecularExponent = IfcSpecularExponent; - class IfcSpecularRoughness { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcSpecularRoughness = IfcSpecularRoughness; - class IfcTemperatureGradientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure; - class IfcTemperatureRateOfChangeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure; - class IfcText { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcText = IfcText; - class IfcTextAlignment { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTextAlignment = IfcTextAlignment; - class IfcTextDecoration { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTextDecoration = IfcTextDecoration; - class IfcTextFontName { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTextFontName = IfcTextFontName; - class IfcTextTransformation { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTextTransformation = IfcTextTransformation; - class IfcThermalAdmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure; - class IfcThermalConductivityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure; - class IfcThermalExpansionCoefficientMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure; - class IfcThermalResistanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure; - class IfcThermalTransmittanceMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure; - class IfcThermodynamicTemperatureMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure; - class IfcTime { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcTime = IfcTime; - class IfcTimeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTimeMeasure = IfcTimeMeasure; - class IfcTimeStamp { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTimeStamp = IfcTimeStamp; - class IfcTorqueMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcTorqueMeasure = IfcTorqueMeasure; - class IfcURIReference { - constructor(value) { - this.value = value; - this.type = 1; - } - } - IFC4X32.IfcURIReference = IfcURIReference; - class IfcVaporPermeabilityMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure; - class IfcVolumeMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcVolumeMeasure = IfcVolumeMeasure; - class IfcVolumetricFlowRateMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure; - class IfcWarpingConstantMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure; - class IfcWarpingMomentMeasure { - constructor(v) { - this.type = 4; - this.value = parseFloat(v); - } - } - IFC4X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure; - class IfcActionRequestTypeEnum { - } - IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" }; - IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" }; - IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" }; - IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" }; - IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum; - class IfcActionSourceTypeEnum { - } - IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" }; - IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" }; - IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" }; - IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" }; - IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" }; - IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" }; - IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" }; - IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" }; - IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" }; - IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" }; - IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" }; - IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" }; - IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" }; - IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" }; - IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" }; - IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" }; - IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" }; - IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" }; - IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" }; - IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" }; - IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" }; - IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" }; - IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" }; - IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum; - class IfcActionTypeEnum { - } - IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" }; - IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" }; - IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" }; - IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActionTypeEnum = IfcActionTypeEnum; - class IfcActuatorTypeEnum { - } - IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" }; - IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" }; - IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" }; - IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" }; - IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" }; - IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum; - class IfcAddressTypeEnum { - } - IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" }; - IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" }; - IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcAddressTypeEnum = IfcAddressTypeEnum; - class IfcAirTerminalBoxTypeEnum { - } - IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" }; - IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum; - class IfcAirTerminalTypeEnum { - } - IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" }; - IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" }; - IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" }; - IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" }; - IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum; - class IfcAirToAirHeatRecoveryTypeEnum { - } - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" }; - IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" }; - IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" }; - IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" }; - IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" }; - IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum; - class IfcAlarmTypeEnum { - } - IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" }; - IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" }; - IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" }; - IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" }; - IfcAlarmTypeEnum.RAILWAYCROCODILE = { type: 3, value: "RAILWAYCROCODILE" }; - IfcAlarmTypeEnum.RAILWAYDETONATOR = { type: 3, value: "RAILWAYDETONATOR" }; - IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" }; - IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" }; - IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum; - class IfcAlignmentCantSegmentTypeEnum { - } - IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; - IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT = { type: 3, value: "CONSTANTCANT" }; - IfcAlignmentCantSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; - IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; - IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION = { type: 3, value: "LINEARTRANSITION" }; - IfcAlignmentCantSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; - IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; - IFC4X32.IfcAlignmentCantSegmentTypeEnum = IfcAlignmentCantSegmentTypeEnum; - class IfcAlignmentHorizontalSegmentTypeEnum { - } - IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; - IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; - IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.CUBIC = { type: 3, value: "CUBIC" }; - IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.LINE = { type: 3, value: "LINE" }; - IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" }; - IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" }; - IFC4X32.IfcAlignmentHorizontalSegmentTypeEnum = IfcAlignmentHorizontalSegmentTypeEnum; - class IfcAlignmentTypeEnum { - } - IfcAlignmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAlignmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum; - class IfcAlignmentVerticalSegmentTypeEnum { - } - IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" }; - IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" }; - IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT = { type: 3, value: "CONSTANTGRADIENT" }; - IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC = { type: 3, value: "PARABOLICARC" }; - IFC4X32.IfcAlignmentVerticalSegmentTypeEnum = IfcAlignmentVerticalSegmentTypeEnum; - class IfcAnalysisModelTypeEnum { - } - IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" }; - IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" }; - IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum; - class IfcAnalysisTheoryTypeEnum { - } - IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" }; - IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" }; - IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum; - class IfcAnnotationTypeEnum { - } - IfcAnnotationTypeEnum.ASBUILTAREA = { type: 3, value: "ASBUILTAREA" }; - IfcAnnotationTypeEnum.ASBUILTLINE = { type: 3, value: "ASBUILTLINE" }; - IfcAnnotationTypeEnum.ASBUILTPOINT = { type: 3, value: "ASBUILTPOINT" }; - IfcAnnotationTypeEnum.ASSUMEDAREA = { type: 3, value: "ASSUMEDAREA" }; - IfcAnnotationTypeEnum.ASSUMEDLINE = { type: 3, value: "ASSUMEDLINE" }; - IfcAnnotationTypeEnum.ASSUMEDPOINT = { type: 3, value: "ASSUMEDPOINT" }; - IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL = { type: 3, value: "NON_PHYSICAL_SIGNAL" }; - IfcAnnotationTypeEnum.SUPERELEVATIONEVENT = { type: 3, value: "SUPERELEVATIONEVENT" }; - IfcAnnotationTypeEnum.WIDTHEVENT = { type: 3, value: "WIDTHEVENT" }; - IfcAnnotationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAnnotationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAnnotationTypeEnum = IfcAnnotationTypeEnum; - class IfcArithmeticOperatorEnum { - } - IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" }; - IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" }; - IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" }; - IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" }; - IFC4X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum; - class IfcAssemblyPlaceEnum { - } - IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" }; - IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" }; - IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum; - class IfcAudioVisualApplianceTypeEnum { - } - IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" }; - IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" }; - IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL = { type: 3, value: "COMMUNICATIONTERMINAL" }; - IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" }; - IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" }; - IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" }; - IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" }; - IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" }; - IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT = { type: 3, value: "RECORDINGEQUIPMENT" }; - IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" }; - IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" }; - IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" }; - IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum; - class IfcBSplineCurveForm { - } - IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" }; - IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" }; - IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" }; - IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" }; - IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" }; - IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcBSplineCurveForm = IfcBSplineCurveForm; - class IfcBSplineSurfaceForm { - } - IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" }; - IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" }; - IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" }; - IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" }; - IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" }; - IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" }; - IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" }; - IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" }; - IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" }; - IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" }; - IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm; - class IfcBeamTypeEnum { - } - IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" }; - IfcBeamTypeEnum.CORNICE = { type: 3, value: "CORNICE" }; - IfcBeamTypeEnum.DIAPHRAGM = { type: 3, value: "DIAPHRAGM" }; - IfcBeamTypeEnum.EDGEBEAM = { type: 3, value: "EDGEBEAM" }; - IfcBeamTypeEnum.GIRDER_SEGMENT = { type: 3, value: "GIRDER_SEGMENT" }; - IfcBeamTypeEnum.HATSTONE = { type: 3, value: "HATSTONE" }; - IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" }; - IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" }; - IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" }; - IfcBeamTypeEnum.PIERCAP = { type: 3, value: "PIERCAP" }; - IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" }; - IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" }; - IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBeamTypeEnum = IfcBeamTypeEnum; - class IfcBearingTypeDisplacementEnum { - } - IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = { type: 3, value: "FIXED_MOVEMENT" }; - IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = { type: 3, value: "FREE_MOVEMENT" }; - IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = { type: 3, value: "GUIDED_LONGITUDINAL" }; - IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = { type: 3, value: "GUIDED_TRANSVERSAL" }; - IfcBearingTypeDisplacementEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum; - class IfcBearingTypeEnum { - } - IfcBearingTypeEnum.CYLINDRICAL = { type: 3, value: "CYLINDRICAL" }; - IfcBearingTypeEnum.DISK = { type: 3, value: "DISK" }; - IfcBearingTypeEnum.ELASTOMERIC = { type: 3, value: "ELASTOMERIC" }; - IfcBearingTypeEnum.GUIDE = { type: 3, value: "GUIDE" }; - IfcBearingTypeEnum.POT = { type: 3, value: "POT" }; - IfcBearingTypeEnum.ROCKER = { type: 3, value: "ROCKER" }; - IfcBearingTypeEnum.ROLLER = { type: 3, value: "ROLLER" }; - IfcBearingTypeEnum.SPHERICAL = { type: 3, value: "SPHERICAL" }; - IfcBearingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBearingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBearingTypeEnum = IfcBearingTypeEnum; - class IfcBenchmarkEnum { - } - IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" }; - IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" }; - IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" }; - IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" }; - IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" }; - IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" }; - IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" }; - IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" }; - IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" }; - IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" }; - IFC4X32.IfcBenchmarkEnum = IfcBenchmarkEnum; - class IfcBoilerTypeEnum { - } - IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" }; - IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum; - class IfcBooleanOperator { - } - IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" }; - IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcBooleanOperator.UNION = { type: 3, value: "UNION" }; - IFC4X32.IfcBooleanOperator = IfcBooleanOperator; - class IfcBridgePartTypeEnum { - } - IfcBridgePartTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; - IfcBridgePartTypeEnum.DECK = { type: 3, value: "DECK" }; - IfcBridgePartTypeEnum.DECK_SEGMENT = { type: 3, value: "DECK_SEGMENT" }; - IfcBridgePartTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBridgePartTypeEnum.PIER = { type: 3, value: "PIER" }; - IfcBridgePartTypeEnum.PIER_SEGMENT = { type: 3, value: "PIER_SEGMENT" }; - IfcBridgePartTypeEnum.PYLON = { type: 3, value: "PYLON" }; - IfcBridgePartTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; - IfcBridgePartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; - IfcBridgePartTypeEnum.SURFACESTRUCTURE = { type: 3, value: "SURFACESTRUCTURE" }; - IfcBridgePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBridgePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum; - class IfcBridgeTypeEnum { - } - IfcBridgeTypeEnum.ARCHED = { type: 3, value: "ARCHED" }; - IfcBridgeTypeEnum.CABLE_STAYED = { type: 3, value: "CABLE_STAYED" }; - IfcBridgeTypeEnum.CANTILEVER = { type: 3, value: "CANTILEVER" }; - IfcBridgeTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; - IfcBridgeTypeEnum.FRAMEWORK = { type: 3, value: "FRAMEWORK" }; - IfcBridgeTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcBridgeTypeEnum.SUSPENSION = { type: 3, value: "SUSPENSION" }; - IfcBridgeTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcBridgeTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBridgeTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBridgeTypeEnum = IfcBridgeTypeEnum; - class IfcBuildingElementPartTypeEnum { - } - IfcBuildingElementPartTypeEnum.APRON = { type: 3, value: "APRON" }; - IfcBuildingElementPartTypeEnum.ARMOURUNIT = { type: 3, value: "ARMOURUNIT" }; - IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" }; - IfcBuildingElementPartTypeEnum.SAFETYCAGE = { type: 3, value: "SAFETYCAGE" }; - IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum; - class IfcBuildingElementProxyTypeEnum { - } - IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum; - class IfcBuildingSystemTypeEnum { - } - IfcBuildingSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; - IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; - IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; - IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; - IfcBuildingSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; - IfcBuildingSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; - IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; - IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum; - class IfcBuiltSystemTypeEnum { - } - IfcBuiltSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" }; - IfcBuiltSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" }; - IfcBuiltSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" }; - IfcBuiltSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" }; - IfcBuiltSystemTypeEnum.MOORING = { type: 3, value: "MOORING" }; - IfcBuiltSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" }; - IfcBuiltSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" }; - IfcBuiltSystemTypeEnum.RAILWAYLINE = { type: 3, value: "RAILWAYLINE" }; - IfcBuiltSystemTypeEnum.RAILWAYTRACK = { type: 3, value: "RAILWAYTRACK" }; - IfcBuiltSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" }; - IfcBuiltSystemTypeEnum.SHADING = { type: 3, value: "SHADING" }; - IfcBuiltSystemTypeEnum.TRACKCIRCUIT = { type: 3, value: "TRACKCIRCUIT" }; - IfcBuiltSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcBuiltSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBuiltSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBuiltSystemTypeEnum = IfcBuiltSystemTypeEnum; - class IfcBurnerTypeEnum { - } - IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcBurnerTypeEnum = IfcBurnerTypeEnum; - class IfcCableCarrierFittingTypeEnum { - } - IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcCableCarrierFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" }; - IfcCableCarrierFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" }; - IfcCableCarrierFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum; - class IfcCableCarrierSegmentTypeEnum { - } - IfcCableCarrierSegmentTypeEnum.CABLEBRACKET = { type: 3, value: "CABLEBRACKET" }; - IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.CATENARYWIRE = { type: 3, value: "CATENARYWIRE" }; - IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" }; - IfcCableCarrierSegmentTypeEnum.DROPPER = { type: 3, value: "DROPPER" }; - IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum; - class IfcCableFittingTypeEnum { - } - IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcCableFittingTypeEnum.FANOUT = { type: 3, value: "FANOUT" }; - IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum; - class IfcCableSegmentTypeEnum { - } - IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" }; - IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" }; - IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" }; - IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT = { type: 3, value: "CONTACTWIRESEGMENT" }; - IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" }; - IfcCableSegmentTypeEnum.FIBERSEGMENT = { type: 3, value: "FIBERSEGMENT" }; - IfcCableSegmentTypeEnum.FIBERTUBE = { type: 3, value: "FIBERTUBE" }; - IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT = { type: 3, value: "OPTICALCABLESEGMENT" }; - IfcCableSegmentTypeEnum.STITCHWIRE = { type: 3, value: "STITCHWIRE" }; - IfcCableSegmentTypeEnum.WIREPAIRSEGMENT = { type: 3, value: "WIREPAIRSEGMENT" }; - IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum; - class IfcCaissonFoundationTypeEnum { - } - IfcCaissonFoundationTypeEnum.CAISSON = { type: 3, value: "CAISSON" }; - IfcCaissonFoundationTypeEnum.WELL = { type: 3, value: "WELL" }; - IfcCaissonFoundationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCaissonFoundationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum; - class IfcChangeActionEnum { - } - IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" }; - IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" }; - IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" }; - IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" }; - IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcChangeActionEnum = IfcChangeActionEnum; - class IfcChillerTypeEnum { - } - IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" }; - IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcChillerTypeEnum = IfcChillerTypeEnum; - class IfcChimneyTypeEnum { - } - IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcChimneyTypeEnum = IfcChimneyTypeEnum; - class IfcCoilTypeEnum { - } - IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" }; - IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" }; - IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" }; - IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" }; - IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" }; - IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" }; - IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" }; - IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCoilTypeEnum = IfcCoilTypeEnum; - class IfcColumnTypeEnum { - } - IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" }; - IfcColumnTypeEnum.PIERSTEM = { type: 3, value: "PIERSTEM" }; - IfcColumnTypeEnum.PIERSTEM_SEGMENT = { type: 3, value: "PIERSTEM_SEGMENT" }; - IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" }; - IfcColumnTypeEnum.STANDCOLUMN = { type: 3, value: "STANDCOLUMN" }; - IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcColumnTypeEnum = IfcColumnTypeEnum; - class IfcCommunicationsApplianceTypeEnum { - } - IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" }; - IfcCommunicationsApplianceTypeEnum.AUTOMATON = { type: 3, value: "AUTOMATON" }; - IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" }; - IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" }; - IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" }; - IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL = { type: 3, value: "INTELLIGENTPERIPHERAL" }; - IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT = { type: 3, value: "IPNETWORKEQUIPMENT" }; - IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT = { type: 3, value: "LINESIDEELECTRONICUNIT" }; - IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" }; - IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" }; - IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" }; - IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL = { type: 3, value: "OPTICALLINETERMINAL" }; - IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT = { type: 3, value: "OPTICALNETWORKUNIT" }; - IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" }; - IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER = { type: 3, value: "RADIOBLOCKCENTER" }; - IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" }; - IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" }; - IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" }; - IfcCommunicationsApplianceTypeEnum.TELECOMMAND = { type: 3, value: "TELECOMMAND" }; - IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE = { type: 3, value: "TELEPHONYEXCHANGE" }; - IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT = { type: 3, value: "TRANSITIONCOMPONENT" }; - IfcCommunicationsApplianceTypeEnum.TRANSPONDER = { type: 3, value: "TRANSPONDER" }; - IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT = { type: 3, value: "TRANSPORTEQUIPMENT" }; - IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum; - class IfcComplexPropertyTemplateTypeEnum { - } - IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" }; - IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" }; - IFC4X32.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum; - class IfcCompressorTypeEnum { - } - IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" }; - IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" }; - IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" }; - IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" }; - IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" }; - IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" }; - IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" }; - IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" }; - IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" }; - IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" }; - IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" }; - IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" }; - IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" }; - IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" }; - IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" }; - IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum; - class IfcCondenserTypeEnum { - } - IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" }; - IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" }; - IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" }; - IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" }; - IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" }; - IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" }; - IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum; - class IfcConnectionTypeEnum { - } - IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" }; - IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" }; - IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" }; - IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum; - class IfcConstraintEnum { - } - IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" }; - IfcConstraintEnum.HARD = { type: 3, value: "HARD" }; - IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" }; - IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstraintEnum = IfcConstraintEnum; - class IfcConstructionEquipmentResourceTypeEnum { - } - IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" }; - IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" }; - IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" }; - IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" }; - IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" }; - IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" }; - IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum; - class IfcConstructionMaterialResourceTypeEnum { - } - IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" }; - IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" }; - IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" }; - IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" }; - IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" }; - IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum; - class IfcConstructionProductResourceTypeEnum { - } - IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" }; - IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" }; - IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum; - class IfcControllerTypeEnum { - } - IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" }; - IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" }; - IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" }; - IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" }; - IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" }; - IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcControllerTypeEnum = IfcControllerTypeEnum; - class IfcConveyorSegmentTypeEnum { - } - IfcConveyorSegmentTypeEnum.BELTCONVEYOR = { type: 3, value: "BELTCONVEYOR" }; - IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR = { type: 3, value: "BUCKETCONVEYOR" }; - IfcConveyorSegmentTypeEnum.CHUTECONVEYOR = { type: 3, value: "CHUTECONVEYOR" }; - IfcConveyorSegmentTypeEnum.SCREWCONVEYOR = { type: 3, value: "SCREWCONVEYOR" }; - IfcConveyorSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcConveyorSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcConveyorSegmentTypeEnum = IfcConveyorSegmentTypeEnum; - class IfcCooledBeamTypeEnum { - } - IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" }; - IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" }; - IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum; - class IfcCoolingTowerTypeEnum { - } - IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" }; - IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" }; - IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" }; - IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum; - class IfcCostItemTypeEnum { - } - IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCostItemTypeEnum = IfcCostItemTypeEnum; - class IfcCostScheduleTypeEnum { - } - IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" }; - IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" }; - IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" }; - IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" }; - IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" }; - IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" }; - IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum; - class IfcCourseTypeEnum { - } - IfcCourseTypeEnum.ARMOUR = { type: 3, value: "ARMOUR" }; - IfcCourseTypeEnum.BALLASTBED = { type: 3, value: "BALLASTBED" }; - IfcCourseTypeEnum.CORE = { type: 3, value: "CORE" }; - IfcCourseTypeEnum.FILTER = { type: 3, value: "FILTER" }; - IfcCourseTypeEnum.PAVEMENT = { type: 3, value: "PAVEMENT" }; - IfcCourseTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; - IfcCourseTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCourseTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCourseTypeEnum = IfcCourseTypeEnum; - class IfcCoveringTypeEnum { - } - IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" }; - IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" }; - IfcCoveringTypeEnum.COPING = { type: 3, value: "COPING" }; - IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" }; - IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" }; - IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" }; - IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" }; - IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" }; - IfcCoveringTypeEnum.TOPPING = { type: 3, value: "TOPPING" }; - IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" }; - IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum; - class IfcCrewResourceTypeEnum { - } - IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" }; - IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" }; - IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum; - class IfcCurtainWallTypeEnum { - } - IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum; - class IfcCurveInterpolationEnum { - } - IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" }; - IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" }; - IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum; - class IfcDamperTypeEnum { - } - IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" }; - IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" }; - IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" }; - IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" }; - IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" }; - IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" }; - IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" }; - IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" }; - IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" }; - IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" }; - IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" }; - IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDamperTypeEnum = IfcDamperTypeEnum; - class IfcDataOriginEnum { - } - IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" }; - IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" }; - IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" }; - IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDataOriginEnum = IfcDataOriginEnum; - class IfcDerivedUnitEnum { - } - IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" }; - IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" }; - IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" }; - IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" }; - IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" }; - IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" }; - IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" }; - IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" }; - IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" }; - IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" }; - IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" }; - IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" }; - IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" }; - IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" }; - IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" }; - IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" }; - IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" }; - IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" }; - IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" }; - IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" }; - IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" }; - IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" }; - IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" }; - IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" }; - IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" }; - IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" }; - IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" }; - IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" }; - IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" }; - IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" }; - IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" }; - IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" }; - IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" }; - IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" }; - IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" }; - IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" }; - IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" }; - IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" }; - IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" }; - IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" }; - IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" }; - IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" }; - IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" }; - IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum; - class IfcDirectionSenseEnum { - } - IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" }; - IFC4X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum; - class IfcDiscreteAccessoryTypeEnum { - } - IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" }; - IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION = { type: 3, value: "BIRDPROTECTION" }; - IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" }; - IfcDiscreteAccessoryTypeEnum.CABLEARRANGER = { type: 3, value: "CABLEARRANGER" }; - IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION = { type: 3, value: "ELASTIC_CUSHION" }; - IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = { type: 3, value: "EXPANSION_JOINT_DEVICE" }; - IfcDiscreteAccessoryTypeEnum.FILLER = { type: 3, value: "FILLER" }; - IfcDiscreteAccessoryTypeEnum.FLASHING = { type: 3, value: "FLASHING" }; - IfcDiscreteAccessoryTypeEnum.INSULATOR = { type: 3, value: "INSULATOR" }; - IfcDiscreteAccessoryTypeEnum.LOCK = { type: 3, value: "LOCK" }; - IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING = { type: 3, value: "PANEL_STRENGTHENING" }; - IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE = { type: 3, value: "POINTMACHINEMOUNTINGDEVICE" }; - IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE = { type: 3, value: "POINT_MACHINE_LOCKING_DEVICE" }; - IfcDiscreteAccessoryTypeEnum.RAILBRACE = { type: 3, value: "RAILBRACE" }; - IfcDiscreteAccessoryTypeEnum.RAILPAD = { type: 3, value: "RAILPAD" }; - IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION = { type: 3, value: "RAIL_LUBRICATION" }; - IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT" }; - IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" }; - IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR = { type: 3, value: "SLIDINGCHAIR" }; - IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION = { type: 3, value: "SOUNDABSORPTION" }; - IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT = { type: 3, value: "TENSIONINGEQUIPMENT" }; - IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum; - class IfcDistributionBoardTypeEnum { - } - IfcDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcDistributionBoardTypeEnum.DISPATCHINGBOARD = { type: 3, value: "DISPATCHINGBOARD" }; - IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME = { type: 3, value: "DISTRIBUTIONFRAME" }; - IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionBoardTypeEnum = IfcDistributionBoardTypeEnum; - class IfcDistributionChamberElementTypeEnum { - } - IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" }; - IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" }; - IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" }; - IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" }; - IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" }; - IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" }; - IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum; - class IfcDistributionPortTypeEnum { - } - IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" }; - IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" }; - IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" }; - IfcDistributionPortTypeEnum.WIRELESS = { type: 3, value: "WIRELESS" }; - IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum; - class IfcDistributionSystemEnum { - } - IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" }; - IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" }; - IfcDistributionSystemEnum.CATENARY_SYSTEM = { type: 3, value: "CATENARY_SYSTEM" }; - IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" }; - IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" }; - IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" }; - IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" }; - IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" }; - IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" }; - IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" }; - IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" }; - IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" }; - IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" }; - IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" }; - IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" }; - IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" }; - IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" }; - IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" }; - IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK = { type: 3, value: "FIXEDTRANSMISSIONNETWORK" }; - IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" }; - IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" }; - IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" }; - IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" }; - IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" }; - IfcDistributionSystemEnum.MOBILENETWORK = { type: 3, value: "MOBILENETWORK" }; - IfcDistributionSystemEnum.MONITORINGSYSTEM = { type: 3, value: "MONITORINGSYSTEM" }; - IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" }; - IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" }; - IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" }; - IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM = { type: 3, value: "OPERATIONALTELEPHONYSYSTEM" }; - IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM = { type: 3, value: "OVERHEAD_CONTACTLINE_SYSTEM" }; - IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" }; - IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" }; - IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" }; - IfcDistributionSystemEnum.RETURN_CIRCUIT = { type: 3, value: "RETURN_CIRCUIT" }; - IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" }; - IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" }; - IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" }; - IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" }; - IfcDistributionSystemEnum.TV = { type: 3, value: "TV" }; - IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" }; - IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" }; - IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" }; - IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" }; - IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDistributionSystemEnum = IfcDistributionSystemEnum; - class IfcDocumentConfidentialityEnum { - } - IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" }; - IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" }; - IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" }; - IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" }; - IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum; - class IfcDocumentStatusEnum { - } - IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" }; - IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" }; - IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" }; - IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" }; - IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum; - class IfcDoorPanelOperationEnum { - } - IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" }; - IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" }; - IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" }; - IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" }; - IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" }; - IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum; - class IfcDoorPanelPositionEnum { - } - IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum; - class IfcDoorStyleConstructionEnum { - } - IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" }; - IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum; - class IfcDoorStyleOperationEnum { - } - IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" }; - IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum; - class IfcDoorTypeEnum { - } - IfcDoorTypeEnum.BOOM_BARRIER = { type: 3, value: "BOOM_BARRIER" }; - IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" }; - IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" }; - IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" }; - IfcDoorTypeEnum.TURNSTILE = { type: 3, value: "TURNSTILE" }; - IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorTypeEnum = IfcDoorTypeEnum; - class IfcDoorTypeOperationEnum { - } - IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING = { type: 3, value: "DOUBLE_PANEL_DOUBLE_SWING" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING = { type: 3, value: "DOUBLE_PANEL_FOLDING" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL = { type: 3, value: "DOUBLE_PANEL_LIFTING_VERTICAL" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT" }; - IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING = { type: 3, value: "DOUBLE_PANEL_SLIDING" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL = { type: 3, value: "LIFTING_HORIZONTAL" }; - IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT = { type: 3, value: "LIFTING_VERTICAL_LEFT" }; - IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT = { type: 3, value: "LIFTING_VERTICAL_RIGHT" }; - IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL = { type: 3, value: "REVOLVING_HORIZONTAL" }; - IfcDoorTypeOperationEnum.REVOLVING_VERTICAL = { type: 3, value: "REVOLVING_VERTICAL" }; - IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" }; - IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" }; - IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" }; - IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" }; - IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" }; - IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" }; - IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" }; - IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum; - class IfcDuctFittingTypeEnum { - } - IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum; - class IfcDuctSegmentTypeEnum { - } - IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum; - class IfcDuctSilencerTypeEnum { - } - IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" }; - IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" }; - IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum; - class IfcEarthworksCutTypeEnum { - } - IfcEarthworksCutTypeEnum.BASE_EXCAVATION = { type: 3, value: "BASE_EXCAVATION" }; - IfcEarthworksCutTypeEnum.CUT = { type: 3, value: "CUT" }; - IfcEarthworksCutTypeEnum.DREDGING = { type: 3, value: "DREDGING" }; - IfcEarthworksCutTypeEnum.EXCAVATION = { type: 3, value: "EXCAVATION" }; - IfcEarthworksCutTypeEnum.OVEREXCAVATION = { type: 3, value: "OVEREXCAVATION" }; - IfcEarthworksCutTypeEnum.PAVEMENTMILLING = { type: 3, value: "PAVEMENTMILLING" }; - IfcEarthworksCutTypeEnum.STEPEXCAVATION = { type: 3, value: "STEPEXCAVATION" }; - IfcEarthworksCutTypeEnum.TOPSOILREMOVAL = { type: 3, value: "TOPSOILREMOVAL" }; - IfcEarthworksCutTypeEnum.TRENCH = { type: 3, value: "TRENCH" }; - IfcEarthworksCutTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEarthworksCutTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEarthworksCutTypeEnum = IfcEarthworksCutTypeEnum; - class IfcEarthworksFillTypeEnum { - } - IfcEarthworksFillTypeEnum.BACKFILL = { type: 3, value: "BACKFILL" }; - IfcEarthworksFillTypeEnum.COUNTERWEIGHT = { type: 3, value: "COUNTERWEIGHT" }; - IfcEarthworksFillTypeEnum.EMBANKMENT = { type: 3, value: "EMBANKMENT" }; - IfcEarthworksFillTypeEnum.SLOPEFILL = { type: 3, value: "SLOPEFILL" }; - IfcEarthworksFillTypeEnum.SUBGRADE = { type: 3, value: "SUBGRADE" }; - IfcEarthworksFillTypeEnum.SUBGRADEBED = { type: 3, value: "SUBGRADEBED" }; - IfcEarthworksFillTypeEnum.TRANSITIONSECTION = { type: 3, value: "TRANSITIONSECTION" }; - IfcEarthworksFillTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEarthworksFillTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEarthworksFillTypeEnum = IfcEarthworksFillTypeEnum; - class IfcElectricApplianceTypeEnum { - } - IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" }; - IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" }; - IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" }; - IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" }; - IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" }; - IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" }; - IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" }; - IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" }; - IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" }; - IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" }; - IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" }; - IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" }; - IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" }; - IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum; - class IfcElectricDistributionBoardTypeEnum { - } - IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" }; - IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" }; - IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" }; - IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" }; - IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum; - class IfcElectricFlowStorageDeviceTypeEnum { - } - IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR = { type: 3, value: "CAPACITOR" }; - IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR = { type: 3, value: "COMPENSATOR" }; - IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR = { type: 3, value: "INDUCTOR" }; - IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" }; - IfcElectricFlowStorageDeviceTypeEnum.RECHARGER = { type: 3, value: "RECHARGER" }; - IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" }; - IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum; - class IfcElectricFlowTreatmentDeviceTypeEnum { - } - IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER = { type: 3, value: "ELECTRONICFILTER" }; - IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricFlowTreatmentDeviceTypeEnum = IfcElectricFlowTreatmentDeviceTypeEnum; - class IfcElectricGeneratorTypeEnum { - } - IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" }; - IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" }; - IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" }; - IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum; - class IfcElectricMotorTypeEnum { - } - IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" }; - IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" }; - IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" }; - IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" }; - IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" }; - IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum; - class IfcElectricTimeControlTypeEnum { - } - IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" }; - IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" }; - IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum; - class IfcElementAssemblyTypeEnum { - } - IfcElementAssemblyTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" }; - IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" }; - IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" }; - IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" }; - IfcElementAssemblyTypeEnum.CROSS_BRACING = { type: 3, value: "CROSS_BRACING" }; - IfcElementAssemblyTypeEnum.DECK = { type: 3, value: "DECK" }; - IfcElementAssemblyTypeEnum.DILATATIONPANEL = { type: 3, value: "DILATATIONPANEL" }; - IfcElementAssemblyTypeEnum.ENTRANCEWORKS = { type: 3, value: "ENTRANCEWORKS" }; - IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" }; - IfcElementAssemblyTypeEnum.GRID = { type: 3, value: "GRID" }; - IfcElementAssemblyTypeEnum.MAST = { type: 3, value: "MAST" }; - IfcElementAssemblyTypeEnum.PIER = { type: 3, value: "PIER" }; - IfcElementAssemblyTypeEnum.PYLON = { type: 3, value: "PYLON" }; - IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" }; - IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" }; - IfcElementAssemblyTypeEnum.SHELTER = { type: 3, value: "SHELTER" }; - IfcElementAssemblyTypeEnum.SIGNALASSEMBLY = { type: 3, value: "SIGNALASSEMBLY" }; - IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" }; - IfcElementAssemblyTypeEnum.SUMPBUSTER = { type: 3, value: "SUMPBUSTER" }; - IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY = { type: 3, value: "SUPPORTINGASSEMBLY" }; - IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY = { type: 3, value: "SUSPENSIONASSEMBLY" }; - IfcElementAssemblyTypeEnum.TRACKPANEL = { type: 3, value: "TRACKPANEL" }; - IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY = { type: 3, value: "TRACTION_SWITCHING_ASSEMBLY" }; - IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE = { type: 3, value: "TRAFFIC_CALMING_DEVICE" }; - IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" }; - IfcElementAssemblyTypeEnum.TURNOUTPANEL = { type: 3, value: "TURNOUTPANEL" }; - IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum; - class IfcElementCompositionEnum { - } - IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" }; - IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" }; - IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" }; - IFC4X32.IfcElementCompositionEnum = IfcElementCompositionEnum; - class IfcEngineTypeEnum { - } - IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" }; - IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" }; - IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEngineTypeEnum = IfcEngineTypeEnum; - class IfcEvaporativeCoolerTypeEnum { - } - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" }; - IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" }; - IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum; - class IfcEvaporatorTypeEnum { - } - IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" }; - IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" }; - IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" }; - IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum; - class IfcEventTriggerTypeEnum { - } - IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" }; - IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" }; - IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" }; - IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" }; - IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum; - class IfcEventTypeEnum { - } - IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" }; - IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" }; - IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" }; - IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcEventTypeEnum = IfcEventTypeEnum; - class IfcExternalSpatialElementTypeEnum { - } - IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum; - class IfcFacilityPartCommonTypeEnum { - } - IfcFacilityPartCommonTypeEnum.ABOVEGROUND = { type: 3, value: "ABOVEGROUND" }; - IfcFacilityPartCommonTypeEnum.BELOWGROUND = { type: 3, value: "BELOWGROUND" }; - IfcFacilityPartCommonTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcFacilityPartCommonTypeEnum.LEVELCROSSING = { type: 3, value: "LEVELCROSSING" }; - IfcFacilityPartCommonTypeEnum.SEGMENT = { type: 3, value: "SEGMENT" }; - IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" }; - IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; - IfcFacilityPartCommonTypeEnum.TERMINAL = { type: 3, value: "TERMINAL" }; - IfcFacilityPartCommonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFacilityPartCommonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFacilityPartCommonTypeEnum = IfcFacilityPartCommonTypeEnum; - class IfcFacilityUsageEnum { - } - IfcFacilityUsageEnum.LATERAL = { type: 3, value: "LATERAL" }; - IfcFacilityUsageEnum.LONGITUDINAL = { type: 3, value: "LONGITUDINAL" }; - IfcFacilityUsageEnum.REGION = { type: 3, value: "REGION" }; - IfcFacilityUsageEnum.VERTICAL = { type: 3, value: "VERTICAL" }; - IfcFacilityUsageEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFacilityUsageEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFacilityUsageEnum = IfcFacilityUsageEnum; - class IfcFanTypeEnum { - } - IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" }; - IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" }; - IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" }; - IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" }; - IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" }; - IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" }; - IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFanTypeEnum = IfcFanTypeEnum; - class IfcFastenerTypeEnum { - } - IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" }; - IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" }; - IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" }; - IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFastenerTypeEnum = IfcFastenerTypeEnum; - class IfcFilterTypeEnum { - } - IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" }; - IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" }; - IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" }; - IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" }; - IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" }; - IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" }; - IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFilterTypeEnum = IfcFilterTypeEnum; - class IfcFireSuppressionTerminalTypeEnum { - } - IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" }; - IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" }; - IfcFireSuppressionTerminalTypeEnum.FIREMONITOR = { type: 3, value: "FIREMONITOR" }; - IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" }; - IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" }; - IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum; - class IfcFlowDirectionEnum { - } - IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" }; - IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" }; - IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" }; - IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum; - class IfcFlowInstrumentTypeEnum { - } - IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" }; - IfcFlowInstrumentTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; - IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" }; - IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" }; - IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" }; - IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" }; - IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER = { type: 3, value: "VOLTMETER" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" }; - IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" }; - IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum; - class IfcFlowMeterTypeEnum { - } - IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" }; - IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" }; - IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" }; - IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" }; - IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum; - class IfcFootingTypeEnum { - } - IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" }; - IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" }; - IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" }; - IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" }; - IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" }; - IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFootingTypeEnum = IfcFootingTypeEnum; - class IfcFurnitureTypeEnum { - } - IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" }; - IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" }; - IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" }; - IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" }; - IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" }; - IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" }; - IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" }; - IfcFurnitureTypeEnum.TECHNICALCABINET = { type: 3, value: "TECHNICALCABINET" }; - IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum; - class IfcGeographicElementTypeEnum { - } - IfcGeographicElementTypeEnum.SOIL_BORING_POINT = { type: 3, value: "SOIL_BORING_POINT" }; - IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" }; - IfcGeographicElementTypeEnum.VEGETATION = { type: 3, value: "VEGETATION" }; - IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum; - class IfcGeometricProjectionEnum { - } - IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" }; - IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" }; - IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" }; - IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" }; - IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" }; - IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" }; - IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" }; - IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum; - class IfcGeotechnicalStratumTypeEnum { - } - IfcGeotechnicalStratumTypeEnum.SOLID = { type: 3, value: "SOLID" }; - IfcGeotechnicalStratumTypeEnum.VOID = { type: 3, value: "VOID" }; - IfcGeotechnicalStratumTypeEnum.WATER = { type: 3, value: "WATER" }; - IfcGeotechnicalStratumTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGeotechnicalStratumTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGeotechnicalStratumTypeEnum = IfcGeotechnicalStratumTypeEnum; - class IfcGlobalOrLocalEnum { - } - IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" }; - IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" }; - IFC4X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum; - class IfcGridTypeEnum { - } - IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" }; - IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" }; - IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" }; - IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" }; - IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcGridTypeEnum = IfcGridTypeEnum; - class IfcHeatExchangerTypeEnum { - } - IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" }; - IfcHeatExchangerTypeEnum.TURNOUTHEATING = { type: 3, value: "TURNOUTHEATING" }; - IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum; - class IfcHumidifierTypeEnum { - } - IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" }; - IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" }; - IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" }; - IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" }; - IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" }; - IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" }; - IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" }; - IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" }; - IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" }; - IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" }; - IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" }; - IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" }; - IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" }; - IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum; - class IfcImpactProtectionDeviceTypeEnum { - } - IfcImpactProtectionDeviceTypeEnum.BUMPER = { type: 3, value: "BUMPER" }; - IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION = { type: 3, value: "CRASHCUSHION" }; - IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM = { type: 3, value: "DAMPINGSYSTEM" }; - IfcImpactProtectionDeviceTypeEnum.FENDER = { type: 3, value: "FENDER" }; - IfcImpactProtectionDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcImpactProtectionDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcImpactProtectionDeviceTypeEnum = IfcImpactProtectionDeviceTypeEnum; - class IfcInterceptorTypeEnum { - } - IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" }; - IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" }; - IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" }; - IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" }; - IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum; - class IfcInternalOrExternalEnum { - } - IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" }; - IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" }; - IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" }; - IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum; - class IfcInventoryTypeEnum { - } - IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" }; - IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" }; - IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" }; - IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum; - class IfcJunctionBoxTypeEnum { - } - IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" }; - IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" }; - IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum; - class IfcKnotType { - } - IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" }; - IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" }; - IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" }; - IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcKnotType = IfcKnotType; - class IfcLaborResourceTypeEnum { - } - IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" }; - IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" }; - IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" }; - IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" }; - IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" }; - IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" }; - IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" }; - IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" }; - IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" }; - IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" }; - IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" }; - IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" }; - IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" }; - IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" }; - IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" }; - IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" }; - IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" }; - IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" }; - IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum; - class IfcLampTypeEnum { - } - IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" }; - IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLampTypeEnum.LED = { type: 3, value: "LED" }; - IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLampTypeEnum.OLED = { type: 3, value: "OLED" }; - IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLampTypeEnum = IfcLampTypeEnum; - class IfcLayerSetDirectionEnum { - } - IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" }; - IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" }; - IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" }; - IFC4X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum; - class IfcLightDistributionCurveEnum { - } - IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" }; - IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" }; - IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" }; - IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum; - class IfcLightEmissionSourceEnum { - } - IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" }; - IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" }; - IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" }; - IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" }; - IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" }; - IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" }; - IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" }; - IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" }; - IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum; - class IfcLightFixtureTypeEnum { - } - IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" }; - IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" }; - IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" }; - IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum; - class IfcLiquidTerminalTypeEnum { - } - IfcLiquidTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" }; - IfcLiquidTerminalTypeEnum.LOADINGARM = { type: 3, value: "LOADINGARM" }; - IfcLiquidTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLiquidTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLiquidTerminalTypeEnum = IfcLiquidTerminalTypeEnum; - class IfcLoadGroupTypeEnum { - } - IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" }; - IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" }; - IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" }; - IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum; - class IfcLogicalOperatorEnum { - } - IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" }; - IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" }; - IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" }; - IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" }; - IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" }; - IFC4X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum; - class IfcMarineFacilityTypeEnum { - } - IfcMarineFacilityTypeEnum.BARRIERBEACH = { type: 3, value: "BARRIERBEACH" }; - IfcMarineFacilityTypeEnum.BREAKWATER = { type: 3, value: "BREAKWATER" }; - IfcMarineFacilityTypeEnum.CANAL = { type: 3, value: "CANAL" }; - IfcMarineFacilityTypeEnum.DRYDOCK = { type: 3, value: "DRYDOCK" }; - IfcMarineFacilityTypeEnum.FLOATINGDOCK = { type: 3, value: "FLOATINGDOCK" }; - IfcMarineFacilityTypeEnum.HYDROLIFT = { type: 3, value: "HYDROLIFT" }; - IfcMarineFacilityTypeEnum.JETTY = { type: 3, value: "JETTY" }; - IfcMarineFacilityTypeEnum.LAUNCHRECOVERY = { type: 3, value: "LAUNCHRECOVERY" }; - IfcMarineFacilityTypeEnum.MARINEDEFENCE = { type: 3, value: "MARINEDEFENCE" }; - IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL = { type: 3, value: "NAVIGATIONALCHANNEL" }; - IfcMarineFacilityTypeEnum.PORT = { type: 3, value: "PORT" }; - IfcMarineFacilityTypeEnum.QUAY = { type: 3, value: "QUAY" }; - IfcMarineFacilityTypeEnum.REVETMENT = { type: 3, value: "REVETMENT" }; - IfcMarineFacilityTypeEnum.SHIPLIFT = { type: 3, value: "SHIPLIFT" }; - IfcMarineFacilityTypeEnum.SHIPLOCK = { type: 3, value: "SHIPLOCK" }; - IfcMarineFacilityTypeEnum.SHIPYARD = { type: 3, value: "SHIPYARD" }; - IfcMarineFacilityTypeEnum.SLIPWAY = { type: 3, value: "SLIPWAY" }; - IfcMarineFacilityTypeEnum.WATERWAY = { type: 3, value: "WATERWAY" }; - IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT = { type: 3, value: "WATERWAYSHIPLIFT" }; - IfcMarineFacilityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMarineFacilityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMarineFacilityTypeEnum = IfcMarineFacilityTypeEnum; - class IfcMarinePartTypeEnum { - } - IfcMarinePartTypeEnum.ABOVEWATERLINE = { type: 3, value: "ABOVEWATERLINE" }; - IfcMarinePartTypeEnum.ANCHORAGE = { type: 3, value: "ANCHORAGE" }; - IfcMarinePartTypeEnum.APPROACHCHANNEL = { type: 3, value: "APPROACHCHANNEL" }; - IfcMarinePartTypeEnum.BELOWWATERLINE = { type: 3, value: "BELOWWATERLINE" }; - IfcMarinePartTypeEnum.BERTHINGSTRUCTURE = { type: 3, value: "BERTHINGSTRUCTURE" }; - IfcMarinePartTypeEnum.CHAMBER = { type: 3, value: "CHAMBER" }; - IfcMarinePartTypeEnum.CILL_LEVEL = { type: 3, value: "CILL_LEVEL" }; - IfcMarinePartTypeEnum.COPELEVEL = { type: 3, value: "COPELEVEL" }; - IfcMarinePartTypeEnum.CORE = { type: 3, value: "CORE" }; - IfcMarinePartTypeEnum.CREST = { type: 3, value: "CREST" }; - IfcMarinePartTypeEnum.GATEHEAD = { type: 3, value: "GATEHEAD" }; - IfcMarinePartTypeEnum.GUDINGSTRUCTURE = { type: 3, value: "GUDINGSTRUCTURE" }; - IfcMarinePartTypeEnum.HIGHWATERLINE = { type: 3, value: "HIGHWATERLINE" }; - IfcMarinePartTypeEnum.LANDFIELD = { type: 3, value: "LANDFIELD" }; - IfcMarinePartTypeEnum.LEEWARDSIDE = { type: 3, value: "LEEWARDSIDE" }; - IfcMarinePartTypeEnum.LOWWATERLINE = { type: 3, value: "LOWWATERLINE" }; - IfcMarinePartTypeEnum.MANUFACTURING = { type: 3, value: "MANUFACTURING" }; - IfcMarinePartTypeEnum.NAVIGATIONALAREA = { type: 3, value: "NAVIGATIONALAREA" }; - IfcMarinePartTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" }; - IfcMarinePartTypeEnum.SHIPTRANSFER = { type: 3, value: "SHIPTRANSFER" }; - IfcMarinePartTypeEnum.STORAGEAREA = { type: 3, value: "STORAGEAREA" }; - IfcMarinePartTypeEnum.VEHICLESERVICING = { type: 3, value: "VEHICLESERVICING" }; - IfcMarinePartTypeEnum.WATERFIELD = { type: 3, value: "WATERFIELD" }; - IfcMarinePartTypeEnum.WEATHERSIDE = { type: 3, value: "WEATHERSIDE" }; - IfcMarinePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMarinePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMarinePartTypeEnum = IfcMarinePartTypeEnum; - class IfcMechanicalFastenerTypeEnum { - } - IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" }; - IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" }; - IfcMechanicalFastenerTypeEnum.CHAIN = { type: 3, value: "CHAIN" }; - IfcMechanicalFastenerTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" }; - IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" }; - IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" }; - IfcMechanicalFastenerTypeEnum.RAILFASTENING = { type: 3, value: "RAILFASTENING" }; - IfcMechanicalFastenerTypeEnum.RAILJOINT = { type: 3, value: "RAILJOINT" }; - IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" }; - IfcMechanicalFastenerTypeEnum.ROPE = { type: 3, value: "ROPE" }; - IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" }; - IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" }; - IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" }; - IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum; - class IfcMedicalDeviceTypeEnum { - } - IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" }; - IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" }; - IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" }; - IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" }; - IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" }; - IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum; - class IfcMemberTypeEnum { - } - IfcMemberTypeEnum.ARCH_SEGMENT = { type: 3, value: "ARCH_SEGMENT" }; - IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" }; - IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" }; - IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" }; - IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" }; - IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" }; - IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" }; - IfcMemberTypeEnum.POST = { type: 3, value: "POST" }; - IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" }; - IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" }; - IfcMemberTypeEnum.STAY_CABLE = { type: 3, value: "STAY_CABLE" }; - IfcMemberTypeEnum.STIFFENING_RIB = { type: 3, value: "STIFFENING_RIB" }; - IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" }; - IfcMemberTypeEnum.STRUCTURALCABLE = { type: 3, value: "STRUCTURALCABLE" }; - IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" }; - IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcMemberTypeEnum.SUSPENDER = { type: 3, value: "SUSPENDER" }; - IfcMemberTypeEnum.SUSPENSION_CABLE = { type: 3, value: "SUSPENSION_CABLE" }; - IfcMemberTypeEnum.TIEBAR = { type: 3, value: "TIEBAR" }; - IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMemberTypeEnum = IfcMemberTypeEnum; - class IfcMobileTelecommunicationsApplianceTypeEnum { - } - IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT = { type: 3, value: "ACCESSPOINT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT = { type: 3, value: "BASEBANDUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION = { type: 3, value: "BASETRANSCEIVERSTATION" }; - IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B = { type: 3, value: "E_UTRAN_NODE_B" }; - IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE = { type: 3, value: "GATEWAY_GPRS_SUPPORT_NODE" }; - IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT = { type: 3, value: "MASTERUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER = { type: 3, value: "MOBILESWITCHINGCENTER" }; - IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER = { type: 3, value: "MSCSERVER" }; - IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT = { type: 3, value: "PACKETCONTROLUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT = { type: 3, value: "REMOTERADIOUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT = { type: 3, value: "REMOTEUNIT" }; - IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE = { type: 3, value: "SERVICE_GPRS_SUPPORT_NODE" }; - IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER = { type: 3, value: "SUBSCRIBERSERVER" }; - IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMobileTelecommunicationsApplianceTypeEnum = IfcMobileTelecommunicationsApplianceTypeEnum; - class IfcMooringDeviceTypeEnum { - } - IfcMooringDeviceTypeEnum.BOLLARD = { type: 3, value: "BOLLARD" }; - IfcMooringDeviceTypeEnum.LINETENSIONER = { type: 3, value: "LINETENSIONER" }; - IfcMooringDeviceTypeEnum.MAGNETICDEVICE = { type: 3, value: "MAGNETICDEVICE" }; - IfcMooringDeviceTypeEnum.MOORINGHOOKS = { type: 3, value: "MOORINGHOOKS" }; - IfcMooringDeviceTypeEnum.VACUUMDEVICE = { type: 3, value: "VACUUMDEVICE" }; - IfcMooringDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMooringDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMooringDeviceTypeEnum = IfcMooringDeviceTypeEnum; - class IfcMotorConnectionTypeEnum { - } - IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" }; - IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" }; - IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" }; - IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum; - class IfcNavigationElementTypeEnum { - } - IfcNavigationElementTypeEnum.BEACON = { type: 3, value: "BEACON" }; - IfcNavigationElementTypeEnum.BUOY = { type: 3, value: "BUOY" }; - IfcNavigationElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcNavigationElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcNavigationElementTypeEnum = IfcNavigationElementTypeEnum; - class IfcObjectTypeEnum { - } - IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" }; - IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" }; - IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" }; - IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" }; - IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" }; - IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" }; - IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" }; - IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcObjectTypeEnum = IfcObjectTypeEnum; - class IfcObjectiveEnum { - } - IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" }; - IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" }; - IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" }; - IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" }; - IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" }; - IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" }; - IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" }; - IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" }; - IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" }; - IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcObjectiveEnum = IfcObjectiveEnum; - class IfcOccupantTypeEnum { - } - IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" }; - IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" }; - IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" }; - IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" }; - IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" }; - IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" }; - IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" }; - IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum; - class IfcOpeningElementTypeEnum { - } - IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" }; - IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" }; - IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum; - class IfcOutletTypeEnum { - } - IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" }; - IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" }; - IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" }; - IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" }; - IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" }; - IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcOutletTypeEnum = IfcOutletTypeEnum; - class IfcPavementTypeEnum { - } - IfcPavementTypeEnum.FLEXIBLE = { type: 3, value: "FLEXIBLE" }; - IfcPavementTypeEnum.RIGID = { type: 3, value: "RIGID" }; - IfcPavementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPavementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPavementTypeEnum = IfcPavementTypeEnum; - class IfcPerformanceHistoryTypeEnum { - } - IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum; - class IfcPermeableCoveringOperationEnum { - } - IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" }; - IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" }; - IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" }; - IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum; - class IfcPermitTypeEnum { - } - IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" }; - IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" }; - IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPermitTypeEnum = IfcPermitTypeEnum; - class IfcPhysicalOrVirtualEnum { - } - IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" }; - IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum; - class IfcPileConstructionEnum { - } - IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" }; - IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" }; - IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" }; - IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" }; - IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPileConstructionEnum = IfcPileConstructionEnum; - class IfcPileTypeEnum { - } - IfcPileTypeEnum.BORED = { type: 3, value: "BORED" }; - IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" }; - IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" }; - IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" }; - IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" }; - IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPileTypeEnum = IfcPileTypeEnum; - class IfcPipeFittingTypeEnum { - } - IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" }; - IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" }; - IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" }; - IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" }; - IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" }; - IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" }; - IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" }; - IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum; - class IfcPipeSegmentTypeEnum { - } - IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" }; - IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" }; - IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" }; - IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" }; - IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" }; - IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum; - class IfcPlateTypeEnum { - } - IfcPlateTypeEnum.BASE_PLATE = { type: 3, value: "BASE_PLATE" }; - IfcPlateTypeEnum.COVER_PLATE = { type: 3, value: "COVER_PLATE" }; - IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" }; - IfcPlateTypeEnum.FLANGE_PLATE = { type: 3, value: "FLANGE_PLATE" }; - IfcPlateTypeEnum.GUSSET_PLATE = { type: 3, value: "GUSSET_PLATE" }; - IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" }; - IfcPlateTypeEnum.SPLICE_PLATE = { type: 3, value: "SPLICE_PLATE" }; - IfcPlateTypeEnum.STIFFENER_PLATE = { type: 3, value: "STIFFENER_PLATE" }; - IfcPlateTypeEnum.WEB_PLATE = { type: 3, value: "WEB_PLATE" }; - IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPlateTypeEnum = IfcPlateTypeEnum; - class IfcPreferredSurfaceCurveRepresentation { - } - IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" }; - IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" }; - IFC4X32.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation; - class IfcProcedureTypeEnum { - } - IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" }; - IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" }; - IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" }; - IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" }; - IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum; - class IfcProfileTypeEnum { - } - IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" }; - IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" }; - IFC4X32.IfcProfileTypeEnum = IfcProfileTypeEnum; - class IfcProjectOrderTypeEnum { - } - IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" }; - IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" }; - IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" }; - IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" }; - IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" }; - IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum; - class IfcProjectedOrTrueLengthEnum { - } - IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" }; - IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" }; - IFC4X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum; - class IfcProjectionElementTypeEnum { - } - IfcProjectionElementTypeEnum.BLISTER = { type: 3, value: "BLISTER" }; - IfcProjectionElementTypeEnum.DEVIATOR = { type: 3, value: "DEVIATOR" }; - IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum; - class IfcPropertySetTemplateTypeEnum { - } - IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN = { type: 3, value: "PSET_MATERIALDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN = { type: 3, value: "PSET_PROFILEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" }; - IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" }; - IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum; - class IfcProtectiveDeviceTrippingUnitTypeEnum { - } - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum; - class IfcProtectiveDeviceTypeEnum { - } - IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE = { type: 3, value: "ANTI_ARCING_DEVICE" }; - IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" }; - IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" }; - IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" }; - IfcProtectiveDeviceTypeEnum.SPARKGAP = { type: 3, value: "SPARKGAP" }; - IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" }; - IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER = { type: 3, value: "VOLTAGELIMITER" }; - IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum; - class IfcPumpTypeEnum { - } - IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" }; - IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" }; - IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" }; - IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" }; - IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" }; - IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" }; - IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" }; - IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcPumpTypeEnum = IfcPumpTypeEnum; - class IfcRailTypeEnum { - } - IfcRailTypeEnum.BLADE = { type: 3, value: "BLADE" }; - IfcRailTypeEnum.CHECKRAIL = { type: 3, value: "CHECKRAIL" }; - IfcRailTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailTypeEnum.RACKRAIL = { type: 3, value: "RACKRAIL" }; - IfcRailTypeEnum.RAIL = { type: 3, value: "RAIL" }; - IfcRailTypeEnum.STOCKRAIL = { type: 3, value: "STOCKRAIL" }; - IfcRailTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailTypeEnum = IfcRailTypeEnum; - class IfcRailingTypeEnum { - } - IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" }; - IfcRailingTypeEnum.FENCE = { type: 3, value: "FENCE" }; - IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" }; - IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" }; - IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailingTypeEnum = IfcRailingTypeEnum; - class IfcRailwayPartTypeEnum { - } - IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE = { type: 3, value: "DILATATIONSUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.LINESIDESTRUCTURE = { type: 3, value: "LINESIDESTRUCTURE" }; - IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART = { type: 3, value: "LINESIDESTRUCTUREPART" }; - IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE = { type: 3, value: "PLAINTRACKSUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.TRACKSTRUCTURE = { type: 3, value: "TRACKSTRUCTURE" }; - IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART = { type: 3, value: "TRACKSTRUCTUREPART" }; - IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE = { type: 3, value: "TURNOUTSUPERSTRUCTURE" }; - IfcRailwayPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailwayPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailwayPartTypeEnum = IfcRailwayPartTypeEnum; - class IfcRailwayTypeEnum { - } - IfcRailwayTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRailwayTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRailwayTypeEnum = IfcRailwayTypeEnum; - class IfcRampFlightTypeEnum { - } - IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum; - class IfcRampTypeEnum { - } - IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" }; - IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" }; - IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" }; - IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" }; - IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRampTypeEnum = IfcRampTypeEnum; - class IfcRecurrenceTypeEnum { - } - IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" }; - IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" }; - IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" }; - IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" }; - IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" }; - IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" }; - IFC4X32.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum; - class IfcReferentTypeEnum { - } - IfcReferentTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; - IfcReferentTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcReferentTypeEnum.KILOPOINT = { type: 3, value: "KILOPOINT" }; - IfcReferentTypeEnum.LANDMARK = { type: 3, value: "LANDMARK" }; - IfcReferentTypeEnum.MILEPOINT = { type: 3, value: "MILEPOINT" }; - IfcReferentTypeEnum.POSITION = { type: 3, value: "POSITION" }; - IfcReferentTypeEnum.REFERENCEMARKER = { type: 3, value: "REFERENCEMARKER" }; - IfcReferentTypeEnum.STATION = { type: 3, value: "STATION" }; - IfcReferentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReferentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReferentTypeEnum = IfcReferentTypeEnum; - class IfcReflectanceMethodEnum { - } - IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" }; - IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" }; - IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" }; - IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" }; - IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" }; - IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" }; - IfcReflectanceMethodEnum.PHYSICAL = { type: 3, value: "PHYSICAL" }; - IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" }; - IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum; - class IfcReinforcedSoilTypeEnum { - } - IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED = { type: 3, value: "DYNAMICALLYCOMPACTED" }; - IfcReinforcedSoilTypeEnum.GROUTED = { type: 3, value: "GROUTED" }; - IfcReinforcedSoilTypeEnum.REPLACED = { type: 3, value: "REPLACED" }; - IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED = { type: 3, value: "ROLLERCOMPACTED" }; - IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED = { type: 3, value: "SURCHARGEPRELOADED" }; - IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED = { type: 3, value: "VERTICALLYDRAINED" }; - IfcReinforcedSoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcedSoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcedSoilTypeEnum = IfcReinforcedSoilTypeEnum; - class IfcReinforcingBarRoleEnum { - } - IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum; - class IfcReinforcingBarSurfaceEnum { - } - IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" }; - IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" }; - IFC4X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum; - class IfcReinforcingBarTypeEnum { - } - IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" }; - IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" }; - IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" }; - IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" }; - IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" }; - IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcReinforcingBarTypeEnum.SPACEBAR = { type: 3, value: "SPACEBAR" }; - IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" }; - IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum; - class IfcReinforcingMeshTypeEnum { - } - IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum; - class IfcRoadPartTypeEnum { - } - IfcRoadPartTypeEnum.BICYCLECROSSING = { type: 3, value: "BICYCLECROSSING" }; - IfcRoadPartTypeEnum.BUS_STOP = { type: 3, value: "BUS_STOP" }; - IfcRoadPartTypeEnum.CARRIAGEWAY = { type: 3, value: "CARRIAGEWAY" }; - IfcRoadPartTypeEnum.CENTRALISLAND = { type: 3, value: "CENTRALISLAND" }; - IfcRoadPartTypeEnum.CENTRALRESERVE = { type: 3, value: "CENTRALRESERVE" }; - IfcRoadPartTypeEnum.HARDSHOULDER = { type: 3, value: "HARDSHOULDER" }; - IfcRoadPartTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" }; - IfcRoadPartTypeEnum.LAYBY = { type: 3, value: "LAYBY" }; - IfcRoadPartTypeEnum.PARKINGBAY = { type: 3, value: "PARKINGBAY" }; - IfcRoadPartTypeEnum.PASSINGBAY = { type: 3, value: "PASSINGBAY" }; - IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING = { type: 3, value: "PEDESTRIAN_CROSSING" }; - IfcRoadPartTypeEnum.RAILWAYCROSSING = { type: 3, value: "RAILWAYCROSSING" }; - IfcRoadPartTypeEnum.REFUGEISLAND = { type: 3, value: "REFUGEISLAND" }; - IfcRoadPartTypeEnum.ROADSEGMENT = { type: 3, value: "ROADSEGMENT" }; - IfcRoadPartTypeEnum.ROADSIDE = { type: 3, value: "ROADSIDE" }; - IfcRoadPartTypeEnum.ROADSIDEPART = { type: 3, value: "ROADSIDEPART" }; - IfcRoadPartTypeEnum.ROADWAYPLATEAU = { type: 3, value: "ROADWAYPLATEAU" }; - IfcRoadPartTypeEnum.ROUNDABOUT = { type: 3, value: "ROUNDABOUT" }; - IfcRoadPartTypeEnum.SHOULDER = { type: 3, value: "SHOULDER" }; - IfcRoadPartTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; - IfcRoadPartTypeEnum.SOFTSHOULDER = { type: 3, value: "SOFTSHOULDER" }; - IfcRoadPartTypeEnum.TOLLPLAZA = { type: 3, value: "TOLLPLAZA" }; - IfcRoadPartTypeEnum.TRAFFICISLAND = { type: 3, value: "TRAFFICISLAND" }; - IfcRoadPartTypeEnum.TRAFFICLANE = { type: 3, value: "TRAFFICLANE" }; - IfcRoadPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoadPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRoadPartTypeEnum = IfcRoadPartTypeEnum; - class IfcRoadTypeEnum { - } - IfcRoadTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRoadTypeEnum = IfcRoadTypeEnum; - class IfcRoleEnum { - } - IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" }; - IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" }; - IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" }; - IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" }; - IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" }; - IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" }; - IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" }; - IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" }; - IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" }; - IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" }; - IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" }; - IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" }; - IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" }; - IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" }; - IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" }; - IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" }; - IfcRoleEnum.OWNER = { type: 3, value: "OWNER" }; - IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" }; - IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" }; - IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" }; - IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" }; - IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" }; - IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcRoleEnum = IfcRoleEnum; - class IfcRoofTypeEnum { - } - IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" }; - IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" }; - IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" }; - IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" }; - IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" }; - IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" }; - IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" }; - IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" }; - IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" }; - IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" }; - IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" }; - IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" }; - IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcRoofTypeEnum = IfcRoofTypeEnum; - class IfcSIPrefix { - } - IfcSIPrefix.ATTO = { type: 3, value: "ATTO" }; - IfcSIPrefix.CENTI = { type: 3, value: "CENTI" }; - IfcSIPrefix.DECA = { type: 3, value: "DECA" }; - IfcSIPrefix.DECI = { type: 3, value: "DECI" }; - IfcSIPrefix.EXA = { type: 3, value: "EXA" }; - IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" }; - IfcSIPrefix.GIGA = { type: 3, value: "GIGA" }; - IfcSIPrefix.HECTO = { type: 3, value: "HECTO" }; - IfcSIPrefix.KILO = { type: 3, value: "KILO" }; - IfcSIPrefix.MEGA = { type: 3, value: "MEGA" }; - IfcSIPrefix.MICRO = { type: 3, value: "MICRO" }; - IfcSIPrefix.MILLI = { type: 3, value: "MILLI" }; - IfcSIPrefix.NANO = { type: 3, value: "NANO" }; - IfcSIPrefix.PETA = { type: 3, value: "PETA" }; - IfcSIPrefix.PICO = { type: 3, value: "PICO" }; - IfcSIPrefix.TERA = { type: 3, value: "TERA" }; - IFC4X32.IfcSIPrefix = IfcSIPrefix; - class IfcSIUnitName { - } - IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" }; - IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" }; - IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" }; - IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" }; - IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" }; - IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" }; - IfcSIUnitName.FARAD = { type: 3, value: "FARAD" }; - IfcSIUnitName.GRAM = { type: 3, value: "GRAM" }; - IfcSIUnitName.GRAY = { type: 3, value: "GRAY" }; - IfcSIUnitName.HENRY = { type: 3, value: "HENRY" }; - IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" }; - IfcSIUnitName.JOULE = { type: 3, value: "JOULE" }; - IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" }; - IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" }; - IfcSIUnitName.LUX = { type: 3, value: "LUX" }; - IfcSIUnitName.METRE = { type: 3, value: "METRE" }; - IfcSIUnitName.MOLE = { type: 3, value: "MOLE" }; - IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" }; - IfcSIUnitName.OHM = { type: 3, value: "OHM" }; - IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" }; - IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" }; - IfcSIUnitName.SECOND = { type: 3, value: "SECOND" }; - IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" }; - IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" }; - IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" }; - IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" }; - IfcSIUnitName.TESLA = { type: 3, value: "TESLA" }; - IfcSIUnitName.VOLT = { type: 3, value: "VOLT" }; - IfcSIUnitName.WATT = { type: 3, value: "WATT" }; - IfcSIUnitName.WEBER = { type: 3, value: "WEBER" }; - IFC4X32.IfcSIUnitName = IfcSIUnitName; - class IfcSanitaryTerminalTypeEnum { - } - IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" }; - IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" }; - IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" }; - IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" }; - IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" }; - IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" }; - IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" }; - IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" }; - IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" }; - IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" }; - IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum; - class IfcSectionTypeEnum { - } - IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" }; - IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" }; - IFC4X32.IfcSectionTypeEnum = IfcSectionTypeEnum; - class IfcSensorTypeEnum { - } - IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" }; - IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" }; - IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" }; - IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" }; - IfcSensorTypeEnum.EARTHQUAKESENSOR = { type: 3, value: "EARTHQUAKESENSOR" }; - IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" }; - IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" }; - IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR = { type: 3, value: "FOREIGNOBJECTDETECTIONSENSOR" }; - IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" }; - IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" }; - IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" }; - IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" }; - IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" }; - IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" }; - IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" }; - IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" }; - IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" }; - IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" }; - IfcSensorTypeEnum.OBSTACLESENSOR = { type: 3, value: "OBSTACLESENSOR" }; - IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" }; - IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" }; - IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" }; - IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" }; - IfcSensorTypeEnum.RAINSENSOR = { type: 3, value: "RAINSENSOR" }; - IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" }; - IfcSensorTypeEnum.SNOWDEPTHSENSOR = { type: 3, value: "SNOWDEPTHSENSOR" }; - IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" }; - IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" }; - IfcSensorTypeEnum.TRAINSENSOR = { type: 3, value: "TRAINSENSOR" }; - IfcSensorTypeEnum.TURNOUTCLOSURESENSOR = { type: 3, value: "TURNOUTCLOSURESENSOR" }; - IfcSensorTypeEnum.WHEELSENSOR = { type: 3, value: "WHEELSENSOR" }; - IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" }; - IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSensorTypeEnum = IfcSensorTypeEnum; - class IfcSequenceEnum { - } - IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" }; - IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" }; - IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" }; - IfcSequenceEnum.START_START = { type: 3, value: "START_START" }; - IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSequenceEnum = IfcSequenceEnum; - class IfcShadingDeviceTypeEnum { - } - IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" }; - IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" }; - IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" }; - IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum; - class IfcSignTypeEnum { - } - IfcSignTypeEnum.MARKER = { type: 3, value: "MARKER" }; - IfcSignTypeEnum.MIRROR = { type: 3, value: "MIRROR" }; - IfcSignTypeEnum.PICTORAL = { type: 3, value: "PICTORAL" }; - IfcSignTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSignTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSignTypeEnum = IfcSignTypeEnum; - class IfcSignalTypeEnum { - } - IfcSignalTypeEnum.AUDIO = { type: 3, value: "AUDIO" }; - IfcSignalTypeEnum.MIXED = { type: 3, value: "MIXED" }; - IfcSignalTypeEnum.VISUAL = { type: 3, value: "VISUAL" }; - IfcSignalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSignalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSignalTypeEnum = IfcSignalTypeEnum; - class IfcSimplePropertyTemplateTypeEnum { - } - IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" }; - IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" }; - IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" }; - IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" }; - IfcSimplePropertyTemplateTypeEnum.Q_NUMBER = { type: 3, value: "Q_NUMBER" }; - IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" }; - IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" }; - IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" }; - IFC4X32.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum; - class IfcSlabTypeEnum { - } - IfcSlabTypeEnum.APPROACH_SLAB = { type: 3, value: "APPROACH_SLAB" }; - IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" }; - IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" }; - IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" }; - IfcSlabTypeEnum.PAVING = { type: 3, value: "PAVING" }; - IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" }; - IfcSlabTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" }; - IfcSlabTypeEnum.TRACKSLAB = { type: 3, value: "TRACKSLAB" }; - IfcSlabTypeEnum.WEARING = { type: 3, value: "WEARING" }; - IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSlabTypeEnum = IfcSlabTypeEnum; - class IfcSolarDeviceTypeEnum { - } - IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" }; - IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" }; - IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum; - class IfcSpaceHeaterTypeEnum { - } - IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" }; - IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" }; - IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum; - class IfcSpaceTypeEnum { - } - IfcSpaceTypeEnum.BERTH = { type: 3, value: "BERTH" }; - IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" }; - IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" }; - IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" }; - IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" }; - IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" }; - IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum; - class IfcSpatialZoneTypeEnum { - } - IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" }; - IfcSpatialZoneTypeEnum.INTERFERENCE = { type: 3, value: "INTERFERENCE" }; - IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" }; - IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" }; - IfcSpatialZoneTypeEnum.RESERVATION = { type: 3, value: "RESERVATION" }; - IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" }; - IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" }; - IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" }; - IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" }; - IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum; - class IfcStackTerminalTypeEnum { - } - IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" }; - IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" }; - IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" }; - IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum; - class IfcStairFlightTypeEnum { - } - IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" }; - IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" }; - IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" }; - IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" }; - IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" }; - IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum; - class IfcStairTypeEnum { - } - IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" }; - IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" }; - IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" }; - IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" }; - IfcStairTypeEnum.LADDER = { type: 3, value: "LADDER" }; - IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" }; - IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" }; - IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" }; - IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" }; - IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStairTypeEnum = IfcStairTypeEnum; - class IfcStateEnum { - } - IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" }; - IfcStateEnum.READONLY = { type: 3, value: "READONLY" }; - IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" }; - IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" }; - IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" }; - IFC4X32.IfcStateEnum = IfcStateEnum; - class IfcStructuralCurveActivityTypeEnum { - } - IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" }; - IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" }; - IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" }; - IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" }; - IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum; - class IfcStructuralCurveMemberTypeEnum { - } - IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" }; - IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" }; - IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum; - class IfcStructuralSurfaceActivityTypeEnum { - } - IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" }; - IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" }; - IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" }; - IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum; - class IfcStructuralSurfaceMemberTypeEnum { - } - IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" }; - IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" }; - IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum; - class IfcSubContractResourceTypeEnum { - } - IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" }; - IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" }; - IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum; - class IfcSurfaceFeatureTypeEnum { - } - IfcSurfaceFeatureTypeEnum.DEFECT = { type: 3, value: "DEFECT" }; - IfcSurfaceFeatureTypeEnum.HATCHMARKING = { type: 3, value: "HATCHMARKING" }; - IfcSurfaceFeatureTypeEnum.LINEMARKING = { type: 3, value: "LINEMARKING" }; - IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" }; - IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING = { type: 3, value: "NONSKIDSURFACING" }; - IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING = { type: 3, value: "PAVEMENTSURFACEMARKING" }; - IfcSurfaceFeatureTypeEnum.RUMBLESTRIP = { type: 3, value: "RUMBLESTRIP" }; - IfcSurfaceFeatureTypeEnum.SYMBOLMARKING = { type: 3, value: "SYMBOLMARKING" }; - IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" }; - IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP = { type: 3, value: "TRANSVERSERUMBLESTRIP" }; - IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" }; - IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum; - class IfcSurfaceSide { - } - IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" }; - IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" }; - IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" }; - IFC4X32.IfcSurfaceSide = IfcSurfaceSide; - class IfcSwitchingDeviceTypeEnum { - } - IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" }; - IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" }; - IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" }; - IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" }; - IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" }; - IfcSwitchingDeviceTypeEnum.RELAY = { type: 3, value: "RELAY" }; - IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" }; - IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" }; - IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT = { type: 3, value: "START_AND_STOP_EQUIPMENT" }; - IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" }; - IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" }; - IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum; - class IfcSystemFurnitureElementTypeEnum { - } - IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" }; - IfcSystemFurnitureElementTypeEnum.SUBRACK = { type: 3, value: "SUBRACK" }; - IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" }; - IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum; - class IfcTankTypeEnum { - } - IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" }; - IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" }; - IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" }; - IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" }; - IfcTankTypeEnum.OILRETENTIONTRAY = { type: 3, value: "OILRETENTIONTRAY" }; - IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" }; - IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" }; - IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" }; - IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTankTypeEnum = IfcTankTypeEnum; - class IfcTaskDurationEnum { - } - IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" }; - IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" }; - IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTaskDurationEnum = IfcTaskDurationEnum; - class IfcTaskTypeEnum { - } - IfcTaskTypeEnum.ADJUSTMENT = { type: 3, value: "ADJUSTMENT" }; - IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" }; - IfcTaskTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" }; - IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" }; - IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" }; - IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" }; - IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" }; - IfcTaskTypeEnum.EMERGENCY = { type: 3, value: "EMERGENCY" }; - IfcTaskTypeEnum.INSPECTION = { type: 3, value: "INSPECTION" }; - IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" }; - IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" }; - IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" }; - IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" }; - IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" }; - IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" }; - IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" }; - IfcTaskTypeEnum.SAFETY = { type: 3, value: "SAFETY" }; - IfcTaskTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" }; - IfcTaskTypeEnum.STARTUP = { type: 3, value: "STARTUP" }; - IfcTaskTypeEnum.TESTING = { type: 3, value: "TESTING" }; - IfcTaskTypeEnum.TROUBLESHOOTING = { type: 3, value: "TROUBLESHOOTING" }; - IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTaskTypeEnum = IfcTaskTypeEnum; - class IfcTendonAnchorTypeEnum { - } - IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" }; - IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" }; - IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum; - class IfcTendonConduitTypeEnum { - } - IfcTendonConduitTypeEnum.COUPLER = { type: 3, value: "COUPLER" }; - IfcTendonConduitTypeEnum.DIABOLO = { type: 3, value: "DIABOLO" }; - IfcTendonConduitTypeEnum.DUCT = { type: 3, value: "DUCT" }; - IfcTendonConduitTypeEnum.GROUTING_DUCT = { type: 3, value: "GROUTING_DUCT" }; - IfcTendonConduitTypeEnum.TRUMPET = { type: 3, value: "TRUMPET" }; - IfcTendonConduitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonConduitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum; - class IfcTendonTypeEnum { - } - IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" }; - IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" }; - IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" }; - IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" }; - IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTendonTypeEnum = IfcTendonTypeEnum; - class IfcTextPath { - } - IfcTextPath.DOWN = { type: 3, value: "DOWN" }; - IfcTextPath.LEFT = { type: 3, value: "LEFT" }; - IfcTextPath.RIGHT = { type: 3, value: "RIGHT" }; - IfcTextPath.UP = { type: 3, value: "UP" }; - IFC4X32.IfcTextPath = IfcTextPath; - class IfcTimeSeriesDataTypeEnum { - } - IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" }; - IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" }; - IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" }; - IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum; - class IfcTrackElementTypeEnum { - } - IfcTrackElementTypeEnum.BLOCKINGDEVICE = { type: 3, value: "BLOCKINGDEVICE" }; - IfcTrackElementTypeEnum.DERAILER = { type: 3, value: "DERAILER" }; - IfcTrackElementTypeEnum.FROG = { type: 3, value: "FROG" }; - IfcTrackElementTypeEnum.HALF_SET_OF_BLADES = { type: 3, value: "HALF_SET_OF_BLADES" }; - IfcTrackElementTypeEnum.SLEEPER = { type: 3, value: "SLEEPER" }; - IfcTrackElementTypeEnum.SPEEDREGULATOR = { type: 3, value: "SPEEDREGULATOR" }; - IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT = { type: 3, value: "TRACKENDOFALIGNMENT" }; - IfcTrackElementTypeEnum.VEHICLESTOP = { type: 3, value: "VEHICLESTOP" }; - IfcTrackElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTrackElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTrackElementTypeEnum = IfcTrackElementTypeEnum; - class IfcTransformerTypeEnum { - } - IfcTransformerTypeEnum.CHOPPER = { type: 3, value: "CHOPPER" }; - IfcTransformerTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; - IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" }; - IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" }; - IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" }; - IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" }; - IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" }; - IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum; - class IfcTransitionCode { - } - IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" }; - IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" }; - IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" }; - IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" }; - IFC4X32.IfcTransitionCode = IfcTransitionCode; - class IfcTransportElementTypeEnum { - } - IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" }; - IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" }; - IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" }; - IfcTransportElementTypeEnum.HAULINGGEAR = { type: 3, value: "HAULINGGEAR" }; - IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" }; - IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" }; - IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum; - class IfcTrimmingPreference { - } - IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" }; - IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" }; - IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" }; - IFC4X32.IfcTrimmingPreference = IfcTrimmingPreference; - class IfcTubeBundleTypeEnum { - } - IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" }; - IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum; - class IfcUnitEnum { - } - IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" }; - IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" }; - IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" }; - IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" }; - IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" }; - IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" }; - IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" }; - IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" }; - IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" }; - IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" }; - IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" }; - IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" }; - IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" }; - IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" }; - IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" }; - IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" }; - IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" }; - IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" }; - IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" }; - IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" }; - IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" }; - IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" }; - IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" }; - IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" }; - IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" }; - IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" }; - IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" }; - IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" }; - IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IFC4X32.IfcUnitEnum = IfcUnitEnum; - class IfcUnitaryControlElementTypeEnum { - } - IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" }; - IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER = { type: 3, value: "BASESTATIONCONTROLLER" }; - IfcUnitaryControlElementTypeEnum.COMBINED = { type: 3, value: "COMBINED" }; - IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" }; - IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" }; - IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" }; - IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" }; - IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" }; - IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" }; - IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" }; - IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum; - class IfcUnitaryEquipmentTypeEnum { - } - IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" }; - IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" }; - IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" }; - IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" }; - IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" }; - IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum; - class IfcValveTypeEnum { - } - IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" }; - IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" }; - IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" }; - IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" }; - IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" }; - IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" }; - IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" }; - IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" }; - IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" }; - IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" }; - IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" }; - IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" }; - IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" }; - IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" }; - IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" }; - IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" }; - IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" }; - IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" }; - IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" }; - IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" }; - IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" }; - IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcValveTypeEnum = IfcValveTypeEnum; - class IfcVehicleTypeEnum { - } - IfcVehicleTypeEnum.CARGO = { type: 3, value: "CARGO" }; - IfcVehicleTypeEnum.ROLLINGSTOCK = { type: 3, value: "ROLLINGSTOCK" }; - IfcVehicleTypeEnum.VEHICLE = { type: 3, value: "VEHICLE" }; - IfcVehicleTypeEnum.VEHICLEAIR = { type: 3, value: "VEHICLEAIR" }; - IfcVehicleTypeEnum.VEHICLEMARINE = { type: 3, value: "VEHICLEMARINE" }; - IfcVehicleTypeEnum.VEHICLETRACKED = { type: 3, value: "VEHICLETRACKED" }; - IfcVehicleTypeEnum.VEHICLEWHEELED = { type: 3, value: "VEHICLEWHEELED" }; - IfcVehicleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVehicleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVehicleTypeEnum = IfcVehicleTypeEnum; - class IfcVibrationDamperTypeEnum { - } - IfcVibrationDamperTypeEnum.AXIAL_YIELD = { type: 3, value: "AXIAL_YIELD" }; - IfcVibrationDamperTypeEnum.BENDING_YIELD = { type: 3, value: "BENDING_YIELD" }; - IfcVibrationDamperTypeEnum.FRICTION = { type: 3, value: "FRICTION" }; - IfcVibrationDamperTypeEnum.RUBBER = { type: 3, value: "RUBBER" }; - IfcVibrationDamperTypeEnum.SHEAR_YIELD = { type: 3, value: "SHEAR_YIELD" }; - IfcVibrationDamperTypeEnum.VISCOUS = { type: 3, value: "VISCOUS" }; - IfcVibrationDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum; - class IfcVibrationIsolatorTypeEnum { - } - IfcVibrationIsolatorTypeEnum.BASE = { type: 3, value: "BASE" }; - IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" }; - IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" }; - IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum; - class IfcVirtualElementTypeEnum { - } - IfcVirtualElementTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" }; - IfcVirtualElementTypeEnum.CLEARANCE = { type: 3, value: "CLEARANCE" }; - IfcVirtualElementTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" }; - IfcVirtualElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVirtualElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVirtualElementTypeEnum = IfcVirtualElementTypeEnum; - class IfcVoidingFeatureTypeEnum { - } - IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" }; - IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" }; - IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" }; - IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" }; - IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" }; - IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" }; - IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum; - class IfcWallTypeEnum { - } - IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" }; - IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" }; - IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" }; - IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" }; - IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" }; - IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" }; - IfcWallTypeEnum.RETAININGWALL = { type: 3, value: "RETAININGWALL" }; - IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" }; - IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" }; - IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" }; - IfcWallTypeEnum.WAVEWALL = { type: 3, value: "WAVEWALL" }; - IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWallTypeEnum = IfcWallTypeEnum; - class IfcWasteTerminalTypeEnum { - } - IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" }; - IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" }; - IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" }; - IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" }; - IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" }; - IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" }; - IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" }; - IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum; - class IfcWindowPanelOperationEnum { - } - IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" }; - IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" }; - IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" }; - IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" }; - IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" }; - IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" }; - IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" }; - IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" }; - IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" }; - IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" }; - IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" }; - IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" }; - IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" }; - IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum; - class IfcWindowPanelPositionEnum { - } - IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" }; - IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" }; - IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" }; - IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" }; - IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" }; - IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum; - class IfcWindowStyleConstructionEnum { - } - IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" }; - IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" }; - IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" }; - IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" }; - IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" }; - IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" }; - IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" }; - IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum; - class IfcWindowStyleOperationEnum { - } - IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum; - class IfcWindowTypeEnum { - } - IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" }; - IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" }; - IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" }; - IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowTypeEnum = IfcWindowTypeEnum; - class IfcWindowTypePartitioningEnum { - } - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" }; - IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" }; - IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum; - class IfcWorkCalendarTypeEnum { - } - IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" }; - IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" }; - IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" }; - IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum; - class IfcWorkPlanTypeEnum { - } - IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum; - class IfcWorkScheduleTypeEnum { - } - IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" }; - IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" }; - IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" }; - IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" }; - IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" }; - IFC4X32.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum; - class IfcActorRole extends IfcLineObject { - constructor(expressID, Role, UserDefinedRole, Description) { - super(expressID); - this.Role = Role; - this.UserDefinedRole = UserDefinedRole; - this.Description = Description; - this.type = 3630933823; - } - } - IFC4X32.IfcActorRole = IfcActorRole; - class IfcAddress extends IfcLineObject { - constructor(expressID, Purpose, Description, UserDefinedPurpose) { - super(expressID); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.type = 618182010; - } - } - IFC4X32.IfcAddress = IfcAddress; - class IfcAlignmentParameterSegment extends IfcLineObject { - constructor(expressID, StartTag, EndTag) { - super(expressID); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.type = 2879124712; - } - } - IFC4X32.IfcAlignmentParameterSegment = IfcAlignmentParameterSegment; - class IfcAlignmentVerticalSegment extends IfcAlignmentParameterSegment { - constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, EndGradient, RadiusOfCurvature, PredefinedType) { - super(expressID, StartTag, EndTag); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.StartDistAlong = StartDistAlong; - this.HorizontalLength = HorizontalLength; - this.StartHeight = StartHeight; - this.StartGradient = StartGradient; - this.EndGradient = EndGradient; - this.RadiusOfCurvature = RadiusOfCurvature; - this.PredefinedType = PredefinedType; - this.type = 3633395639; - } - } - IFC4X32.IfcAlignmentVerticalSegment = IfcAlignmentVerticalSegment; - class IfcApplication extends IfcLineObject { - constructor(expressID, ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) { - super(expressID); - this.ApplicationDeveloper = ApplicationDeveloper; - this.Version = Version; - this.ApplicationFullName = ApplicationFullName; - this.ApplicationIdentifier = ApplicationIdentifier; - this.type = 639542469; - } - } - IFC4X32.IfcApplication = IfcApplication; - class IfcAppliedValue extends IfcLineObject { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 411424972; - } - } - IFC4X32.IfcAppliedValue = IfcAppliedValue; - class IfcApproval extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) { - super(expressID); - this.Identifier = Identifier; - this.Name = Name; - this.Description = Description; - this.TimeOfApproval = TimeOfApproval; - this.Status = Status; - this.Level = Level; - this.Qualifier = Qualifier; - this.RequestingApproval = RequestingApproval; - this.GivingApproval = GivingApproval; - this.type = 130549933; - } - } - IFC4X32.IfcApproval = IfcApproval; - class IfcBoundaryCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 4037036970; - } - } - IFC4X32.IfcBoundaryCondition = IfcBoundaryCondition; - class IfcBoundaryEdgeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX; - this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY; - this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ; - this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX; - this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY; - this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ; - this.type = 1560379544; - } - } - IFC4X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition; - class IfcBoundaryFaceCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX; - this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY; - this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ; - this.type = 3367102660; - } - } - IFC4X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition; - class IfcBoundaryNodeCondition extends IfcBoundaryCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) { - super(expressID, Name); - this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.type = 1387855156; - } - } - IFC4X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition; - class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition { - constructor(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) { - super(expressID, Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ); - this.Name = Name; - this.TranslationalStiffnessX = TranslationalStiffnessX; - this.TranslationalStiffnessY = TranslationalStiffnessY; - this.TranslationalStiffnessZ = TranslationalStiffnessZ; - this.RotationalStiffnessX = RotationalStiffnessX; - this.RotationalStiffnessY = RotationalStiffnessY; - this.RotationalStiffnessZ = RotationalStiffnessZ; - this.WarpingStiffness = WarpingStiffness; - this.type = 2069777674; - } - } - IFC4X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping; - class IfcConnectionGeometry extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 2859738748; - } - } - IFC4X32.IfcConnectionGeometry = IfcConnectionGeometry; - class IfcConnectionPointGeometry extends IfcConnectionGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement) { - super(expressID); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.type = 2614616156; - } - } - IFC4X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry; - class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry { - constructor(expressID, SurfaceOnRelatingElement, SurfaceOnRelatedElement) { - super(expressID); - this.SurfaceOnRelatingElement = SurfaceOnRelatingElement; - this.SurfaceOnRelatedElement = SurfaceOnRelatedElement; - this.type = 2732653382; - } - } - IFC4X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry; - class IfcConnectionVolumeGeometry extends IfcConnectionGeometry { - constructor(expressID, VolumeOnRelatingElement, VolumeOnRelatedElement) { - super(expressID); - this.VolumeOnRelatingElement = VolumeOnRelatingElement; - this.VolumeOnRelatedElement = VolumeOnRelatedElement; - this.type = 775493141; - } - } - IFC4X32.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry; - class IfcConstraint extends IfcLineObject { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.type = 1959218052; - } - } - IFC4X32.IfcConstraint = IfcConstraint; - class IfcCoordinateOperation extends IfcLineObject { - constructor(expressID, SourceCRS, TargetCRS) { - super(expressID); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.type = 1785450214; - } - } - IFC4X32.IfcCoordinateOperation = IfcCoordinateOperation; - class IfcCoordinateReferenceSystem extends IfcLineObject { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.type = 1466758467; - } - } - IFC4X32.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem; - class IfcCostValue extends IfcAppliedValue { - constructor(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) { - super(expressID, Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components); - this.Name = Name; - this.Description = Description; - this.AppliedValue = AppliedValue; - this.UnitBasis = UnitBasis; - this.ApplicableDate = ApplicableDate; - this.FixedUntilDate = FixedUntilDate; - this.Category = Category; - this.Condition = Condition; - this.ArithmeticOperator = ArithmeticOperator; - this.Components = Components; - this.type = 602808272; - } - } - IFC4X32.IfcCostValue = IfcCostValue; - class IfcDerivedUnit extends IfcLineObject { - constructor(expressID, Elements, UnitType, UserDefinedType, Name) { - super(expressID); - this.Elements = Elements; - this.UnitType = UnitType; - this.UserDefinedType = UserDefinedType; - this.Name = Name; - this.type = 1765591967; - } - } - IFC4X32.IfcDerivedUnit = IfcDerivedUnit; - class IfcDerivedUnitElement extends IfcLineObject { - constructor(expressID, Unit, Exponent) { - super(expressID); - this.Unit = Unit; - this.Exponent = Exponent; - this.type = 1045800335; - } - } - IFC4X32.IfcDerivedUnitElement = IfcDerivedUnitElement; - class IfcDimensionalExponents extends IfcLineObject { - constructor(expressID, LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) { - super(expressID); - this.LengthExponent = LengthExponent; - this.MassExponent = MassExponent; - this.TimeExponent = TimeExponent; - this.ElectricCurrentExponent = ElectricCurrentExponent; - this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent; - this.AmountOfSubstanceExponent = AmountOfSubstanceExponent; - this.LuminousIntensityExponent = LuminousIntensityExponent; - this.type = 2949456006; - } - } - IFC4X32.IfcDimensionalExponents = IfcDimensionalExponents; - class IfcExternalInformation extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 4294318154; - } - } - IFC4X32.IfcExternalInformation = IfcExternalInformation; - class IfcExternalReference extends IfcLineObject { - constructor(expressID, Location, Identification, Name) { - super(expressID); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 3200245327; - } - } - IFC4X32.IfcExternalReference = IfcExternalReference; - class IfcExternallyDefinedHatchStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 2242383968; - } - } - IFC4X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle; - class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 1040185647; - } - } - IFC4X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle; - class IfcExternallyDefinedTextFont extends IfcExternalReference { - constructor(expressID, Location, Identification, Name) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.type = 3548104201; - } - } - IFC4X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont; - class IfcGridAxis extends IfcLineObject { - constructor(expressID, AxisTag, AxisCurve, SameSense) { - super(expressID); - this.AxisTag = AxisTag; - this.AxisCurve = AxisCurve; - this.SameSense = SameSense; - this.type = 852622518; - } - } - IFC4X32.IfcGridAxis = IfcGridAxis; - class IfcIrregularTimeSeriesValue extends IfcLineObject { - constructor(expressID, TimeStamp, ListValues) { - super(expressID); - this.TimeStamp = TimeStamp; - this.ListValues = ListValues; - this.type = 3020489413; - } - } - IFC4X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue; - class IfcLibraryInformation extends IfcExternalInformation { - constructor(expressID, Name, Version, Publisher, VersionDate, Location, Description) { - super(expressID); - this.Name = Name; - this.Version = Version; - this.Publisher = Publisher; - this.VersionDate = VersionDate; - this.Location = Location; - this.Description = Description; - this.type = 2655187982; - } - } - IFC4X32.IfcLibraryInformation = IfcLibraryInformation; - class IfcLibraryReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, Language, ReferencedLibrary) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Language = Language; - this.ReferencedLibrary = ReferencedLibrary; - this.type = 3452421091; - } - } - IFC4X32.IfcLibraryReference = IfcLibraryReference; - class IfcLightDistributionData extends IfcLineObject { - constructor(expressID, MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) { - super(expressID); - this.MainPlaneAngle = MainPlaneAngle; - this.SecondaryPlaneAngle = SecondaryPlaneAngle; - this.LuminousIntensity = LuminousIntensity; - this.type = 4162380809; - } - } - IFC4X32.IfcLightDistributionData = IfcLightDistributionData; - class IfcLightIntensityDistribution extends IfcLineObject { - constructor(expressID, LightDistributionCurve, DistributionData) { - super(expressID); - this.LightDistributionCurve = LightDistributionCurve; - this.DistributionData = DistributionData; - this.type = 1566485204; - } - } - IFC4X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution; - class IfcMapConversion extends IfcCoordinateOperation { - constructor(expressID, SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale, ScaleY, ScaleZ) { - super(expressID, SourceCRS, TargetCRS); - this.SourceCRS = SourceCRS; - this.TargetCRS = TargetCRS; - this.Eastings = Eastings; - this.Northings = Northings; - this.OrthogonalHeight = OrthogonalHeight; - this.XAxisAbscissa = XAxisAbscissa; - this.XAxisOrdinate = XAxisOrdinate; - this.Scale = Scale; - this.ScaleY = ScaleY; - this.ScaleZ = ScaleZ; - this.type = 3057273783; - } - } - IFC4X32.IfcMapConversion = IfcMapConversion; - class IfcMaterialClassificationRelationship extends IfcLineObject { - constructor(expressID, MaterialClassifications, ClassifiedMaterial) { - super(expressID); - this.MaterialClassifications = MaterialClassifications; - this.ClassifiedMaterial = ClassifiedMaterial; - this.type = 1847130766; - } - } - IFC4X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship; - class IfcMaterialDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 760658860; - } - } - IFC4X32.IfcMaterialDefinition = IfcMaterialDefinition; - class IfcMaterialLayer extends IfcMaterialDefinition { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) { - super(expressID); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.type = 248100487; - } - } - IFC4X32.IfcMaterialLayer = IfcMaterialLayer; - class IfcMaterialLayerSet extends IfcMaterialDefinition { - constructor(expressID, MaterialLayers, LayerSetName, Description) { - super(expressID); - this.MaterialLayers = MaterialLayers; - this.LayerSetName = LayerSetName; - this.Description = Description; - this.type = 3303938423; - } - } - IFC4X32.IfcMaterialLayerSet = IfcMaterialLayerSet; - class IfcMaterialLayerWithOffsets extends IfcMaterialLayer { - constructor(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) { - super(expressID, Material, LayerThickness, IsVentilated, Name, Description, Category, Priority); - this.Material = Material; - this.LayerThickness = LayerThickness; - this.IsVentilated = IsVentilated; - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.Priority = Priority; - this.OffsetDirection = OffsetDirection; - this.OffsetValues = OffsetValues; - this.type = 1847252529; - } - } - IFC4X32.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets; - class IfcMaterialList extends IfcLineObject { - constructor(expressID, Materials) { - super(expressID); - this.Materials = Materials; - this.type = 2199411900; - } - } - IFC4X32.IfcMaterialList = IfcMaterialList; - class IfcMaterialProfile extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Profile, Priority, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.type = 2235152071; - } - } - IFC4X32.IfcMaterialProfile = IfcMaterialProfile; - class IfcMaterialProfileSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialProfiles, CompositeProfile) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.MaterialProfiles = MaterialProfiles; - this.CompositeProfile = CompositeProfile; - this.type = 164193824; - } - } - IFC4X32.IfcMaterialProfileSet = IfcMaterialProfileSet; - class IfcMaterialProfileWithOffsets extends IfcMaterialProfile { - constructor(expressID, Name, Description, Material, Profile, Priority, Category, OffsetValues) { - super(expressID, Name, Description, Material, Profile, Priority, Category); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Profile = Profile; - this.Priority = Priority; - this.Category = Category; - this.OffsetValues = OffsetValues; - this.type = 552965576; - } - } - IFC4X32.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets; - class IfcMaterialUsageDefinition extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 1507914824; - } - } - IFC4X32.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition; - class IfcMeasureWithUnit extends IfcLineObject { - constructor(expressID, ValueComponent, UnitComponent) { - super(expressID); - this.ValueComponent = ValueComponent; - this.UnitComponent = UnitComponent; - this.type = 2597039031; - } - } - IFC4X32.IfcMeasureWithUnit = IfcMeasureWithUnit; - class IfcMetric extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.Benchmark = Benchmark; - this.ValueSource = ValueSource; - this.DataValue = DataValue; - this.ReferencePath = ReferencePath; - this.type = 3368373690; - } - } - IFC4X32.IfcMetric = IfcMetric; - class IfcMonetaryUnit extends IfcLineObject { - constructor(expressID, Currency) { - super(expressID); - this.Currency = Currency; - this.type = 2706619895; - } - } - IFC4X32.IfcMonetaryUnit = IfcMonetaryUnit; - class IfcNamedUnit extends IfcLineObject { - constructor(expressID, Dimensions, UnitType) { - super(expressID); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.type = 1918398963; - } - } - IFC4X32.IfcNamedUnit = IfcNamedUnit; - class IfcObjectPlacement extends IfcLineObject { - constructor(expressID, PlacementRelTo) { - super(expressID); - this.PlacementRelTo = PlacementRelTo; - this.type = 3701648758; - } - } - IFC4X32.IfcObjectPlacement = IfcObjectPlacement; - class IfcObjective extends IfcConstraint { - constructor(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) { - super(expressID, Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade); - this.Name = Name; - this.Description = Description; - this.ConstraintGrade = ConstraintGrade; - this.ConstraintSource = ConstraintSource; - this.CreatingActor = CreatingActor; - this.CreationTime = CreationTime; - this.UserDefinedGrade = UserDefinedGrade; - this.BenchmarkValues = BenchmarkValues; - this.LogicalAggregator = LogicalAggregator; - this.ObjectiveQualifier = ObjectiveQualifier; - this.UserDefinedQualifier = UserDefinedQualifier; - this.type = 2251480897; - } - } - IFC4X32.IfcObjective = IfcObjective; - class IfcOrganization extends IfcLineObject { - constructor(expressID, Identification, Name, Description, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 4251960020; - } - } - IFC4X32.IfcOrganization = IfcOrganization; - class IfcOwnerHistory extends IfcLineObject { - constructor(expressID, OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) { - super(expressID); - this.OwningUser = OwningUser; - this.OwningApplication = OwningApplication; - this.State = State; - this.ChangeAction = ChangeAction; - this.LastModifiedDate = LastModifiedDate; - this.LastModifyingUser = LastModifyingUser; - this.LastModifyingApplication = LastModifyingApplication; - this.CreationDate = CreationDate; - this.type = 1207048766; - } - } - IFC4X32.IfcOwnerHistory = IfcOwnerHistory; - class IfcPerson extends IfcLineObject { - constructor(expressID, Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) { - super(expressID); - this.Identification = Identification; - this.FamilyName = FamilyName; - this.GivenName = GivenName; - this.MiddleNames = MiddleNames; - this.PrefixTitles = PrefixTitles; - this.SuffixTitles = SuffixTitles; - this.Roles = Roles; - this.Addresses = Addresses; - this.type = 2077209135; - } - } - IFC4X32.IfcPerson = IfcPerson; - class IfcPersonAndOrganization extends IfcLineObject { - constructor(expressID, ThePerson, TheOrganization, Roles) { - super(expressID); - this.ThePerson = ThePerson; - this.TheOrganization = TheOrganization; - this.Roles = Roles; - this.type = 101040310; - } - } - IFC4X32.IfcPersonAndOrganization = IfcPersonAndOrganization; - class IfcPhysicalQuantity extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2483315170; - } - } - IFC4X32.IfcPhysicalQuantity = IfcPhysicalQuantity; - class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, Unit) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.type = 2226359599; - } - } - IFC4X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity; - class IfcPostalAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.InternalLocation = InternalLocation; - this.AddressLines = AddressLines; - this.PostalBox = PostalBox; - this.Town = Town; - this.Region = Region; - this.PostalCode = PostalCode; - this.Country = Country; - this.type = 3355820592; - } - } - IFC4X32.IfcPostalAddress = IfcPostalAddress; - class IfcPresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 677532197; - } - } - IFC4X32.IfcPresentationItem = IfcPresentationItem; - class IfcPresentationLayerAssignment extends IfcLineObject { - constructor(expressID, Name, Description, AssignedItems, Identifier) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.type = 2022622350; - } - } - IFC4X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment; - class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment { - constructor(expressID, Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) { - super(expressID, Name, Description, AssignedItems, Identifier); - this.Name = Name; - this.Description = Description; - this.AssignedItems = AssignedItems; - this.Identifier = Identifier; - this.LayerOn = LayerOn; - this.LayerFrozen = LayerFrozen; - this.LayerBlocked = LayerBlocked; - this.LayerStyles = LayerStyles; - this.type = 1304840413; - } - } - IFC4X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle; - class IfcPresentationStyle extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3119450353; - } - } - IFC4X32.IfcPresentationStyle = IfcPresentationStyle; - class IfcProductRepresentation extends IfcLineObject { - constructor(expressID, Name, Description, Representations) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 2095639259; - } - } - IFC4X32.IfcProductRepresentation = IfcProductRepresentation; - class IfcProfileDef extends IfcLineObject { - constructor(expressID, ProfileType, ProfileName) { - super(expressID); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.type = 3958567839; - } - } - IFC4X32.IfcProfileDef = IfcProfileDef; - class IfcProjectedCRS extends IfcCoordinateReferenceSystem { - constructor(expressID, Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) { - super(expressID, Name, Description, GeodeticDatum, VerticalDatum); - this.Name = Name; - this.Description = Description; - this.GeodeticDatum = GeodeticDatum; - this.VerticalDatum = VerticalDatum; - this.MapProjection = MapProjection; - this.MapZone = MapZone; - this.MapUnit = MapUnit; - this.type = 3843373140; - } - } - IFC4X32.IfcProjectedCRS = IfcProjectedCRS; - class IfcPropertyAbstraction extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 986844984; - } - } - IFC4X32.IfcPropertyAbstraction = IfcPropertyAbstraction; - class IfcPropertyEnumeration extends IfcPropertyAbstraction { - constructor(expressID, Name, EnumerationValues, Unit) { - super(expressID); - this.Name = Name; - this.EnumerationValues = EnumerationValues; - this.Unit = Unit; - this.type = 3710013099; - } - } - IFC4X32.IfcPropertyEnumeration = IfcPropertyEnumeration; - class IfcQuantityArea extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, AreaValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.AreaValue = AreaValue; - this.Formula = Formula; - this.type = 2044713172; - } - } - IFC4X32.IfcQuantityArea = IfcQuantityArea; - class IfcQuantityCount extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, CountValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.CountValue = CountValue; - this.Formula = Formula; - this.type = 2093928680; - } - } - IFC4X32.IfcQuantityCount = IfcQuantityCount; - class IfcQuantityLength extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, LengthValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.LengthValue = LengthValue; - this.Formula = Formula; - this.type = 931644368; - } - } - IFC4X32.IfcQuantityLength = IfcQuantityLength; - class IfcQuantityNumber extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, NumberValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.NumberValue = NumberValue; - this.Formula = Formula; - this.type = 2691318326; - } - } - IFC4X32.IfcQuantityNumber = IfcQuantityNumber; - class IfcQuantityTime extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, TimeValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.TimeValue = TimeValue; - this.Formula = Formula; - this.type = 3252649465; - } - } - IFC4X32.IfcQuantityTime = IfcQuantityTime; - class IfcQuantityVolume extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, VolumeValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.VolumeValue = VolumeValue; - this.Formula = Formula; - this.type = 2405470396; - } - } - IFC4X32.IfcQuantityVolume = IfcQuantityVolume; - class IfcQuantityWeight extends IfcPhysicalSimpleQuantity { - constructor(expressID, Name, Description, Unit, WeightValue, Formula) { - super(expressID, Name, Description, Unit); - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.WeightValue = WeightValue; - this.Formula = Formula; - this.type = 825690147; - } - } - IFC4X32.IfcQuantityWeight = IfcQuantityWeight; - class IfcRecurrencePattern extends IfcLineObject { - constructor(expressID, RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) { - super(expressID); - this.RecurrenceType = RecurrenceType; - this.DayComponent = DayComponent; - this.WeekdayComponent = WeekdayComponent; - this.MonthComponent = MonthComponent; - this.Position = Position; - this.Interval = Interval; - this.Occurrences = Occurrences; - this.TimePeriods = TimePeriods; - this.type = 3915482550; - } - } - IFC4X32.IfcRecurrencePattern = IfcRecurrencePattern; - class IfcReference extends IfcLineObject { - constructor(expressID, TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) { - super(expressID); - this.TypeIdentifier = TypeIdentifier; - this.AttributeIdentifier = AttributeIdentifier; - this.InstanceName = InstanceName; - this.ListPositions = ListPositions; - this.InnerReference = InnerReference; - this.type = 2433181523; - } - } - IFC4X32.IfcReference = IfcReference; - class IfcRepresentation extends IfcLineObject { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1076942058; - } - } - IFC4X32.IfcRepresentation = IfcRepresentation; - class IfcRepresentationContext extends IfcLineObject { - constructor(expressID, ContextIdentifier, ContextType) { - super(expressID); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.type = 3377609919; - } - } - IFC4X32.IfcRepresentationContext = IfcRepresentationContext; - class IfcRepresentationItem extends IfcLineObject { - constructor(expressID) { - super(expressID); - this.type = 3008791417; - } - } - IFC4X32.IfcRepresentationItem = IfcRepresentationItem; - class IfcRepresentationMap extends IfcLineObject { - constructor(expressID, MappingOrigin, MappedRepresentation) { - super(expressID); - this.MappingOrigin = MappingOrigin; - this.MappedRepresentation = MappedRepresentation; - this.type = 1660063152; - } - } - IFC4X32.IfcRepresentationMap = IfcRepresentationMap; - class IfcResourceLevelRelationship extends IfcLineObject { - constructor(expressID, Name, Description) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.type = 2439245199; - } - } - IFC4X32.IfcResourceLevelRelationship = IfcResourceLevelRelationship; - class IfcRoot extends IfcLineObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2341007311; - } - } - IFC4X32.IfcRoot = IfcRoot; - class IfcSIUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Prefix, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Prefix = Prefix; - this.Name = Name; - this.type = 448429030; - } - } - IFC4X32.IfcSIUnit = IfcSIUnit; - class IfcSchedulingTime extends IfcLineObject { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin) { - super(expressID); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.type = 1054537805; - } - } - IFC4X32.IfcSchedulingTime = IfcSchedulingTime; - class IfcShapeAspect extends IfcLineObject { - constructor(expressID, ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) { - super(expressID); - this.ShapeRepresentations = ShapeRepresentations; - this.Name = Name; - this.Description = Description; - this.ProductDefinitional = ProductDefinitional; - this.PartOfProductDefinitionShape = PartOfProductDefinitionShape; - this.type = 867548509; - } - } - IFC4X32.IfcShapeAspect = IfcShapeAspect; - class IfcShapeModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3982875396; - } - } - IFC4X32.IfcShapeModel = IfcShapeModel; - class IfcShapeRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 4240577450; - } - } - IFC4X32.IfcShapeRepresentation = IfcShapeRepresentation; - class IfcStructuralConnectionCondition extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2273995522; - } - } - IFC4X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition; - class IfcStructuralLoad extends IfcLineObject { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 2162789131; - } - } - IFC4X32.IfcStructuralLoad = IfcStructuralLoad; - class IfcStructuralLoadConfiguration extends IfcStructuralLoad { - constructor(expressID, Name, Values, Locations) { - super(expressID, Name); - this.Name = Name; - this.Values = Values; - this.Locations = Locations; - this.type = 3478079324; - } - } - IFC4X32.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration; - class IfcStructuralLoadOrResult extends IfcStructuralLoad { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 609421318; - } - } - IFC4X32.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult; - class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2525727697; - } - } - IFC4X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic; - class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic { - constructor(expressID, Name, DeltaTConstant, DeltaTY, DeltaTZ) { - super(expressID, Name); - this.Name = Name; - this.DeltaTConstant = DeltaTConstant; - this.DeltaTY = DeltaTY; - this.DeltaTZ = DeltaTZ; - this.type = 3408363356; - } - } - IFC4X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature; - class IfcStyleModel extends IfcRepresentation { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 2830218821; - } - } - IFC4X32.IfcStyleModel = IfcStyleModel; - class IfcStyledItem extends IfcRepresentationItem { - constructor(expressID, Item, Styles, Name) { - super(expressID); - this.Item = Item; - this.Styles = Styles; - this.Name = Name; - this.type = 3958052878; - } - } - IFC4X32.IfcStyledItem = IfcStyledItem; - class IfcStyledRepresentation extends IfcStyleModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 3049322572; - } - } - IFC4X32.IfcStyledRepresentation = IfcStyledRepresentation; - class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult { - constructor(expressID, Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) { - super(expressID, Name); - this.Name = Name; - this.SurfaceReinforcement1 = SurfaceReinforcement1; - this.SurfaceReinforcement2 = SurfaceReinforcement2; - this.ShearReinforcement = ShearReinforcement; - this.type = 2934153892; - } - } - IFC4X32.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea; - class IfcSurfaceStyle extends IfcPresentationStyle { - constructor(expressID, Name, Side, Styles) { - super(expressID, Name); - this.Name = Name; - this.Side = Side; - this.Styles = Styles; - this.type = 1300840506; - } - } - IFC4X32.IfcSurfaceStyle = IfcSurfaceStyle; - class IfcSurfaceStyleLighting extends IfcPresentationItem { - constructor(expressID, DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) { - super(expressID); - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.DiffuseReflectionColour = DiffuseReflectionColour; - this.TransmissionColour = TransmissionColour; - this.ReflectanceColour = ReflectanceColour; - this.type = 3303107099; - } - } - IFC4X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting; - class IfcSurfaceStyleRefraction extends IfcPresentationItem { - constructor(expressID, RefractionIndex, DispersionFactor) { - super(expressID); - this.RefractionIndex = RefractionIndex; - this.DispersionFactor = DispersionFactor; - this.type = 1607154358; - } - } - IFC4X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction; - class IfcSurfaceStyleShading extends IfcPresentationItem { - constructor(expressID, SurfaceColour, Transparency) { - super(expressID); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.type = 846575682; - } - } - IFC4X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading; - class IfcSurfaceStyleWithTextures extends IfcPresentationItem { - constructor(expressID, Textures) { - super(expressID); - this.Textures = Textures; - this.type = 1351298697; - } - } - IFC4X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures; - class IfcSurfaceTexture extends IfcPresentationItem { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter) { - super(expressID); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.type = 626085974; - } - } - IFC4X32.IfcSurfaceTexture = IfcSurfaceTexture; - class IfcTable extends IfcLineObject { - constructor(expressID, Name, Rows, Columns) { - super(expressID); - this.Name = Name; - this.Rows = Rows; - this.Columns = Columns; - this.type = 985171141; - } - } - IFC4X32.IfcTable = IfcTable; - class IfcTableColumn extends IfcLineObject { - constructor(expressID, Identifier, Name, Description, Unit, ReferencePath) { - super(expressID); - this.Identifier = Identifier; - this.Name = Name; - this.Description = Description; - this.Unit = Unit; - this.ReferencePath = ReferencePath; - this.type = 2043862942; - } - } - IFC4X32.IfcTableColumn = IfcTableColumn; - class IfcTableRow extends IfcLineObject { - constructor(expressID, RowCells, IsHeading) { - super(expressID); - this.RowCells = RowCells; - this.IsHeading = IsHeading; - this.type = 531007025; - } - } - IFC4X32.IfcTableRow = IfcTableRow; - class IfcTaskTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.type = 1549132990; - } - } - IFC4X32.IfcTaskTime = IfcTaskTime; - class IfcTaskTimeRecurring extends IfcTaskTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.DurationType = DurationType; - this.ScheduleDuration = ScheduleDuration; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.EarlyStart = EarlyStart; - this.EarlyFinish = EarlyFinish; - this.LateStart = LateStart; - this.LateFinish = LateFinish; - this.FreeFloat = FreeFloat; - this.TotalFloat = TotalFloat; - this.IsCritical = IsCritical; - this.StatusTime = StatusTime; - this.ActualDuration = ActualDuration; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingTime = RemainingTime; - this.Completion = Completion; - this.Recurrence = Recurrence; - this.type = 2771591690; - } - } - IFC4X32.IfcTaskTimeRecurring = IfcTaskTimeRecurring; - class IfcTelecomAddress extends IfcAddress { - constructor(expressID, Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) { - super(expressID, Purpose, Description, UserDefinedPurpose); - this.Purpose = Purpose; - this.Description = Description; - this.UserDefinedPurpose = UserDefinedPurpose; - this.TelephoneNumbers = TelephoneNumbers; - this.FacsimileNumbers = FacsimileNumbers; - this.PagerNumber = PagerNumber; - this.ElectronicMailAddresses = ElectronicMailAddresses; - this.WWWHomePageURL = WWWHomePageURL; - this.MessagingIDs = MessagingIDs; - this.type = 912023232; - } - } - IFC4X32.IfcTelecomAddress = IfcTelecomAddress; - class IfcTextStyle extends IfcPresentationStyle { - constructor(expressID, Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.TextCharacterAppearance = TextCharacterAppearance; - this.TextStyle = TextStyle; - this.TextFontStyle = TextFontStyle; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 1447204868; - } - } - IFC4X32.IfcTextStyle = IfcTextStyle; - class IfcTextStyleForDefinedFont extends IfcPresentationItem { - constructor(expressID, Colour, BackgroundColour) { - super(expressID); - this.Colour = Colour; - this.BackgroundColour = BackgroundColour; - this.type = 2636378356; - } - } - IFC4X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont; - class IfcTextStyleTextModel extends IfcPresentationItem { - constructor(expressID, TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) { - super(expressID); - this.TextIndent = TextIndent; - this.TextAlign = TextAlign; - this.TextDecoration = TextDecoration; - this.LetterSpacing = LetterSpacing; - this.WordSpacing = WordSpacing; - this.TextTransform = TextTransform; - this.LineHeight = LineHeight; - this.type = 1640371178; - } - } - IFC4X32.IfcTextStyleTextModel = IfcTextStyleTextModel; - class IfcTextureCoordinate extends IfcPresentationItem { - constructor(expressID, Maps) { - super(expressID); - this.Maps = Maps; - this.type = 280115917; - } - } - IFC4X32.IfcTextureCoordinate = IfcTextureCoordinate; - class IfcTextureCoordinateGenerator extends IfcTextureCoordinate { - constructor(expressID, Maps, Mode, Parameter) { - super(expressID, Maps); - this.Maps = Maps; - this.Mode = Mode; - this.Parameter = Parameter; - this.type = 1742049831; - } - } - IFC4X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator; - class IfcTextureCoordinateIndices extends IfcLineObject { - constructor(expressID, TexCoordIndex, TexCoordsOf) { - super(expressID); - this.TexCoordIndex = TexCoordIndex; - this.TexCoordsOf = TexCoordsOf; - this.type = 222769930; - } - } - IFC4X32.IfcTextureCoordinateIndices = IfcTextureCoordinateIndices; - class IfcTextureCoordinateIndicesWithVoids extends IfcTextureCoordinateIndices { - constructor(expressID, TexCoordIndex, TexCoordsOf, InnerTexCoordIndices) { - super(expressID, TexCoordIndex, TexCoordsOf); - this.TexCoordIndex = TexCoordIndex; - this.TexCoordsOf = TexCoordsOf; - this.InnerTexCoordIndices = InnerTexCoordIndices; - this.type = 1010789467; - } - } - IFC4X32.IfcTextureCoordinateIndicesWithVoids = IfcTextureCoordinateIndicesWithVoids; - class IfcTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, Vertices, MappedTo) { - super(expressID, Maps); - this.Maps = Maps; - this.Vertices = Vertices; - this.MappedTo = MappedTo; - this.type = 2552916305; - } - } - IFC4X32.IfcTextureMap = IfcTextureMap; - class IfcTextureVertex extends IfcPresentationItem { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1210645708; - } - } - IFC4X32.IfcTextureVertex = IfcTextureVertex; - class IfcTextureVertexList extends IfcPresentationItem { - constructor(expressID, TexCoordsList) { - super(expressID); - this.TexCoordsList = TexCoordsList; - this.type = 3611470254; - } - } - IFC4X32.IfcTextureVertexList = IfcTextureVertexList; - class IfcTimePeriod extends IfcLineObject { - constructor(expressID, StartTime, EndTime) { - super(expressID); - this.StartTime = StartTime; - this.EndTime = EndTime; - this.type = 1199560280; - } - } - IFC4X32.IfcTimePeriod = IfcTimePeriod; - class IfcTimeSeries extends IfcLineObject { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.type = 3101149627; - } - } - IFC4X32.IfcTimeSeries = IfcTimeSeries; - class IfcTimeSeriesValue extends IfcLineObject { - constructor(expressID, ListValues) { - super(expressID); - this.ListValues = ListValues; - this.type = 581633288; - } - } - IFC4X32.IfcTimeSeriesValue = IfcTimeSeriesValue; - class IfcTopologicalRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1377556343; - } - } - IFC4X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem; - class IfcTopologyRepresentation extends IfcShapeModel { - constructor(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items) { - super(expressID, ContextOfItems, RepresentationIdentifier, RepresentationType, Items); - this.ContextOfItems = ContextOfItems; - this.RepresentationIdentifier = RepresentationIdentifier; - this.RepresentationType = RepresentationType; - this.Items = Items; - this.type = 1735638870; - } - } - IFC4X32.IfcTopologyRepresentation = IfcTopologyRepresentation; - class IfcUnitAssignment extends IfcLineObject { - constructor(expressID, Units) { - super(expressID); - this.Units = Units; - this.type = 180925521; - } - } - IFC4X32.IfcUnitAssignment = IfcUnitAssignment; - class IfcVertex extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2799835756; - } - } - IFC4X32.IfcVertex = IfcVertex; - class IfcVertexPoint extends IfcVertex { - constructor(expressID, VertexGeometry) { - super(expressID); - this.VertexGeometry = VertexGeometry; - this.type = 1907098498; - } - } - IFC4X32.IfcVertexPoint = IfcVertexPoint; - class IfcVirtualGridIntersection extends IfcLineObject { - constructor(expressID, IntersectingAxes, OffsetDistances) { - super(expressID); - this.IntersectingAxes = IntersectingAxes; - this.OffsetDistances = OffsetDistances; - this.type = 891718957; - } - } - IFC4X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection; - class IfcWorkTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, StartDate, FinishDate) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.RecurrencePattern = RecurrencePattern; - this.StartDate = StartDate; - this.FinishDate = FinishDate; - this.type = 1236880293; - } - } - IFC4X32.IfcWorkTime = IfcWorkTime; - class IfcAlignmentCantSegment extends IfcAlignmentParameterSegment { - constructor(expressID, StartTag, EndTag, StartDistAlong, HorizontalLength, StartCantLeft, EndCantLeft, StartCantRight, EndCantRight, PredefinedType) { - super(expressID, StartTag, EndTag); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.StartDistAlong = StartDistAlong; - this.HorizontalLength = HorizontalLength; - this.StartCantLeft = StartCantLeft; - this.EndCantLeft = EndCantLeft; - this.StartCantRight = StartCantRight; - this.EndCantRight = EndCantRight; - this.PredefinedType = PredefinedType; - this.type = 3752311538; - } - } - IFC4X32.IfcAlignmentCantSegment = IfcAlignmentCantSegment; - class IfcAlignmentHorizontalSegment extends IfcAlignmentParameterSegment { - constructor(expressID, StartTag, EndTag, StartPoint, StartDirection, StartRadiusOfCurvature, EndRadiusOfCurvature, SegmentLength, GravityCenterLineHeight, PredefinedType) { - super(expressID, StartTag, EndTag); - this.StartTag = StartTag; - this.EndTag = EndTag; - this.StartPoint = StartPoint; - this.StartDirection = StartDirection; - this.StartRadiusOfCurvature = StartRadiusOfCurvature; - this.EndRadiusOfCurvature = EndRadiusOfCurvature; - this.SegmentLength = SegmentLength; - this.GravityCenterLineHeight = GravityCenterLineHeight; - this.PredefinedType = PredefinedType; - this.type = 536804194; - } - } - IFC4X32.IfcAlignmentHorizontalSegment = IfcAlignmentHorizontalSegment; - class IfcApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingApproval, RelatedApprovals) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingApproval = RelatingApproval; - this.RelatedApprovals = RelatedApprovals; - this.type = 3869604511; - } - } - IFC4X32.IfcApprovalRelationship = IfcApprovalRelationship; - class IfcArbitraryClosedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.type = 3798115385; - } - } - IFC4X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef; - class IfcArbitraryOpenProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.type = 1310608509; - } - } - IFC4X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef; - class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef { - constructor(expressID, ProfileType, ProfileName, OuterCurve, InnerCurves) { - super(expressID, ProfileType, ProfileName, OuterCurve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.OuterCurve = OuterCurve; - this.InnerCurves = InnerCurves; - this.type = 2705031697; - } - } - IFC4X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids; - class IfcBlobTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.RasterFormat = RasterFormat; - this.RasterCode = RasterCode; - this.type = 616511568; - } - } - IFC4X32.IfcBlobTexture = IfcBlobTexture; - class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef { - constructor(expressID, ProfileType, ProfileName, Curve, Thickness) { - super(expressID, ProfileType, ProfileName, Curve); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Curve = Curve; - this.Thickness = Thickness; - this.type = 3150382593; - } - } - IFC4X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef; - class IfcClassification extends IfcExternalInformation { - constructor(expressID, Source, Edition, EditionDate, Name, Description, Specification, ReferenceTokens) { - super(expressID); - this.Source = Source; - this.Edition = Edition; - this.EditionDate = EditionDate; - this.Name = Name; - this.Description = Description; - this.Specification = Specification; - this.ReferenceTokens = ReferenceTokens; - this.type = 747523909; - } - } - IFC4X32.IfcClassification = IfcClassification; - class IfcClassificationReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, ReferencedSource, Description, Sort) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.ReferencedSource = ReferencedSource; - this.Description = Description; - this.Sort = Sort; - this.type = 647927063; - } - } - IFC4X32.IfcClassificationReference = IfcClassificationReference; - class IfcColourRgbList extends IfcPresentationItem { - constructor(expressID, ColourList) { - super(expressID); - this.ColourList = ColourList; - this.type = 3285139300; - } - } - IFC4X32.IfcColourRgbList = IfcColourRgbList; - class IfcColourSpecification extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3264961684; - } - } - IFC4X32.IfcColourSpecification = IfcColourSpecification; - class IfcCompositeProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Profiles, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Profiles = Profiles; - this.Label = Label; - this.type = 1485152156; - } - } - IFC4X32.IfcCompositeProfileDef = IfcCompositeProfileDef; - class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem { - constructor(expressID, CfsFaces) { - super(expressID); - this.CfsFaces = CfsFaces; - this.type = 370225590; - } - } - IFC4X32.IfcConnectedFaceSet = IfcConnectedFaceSet; - class IfcConnectionCurveGeometry extends IfcConnectionGeometry { - constructor(expressID, CurveOnRelatingElement, CurveOnRelatedElement) { - super(expressID); - this.CurveOnRelatingElement = CurveOnRelatingElement; - this.CurveOnRelatedElement = CurveOnRelatedElement; - this.type = 1981873012; - } - } - IFC4X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry; - class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry { - constructor(expressID, PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) { - super(expressID, PointOnRelatingElement, PointOnRelatedElement); - this.PointOnRelatingElement = PointOnRelatingElement; - this.PointOnRelatedElement = PointOnRelatedElement; - this.EccentricityInX = EccentricityInX; - this.EccentricityInY = EccentricityInY; - this.EccentricityInZ = EccentricityInZ; - this.type = 45288368; - } - } - IFC4X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity; - class IfcContextDependentUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.type = 3050246964; - } - } - IFC4X32.IfcContextDependentUnit = IfcContextDependentUnit; - class IfcConversionBasedUnit extends IfcNamedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor) { - super(expressID, Dimensions, UnitType); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.type = 2889183280; - } - } - IFC4X32.IfcConversionBasedUnit = IfcConversionBasedUnit; - class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit { - constructor(expressID, Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) { - super(expressID, Dimensions, UnitType, Name, ConversionFactor); - this.Dimensions = Dimensions; - this.UnitType = UnitType; - this.Name = Name; - this.ConversionFactor = ConversionFactor; - this.ConversionOffset = ConversionOffset; - this.type = 2713554722; - } - } - IFC4X32.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset; - class IfcCurrencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingMonetaryUnit = RelatingMonetaryUnit; - this.RelatedMonetaryUnit = RelatedMonetaryUnit; - this.ExchangeRate = ExchangeRate; - this.RateDateTime = RateDateTime; - this.RateSource = RateSource; - this.type = 539742890; - } - } - IFC4X32.IfcCurrencyRelationship = IfcCurrencyRelationship; - class IfcCurveStyle extends IfcPresentationStyle { - constructor(expressID, Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.CurveFont = CurveFont; - this.CurveWidth = CurveWidth; - this.CurveColour = CurveColour; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 3800577675; - } - } - IFC4X32.IfcCurveStyle = IfcCurveStyle; - class IfcCurveStyleFont extends IfcPresentationItem { - constructor(expressID, Name, PatternList) { - super(expressID); - this.Name = Name; - this.PatternList = PatternList; - this.type = 1105321065; - } - } - IFC4X32.IfcCurveStyleFont = IfcCurveStyleFont; - class IfcCurveStyleFontAndScaling extends IfcPresentationItem { - constructor(expressID, Name, CurveStyleFont, CurveFontScaling) { - super(expressID); - this.Name = Name; - this.CurveStyleFont = CurveStyleFont; - this.CurveFontScaling = CurveFontScaling; - this.type = 2367409068; - } - } - IFC4X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling; - class IfcCurveStyleFontPattern extends IfcPresentationItem { - constructor(expressID, VisibleSegmentLength, InvisibleSegmentLength) { - super(expressID); - this.VisibleSegmentLength = VisibleSegmentLength; - this.InvisibleSegmentLength = InvisibleSegmentLength; - this.type = 3510044353; - } - } - IFC4X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern; - class IfcDerivedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 3632507154; - } - } - IFC4X32.IfcDerivedProfileDef = IfcDerivedProfileDef; - class IfcDocumentInformation extends IfcExternalInformation { - constructor(expressID, Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) { - super(expressID); - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.Location = Location; - this.Purpose = Purpose; - this.IntendedUse = IntendedUse; - this.Scope = Scope; - this.Revision = Revision; - this.DocumentOwner = DocumentOwner; - this.Editors = Editors; - this.CreationTime = CreationTime; - this.LastRevisionTime = LastRevisionTime; - this.ElectronicFormat = ElectronicFormat; - this.ValidFrom = ValidFrom; - this.ValidUntil = ValidUntil; - this.Confidentiality = Confidentiality; - this.Status = Status; - this.type = 1154170062; - } - } - IFC4X32.IfcDocumentInformation = IfcDocumentInformation; - class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingDocument = RelatingDocument; - this.RelatedDocuments = RelatedDocuments; - this.RelationshipType = RelationshipType; - this.type = 770865208; - } - } - IFC4X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship; - class IfcDocumentReference extends IfcExternalReference { - constructor(expressID, Location, Identification, Name, Description, ReferencedDocument) { - super(expressID, Location, Identification, Name); - this.Location = Location; - this.Identification = Identification; - this.Name = Name; - this.Description = Description; - this.ReferencedDocument = ReferencedDocument; - this.type = 3732053477; - } - } - IFC4X32.IfcDocumentReference = IfcDocumentReference; - class IfcEdge extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeStart, EdgeEnd) { - super(expressID); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.type = 3900360178; - } - } - IFC4X32.IfcEdge = IfcEdge; - class IfcEdgeCurve extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, EdgeGeometry, SameSense) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.EdgeGeometry = EdgeGeometry; - this.SameSense = SameSense; - this.type = 476780140; - } - } - IFC4X32.IfcEdgeCurve = IfcEdgeCurve; - class IfcEventTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ActualDate = ActualDate; - this.EarlyDate = EarlyDate; - this.LateDate = LateDate; - this.ScheduleDate = ScheduleDate; - this.type = 211053100; - } - } - IFC4X32.IfcEventTime = IfcEventTime; - class IfcExtendedProperties extends IfcPropertyAbstraction { - constructor(expressID, Name, Description, Properties2) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.type = 297599258; - } - } - IFC4X32.IfcExtendedProperties = IfcExtendedProperties; - class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingReference, RelatedResourceObjects) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingReference = RelatingReference; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1437805879; - } - } - IFC4X32.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship; - class IfcFace extends IfcTopologicalRepresentationItem { - constructor(expressID, Bounds) { - super(expressID); - this.Bounds = Bounds; - this.type = 2556980723; - } - } - IFC4X32.IfcFace = IfcFace; - class IfcFaceBound extends IfcTopologicalRepresentationItem { - constructor(expressID, Bound, Orientation) { - super(expressID); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 1809719519; - } - } - IFC4X32.IfcFaceBound = IfcFaceBound; - class IfcFaceOuterBound extends IfcFaceBound { - constructor(expressID, Bound, Orientation) { - super(expressID, Bound, Orientation); - this.Bound = Bound; - this.Orientation = Orientation; - this.type = 803316827; - } - } - IFC4X32.IfcFaceOuterBound = IfcFaceOuterBound; - class IfcFaceSurface extends IfcFace { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3008276851; - } - } - IFC4X32.IfcFaceSurface = IfcFaceSurface; - class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) { - super(expressID, Name); - this.Name = Name; - this.TensionFailureX = TensionFailureX; - this.TensionFailureY = TensionFailureY; - this.TensionFailureZ = TensionFailureZ; - this.CompressionFailureX = CompressionFailureX; - this.CompressionFailureY = CompressionFailureY; - this.CompressionFailureZ = CompressionFailureZ; - this.type = 4219587988; - } - } - IFC4X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition; - class IfcFillAreaStyle extends IfcPresentationStyle { - constructor(expressID, Name, FillStyles, ModelOrDraughting) { - super(expressID, Name); - this.Name = Name; - this.FillStyles = FillStyles; - this.ModelOrDraughting = ModelOrDraughting; - this.type = 738692330; - } - } - IFC4X32.IfcFillAreaStyle = IfcFillAreaStyle; - class IfcGeometricRepresentationContext extends IfcRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) { - super(expressID, ContextIdentifier, ContextType); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.CoordinateSpaceDimension = CoordinateSpaceDimension; - this.Precision = Precision; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.TrueNorth = TrueNorth; - this.type = 3448662350; - } - } - IFC4X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext; - class IfcGeometricRepresentationItem extends IfcRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2453401579; - } - } - IFC4X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem; - class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext { - constructor(expressID, ContextIdentifier, ContextType, WorldCoordinateSystem, ParentContext, TargetScale, TargetView, UserDefinedTargetView) { - super(expressID, ContextIdentifier, ContextType, new IfcDimensionCount(0), null, WorldCoordinateSystem, null); - this.ContextIdentifier = ContextIdentifier; - this.ContextType = ContextType; - this.WorldCoordinateSystem = WorldCoordinateSystem; - this.ParentContext = ParentContext; - this.TargetScale = TargetScale; - this.TargetView = TargetView; - this.UserDefinedTargetView = UserDefinedTargetView; - this.type = 4142052618; - } - } - IFC4X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext; - class IfcGeometricSet extends IfcGeometricRepresentationItem { - constructor(expressID, Elements) { - super(expressID); - this.Elements = Elements; - this.type = 3590301190; - } - } - IFC4X32.IfcGeometricSet = IfcGeometricSet; - class IfcGridPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, PlacementLocation, PlacementRefDirection) { - super(expressID, PlacementRelTo); - this.PlacementRelTo = PlacementRelTo; - this.PlacementLocation = PlacementLocation; - this.PlacementRefDirection = PlacementRefDirection; - this.type = 178086475; - } - } - IFC4X32.IfcGridPlacement = IfcGridPlacement; - class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem { - constructor(expressID, BaseSurface, AgreementFlag) { - super(expressID); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.type = 812098782; - } - } - IFC4X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid; - class IfcImageTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.URLReference = URLReference; - this.type = 3905492369; - } - } - IFC4X32.IfcImageTexture = IfcImageTexture; - class IfcIndexedColourMap extends IfcPresentationItem { - constructor(expressID, MappedTo, Opacity, Colours, ColourIndex) { - super(expressID); - this.MappedTo = MappedTo; - this.Opacity = Opacity; - this.Colours = Colours; - this.ColourIndex = ColourIndex; - this.type = 3570813810; - } - } - IFC4X32.IfcIndexedColourMap = IfcIndexedColourMap; - class IfcIndexedTextureMap extends IfcTextureCoordinate { - constructor(expressID, Maps, MappedTo, TexCoords) { - super(expressID, Maps); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.type = 1437953363; - } - } - IFC4X32.IfcIndexedTextureMap = IfcIndexedTextureMap; - class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap { - constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndex) { - super(expressID, Maps, MappedTo, TexCoords); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.TexCoordIndex = TexCoordIndex; - this.type = 2133299955; - } - } - IFC4X32.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap; - class IfcIrregularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.Values = Values; - this.type = 3741457305; - } - } - IFC4X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries; - class IfcLagTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.LagValue = LagValue; - this.DurationType = DurationType; - this.type = 1585845231; - } - } - IFC4X32.IfcLagTime = IfcLagTime; - class IfcLightSource extends IfcGeometricRepresentationItem { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 1402838566; - } - } - IFC4X32.IfcLightSource = IfcLightSource; - class IfcLightSourceAmbient extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.type = 125510826; - } - } - IFC4X32.IfcLightSourceAmbient = IfcLightSourceAmbient; - class IfcLightSourceDirectional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Orientation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Orientation = Orientation; - this.type = 2604431987; - } - } - IFC4X32.IfcLightSourceDirectional = IfcLightSourceDirectional; - class IfcLightSourceGoniometric extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.ColourAppearance = ColourAppearance; - this.ColourTemperature = ColourTemperature; - this.LuminousFlux = LuminousFlux; - this.LightEmissionSource = LightEmissionSource; - this.LightDistributionDataSource = LightDistributionDataSource; - this.type = 4266656042; - } - } - IFC4X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric; - class IfcLightSourcePositional extends IfcLightSource { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.type = 1520743889; - } - } - IFC4X32.IfcLightSourcePositional = IfcLightSourcePositional; - class IfcLightSourceSpot extends IfcLightSourcePositional { - constructor(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) { - super(expressID, Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation); - this.Name = Name; - this.LightColour = LightColour; - this.AmbientIntensity = AmbientIntensity; - this.Intensity = Intensity; - this.Position = Position; - this.Radius = Radius; - this.ConstantAttenuation = ConstantAttenuation; - this.DistanceAttenuation = DistanceAttenuation; - this.QuadricAttenuation = QuadricAttenuation; - this.Orientation = Orientation; - this.ConcentrationExponent = ConcentrationExponent; - this.SpreadAngle = SpreadAngle; - this.BeamWidthAngle = BeamWidthAngle; - this.type = 3422422726; - } - } - IFC4X32.IfcLightSourceSpot = IfcLightSourceSpot; - class IfcLinearPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement, CartesianPosition) { - super(expressID, PlacementRelTo); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.CartesianPosition = CartesianPosition; - this.type = 388784114; - } - } - IFC4X32.IfcLinearPlacement = IfcLinearPlacement; - class IfcLocalPlacement extends IfcObjectPlacement { - constructor(expressID, PlacementRelTo, RelativePlacement) { - super(expressID, PlacementRelTo); - this.PlacementRelTo = PlacementRelTo; - this.RelativePlacement = RelativePlacement; - this.type = 2624227202; - } - } - IFC4X32.IfcLocalPlacement = IfcLocalPlacement; - class IfcLoop extends IfcTopologicalRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 1008929658; - } - } - IFC4X32.IfcLoop = IfcLoop; - class IfcMappedItem extends IfcRepresentationItem { - constructor(expressID, MappingSource, MappingTarget) { - super(expressID); - this.MappingSource = MappingSource; - this.MappingTarget = MappingTarget; - this.type = 2347385850; - } - } - IFC4X32.IfcMappedItem = IfcMappedItem; - class IfcMaterial extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Category = Category; - this.type = 1838606355; - } - } - IFC4X32.IfcMaterial = IfcMaterial; - class IfcMaterialConstituent extends IfcMaterialDefinition { - constructor(expressID, Name, Description, Material, Fraction, Category) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.Material = Material; - this.Fraction = Fraction; - this.Category = Category; - this.type = 3708119e3; - } - } - IFC4X32.IfcMaterialConstituent = IfcMaterialConstituent; - class IfcMaterialConstituentSet extends IfcMaterialDefinition { - constructor(expressID, Name, Description, MaterialConstituents) { - super(expressID); - this.Name = Name; - this.Description = Description; - this.MaterialConstituents = MaterialConstituents; - this.type = 2852063980; - } - } - IFC4X32.IfcMaterialConstituentSet = IfcMaterialConstituentSet; - class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations, RepresentedMaterial) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.RepresentedMaterial = RepresentedMaterial; - this.type = 2022407955; - } - } - IFC4X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation; - class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) { - super(expressID); - this.ForLayerSet = ForLayerSet; - this.LayerSetDirection = LayerSetDirection; - this.DirectionSense = DirectionSense; - this.OffsetFromReferenceLine = OffsetFromReferenceLine; - this.ReferenceExtent = ReferenceExtent; - this.type = 1303795690; - } - } - IFC4X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage; - class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent) { - super(expressID); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.type = 3079605661; - } - } - IFC4X32.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage; - class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage { - constructor(expressID, ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) { - super(expressID, ForProfileSet, CardinalPoint, ReferenceExtent); - this.ForProfileSet = ForProfileSet; - this.CardinalPoint = CardinalPoint; - this.ReferenceExtent = ReferenceExtent; - this.ForProfileEndSet = ForProfileEndSet; - this.CardinalEndPoint = CardinalEndPoint; - this.type = 3404854881; - } - } - IFC4X32.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering; - class IfcMaterialProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, Material) { - super(expressID, Name, Description, Properties2); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.Material = Material; - this.type = 3265635763; - } - } - IFC4X32.IfcMaterialProperties = IfcMaterialProperties; - class IfcMaterialRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingMaterial, RelatedMaterials, MaterialExpression) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingMaterial = RelatingMaterial; - this.RelatedMaterials = RelatedMaterials; - this.MaterialExpression = MaterialExpression; - this.type = 853536259; - } - } - IFC4X32.IfcMaterialRelationship = IfcMaterialRelationship; - class IfcMirroredProfileDef extends IfcDerivedProfileDef { - constructor(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label) { - super(expressID, ProfileType, ProfileName, ParentProfile, Operator, Label); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.ParentProfile = ParentProfile; - this.Operator = Operator; - this.Label = Label; - this.type = 2998442950; - } - } - IFC4X32.IfcMirroredProfileDef = IfcMirroredProfileDef; - class IfcObjectDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 219451334; - } - } - IFC4X32.IfcObjectDefinition = IfcObjectDefinition; - class IfcOpenCrossProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, HorizontalWidths, Widths, Slopes, Tags, OffsetPoint) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.HorizontalWidths = HorizontalWidths; - this.Widths = Widths; - this.Slopes = Slopes; - this.Tags = Tags; - this.OffsetPoint = OffsetPoint; - this.type = 182550632; - } - } - IFC4X32.IfcOpenCrossProfileDef = IfcOpenCrossProfileDef; - class IfcOpenShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2665983363; - } - } - IFC4X32.IfcOpenShell = IfcOpenShell; - class IfcOrganizationRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingOrganization, RelatedOrganizations) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingOrganization = RelatingOrganization; - this.RelatedOrganizations = RelatedOrganizations; - this.type = 1411181986; - } - } - IFC4X32.IfcOrganizationRelationship = IfcOrganizationRelationship; - class IfcOrientedEdge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeElement, Orientation) { - super(expressID, EdgeStart, new Handle(0)); - this.EdgeStart = EdgeStart; - this.EdgeElement = EdgeElement; - this.Orientation = Orientation; - this.type = 1029017970; - } - } - IFC4X32.IfcOrientedEdge = IfcOrientedEdge; - class IfcParameterizedProfileDef extends IfcProfileDef { - constructor(expressID, ProfileType, ProfileName, Position) { - super(expressID, ProfileType, ProfileName); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.type = 2529465313; - } - } - IFC4X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef; - class IfcPath extends IfcTopologicalRepresentationItem { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 2519244187; - } - } - IFC4X32.IfcPath = IfcPath; - class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity { - constructor(expressID, Name, Description, HasQuantities, Discrimination, Quality, Usage) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.HasQuantities = HasQuantities; - this.Discrimination = Discrimination; - this.Quality = Quality; - this.Usage = Usage; - this.type = 3021840470; - } - } - IFC4X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity; - class IfcPixelTexture extends IfcSurfaceTexture { - constructor(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) { - super(expressID, RepeatS, RepeatT, Mode, TextureTransform, Parameter); - this.RepeatS = RepeatS; - this.RepeatT = RepeatT; - this.Mode = Mode; - this.TextureTransform = TextureTransform; - this.Parameter = Parameter; - this.Width = Width; - this.Height = Height; - this.ColourComponents = ColourComponents; - this.Pixel = Pixel; - this.type = 597895409; - } - } - IFC4X32.IfcPixelTexture = IfcPixelTexture; - class IfcPlacement extends IfcGeometricRepresentationItem { - constructor(expressID, Location) { - super(expressID); - this.Location = Location; - this.type = 2004835150; - } - } - IFC4X32.IfcPlacement = IfcPlacement; - class IfcPlanarExtent extends IfcGeometricRepresentationItem { - constructor(expressID, SizeInX, SizeInY) { - super(expressID); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.type = 1663979128; - } - } - IFC4X32.IfcPlanarExtent = IfcPlanarExtent; - class IfcPoint extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2067069095; - } - } - IFC4X32.IfcPoint = IfcPoint; - class IfcPointByDistanceExpression extends IfcPoint { - constructor(expressID, DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, BasisCurve) { - super(expressID); - this.DistanceAlong = DistanceAlong; - this.OffsetLateral = OffsetLateral; - this.OffsetVertical = OffsetVertical; - this.OffsetLongitudinal = OffsetLongitudinal; - this.BasisCurve = BasisCurve; - this.type = 2165702409; - } - } - IFC4X32.IfcPointByDistanceExpression = IfcPointByDistanceExpression; - class IfcPointOnCurve extends IfcPoint { - constructor(expressID, BasisCurve, PointParameter) { - super(expressID); - this.BasisCurve = BasisCurve; - this.PointParameter = PointParameter; - this.type = 4022376103; - } - } - IFC4X32.IfcPointOnCurve = IfcPointOnCurve; - class IfcPointOnSurface extends IfcPoint { - constructor(expressID, BasisSurface, PointParameterU, PointParameterV) { - super(expressID); - this.BasisSurface = BasisSurface; - this.PointParameterU = PointParameterU; - this.PointParameterV = PointParameterV; - this.type = 1423911732; - } - } - IFC4X32.IfcPointOnSurface = IfcPointOnSurface; - class IfcPolyLoop extends IfcLoop { - constructor(expressID, Polygon) { - super(expressID); - this.Polygon = Polygon; - this.type = 2924175390; - } - } - IFC4X32.IfcPolyLoop = IfcPolyLoop; - class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Position, PolygonalBoundary) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Position = Position; - this.PolygonalBoundary = PolygonalBoundary; - this.type = 2775532180; - } - } - IFC4X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace; - class IfcPreDefinedItem extends IfcPresentationItem { - constructor(expressID, Name) { - super(expressID); - this.Name = Name; - this.type = 3727388367; - } - } - IFC4X32.IfcPreDefinedItem = IfcPreDefinedItem; - class IfcPreDefinedProperties extends IfcPropertyAbstraction { - constructor(expressID) { - super(expressID); - this.type = 3778827333; - } - } - IFC4X32.IfcPreDefinedProperties = IfcPreDefinedProperties; - class IfcPreDefinedTextFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 1775413392; - } - } - IFC4X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont; - class IfcProductDefinitionShape extends IfcProductRepresentation { - constructor(expressID, Name, Description, Representations) { - super(expressID, Name, Description, Representations); - this.Name = Name; - this.Description = Description; - this.Representations = Representations; - this.type = 673634403; - } - } - IFC4X32.IfcProductDefinitionShape = IfcProductDefinitionShape; - class IfcProfileProperties extends IfcExtendedProperties { - constructor(expressID, Name, Description, Properties2, ProfileDefinition) { - super(expressID, Name, Description, Properties2); - this.Name = Name; - this.Description = Description; - this.Properties = Properties2; - this.ProfileDefinition = ProfileDefinition; - this.type = 2802850158; - } - } - IFC4X32.IfcProfileProperties = IfcProfileProperties; - class IfcProperty extends IfcPropertyAbstraction { - constructor(expressID, Name, Specification) { - super(expressID); - this.Name = Name; - this.Specification = Specification; - this.type = 2598011224; - } - } - IFC4X32.IfcProperty = IfcProperty; - class IfcPropertyDefinition extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1680319473; - } - } - IFC4X32.IfcPropertyDefinition = IfcPropertyDefinition; - class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, DependingProperty, DependantProperty, Expression) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.DependingProperty = DependingProperty; - this.DependantProperty = DependantProperty; - this.Expression = Expression; - this.type = 148025276; - } - } - IFC4X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship; - class IfcPropertySetDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3357820518; - } - } - IFC4X32.IfcPropertySetDefinition = IfcPropertySetDefinition; - class IfcPropertyTemplateDefinition extends IfcPropertyDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 1482703590; - } - } - IFC4X32.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition; - class IfcQuantitySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2090586900; - } - } - IFC4X32.IfcQuantitySet = IfcQuantitySet; - class IfcRectangleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.type = 3615266464; - } - } - IFC4X32.IfcRectangleProfileDef = IfcRectangleProfileDef; - class IfcRegularTimeSeries extends IfcTimeSeries { - constructor(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) { - super(expressID, Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit); - this.Name = Name; - this.Description = Description; - this.StartTime = StartTime; - this.EndTime = EndTime; - this.TimeSeriesDataType = TimeSeriesDataType; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.Unit = Unit; - this.TimeStep = TimeStep; - this.Values = Values; - this.type = 3413951693; - } - } - IFC4X32.IfcRegularTimeSeries = IfcRegularTimeSeries; - class IfcReinforcementBarProperties extends IfcPreDefinedProperties { - constructor(expressID, TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) { - super(expressID); - this.TotalCrossSectionArea = TotalCrossSectionArea; - this.SteelGrade = SteelGrade; - this.BarSurface = BarSurface; - this.EffectiveDepth = EffectiveDepth; - this.NominalBarDiameter = NominalBarDiameter; - this.BarCount = BarCount; - this.type = 1580146022; - } - } - IFC4X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties; - class IfcRelationship extends IfcRoot { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 478536968; - } - } - IFC4X32.IfcRelationship = IfcRelationship; - class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatedResourceObjects, RelatingApproval) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatedResourceObjects = RelatedResourceObjects; - this.RelatingApproval = RelatingApproval; - this.type = 2943643501; - } - } - IFC4X32.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship; - class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship { - constructor(expressID, Name, Description, RelatingConstraint, RelatedResourceObjects) { - super(expressID, Name, Description); - this.Name = Name; - this.Description = Description; - this.RelatingConstraint = RelatingConstraint; - this.RelatedResourceObjects = RelatedResourceObjects; - this.type = 1608871552; - } - } - IFC4X32.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship; - class IfcResourceTime extends IfcSchedulingTime { - constructor(expressID, Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) { - super(expressID, Name, DataOrigin, UserDefinedDataOrigin); - this.Name = Name; - this.DataOrigin = DataOrigin; - this.UserDefinedDataOrigin = UserDefinedDataOrigin; - this.ScheduleWork = ScheduleWork; - this.ScheduleUsage = ScheduleUsage; - this.ScheduleStart = ScheduleStart; - this.ScheduleFinish = ScheduleFinish; - this.ScheduleContour = ScheduleContour; - this.LevelingDelay = LevelingDelay; - this.IsOverAllocated = IsOverAllocated; - this.StatusTime = StatusTime; - this.ActualWork = ActualWork; - this.ActualUsage = ActualUsage; - this.ActualStart = ActualStart; - this.ActualFinish = ActualFinish; - this.RemainingWork = RemainingWork; - this.RemainingUsage = RemainingUsage; - this.Completion = Completion; - this.type = 1042787934; - } - } - IFC4X32.IfcResourceTime = IfcResourceTime; - class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.RoundingRadius = RoundingRadius; - this.type = 2778083089; - } - } - IFC4X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef; - class IfcSectionProperties extends IfcPreDefinedProperties { - constructor(expressID, SectionType, StartProfile, EndProfile) { - super(expressID); - this.SectionType = SectionType; - this.StartProfile = StartProfile; - this.EndProfile = EndProfile; - this.type = 2042790032; - } - } - IFC4X32.IfcSectionProperties = IfcSectionProperties; - class IfcSectionReinforcementProperties extends IfcPreDefinedProperties { - constructor(expressID, LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) { - super(expressID); - this.LongitudinalStartPosition = LongitudinalStartPosition; - this.LongitudinalEndPosition = LongitudinalEndPosition; - this.TransversePosition = TransversePosition; - this.ReinforcementRole = ReinforcementRole; - this.SectionDefinition = SectionDefinition; - this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions; - this.type = 4165799628; - } - } - IFC4X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties; - class IfcSectionedSpine extends IfcGeometricRepresentationItem { - constructor(expressID, SpineCurve, CrossSections, CrossSectionPositions) { - super(expressID); - this.SpineCurve = SpineCurve; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1509187699; - } - } - IFC4X32.IfcSectionedSpine = IfcSectionedSpine; - class IfcSegment extends IfcGeometricRepresentationItem { - constructor(expressID, Transition) { - super(expressID); - this.Transition = Transition; - this.type = 823603102; - } - } - IFC4X32.IfcSegment = IfcSegment; - class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, SbsmBoundary) { - super(expressID); - this.SbsmBoundary = SbsmBoundary; - this.type = 4124623270; - } - } - IFC4X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel; - class IfcSimpleProperty extends IfcProperty { - constructor(expressID, Name, Specification) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.type = 3692461612; - } - } - IFC4X32.IfcSimpleProperty = IfcSimpleProperty; - class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition { - constructor(expressID, Name, SlippageX, SlippageY, SlippageZ) { - super(expressID, Name); - this.Name = Name; - this.SlippageX = SlippageX; - this.SlippageY = SlippageY; - this.SlippageZ = SlippageZ; - this.type = 2609359061; - } - } - IFC4X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition; - class IfcSolidModel extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 723233188; - } - } - IFC4X32.IfcSolidModel = IfcSolidModel; - class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) { - super(expressID, Name); - this.Name = Name; - this.LinearForceX = LinearForceX; - this.LinearForceY = LinearForceY; - this.LinearForceZ = LinearForceZ; - this.LinearMomentX = LinearMomentX; - this.LinearMomentY = LinearMomentY; - this.LinearMomentZ = LinearMomentZ; - this.type = 1595516126; - } - } - IFC4X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce; - class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, PlanarForceX, PlanarForceY, PlanarForceZ) { - super(expressID, Name); - this.Name = Name; - this.PlanarForceX = PlanarForceX; - this.PlanarForceY = PlanarForceY; - this.PlanarForceZ = PlanarForceZ; - this.type = 2668620305; - } - } - IFC4X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce; - class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) { - super(expressID, Name); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.type = 2473145415; - } - } - IFC4X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement; - class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement { - constructor(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) { - super(expressID, Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ); - this.Name = Name; - this.DisplacementX = DisplacementX; - this.DisplacementY = DisplacementY; - this.DisplacementZ = DisplacementZ; - this.RotationalDisplacementRX = RotationalDisplacementRX; - this.RotationalDisplacementRY = RotationalDisplacementRY; - this.RotationalDisplacementRZ = RotationalDisplacementRZ; - this.Distortion = Distortion; - this.type = 1973038258; - } - } - IFC4X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion; - class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) { - super(expressID, Name); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.type = 1597423693; - } - } - IFC4X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce; - class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce { - constructor(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) { - super(expressID, Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ); - this.Name = Name; - this.ForceX = ForceX; - this.ForceY = ForceY; - this.ForceZ = ForceZ; - this.MomentX = MomentX; - this.MomentY = MomentY; - this.MomentZ = MomentZ; - this.WarpingMoment = WarpingMoment; - this.type = 1190533807; - } - } - IFC4X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping; - class IfcSubedge extends IfcEdge { - constructor(expressID, EdgeStart, EdgeEnd, ParentEdge) { - super(expressID, EdgeStart, EdgeEnd); - this.EdgeStart = EdgeStart; - this.EdgeEnd = EdgeEnd; - this.ParentEdge = ParentEdge; - this.type = 2233826070; - } - } - IFC4X32.IfcSubedge = IfcSubedge; - class IfcSurface extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2513912981; - } - } - IFC4X32.IfcSurface = IfcSurface; - class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading { - constructor(expressID, SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) { - super(expressID, SurfaceColour, Transparency); - this.SurfaceColour = SurfaceColour; - this.Transparency = Transparency; - this.DiffuseColour = DiffuseColour; - this.TransmissionColour = TransmissionColour; - this.DiffuseTransmissionColour = DiffuseTransmissionColour; - this.ReflectionColour = ReflectionColour; - this.SpecularColour = SpecularColour; - this.SpecularHighlight = SpecularHighlight; - this.ReflectanceMethod = ReflectanceMethod; - this.type = 1878645084; - } - } - IFC4X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering; - class IfcSweptAreaSolid extends IfcSolidModel { - constructor(expressID, SweptArea, Position) { - super(expressID); - this.SweptArea = SweptArea; - this.Position = Position; - this.type = 2247615214; - } - } - IFC4X32.IfcSweptAreaSolid = IfcSweptAreaSolid; - class IfcSweptDiskSolid extends IfcSolidModel { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam) { - super(expressID); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 1260650574; - } - } - IFC4X32.IfcSweptDiskSolid = IfcSweptDiskSolid; - class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid { - constructor(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) { - super(expressID, Directrix, Radius, InnerRadius, StartParam, EndParam); - this.Directrix = Directrix; - this.Radius = Radius; - this.InnerRadius = InnerRadius; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FilletRadius = FilletRadius; - this.type = 1096409881; - } - } - IFC4X32.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal; - class IfcSweptSurface extends IfcSurface { - constructor(expressID, SweptCurve, Position) { - super(expressID); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.type = 230924584; - } - } - IFC4X32.IfcSweptSurface = IfcSweptSurface; - class IfcTShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.WebEdgeRadius = WebEdgeRadius; - this.WebSlope = WebSlope; - this.FlangeSlope = FlangeSlope; - this.type = 3071757647; - } - } - IFC4X32.IfcTShapeProfileDef = IfcTShapeProfileDef; - class IfcTessellatedItem extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 901063453; - } - } - IFC4X32.IfcTessellatedItem = IfcTessellatedItem; - class IfcTextLiteral extends IfcGeometricRepresentationItem { - constructor(expressID, Literal, Placement, Path) { - super(expressID); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.type = 4282788508; - } - } - IFC4X32.IfcTextLiteral = IfcTextLiteral; - class IfcTextLiteralWithExtent extends IfcTextLiteral { - constructor(expressID, Literal, Placement, Path, Extent, BoxAlignment) { - super(expressID, Literal, Placement, Path); - this.Literal = Literal; - this.Placement = Placement; - this.Path = Path; - this.Extent = Extent; - this.BoxAlignment = BoxAlignment; - this.type = 3124975700; - } - } - IFC4X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent; - class IfcTextStyleFontModel extends IfcPreDefinedTextFont { - constructor(expressID, Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) { - super(expressID, Name); - this.Name = Name; - this.FontFamily = FontFamily; - this.FontStyle = FontStyle; - this.FontVariant = FontVariant; - this.FontWeight = FontWeight; - this.FontSize = FontSize; - this.type = 1983826977; - } - } - IFC4X32.IfcTextStyleFontModel = IfcTextStyleFontModel; - class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomXDim = BottomXDim; - this.TopXDim = TopXDim; - this.YDim = YDim; - this.TopXOffset = TopXOffset; - this.type = 2715220739; - } - } - IFC4X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef; - class IfcTypeObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.type = 1628702193; - } - } - IFC4X32.IfcTypeObject = IfcTypeObject; - class IfcTypeProcess extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.type = 3736923433; - } - } - IFC4X32.IfcTypeProcess = IfcTypeProcess; - class IfcTypeProduct extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.type = 2347495698; - } - } - IFC4X32.IfcTypeProduct = IfcTypeProduct; - class IfcTypeResource extends IfcTypeObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.type = 3698973494; - } - } - IFC4X32.IfcTypeResource = IfcTypeResource; - class IfcUShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 427810014; - } - } - IFC4X32.IfcUShapeProfileDef = IfcUShapeProfileDef; - class IfcVector extends IfcGeometricRepresentationItem { - constructor(expressID, Orientation, Magnitude) { - super(expressID); - this.Orientation = Orientation; - this.Magnitude = Magnitude; - this.type = 1417489154; - } - } - IFC4X32.IfcVector = IfcVector; - class IfcVertexLoop extends IfcLoop { - constructor(expressID, LoopVertex) { - super(expressID); - this.LoopVertex = LoopVertex; - this.type = 2759199220; - } - } - IFC4X32.IfcVertexLoop = IfcVertexLoop; - class IfcZShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.FlangeWidth = FlangeWidth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.type = 2543172580; - } - } - IFC4X32.IfcZShapeProfileDef = IfcZShapeProfileDef; - class IfcAdvancedFace extends IfcFaceSurface { - constructor(expressID, Bounds, FaceSurface, SameSense) { - super(expressID, Bounds, FaceSurface, SameSense); - this.Bounds = Bounds; - this.FaceSurface = FaceSurface; - this.SameSense = SameSense; - this.type = 3406155212; - } - } - IFC4X32.IfcAdvancedFace = IfcAdvancedFace; - class IfcAnnotationFillArea extends IfcGeometricRepresentationItem { - constructor(expressID, OuterBoundary, InnerBoundaries) { - super(expressID); - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 669184980; - } - } - IFC4X32.IfcAnnotationFillArea = IfcAnnotationFillArea; - class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.BottomFlangeWidth = BottomFlangeWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.BottomFlangeThickness = BottomFlangeThickness; - this.BottomFlangeFilletRadius = BottomFlangeFilletRadius; - this.TopFlangeWidth = TopFlangeWidth; - this.TopFlangeThickness = TopFlangeThickness; - this.TopFlangeFilletRadius = TopFlangeFilletRadius; - this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius; - this.BottomFlangeSlope = BottomFlangeSlope; - this.TopFlangeEdgeRadius = TopFlangeEdgeRadius; - this.TopFlangeSlope = TopFlangeSlope; - this.type = 3207858831; - } - } - IFC4X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef; - class IfcAxis1Placement extends IfcPlacement { - constructor(expressID, Location, Axis) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.type = 4261334040; - } - } - IFC4X32.IfcAxis1Placement = IfcAxis1Placement; - class IfcAxis2Placement2D extends IfcPlacement { - constructor(expressID, Location, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.RefDirection = RefDirection; - this.type = 3125803723; - } - } - IFC4X32.IfcAxis2Placement2D = IfcAxis2Placement2D; - class IfcAxis2Placement3D extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 2740243338; - } - } - IFC4X32.IfcAxis2Placement3D = IfcAxis2Placement3D; - class IfcAxis2PlacementLinear extends IfcPlacement { - constructor(expressID, Location, Axis, RefDirection) { - super(expressID, Location); - this.Location = Location; - this.Axis = Axis; - this.RefDirection = RefDirection; - this.type = 3425423356; - } - } - IFC4X32.IfcAxis2PlacementLinear = IfcAxis2PlacementLinear; - class IfcBooleanResult extends IfcGeometricRepresentationItem { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 2736907675; - } - } - IFC4X32.IfcBooleanResult = IfcBooleanResult; - class IfcBoundedSurface extends IfcSurface { - constructor(expressID) { - super(expressID); - this.type = 4182860854; - } - } - IFC4X32.IfcBoundedSurface = IfcBoundedSurface; - class IfcBoundingBox extends IfcGeometricRepresentationItem { - constructor(expressID, Corner, XDim, YDim, ZDim) { - super(expressID); - this.Corner = Corner; - this.XDim = XDim; - this.YDim = YDim; - this.ZDim = ZDim; - this.type = 2581212453; - } - } - IFC4X32.IfcBoundingBox = IfcBoundingBox; - class IfcBoxedHalfSpace extends IfcHalfSpaceSolid { - constructor(expressID, BaseSurface, AgreementFlag, Enclosure) { - super(expressID, BaseSurface, AgreementFlag); - this.BaseSurface = BaseSurface; - this.AgreementFlag = AgreementFlag; - this.Enclosure = Enclosure; - this.type = 2713105998; - } - } - IFC4X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace; - class IfcCShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.WallThickness = WallThickness; - this.Girth = Girth; - this.InternalFilletRadius = InternalFilletRadius; - this.type = 2898889636; - } - } - IFC4X32.IfcCShapeProfileDef = IfcCShapeProfileDef; - class IfcCartesianPoint extends IfcPoint { - constructor(expressID, Coordinates) { - super(expressID); - this.Coordinates = Coordinates; - this.type = 1123145078; - } - } - IFC4X32.IfcCartesianPoint = IfcCartesianPoint; - class IfcCartesianPointList extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 574549367; - } - } - IFC4X32.IfcCartesianPointList = IfcCartesianPointList; - class IfcCartesianPointList2D extends IfcCartesianPointList { - constructor(expressID, CoordList, TagList) { - super(expressID); - this.CoordList = CoordList; - this.TagList = TagList; - this.type = 1675464909; - } - } - IFC4X32.IfcCartesianPointList2D = IfcCartesianPointList2D; - class IfcCartesianPointList3D extends IfcCartesianPointList { - constructor(expressID, CoordList, TagList) { - super(expressID); - this.CoordList = CoordList; - this.TagList = TagList; - this.type = 2059837836; - } - } - IFC4X32.IfcCartesianPointList3D = IfcCartesianPointList3D; - class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 59481748; - } - } - IFC4X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator; - class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.type = 3749851601; - } - } - IFC4X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D; - class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Scale2) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Scale2 = Scale2; - this.type = 3486308946; - } - } - IFC4X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform; - class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.type = 3331915920; - } - } - IFC4X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D; - class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D { - constructor(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) { - super(expressID, Axis1, Axis2, LocalOrigin, Scale, Axis3); - this.Axis1 = Axis1; - this.Axis2 = Axis2; - this.LocalOrigin = LocalOrigin; - this.Scale = Scale; - this.Axis3 = Axis3; - this.Scale2 = Scale2; - this.Scale3 = Scale3; - this.type = 1416205885; - } - } - IFC4X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform; - class IfcCircleProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.type = 1383045692; - } - } - IFC4X32.IfcCircleProfileDef = IfcCircleProfileDef; - class IfcClosedShell extends IfcConnectedFaceSet { - constructor(expressID, CfsFaces) { - super(expressID, CfsFaces); - this.CfsFaces = CfsFaces; - this.type = 2205249479; - } - } - IFC4X32.IfcClosedShell = IfcClosedShell; - class IfcColourRgb extends IfcColourSpecification { - constructor(expressID, Name, Red, Green, Blue) { - super(expressID, Name); - this.Name = Name; - this.Red = Red; - this.Green = Green; - this.Blue = Blue; - this.type = 776857604; - } - } - IFC4X32.IfcColourRgb = IfcColourRgb; - class IfcComplexProperty extends IfcProperty { - constructor(expressID, Name, Specification, UsageName, HasProperties) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.UsageName = UsageName; - this.HasProperties = HasProperties; - this.type = 2542286263; - } - } - IFC4X32.IfcComplexProperty = IfcComplexProperty; - class IfcCompositeCurveSegment extends IfcSegment { - constructor(expressID, Transition, SameSense, ParentCurve) { - super(expressID, Transition); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.type = 2485617015; - } - } - IFC4X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment; - class IfcConstructionResourceType extends IfcTypeResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2574617495; - } - } - IFC4X32.IfcConstructionResourceType = IfcConstructionResourceType; - class IfcContext extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 3419103109; - } - } - IFC4X32.IfcContext = IfcContext; - class IfcCrewResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1815067380; - } - } - IFC4X32.IfcCrewResourceType = IfcCrewResourceType; - class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2506170314; - } - } - IFC4X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D; - class IfcCsgSolid extends IfcSolidModel { - constructor(expressID, TreeRootExpression) { - super(expressID); - this.TreeRootExpression = TreeRootExpression; - this.type = 2147822146; - } - } - IFC4X32.IfcCsgSolid = IfcCsgSolid; - class IfcCurve extends IfcGeometricRepresentationItem { - constructor(expressID) { - super(expressID); - this.type = 2601014836; - } - } - IFC4X32.IfcCurve = IfcCurve; - class IfcCurveBoundedPlane extends IfcBoundedSurface { - constructor(expressID, BasisSurface, OuterBoundary, InnerBoundaries) { - super(expressID); - this.BasisSurface = BasisSurface; - this.OuterBoundary = OuterBoundary; - this.InnerBoundaries = InnerBoundaries; - this.type = 2827736869; - } - } - IFC4X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane; - class IfcCurveBoundedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, Boundaries, ImplicitOuter) { - super(expressID); - this.BasisSurface = BasisSurface; - this.Boundaries = Boundaries; - this.ImplicitOuter = ImplicitOuter; - this.type = 2629017746; - } - } - IFC4X32.IfcCurveBoundedSurface = IfcCurveBoundedSurface; - class IfcCurveSegment extends IfcSegment { - constructor(expressID, Transition, Placement, SegmentStart, SegmentLength, ParentCurve) { - super(expressID, Transition); - this.Transition = Transition; - this.Placement = Placement; - this.SegmentStart = SegmentStart; - this.SegmentLength = SegmentLength; - this.ParentCurve = ParentCurve; - this.type = 4212018352; - } - } - IFC4X32.IfcCurveSegment = IfcCurveSegment; - class IfcDirection extends IfcGeometricRepresentationItem { - constructor(expressID, DirectionRatios) { - super(expressID); - this.DirectionRatios = DirectionRatios; - this.type = 32440307; - } - } - IFC4X32.IfcDirection = IfcDirection; - class IfcDirectrixCurveSweptAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.type = 593015953; - } - } - IFC4X32.IfcDirectrixCurveSweptAreaSolid = IfcDirectrixCurveSweptAreaSolid; - class IfcEdgeLoop extends IfcLoop { - constructor(expressID, EdgeList) { - super(expressID); - this.EdgeList = EdgeList; - this.type = 1472233963; - } - } - IFC4X32.IfcEdgeLoop = IfcEdgeLoop; - class IfcElementQuantity extends IfcQuantitySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.MethodOfMeasurement = MethodOfMeasurement; - this.Quantities = Quantities; - this.type = 1883228015; - } - } - IFC4X32.IfcElementQuantity = IfcElementQuantity; - class IfcElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 339256511; - } - } - IFC4X32.IfcElementType = IfcElementType; - class IfcElementarySurface extends IfcSurface { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2777663545; - } - } - IFC4X32.IfcElementarySurface = IfcElementarySurface; - class IfcEllipseProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 2835456948; - } - } - IFC4X32.IfcEllipseProfileDef = IfcEllipseProfileDef; - class IfcEventType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.type = 4024345920; - } - } - IFC4X32.IfcEventType = IfcEventType; - class IfcExtrudedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 477187591; - } - } - IFC4X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid; - class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid { - constructor(expressID, SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) { - super(expressID, SweptArea, Position, ExtrudedDirection, Depth); - this.SweptArea = SweptArea; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.EndSweptArea = EndSweptArea; - this.type = 2804161546; - } - } - IFC4X32.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered; - class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem { - constructor(expressID, FbsmFaces) { - super(expressID); - this.FbsmFaces = FbsmFaces; - this.type = 2047409740; - } - } - IFC4X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel; - class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem { - constructor(expressID, HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) { - super(expressID); - this.HatchLineAppearance = HatchLineAppearance; - this.StartOfNextHatchLine = StartOfNextHatchLine; - this.PointOfReferenceHatchLine = PointOfReferenceHatchLine; - this.PatternStart = PatternStart; - this.HatchLineAngle = HatchLineAngle; - this.type = 374418227; - } - } - IFC4X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching; - class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem { - constructor(expressID, TilingPattern, Tiles, TilingScale) { - super(expressID); - this.TilingPattern = TilingPattern; - this.Tiles = Tiles; - this.TilingScale = TilingScale; - this.type = 315944413; - } - } - IFC4X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles; - class IfcFixedReferenceSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { - super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FixedReference = FixedReference; - this.type = 2652556860; - } - } - IFC4X32.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid; - class IfcFurnishingElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 4238390223; - } - } - IFC4X32.IfcFurnishingElementType = IfcFurnishingElementType; - class IfcFurnitureType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 1268542332; - } - } - IFC4X32.IfcFurnitureType = IfcFurnitureType; - class IfcGeographicElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4095422895; - } - } - IFC4X32.IfcGeographicElementType = IfcGeographicElementType; - class IfcGeometricCurveSet extends IfcGeometricSet { - constructor(expressID, Elements) { - super(expressID, Elements); - this.Elements = Elements; - this.type = 987898635; - } - } - IFC4X32.IfcGeometricCurveSet = IfcGeometricCurveSet; - class IfcIShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.OverallWidth = OverallWidth; - this.OverallDepth = OverallDepth; - this.WebThickness = WebThickness; - this.FlangeThickness = FlangeThickness; - this.FilletRadius = FilletRadius; - this.FlangeEdgeRadius = FlangeEdgeRadius; - this.FlangeSlope = FlangeSlope; - this.type = 1484403080; - } - } - IFC4X32.IfcIShapeProfileDef = IfcIShapeProfileDef; - class IfcIndexedPolygonalFace extends IfcTessellatedItem { - constructor(expressID, CoordIndex) { - super(expressID); - this.CoordIndex = CoordIndex; - this.type = 178912537; - } - } - IFC4X32.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace; - class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace { - constructor(expressID, CoordIndex, InnerCoordIndices) { - super(expressID, CoordIndex); - this.CoordIndex = CoordIndex; - this.InnerCoordIndices = InnerCoordIndices; - this.type = 2294589976; - } - } - IFC4X32.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids; - class IfcIndexedPolygonalTextureMap extends IfcIndexedTextureMap { - constructor(expressID, Maps, MappedTo, TexCoords, TexCoordIndices) { - super(expressID, Maps, MappedTo, TexCoords); - this.Maps = Maps; - this.MappedTo = MappedTo; - this.TexCoords = TexCoords; - this.TexCoordIndices = TexCoordIndices; - this.type = 3465909080; - } - } - IFC4X32.IfcIndexedPolygonalTextureMap = IfcIndexedPolygonalTextureMap; - class IfcLShapeProfileDef extends IfcParameterizedProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) { - super(expressID, ProfileType, ProfileName, Position); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Depth = Depth; - this.Width = Width; - this.Thickness = Thickness; - this.FilletRadius = FilletRadius; - this.EdgeRadius = EdgeRadius; - this.LegSlope = LegSlope; - this.type = 572779678; - } - } - IFC4X32.IfcLShapeProfileDef = IfcLShapeProfileDef; - class IfcLaborResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 428585644; - } - } - IFC4X32.IfcLaborResourceType = IfcLaborResourceType; - class IfcLine extends IfcCurve { - constructor(expressID, Pnt, Dir) { - super(expressID); - this.Pnt = Pnt; - this.Dir = Dir; - this.type = 1281925730; - } - } - IFC4X32.IfcLine = IfcLine; - class IfcManifoldSolidBrep extends IfcSolidModel { - constructor(expressID, Outer) { - super(expressID); - this.Outer = Outer; - this.type = 1425443689; - } - } - IFC4X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep; - class IfcObject extends IfcObjectDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 3888040117; - } - } - IFC4X32.IfcObject = IfcObject; - class IfcOffsetCurve extends IfcCurve { - constructor(expressID, BasisCurve) { - super(expressID); - this.BasisCurve = BasisCurve; - this.type = 590820931; - } - } - IFC4X32.IfcOffsetCurve = IfcOffsetCurve; - class IfcOffsetCurve2D extends IfcOffsetCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect) { - super(expressID, BasisCurve); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.type = 3388369263; - } - } - IFC4X32.IfcOffsetCurve2D = IfcOffsetCurve2D; - class IfcOffsetCurve3D extends IfcOffsetCurve { - constructor(expressID, BasisCurve, Distance, SelfIntersect, RefDirection) { - super(expressID, BasisCurve); - this.BasisCurve = BasisCurve; - this.Distance = Distance; - this.SelfIntersect = SelfIntersect; - this.RefDirection = RefDirection; - this.type = 3505215534; - } - } - IFC4X32.IfcOffsetCurve3D = IfcOffsetCurve3D; - class IfcOffsetCurveByDistances extends IfcOffsetCurve { - constructor(expressID, BasisCurve, OffsetValues, Tag) { - super(expressID, BasisCurve); - this.BasisCurve = BasisCurve; - this.OffsetValues = OffsetValues; - this.Tag = Tag; - this.type = 2485787929; - } - } - IFC4X32.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances; - class IfcPcurve extends IfcCurve { - constructor(expressID, BasisSurface, ReferenceCurve) { - super(expressID); - this.BasisSurface = BasisSurface; - this.ReferenceCurve = ReferenceCurve; - this.type = 1682466193; - } - } - IFC4X32.IfcPcurve = IfcPcurve; - class IfcPlanarBox extends IfcPlanarExtent { - constructor(expressID, SizeInX, SizeInY, Placement) { - super(expressID, SizeInX, SizeInY); - this.SizeInX = SizeInX; - this.SizeInY = SizeInY; - this.Placement = Placement; - this.type = 603570806; - } - } - IFC4X32.IfcPlanarBox = IfcPlanarBox; - class IfcPlane extends IfcElementarySurface { - constructor(expressID, Position) { - super(expressID, Position); - this.Position = Position; - this.type = 220341763; - } - } - IFC4X32.IfcPlane = IfcPlane; - class IfcPolynomialCurve extends IfcCurve { - constructor(expressID, Position, CoefficientsX, CoefficientsY, CoefficientsZ) { - super(expressID); - this.Position = Position; - this.CoefficientsX = CoefficientsX; - this.CoefficientsY = CoefficientsY; - this.CoefficientsZ = CoefficientsZ; - this.type = 3381221214; - } - } - IFC4X32.IfcPolynomialCurve = IfcPolynomialCurve; - class IfcPreDefinedColour extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 759155922; - } - } - IFC4X32.IfcPreDefinedColour = IfcPreDefinedColour; - class IfcPreDefinedCurveFont extends IfcPreDefinedItem { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 2559016684; - } - } - IFC4X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont; - class IfcPreDefinedPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3967405729; - } - } - IFC4X32.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet; - class IfcProcedureType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.type = 569719735; - } - } - IFC4X32.IfcProcedureType = IfcProcedureType; - class IfcProcess extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2945172077; - } - } - IFC4X32.IfcProcess = IfcProcess; - class IfcProduct extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 4208778838; - } - } - IFC4X32.IfcProduct = IfcProduct; - class IfcProject extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 103090709; - } - } - IFC4X32.IfcProject = IfcProject; - class IfcProjectLibrary extends IfcContext { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.Phase = Phase; - this.RepresentationContexts = RepresentationContexts; - this.UnitsInContext = UnitsInContext; - this.type = 653396225; - } - } - IFC4X32.IfcProjectLibrary = IfcProjectLibrary; - class IfcPropertyBoundedValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.UpperBoundValue = UpperBoundValue; - this.LowerBoundValue = LowerBoundValue; - this.Unit = Unit; - this.SetPointValue = SetPointValue; - this.type = 871118103; - } - } - IFC4X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue; - class IfcPropertyEnumeratedValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, EnumerationValues, EnumerationReference) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.EnumerationValues = EnumerationValues; - this.EnumerationReference = EnumerationReference; - this.type = 4166981789; - } - } - IFC4X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue; - class IfcPropertyListValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, ListValues, Unit) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.ListValues = ListValues; - this.Unit = Unit; - this.type = 2752243245; - } - } - IFC4X32.IfcPropertyListValue = IfcPropertyListValue; - class IfcPropertyReferenceValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, UsageName, PropertyReference) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.UsageName = UsageName; - this.PropertyReference = PropertyReference; - this.type = 941946838; - } - } - IFC4X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue; - class IfcPropertySet extends IfcPropertySetDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, HasProperties) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.HasProperties = HasProperties; - this.type = 1451395588; - } - } - IFC4X32.IfcPropertySet = IfcPropertySet; - class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.ApplicableEntity = ApplicableEntity; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 492091185; - } - } - IFC4X32.IfcPropertySetTemplate = IfcPropertySetTemplate; - class IfcPropertySingleValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, NominalValue, Unit) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.NominalValue = NominalValue; - this.Unit = Unit; - this.type = 3650150729; - } - } - IFC4X32.IfcPropertySingleValue = IfcPropertySingleValue; - class IfcPropertyTableValue extends IfcSimpleProperty { - constructor(expressID, Name, Specification, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) { - super(expressID, Name, Specification); - this.Name = Name; - this.Specification = Specification; - this.DefiningValues = DefiningValues; - this.DefinedValues = DefinedValues; - this.Expression = Expression; - this.DefiningUnit = DefiningUnit; - this.DefinedUnit = DefinedUnit; - this.CurveInterpolation = CurveInterpolation; - this.type = 110355661; - } - } - IFC4X32.IfcPropertyTableValue = IfcPropertyTableValue; - class IfcPropertyTemplate extends IfcPropertyTemplateDefinition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 3521284610; - } - } - IFC4X32.IfcPropertyTemplate = IfcPropertyTemplate; - class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) { - super(expressID, ProfileType, ProfileName, Position, XDim, YDim); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.XDim = XDim; - this.YDim = YDim; - this.WallThickness = WallThickness; - this.InnerFilletRadius = InnerFilletRadius; - this.OuterFilletRadius = OuterFilletRadius; - this.type = 2770003689; - } - } - IFC4X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef; - class IfcRectangularPyramid extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, Height) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.Height = Height; - this.type = 2798486643; - } - } - IFC4X32.IfcRectangularPyramid = IfcRectangularPyramid; - class IfcRectangularTrimmedSurface extends IfcBoundedSurface { - constructor(expressID, BasisSurface, U1, V1, U2, V2, Usense, Vsense) { - super(expressID); - this.BasisSurface = BasisSurface; - this.U1 = U1; - this.V1 = V1; - this.U2 = U2; - this.V2 = V2; - this.Usense = Usense; - this.Vsense = Vsense; - this.type = 3454111270; - } - } - IFC4X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface; - class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.DefinitionType = DefinitionType; - this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions; - this.type = 3765753017; - } - } - IFC4X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties; - class IfcRelAssigns extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.type = 3939117080; - } - } - IFC4X32.IfcRelAssigns = IfcRelAssigns; - class IfcRelAssignsToActor extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingActor = RelatingActor; - this.ActingRole = ActingRole; - this.type = 1683148259; - } - } - IFC4X32.IfcRelAssignsToActor = IfcRelAssignsToActor; - class IfcRelAssignsToControl extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingControl = RelatingControl; - this.type = 2495723537; - } - } - IFC4X32.IfcRelAssignsToControl = IfcRelAssignsToControl; - class IfcRelAssignsToGroup extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.type = 1307041759; - } - } - IFC4X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup; - class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingGroup = RelatingGroup; - this.Factor = Factor; - this.type = 1027710054; - } - } - IFC4X32.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor; - class IfcRelAssignsToProcess extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProcess = RelatingProcess; - this.QuantityInProcess = QuantityInProcess; - this.type = 4278684876; - } - } - IFC4X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess; - class IfcRelAssignsToProduct extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingProduct = RelatingProduct; - this.type = 2857406711; - } - } - IFC4X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct; - class IfcRelAssignsToResource extends IfcRelAssigns { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatedObjectsType = RelatedObjectsType; - this.RelatingResource = RelatingResource; - this.type = 205026976; - } - } - IFC4X32.IfcRelAssignsToResource = IfcRelAssignsToResource; - class IfcRelAssociates extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.type = 1865459582; - } - } - IFC4X32.IfcRelAssociates = IfcRelAssociates; - class IfcRelAssociatesApproval extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingApproval = RelatingApproval; - this.type = 4095574036; - } - } - IFC4X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval; - class IfcRelAssociatesClassification extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingClassification = RelatingClassification; - this.type = 919958153; - } - } - IFC4X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification; - class IfcRelAssociatesConstraint extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.Intent = Intent; - this.RelatingConstraint = RelatingConstraint; - this.type = 2728634034; - } - } - IFC4X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint; - class IfcRelAssociatesDocument extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingDocument = RelatingDocument; - this.type = 982818633; - } - } - IFC4X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument; - class IfcRelAssociatesLibrary extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingLibrary = RelatingLibrary; - this.type = 3840914261; - } - } - IFC4X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary; - class IfcRelAssociatesMaterial extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingMaterial = RelatingMaterial; - this.type = 2655215786; - } - } - IFC4X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial; - class IfcRelAssociatesProfileDef extends IfcRelAssociates { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileDef) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingProfileDef = RelatingProfileDef; - this.type = 1033248425; - } - } - IFC4X32.IfcRelAssociatesProfileDef = IfcRelAssociatesProfileDef; - class IfcRelConnects extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 826625072; - } - } - IFC4X32.IfcRelConnects = IfcRelConnects; - class IfcRelConnectsElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.type = 1204542856; - } - } - IFC4X32.IfcRelConnectsElements = IfcRelConnectsElements; - class IfcRelConnectsPathElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RelatingPriorities = RelatingPriorities; - this.RelatedPriorities = RelatedPriorities; - this.RelatedConnectionType = RelatedConnectionType; - this.RelatingConnectionType = RelatingConnectionType; - this.type = 3945020480; - } - } - IFC4X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements; - class IfcRelConnectsPortToElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedElement = RelatedElement; - this.type = 4201705270; - } - } - IFC4X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement; - class IfcRelConnectsPorts extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPort = RelatingPort; - this.RelatedPort = RelatedPort; - this.RealizingElement = RealizingElement; - this.type = 3190031847; - } - } - IFC4X32.IfcRelConnectsPorts = IfcRelConnectsPorts; - class IfcRelConnectsStructuralActivity extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedStructuralActivity = RelatedStructuralActivity; - this.type = 2127690289; - } - } - IFC4X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity; - class IfcRelConnectsStructuralMember extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 1638771189; - } - } - IFC4X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember; - class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingStructuralMember = RelatingStructuralMember; - this.RelatedStructuralConnection = RelatedStructuralConnection; - this.AppliedCondition = AppliedCondition; - this.AdditionalConditions = AdditionalConditions; - this.SupportedLength = SupportedLength; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.ConnectionConstraint = ConnectionConstraint; - this.type = 504942748; - } - } - IFC4X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity; - class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ConnectionGeometry = ConnectionGeometry; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.RealizingElements = RealizingElements; - this.ConnectionType = ConnectionType; - this.type = 3678494232; - } - } - IFC4X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements; - class IfcRelContainedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 3242617779; - } - } - IFC4X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure; - class IfcRelCoversBldgElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedCoverings = RelatedCoverings; - this.type = 886880790; - } - } - IFC4X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements; - class IfcRelCoversSpaces extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedCoverings = RelatedCoverings; - this.type = 2802773753; - } - } - IFC4X32.IfcRelCoversSpaces = IfcRelCoversSpaces; - class IfcRelDeclares extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingContext = RelatingContext; - this.RelatedDefinitions = RelatedDefinitions; - this.type = 2565941209; - } - } - IFC4X32.IfcRelDeclares = IfcRelDeclares; - class IfcRelDecomposes extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 2551354335; - } - } - IFC4X32.IfcRelDecomposes = IfcRelDecomposes; - class IfcRelDefines extends IfcRelationship { - constructor(expressID, GlobalId, OwnerHistory, Name, Description) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.type = 693640335; - } - } - IFC4X32.IfcRelDefines = IfcRelDefines; - class IfcRelDefinesByObject extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingObject = RelatingObject; - this.type = 1462361463; - } - } - IFC4X32.IfcRelDefinesByObject = IfcRelDefinesByObject; - class IfcRelDefinesByProperties extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingPropertyDefinition = RelatingPropertyDefinition; - this.type = 4186316022; - } - } - IFC4X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties; - class IfcRelDefinesByTemplate extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedPropertySets = RelatedPropertySets; - this.RelatingTemplate = RelatingTemplate; - this.type = 307848117; - } - } - IFC4X32.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate; - class IfcRelDefinesByType extends IfcRelDefines { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedObjects = RelatedObjects; - this.RelatingType = RelatingType; - this.type = 781010003; - } - } - IFC4X32.IfcRelDefinesByType = IfcRelDefinesByType; - class IfcRelFillsElement extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingOpeningElement = RelatingOpeningElement; - this.RelatedBuildingElement = RelatedBuildingElement; - this.type = 3940055652; - } - } - IFC4X32.IfcRelFillsElement = IfcRelFillsElement; - class IfcRelFlowControlElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedControlElements = RelatedControlElements; - this.RelatingFlowElement = RelatingFlowElement; - this.type = 279856033; - } - } - IFC4X32.IfcRelFlowControlElements = IfcRelFlowControlElements; - class IfcRelInterferesElements extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceSpace, InterferenceType, ImpliedOrder) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedElement = RelatedElement; - this.InterferenceGeometry = InterferenceGeometry; - this.InterferenceSpace = InterferenceSpace; - this.InterferenceType = InterferenceType; - this.ImpliedOrder = ImpliedOrder; - this.type = 427948657; - } - } - IFC4X32.IfcRelInterferesElements = IfcRelInterferesElements; - class IfcRelNests extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 3268803585; - } - } - IFC4X32.IfcRelNests = IfcRelNests; - class IfcRelPositions extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingPositioningElement = RelatingPositioningElement; - this.RelatedProducts = RelatedProducts; - this.type = 1441486842; - } - } - IFC4X32.IfcRelPositions = IfcRelPositions; - class IfcRelProjectsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedFeatureElement = RelatedFeatureElement; - this.type = 750771296; - } - } - IFC4X32.IfcRelProjectsElement = IfcRelProjectsElement; - class IfcRelReferencedInSpatialStructure extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatedElements = RelatedElements; - this.RelatingStructure = RelatingStructure; - this.type = 1245217292; - } - } - IFC4X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure; - class IfcRelSequence extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingProcess = RelatingProcess; - this.RelatedProcess = RelatedProcess; - this.TimeLag = TimeLag; - this.SequenceType = SequenceType; - this.UserDefinedSequenceType = UserDefinedSequenceType; - this.type = 4122056220; - } - } - IFC4X32.IfcRelSequence = IfcRelSequence; - class IfcRelServicesBuildings extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSystem = RelatingSystem; - this.RelatedBuildings = RelatedBuildings; - this.type = 366585022; - } - } - IFC4X32.IfcRelServicesBuildings = IfcRelServicesBuildings; - class IfcRelSpaceBoundary extends IfcRelConnects { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.type = 3451746338; - } - } - IFC4X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary; - class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.type = 3523091289; - } - } - IFC4X32.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel; - class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) { - super(expressID, GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingSpace = RelatingSpace; - this.RelatedBuildingElement = RelatedBuildingElement; - this.ConnectionGeometry = ConnectionGeometry; - this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary; - this.InternalOrExternalBoundary = InternalOrExternalBoundary; - this.ParentBoundary = ParentBoundary; - this.CorrespondingBoundary = CorrespondingBoundary; - this.type = 1521410863; - } - } - IFC4X32.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel; - class IfcRelVoidsElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingBuildingElement = RelatingBuildingElement; - this.RelatedOpeningElement = RelatedOpeningElement; - this.type = 1401173127; - } - } - IFC4X32.IfcRelVoidsElement = IfcRelVoidsElement; - class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment { - constructor(expressID, Transition, SameSense, ParentCurve, ParamLength) { - super(expressID, Transition, SameSense, ParentCurve); - this.Transition = Transition; - this.SameSense = SameSense; - this.ParentCurve = ParentCurve; - this.ParamLength = ParamLength; - this.type = 816062949; - } - } - IFC4X32.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment; - class IfcResource extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.type = 2914609552; - } - } - IFC4X32.IfcResource = IfcResource; - class IfcRevolvedAreaSolid extends IfcSweptAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle) { - super(expressID, SweptArea, Position); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.type = 1856042241; - } - } - IFC4X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid; - class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid { - constructor(expressID, SweptArea, Position, Axis, Angle, EndSweptArea) { - super(expressID, SweptArea, Position, Axis, Angle); - this.SweptArea = SweptArea; - this.Position = Position; - this.Axis = Axis; - this.Angle = Angle; - this.EndSweptArea = EndSweptArea; - this.type = 3243963512; - } - } - IFC4X32.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered; - class IfcRightCircularCone extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, BottomRadius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.BottomRadius = BottomRadius; - this.type = 4158566097; - } - } - IFC4X32.IfcRightCircularCone = IfcRightCircularCone; - class IfcRightCircularCylinder extends IfcCsgPrimitive3D { - constructor(expressID, Position, Height, Radius) { - super(expressID, Position); - this.Position = Position; - this.Height = Height; - this.Radius = Radius; - this.type = 3626867408; - } - } - IFC4X32.IfcRightCircularCylinder = IfcRightCircularCylinder; - class IfcSectionedSolid extends IfcSolidModel { - constructor(expressID, Directrix, CrossSections) { - super(expressID); - this.Directrix = Directrix; - this.CrossSections = CrossSections; - this.type = 1862484736; - } - } - IFC4X32.IfcSectionedSolid = IfcSectionedSolid; - class IfcSectionedSolidHorizontal extends IfcSectionedSolid { - constructor(expressID, Directrix, CrossSections, CrossSectionPositions) { - super(expressID, Directrix, CrossSections); - this.Directrix = Directrix; - this.CrossSections = CrossSections; - this.CrossSectionPositions = CrossSectionPositions; - this.type = 1290935644; - } - } - IFC4X32.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal; - class IfcSectionedSurface extends IfcSurface { - constructor(expressID, Directrix, CrossSectionPositions, CrossSections) { - super(expressID); - this.Directrix = Directrix; - this.CrossSectionPositions = CrossSectionPositions; - this.CrossSections = CrossSections; - this.type = 1356537516; - } - } - IFC4X32.IfcSectionedSurface = IfcSectionedSurface; - class IfcSimplePropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.TemplateType = TemplateType; - this.PrimaryMeasureType = PrimaryMeasureType; - this.SecondaryMeasureType = SecondaryMeasureType; - this.Enumerators = Enumerators; - this.PrimaryUnit = PrimaryUnit; - this.SecondaryUnit = SecondaryUnit; - this.Expression = Expression; - this.AccessState = AccessState; - this.type = 3663146110; - } - } - IFC4X32.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate; - class IfcSpatialElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 1412071761; - } - } - IFC4X32.IfcSpatialElement = IfcSpatialElement; - class IfcSpatialElementType extends IfcTypeProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 710998568; - } - } - IFC4X32.IfcSpatialElementType = IfcSpatialElementType; - class IfcSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 2706606064; - } - } - IFC4X32.IfcSpatialStructureElement = IfcSpatialStructureElement; - class IfcSpatialStructureElementType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893378262; - } - } - IFC4X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType; - class IfcSpatialZone extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 463610769; - } - } - IFC4X32.IfcSpatialZone = IfcSpatialZone; - class IfcSpatialZoneType extends IfcSpatialElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 2481509218; - } - } - IFC4X32.IfcSpatialZoneType = IfcSpatialZoneType; - class IfcSphere extends IfcCsgPrimitive3D { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 451544542; - } - } - IFC4X32.IfcSphere = IfcSphere; - class IfcSphericalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 4015995234; - } - } - IFC4X32.IfcSphericalSurface = IfcSphericalSurface; - class IfcSpiral extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2735484536; - } - } - IFC4X32.IfcSpiral = IfcSpiral; - class IfcStructuralActivity extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3544373492; - } - } - IFC4X32.IfcStructuralActivity = IfcStructuralActivity; - class IfcStructuralItem extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3136571912; - } - } - IFC4X32.IfcStructuralItem = IfcStructuralItem; - class IfcStructuralMember extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 530289379; - } - } - IFC4X32.IfcStructuralMember = IfcStructuralMember; - class IfcStructuralReaction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 3689010777; - } - } - IFC4X32.IfcStructuralReaction = IfcStructuralReaction; - class IfcStructuralSurfaceMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 3979015343; - } - } - IFC4X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember; - class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Thickness = Thickness; - this.type = 2218152070; - } - } - IFC4X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying; - class IfcStructuralSurfaceReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 603775116; - } - } - IFC4X32.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction; - class IfcSubContractResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4095615324; - } - } - IFC4X32.IfcSubContractResourceType = IfcSubContractResourceType; - class IfcSurfaceCurve extends IfcCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 699246055; - } - } - IFC4X32.IfcSurfaceCurve = IfcSurfaceCurve; - class IfcSurfaceCurveSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) { - super(expressID, SweptArea, Position, Directrix, StartParam, EndParam); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.ReferenceSurface = ReferenceSurface; - this.type = 2028607225; - } - } - IFC4X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid; - class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, ExtrudedDirection, Depth) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.ExtrudedDirection = ExtrudedDirection; - this.Depth = Depth; - this.type = 2809605785; - } - } - IFC4X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion; - class IfcSurfaceOfRevolution extends IfcSweptSurface { - constructor(expressID, SweptCurve, Position, AxisPosition) { - super(expressID, SweptCurve, Position); - this.SweptCurve = SweptCurve; - this.Position = Position; - this.AxisPosition = AxisPosition; - this.type = 4124788165; - } - } - IFC4X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution; - class IfcSystemFurnitureElementType extends IfcFurnishingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1580310250; - } - } - IFC4X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType; - class IfcTask extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Status = Status; - this.WorkMethod = WorkMethod; - this.IsMilestone = IsMilestone; - this.Priority = Priority; - this.TaskTime = TaskTime; - this.PredefinedType = PredefinedType; - this.type = 3473067441; - } - } - IFC4X32.IfcTask = IfcTask; - class IfcTaskType extends IfcTypeProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ProcessType = ProcessType; - this.PredefinedType = PredefinedType; - this.WorkMethod = WorkMethod; - this.type = 3206491090; - } - } - IFC4X32.IfcTaskType = IfcTaskType; - class IfcTessellatedFaceSet extends IfcTessellatedItem { - constructor(expressID, Coordinates, Closed) { - super(expressID); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.type = 2387106220; - } - } - IFC4X32.IfcTessellatedFaceSet = IfcTessellatedFaceSet; - class IfcThirdOrderPolynomialSpiral extends IfcSpiral { - constructor(expressID, Position, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.CubicTerm = CubicTerm; - this.QuadraticTerm = QuadraticTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 782932809; - } - } - IFC4X32.IfcThirdOrderPolynomialSpiral = IfcThirdOrderPolynomialSpiral; - class IfcToroidalSurface extends IfcElementarySurface { - constructor(expressID, Position, MajorRadius, MinorRadius) { - super(expressID, Position); - this.Position = Position; - this.MajorRadius = MajorRadius; - this.MinorRadius = MinorRadius; - this.type = 1935646853; - } - } - IFC4X32.IfcToroidalSurface = IfcToroidalSurface; - class IfcTransportationDeviceType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3665877780; - } - } - IFC4X32.IfcTransportationDeviceType = IfcTransportationDeviceType; - class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex) { - super(expressID, Coordinates, Closed); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Normals = Normals; - this.CoordIndex = CoordIndex; - this.PnIndex = PnIndex; - this.type = 2916149573; - } - } - IFC4X32.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet; - class IfcTriangulatedIrregularNetwork extends IfcTriangulatedFaceSet { - constructor(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex, Flags) { - super(expressID, Coordinates, Closed, Normals, CoordIndex, PnIndex); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Normals = Normals; - this.CoordIndex = CoordIndex; - this.PnIndex = PnIndex; - this.Flags = Flags; - this.type = 1229763772; - } - } - IFC4X32.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork; - class IfcVehicleType extends IfcTransportationDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3651464721; - } - } - IFC4X32.IfcVehicleType = IfcVehicleType; - class IfcWindowLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.TransomThickness = TransomThickness; - this.MullionThickness = MullionThickness; - this.FirstTransomOffset = FirstTransomOffset; - this.SecondTransomOffset = SecondTransomOffset; - this.FirstMullionOffset = FirstMullionOffset; - this.SecondMullionOffset = SecondMullionOffset; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningOffset = LiningOffset; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 336235671; - } - } - IFC4X32.IfcWindowLiningProperties = IfcWindowLiningProperties; - class IfcWindowPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 512836454; - } - } - IFC4X32.IfcWindowPanelProperties = IfcWindowPanelProperties; - class IfcActor extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.type = 2296667514; - } - } - IFC4X32.IfcActor = IfcActor; - class IfcAdvancedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 1635779807; - } - } - IFC4X32.IfcAdvancedBrep = IfcAdvancedBrep; - class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 2603310189; - } - } - IFC4X32.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids; - class IfcAnnotation extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 1674181508; - } - } - IFC4X32.IfcAnnotation = IfcAnnotation; - class IfcBSplineSurface extends IfcBoundedSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) { - super(expressID); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.type = 2887950389; - } - } - IFC4X32.IfcBSplineSurface = IfcBSplineSurface; - class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.type = 167062518; - } - } - IFC4X32.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots; - class IfcBlock extends IfcCsgPrimitive3D { - constructor(expressID, Position, XLength, YLength, ZLength) { - super(expressID, Position); - this.Position = Position; - this.XLength = XLength; - this.YLength = YLength; - this.ZLength = ZLength; - this.type = 1334484129; - } - } - IFC4X32.IfcBlock = IfcBlock; - class IfcBooleanClippingResult extends IfcBooleanResult { - constructor(expressID, Operator, FirstOperand, SecondOperand) { - super(expressID, Operator, FirstOperand, SecondOperand); - this.Operator = Operator; - this.FirstOperand = FirstOperand; - this.SecondOperand = SecondOperand; - this.type = 3649129432; - } - } - IFC4X32.IfcBooleanClippingResult = IfcBooleanClippingResult; - class IfcBoundedCurve extends IfcCurve { - constructor(expressID) { - super(expressID); - this.type = 1260505505; - } - } - IFC4X32.IfcBoundedCurve = IfcBoundedCurve; - class IfcBuildingStorey extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.Elevation = Elevation; - this.type = 3124254112; - } - } - IFC4X32.IfcBuildingStorey = IfcBuildingStorey; - class IfcBuiltElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1626504194; - } - } - IFC4X32.IfcBuiltElementType = IfcBuiltElementType; - class IfcChimneyType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2197970202; - } - } - IFC4X32.IfcChimneyType = IfcChimneyType; - class IfcCircleHollowProfileDef extends IfcCircleProfileDef { - constructor(expressID, ProfileType, ProfileName, Position, Radius, WallThickness) { - super(expressID, ProfileType, ProfileName, Position, Radius); - this.ProfileType = ProfileType; - this.ProfileName = ProfileName; - this.Position = Position; - this.Radius = Radius; - this.WallThickness = WallThickness; - this.type = 2937912522; - } - } - IFC4X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef; - class IfcCivilElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3893394355; - } - } - IFC4X32.IfcCivilElementType = IfcCivilElementType; - class IfcClothoid extends IfcSpiral { - constructor(expressID, Position, ClothoidConstant) { - super(expressID, Position); - this.Position = Position; - this.ClothoidConstant = ClothoidConstant; - this.type = 3497074424; - } - } - IFC4X32.IfcClothoid = IfcClothoid; - class IfcColumnType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 300633059; - } - } - IFC4X32.IfcColumnType = IfcColumnType; - class IfcComplexPropertyTemplate extends IfcPropertyTemplate { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.UsageName = UsageName; - this.TemplateType = TemplateType; - this.HasPropertyTemplates = HasPropertyTemplates; - this.type = 3875453745; - } - } - IFC4X32.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate; - class IfcCompositeCurve extends IfcBoundedCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 3732776249; - } - } - IFC4X32.IfcCompositeCurve = IfcCompositeCurve; - class IfcCompositeCurveOnSurface extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 15328376; - } - } - IFC4X32.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface; - class IfcConic extends IfcCurve { - constructor(expressID, Position) { - super(expressID); - this.Position = Position; - this.type = 2510884976; - } - } - IFC4X32.IfcConic = IfcConic; - class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 2185764099; - } - } - IFC4X32.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType; - class IfcConstructionMaterialResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 4105962743; - } - } - IFC4X32.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType; - class IfcConstructionProductResourceType extends IfcConstructionResourceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.ResourceType = ResourceType; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1525564444; - } - } - IFC4X32.IfcConstructionProductResourceType = IfcConstructionProductResourceType; - class IfcConstructionResource extends IfcResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.type = 2559216714; - } - } - IFC4X32.IfcConstructionResource = IfcConstructionResource; - class IfcControl extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.type = 3293443760; - } - } - IFC4X32.IfcControl = IfcControl; - class IfcCosineSpiral extends IfcSpiral { - constructor(expressID, Position, CosineTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.CosineTerm = CosineTerm; - this.ConstantTerm = ConstantTerm; - this.type = 2000195564; - } - } - IFC4X32.IfcCosineSpiral = IfcCosineSpiral; - class IfcCostItem extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.CostValues = CostValues; - this.CostQuantities = CostQuantities; - this.type = 3895139033; - } - } - IFC4X32.IfcCostItem = IfcCostItem; - class IfcCostSchedule extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.SubmittedOn = SubmittedOn; - this.UpdateDate = UpdateDate; - this.type = 1419761937; - } - } - IFC4X32.IfcCostSchedule = IfcCostSchedule; - class IfcCourseType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4189326743; - } - } - IFC4X32.IfcCourseType = IfcCourseType; - class IfcCoveringType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1916426348; - } - } - IFC4X32.IfcCoveringType = IfcCoveringType; - class IfcCrewResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3295246426; - } - } - IFC4X32.IfcCrewResource = IfcCrewResource; - class IfcCurtainWallType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1457835157; - } - } - IFC4X32.IfcCurtainWallType = IfcCurtainWallType; - class IfcCylindricalSurface extends IfcElementarySurface { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 1213902940; - } - } - IFC4X32.IfcCylindricalSurface = IfcCylindricalSurface; - class IfcDeepFoundationType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1306400036; - } - } - IFC4X32.IfcDeepFoundationType = IfcDeepFoundationType; - class IfcDirectrixDerivedReferenceSweptAreaSolid extends IfcFixedReferenceSweptAreaSolid { - constructor(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) { - super(expressID, SweptArea, Position, Directrix, StartParam, EndParam, FixedReference); - this.SweptArea = SweptArea; - this.Position = Position; - this.Directrix = Directrix; - this.StartParam = StartParam; - this.EndParam = EndParam; - this.FixedReference = FixedReference; - this.type = 4234616927; - } - } - IFC4X32.IfcDirectrixDerivedReferenceSweptAreaSolid = IfcDirectrixDerivedReferenceSweptAreaSolid; - class IfcDistributionElementType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3256556792; - } - } - IFC4X32.IfcDistributionElementType = IfcDistributionElementType; - class IfcDistributionFlowElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3849074793; - } - } - IFC4X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType; - class IfcDoorLiningProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.LiningDepth = LiningDepth; - this.LiningThickness = LiningThickness; - this.ThresholdDepth = ThresholdDepth; - this.ThresholdThickness = ThresholdThickness; - this.TransomThickness = TransomThickness; - this.TransomOffset = TransomOffset; - this.LiningOffset = LiningOffset; - this.ThresholdOffset = ThresholdOffset; - this.CasingThickness = CasingThickness; - this.CasingDepth = CasingDepth; - this.ShapeAspectStyle = ShapeAspectStyle; - this.LiningToPanelOffsetX = LiningToPanelOffsetX; - this.LiningToPanelOffsetY = LiningToPanelOffsetY; - this.type = 2963535650; - } - } - IFC4X32.IfcDoorLiningProperties = IfcDoorLiningProperties; - class IfcDoorPanelProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.PanelDepth = PanelDepth; - this.PanelOperation = PanelOperation; - this.PanelWidth = PanelWidth; - this.PanelPosition = PanelPosition; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 1714330368; - } - } - IFC4X32.IfcDoorPanelProperties = IfcDoorPanelProperties; - class IfcDoorType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 2323601079; - } - } - IFC4X32.IfcDoorType = IfcDoorType; - class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 445594917; - } - } - IFC4X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour; - class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont { - constructor(expressID, Name) { - super(expressID, Name); - this.Name = Name; - this.type = 4006246654; - } - } - IFC4X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont; - class IfcElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1758889154; - } - } - IFC4X32.IfcElement = IfcElement; - class IfcElementAssembly extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.AssemblyPlace = AssemblyPlace; - this.PredefinedType = PredefinedType; - this.type = 4123344466; - } - } - IFC4X32.IfcElementAssembly = IfcElementAssembly; - class IfcElementAssemblyType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2397081782; - } - } - IFC4X32.IfcElementAssemblyType = IfcElementAssemblyType; - class IfcElementComponent extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1623761950; - } - } - IFC4X32.IfcElementComponent = IfcElementComponent; - class IfcElementComponentType extends IfcElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2590856083; - } - } - IFC4X32.IfcElementComponentType = IfcElementComponentType; - class IfcEllipse extends IfcConic { - constructor(expressID, Position, SemiAxis1, SemiAxis2) { - super(expressID, Position); - this.Position = Position; - this.SemiAxis1 = SemiAxis1; - this.SemiAxis2 = SemiAxis2; - this.type = 1704287377; - } - } - IFC4X32.IfcEllipse = IfcEllipse; - class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2107101300; - } - } - IFC4X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType; - class IfcEngineType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 132023988; - } - } - IFC4X32.IfcEngineType = IfcEngineType; - class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3174744832; - } - } - IFC4X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType; - class IfcEvaporatorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3390157468; - } - } - IFC4X32.IfcEvaporatorType = IfcEvaporatorType; - class IfcEvent extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.EventTriggerType = EventTriggerType; - this.UserDefinedEventTriggerType = UserDefinedEventTriggerType; - this.EventOccurenceTime = EventOccurenceTime; - this.type = 4148101412; - } - } - IFC4X32.IfcEvent = IfcEvent; - class IfcExternalSpatialStructureElement extends IfcSpatialElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.type = 2853485674; - } - } - IFC4X32.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement; - class IfcFacetedBrep extends IfcManifoldSolidBrep { - constructor(expressID, Outer) { - super(expressID, Outer); - this.Outer = Outer; - this.type = 807026263; - } - } - IFC4X32.IfcFacetedBrep = IfcFacetedBrep; - class IfcFacetedBrepWithVoids extends IfcFacetedBrep { - constructor(expressID, Outer, Voids) { - super(expressID, Outer); - this.Outer = Outer; - this.Voids = Voids; - this.type = 3737207727; - } - } - IFC4X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids; - class IfcFacility extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.type = 24185140; - } - } - IFC4X32.IfcFacility = IfcFacility; - class IfcFacilityPart extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.type = 1310830890; - } - } - IFC4X32.IfcFacilityPart = IfcFacilityPart; - class IfcFacilityPartCommon extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 4228831410; - } - } - IFC4X32.IfcFacilityPartCommon = IfcFacilityPartCommon; - class IfcFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 647756555; - } - } - IFC4X32.IfcFastener = IfcFastener; - class IfcFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2489546625; - } - } - IFC4X32.IfcFastenerType = IfcFastenerType; - class IfcFeatureElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2827207264; - } - } - IFC4X32.IfcFeatureElement = IfcFeatureElement; - class IfcFeatureElementAddition extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2143335405; - } - } - IFC4X32.IfcFeatureElementAddition = IfcFeatureElementAddition; - class IfcFeatureElementSubtraction extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1287392070; - } - } - IFC4X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction; - class IfcFlowControllerType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3907093117; - } - } - IFC4X32.IfcFlowControllerType = IfcFlowControllerType; - class IfcFlowFittingType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3198132628; - } - } - IFC4X32.IfcFlowFittingType = IfcFlowFittingType; - class IfcFlowMeterType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3815607619; - } - } - IFC4X32.IfcFlowMeterType = IfcFlowMeterType; - class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1482959167; - } - } - IFC4X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType; - class IfcFlowSegmentType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1834744321; - } - } - IFC4X32.IfcFlowSegmentType = IfcFlowSegmentType; - class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 1339347760; - } - } - IFC4X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType; - class IfcFlowTerminalType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2297155007; - } - } - IFC4X32.IfcFlowTerminalType = IfcFlowTerminalType; - class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 3009222698; - } - } - IFC4X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType; - class IfcFootingType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1893162501; - } - } - IFC4X32.IfcFootingType = IfcFootingType; - class IfcFurnishingElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 263784265; - } - } - IFC4X32.IfcFurnishingElement = IfcFurnishingElement; - class IfcFurniture extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1509553395; - } - } - IFC4X32.IfcFurniture = IfcFurniture; - class IfcGeographicElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3493046030; - } - } - IFC4X32.IfcGeographicElement = IfcGeographicElement; - class IfcGeotechnicalElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4230923436; - } - } - IFC4X32.IfcGeotechnicalElement = IfcGeotechnicalElement; - class IfcGeotechnicalStratum extends IfcGeotechnicalElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1594536857; - } - } - IFC4X32.IfcGeotechnicalStratum = IfcGeotechnicalStratum; - class IfcGradientCurve extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.BaseCurve = BaseCurve; - this.EndPoint = EndPoint; - this.type = 2898700619; - } - } - IFC4X32.IfcGradientCurve = IfcGradientCurve; - class IfcGroup extends IfcObject { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2706460486; - } - } - IFC4X32.IfcGroup = IfcGroup; - class IfcHeatExchangerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1251058090; - } - } - IFC4X32.IfcHeatExchangerType = IfcHeatExchangerType; - class IfcHumidifierType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1806887404; - } - } - IFC4X32.IfcHumidifierType = IfcHumidifierType; - class IfcImpactProtectionDevice extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2568555532; - } - } - IFC4X32.IfcImpactProtectionDevice = IfcImpactProtectionDevice; - class IfcImpactProtectionDeviceType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3948183225; - } - } - IFC4X32.IfcImpactProtectionDeviceType = IfcImpactProtectionDeviceType; - class IfcIndexedPolyCurve extends IfcBoundedCurve { - constructor(expressID, Points, Segments, SelfIntersect) { - super(expressID); - this.Points = Points; - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 2571569899; - } - } - IFC4X32.IfcIndexedPolyCurve = IfcIndexedPolyCurve; - class IfcInterceptorType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3946677679; - } - } - IFC4X32.IfcInterceptorType = IfcInterceptorType; - class IfcIntersectionCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 3113134337; - } - } - IFC4X32.IfcIntersectionCurve = IfcIntersectionCurve; - class IfcInventory extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.Jurisdiction = Jurisdiction; - this.ResponsiblePersons = ResponsiblePersons; - this.LastUpdateDate = LastUpdateDate; - this.CurrentValue = CurrentValue; - this.OriginalValue = OriginalValue; - this.type = 2391368822; - } - } - IFC4X32.IfcInventory = IfcInventory; - class IfcJunctionBoxType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4288270099; - } - } - IFC4X32.IfcJunctionBoxType = IfcJunctionBoxType; - class IfcKerbType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, Mountable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.Mountable = Mountable; - this.type = 679976338; - } - } - IFC4X32.IfcKerbType = IfcKerbType; - class IfcLaborResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3827777499; - } - } - IFC4X32.IfcLaborResource = IfcLaborResource; - class IfcLampType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1051575348; - } - } - IFC4X32.IfcLampType = IfcLampType; - class IfcLightFixtureType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1161773419; - } - } - IFC4X32.IfcLightFixtureType = IfcLightFixtureType; - class IfcLinearElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 2176059722; - } - } - IFC4X32.IfcLinearElement = IfcLinearElement; - class IfcLiquidTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1770583370; - } - } - IFC4X32.IfcLiquidTerminalType = IfcLiquidTerminalType; - class IfcMarineFacility extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 525669439; - } - } - IFC4X32.IfcMarineFacility = IfcMarineFacility; - class IfcMarinePart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 976884017; - } - } - IFC4X32.IfcMarinePart = IfcMarinePart; - class IfcMechanicalFastener extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.PredefinedType = PredefinedType; - this.type = 377706215; - } - } - IFC4X32.IfcMechanicalFastener = IfcMechanicalFastener; - class IfcMechanicalFastenerType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.NominalLength = NominalLength; - this.type = 2108223431; - } - } - IFC4X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType; - class IfcMedicalDeviceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1114901282; - } - } - IFC4X32.IfcMedicalDeviceType = IfcMedicalDeviceType; - class IfcMemberType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3181161470; - } - } - IFC4X32.IfcMemberType = IfcMemberType; - class IfcMobileTelecommunicationsApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1950438474; - } - } - IFC4X32.IfcMobileTelecommunicationsApplianceType = IfcMobileTelecommunicationsApplianceType; - class IfcMooringDeviceType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 710110818; - } - } - IFC4X32.IfcMooringDeviceType = IfcMooringDeviceType; - class IfcMotorConnectionType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 977012517; - } - } - IFC4X32.IfcMotorConnectionType = IfcMotorConnectionType; - class IfcNavigationElementType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 506776471; - } - } - IFC4X32.IfcNavigationElementType = IfcNavigationElementType; - class IfcOccupant extends IfcActor { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheActor = TheActor; - this.PredefinedType = PredefinedType; - this.type = 4143007308; - } - } - IFC4X32.IfcOccupant = IfcOccupant; - class IfcOpeningElement extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3588315303; - } - } - IFC4X32.IfcOpeningElement = IfcOpeningElement; - class IfcOutletType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2837617999; - } - } - IFC4X32.IfcOutletType = IfcOutletType; - class IfcPavementType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 514975943; - } - } - IFC4X32.IfcPavementType = IfcPavementType; - class IfcPerformanceHistory extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LifeCyclePhase = LifeCyclePhase; - this.PredefinedType = PredefinedType; - this.type = 2382730787; - } - } - IFC4X32.IfcPerformanceHistory = IfcPerformanceHistory; - class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.OperationType = OperationType; - this.PanelPosition = PanelPosition; - this.FrameDepth = FrameDepth; - this.FrameThickness = FrameThickness; - this.ShapeAspectStyle = ShapeAspectStyle; - this.type = 3566463478; - } - } - IFC4X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties; - class IfcPermit extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3327091369; - } - } - IFC4X32.IfcPermit = IfcPermit; - class IfcPileType extends IfcDeepFoundationType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1158309216; - } - } - IFC4X32.IfcPileType = IfcPileType; - class IfcPipeFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 804291784; - } - } - IFC4X32.IfcPipeFittingType = IfcPipeFittingType; - class IfcPipeSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4231323485; - } - } - IFC4X32.IfcPipeSegmentType = IfcPipeSegmentType; - class IfcPlateType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4017108033; - } - } - IFC4X32.IfcPlateType = IfcPlateType; - class IfcPolygonalFaceSet extends IfcTessellatedFaceSet { - constructor(expressID, Coordinates, Closed, Faces, PnIndex) { - super(expressID, Coordinates, Closed); - this.Coordinates = Coordinates; - this.Closed = Closed; - this.Faces = Faces; - this.PnIndex = PnIndex; - this.type = 2839578677; - } - } - IFC4X32.IfcPolygonalFaceSet = IfcPolygonalFaceSet; - class IfcPolyline extends IfcBoundedCurve { - constructor(expressID, Points) { - super(expressID); - this.Points = Points; - this.type = 3724593414; - } - } - IFC4X32.IfcPolyline = IfcPolyline; - class IfcPort extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 3740093272; - } - } - IFC4X32.IfcPort = IfcPort; - class IfcPositioningElement extends IfcProduct { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1946335990; - } - } - IFC4X32.IfcPositioningElement = IfcPositioningElement; - class IfcProcedure extends IfcProcess { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.PredefinedType = PredefinedType; - this.type = 2744685151; - } - } - IFC4X32.IfcProcedure = IfcProcedure; - class IfcProjectOrder extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 2904328755; - } - } - IFC4X32.IfcProjectOrder = IfcProjectOrder; - class IfcProjectionElement extends IfcFeatureElementAddition { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3651124850; - } - } - IFC4X32.IfcProjectionElement = IfcProjectionElement; - class IfcProtectiveDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1842657554; - } - } - IFC4X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType; - class IfcPumpType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2250791053; - } - } - IFC4X32.IfcPumpType = IfcPumpType; - class IfcRailType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1763565496; - } - } - IFC4X32.IfcRailType = IfcRailType; - class IfcRailingType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2893384427; - } - } - IFC4X32.IfcRailingType = IfcRailingType; - class IfcRailway extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 3992365140; - } - } - IFC4X32.IfcRailway = IfcRailway; - class IfcRailwayPart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 1891881377; - } - } - IFC4X32.IfcRailwayPart = IfcRailwayPart; - class IfcRampFlightType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2324767716; - } - } - IFC4X32.IfcRampFlightType = IfcRampFlightType; - class IfcRampType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1469900589; - } - } - IFC4X32.IfcRampType = IfcRampType; - class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots { - constructor(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) { - super(expressID, UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec); - this.UDegree = UDegree; - this.VDegree = VDegree; - this.ControlPointsList = ControlPointsList; - this.SurfaceForm = SurfaceForm; - this.UClosed = UClosed; - this.VClosed = VClosed; - this.SelfIntersect = SelfIntersect; - this.UMultiplicities = UMultiplicities; - this.VMultiplicities = VMultiplicities; - this.UKnots = UKnots; - this.VKnots = VKnots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 683857671; - } - } - IFC4X32.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots; - class IfcReferent extends IfcPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 4021432810; - } - } - IFC4X32.IfcReferent = IfcReferent; - class IfcReinforcingElement extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.type = 3027567501; - } - } - IFC4X32.IfcReinforcingElement = IfcReinforcingElement; - class IfcReinforcingElementType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 964333572; - } - } - IFC4X32.IfcReinforcingElementType = IfcReinforcingElementType; - class IfcReinforcingMesh extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.PredefinedType = PredefinedType; - this.type = 2320036040; - } - } - IFC4X32.IfcReinforcingMesh = IfcReinforcingMesh; - class IfcReinforcingMeshType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.MeshLength = MeshLength; - this.MeshWidth = MeshWidth; - this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter; - this.TransverseBarNominalDiameter = TransverseBarNominalDiameter; - this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea; - this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea; - this.LongitudinalBarSpacing = LongitudinalBarSpacing; - this.TransverseBarSpacing = TransverseBarSpacing; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2310774935; - } - } - IFC4X32.IfcReinforcingMeshType = IfcReinforcingMeshType; - class IfcRelAdheresToElement extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedSurfaceFeatures) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingElement = RelatingElement; - this.RelatedSurfaceFeatures = RelatedSurfaceFeatures; - this.type = 3818125796; - } - } - IFC4X32.IfcRelAdheresToElement = IfcRelAdheresToElement; - class IfcRelAggregates extends IfcRelDecomposes { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) { - super(expressID, GlobalId, OwnerHistory, Name, Description); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.RelatingObject = RelatingObject; - this.RelatedObjects = RelatedObjects; - this.type = 160246688; - } - } - IFC4X32.IfcRelAggregates = IfcRelAggregates; - class IfcRoad extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 146592293; - } - } - IFC4X32.IfcRoad = IfcRoad; - class IfcRoadPart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 550521510; - } - } - IFC4X32.IfcRoadPart = IfcRoadPart; - class IfcRoofType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2781568857; - } - } - IFC4X32.IfcRoofType = IfcRoofType; - class IfcSanitaryTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1768891740; - } - } - IFC4X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType; - class IfcSeamCurve extends IfcSurfaceCurve { - constructor(expressID, Curve3D, AssociatedGeometry, MasterRepresentation) { - super(expressID, Curve3D, AssociatedGeometry, MasterRepresentation); - this.Curve3D = Curve3D; - this.AssociatedGeometry = AssociatedGeometry; - this.MasterRepresentation = MasterRepresentation; - this.type = 2157484638; - } - } - IFC4X32.IfcSeamCurve = IfcSeamCurve; - class IfcSecondOrderPolynomialSpiral extends IfcSpiral { - constructor(expressID, Position, QuadraticTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.QuadraticTerm = QuadraticTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 3649235739; - } - } - IFC4X32.IfcSecondOrderPolynomialSpiral = IfcSecondOrderPolynomialSpiral; - class IfcSegmentedReferenceCurve extends IfcCompositeCurve { - constructor(expressID, Segments, SelfIntersect, BaseCurve, EndPoint) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.BaseCurve = BaseCurve; - this.EndPoint = EndPoint; - this.type = 544395925; - } - } - IFC4X32.IfcSegmentedReferenceCurve = IfcSegmentedReferenceCurve; - class IfcSeventhOrderPolynomialSpiral extends IfcSpiral { - constructor(expressID, Position, SepticTerm, SexticTerm, QuinticTerm, QuarticTerm, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.SepticTerm = SepticTerm; - this.SexticTerm = SexticTerm; - this.QuinticTerm = QuinticTerm; - this.QuarticTerm = QuarticTerm; - this.CubicTerm = CubicTerm; - this.QuadraticTerm = QuadraticTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 1027922057; - } - } - IFC4X32.IfcSeventhOrderPolynomialSpiral = IfcSeventhOrderPolynomialSpiral; - class IfcShadingDeviceType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4074543187; - } - } - IFC4X32.IfcShadingDeviceType = IfcShadingDeviceType; - class IfcSign extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 33720170; - } - } - IFC4X32.IfcSign = IfcSign; - class IfcSignType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3599934289; - } - } - IFC4X32.IfcSignType = IfcSignType; - class IfcSignalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1894708472; - } - } - IFC4X32.IfcSignalType = IfcSignalType; - class IfcSineSpiral extends IfcSpiral { - constructor(expressID, Position, SineTerm, LinearTerm, ConstantTerm) { - super(expressID, Position); - this.Position = Position; - this.SineTerm = SineTerm; - this.LinearTerm = LinearTerm; - this.ConstantTerm = ConstantTerm; - this.type = 42703149; - } - } - IFC4X32.IfcSineSpiral = IfcSineSpiral; - class IfcSite extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.RefLatitude = RefLatitude; - this.RefLongitude = RefLongitude; - this.RefElevation = RefElevation; - this.LandTitleNumber = LandTitleNumber; - this.SiteAddress = SiteAddress; - this.type = 4097777520; - } - } - IFC4X32.IfcSite = IfcSite; - class IfcSlabType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2533589738; - } - } - IFC4X32.IfcSlabType = IfcSlabType; - class IfcSolarDeviceType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1072016465; - } - } - IFC4X32.IfcSolarDeviceType = IfcSolarDeviceType; - class IfcSpace extends IfcSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.ElevationWithFlooring = ElevationWithFlooring; - this.type = 3856911033; - } - } - IFC4X32.IfcSpace = IfcSpace; - class IfcSpaceHeaterType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1305183839; - } - } - IFC4X32.IfcSpaceHeaterType = IfcSpaceHeaterType; - class IfcSpaceType extends IfcSpatialStructureElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 3812236995; - } - } - IFC4X32.IfcSpaceType = IfcSpaceType; - class IfcStackTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3112655638; - } - } - IFC4X32.IfcStackTerminalType = IfcStackTerminalType; - class IfcStairFlightType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1039846685; - } - } - IFC4X32.IfcStairFlightType = IfcStairFlightType; - class IfcStairType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 338393293; - } - } - IFC4X32.IfcStairType = IfcStairType; - class IfcStructuralAction extends IfcStructuralActivity { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 682877961; - } - } - IFC4X32.IfcStructuralAction = IfcStructuralAction; - class IfcStructuralConnection extends IfcStructuralItem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1179482911; - } - } - IFC4X32.IfcStructuralConnection = IfcStructuralConnection; - class IfcStructuralCurveAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1004757350; - } - } - IFC4X32.IfcStructuralCurveAction = IfcStructuralCurveAction; - class IfcStructuralCurveConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, AxisDirection) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.AxisDirection = AxisDirection; - this.type = 4243806635; - } - } - IFC4X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection; - class IfcStructuralCurveMember extends IfcStructuralMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 214636428; - } - } - IFC4X32.IfcStructuralCurveMember = IfcStructuralCurveMember; - class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.Axis = Axis; - this.type = 2445595289; - } - } - IFC4X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying; - class IfcStructuralCurveReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.PredefinedType = PredefinedType; - this.type = 2757150158; - } - } - IFC4X32.IfcStructuralCurveReaction = IfcStructuralCurveReaction; - class IfcStructuralLinearAction extends IfcStructuralCurveAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1807405624; - } - } - IFC4X32.IfcStructuralLinearAction = IfcStructuralLinearAction; - class IfcStructuralLoadGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.type = 1252848954; - } - } - IFC4X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup; - class IfcStructuralPointAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.type = 2082059205; - } - } - IFC4X32.IfcStructuralPointAction = IfcStructuralPointAction; - class IfcStructuralPointConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.ConditionCoordinateSystem = ConditionCoordinateSystem; - this.type = 734778138; - } - } - IFC4X32.IfcStructuralPointConnection = IfcStructuralPointConnection; - class IfcStructuralPointReaction extends IfcStructuralReaction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.type = 1235345126; - } - } - IFC4X32.IfcStructuralPointReaction = IfcStructuralPointReaction; - class IfcStructuralResultGroup extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.TheoryType = TheoryType; - this.ResultForLoadGroup = ResultForLoadGroup; - this.IsLinear = IsLinear; - this.type = 2986769608; - } - } - IFC4X32.IfcStructuralResultGroup = IfcStructuralResultGroup; - class IfcStructuralSurfaceAction extends IfcStructuralAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 3657597509; - } - } - IFC4X32.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction; - class IfcStructuralSurfaceConnection extends IfcStructuralConnection { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedCondition = AppliedCondition; - this.type = 1975003073; - } - } - IFC4X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection; - class IfcSubContractResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 148013059; - } - } - IFC4X32.IfcSubContractResource = IfcSubContractResource; - class IfcSurfaceFeature extends IfcFeatureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3101698114; - } - } - IFC4X32.IfcSurfaceFeature = IfcSurfaceFeature; - class IfcSwitchingDeviceType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2315554128; - } - } - IFC4X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType; - class IfcSystem extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.type = 2254336722; - } - } - IFC4X32.IfcSystem = IfcSystem; - class IfcSystemFurnitureElement extends IfcFurnishingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 413509423; - } - } - IFC4X32.IfcSystemFurnitureElement = IfcSystemFurnitureElement; - class IfcTankType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 5716631; - } - } - IFC4X32.IfcTankType = IfcTankType; - class IfcTendon extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.TensionForce = TensionForce; - this.PreStress = PreStress; - this.FrictionCoefficient = FrictionCoefficient; - this.AnchorageSlip = AnchorageSlip; - this.MinCurvatureRadius = MinCurvatureRadius; - this.type = 3824725483; - } - } - IFC4X32.IfcTendon = IfcTendon; - class IfcTendonAnchor extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.type = 2347447852; - } - } - IFC4X32.IfcTendonAnchor = IfcTendonAnchor; - class IfcTendonAnchorType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3081323446; - } - } - IFC4X32.IfcTendonAnchorType = IfcTendonAnchorType; - class IfcTendonConduit extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.PredefinedType = PredefinedType; - this.type = 3663046924; - } - } - IFC4X32.IfcTendonConduit = IfcTendonConduit; - class IfcTendonConduitType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2281632017; - } - } - IFC4X32.IfcTendonConduitType = IfcTendonConduitType; - class IfcTendonType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.SheathDiameter = SheathDiameter; - this.type = 2415094496; - } - } - IFC4X32.IfcTendonType = IfcTendonType; - class IfcTrackElementType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 618700268; - } - } - IFC4X32.IfcTrackElementType = IfcTrackElementType; - class IfcTransformerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1692211062; - } - } - IFC4X32.IfcTransformerType = IfcTransformerType; - class IfcTransportElementType extends IfcTransportationDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2097647324; - } - } - IFC4X32.IfcTransportElementType = IfcTransportElementType; - class IfcTransportationDevice extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1953115116; - } - } - IFC4X32.IfcTransportationDevice = IfcTransportationDevice; - class IfcTrimmedCurve extends IfcBoundedCurve { - constructor(expressID, BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) { - super(expressID); - this.BasisCurve = BasisCurve; - this.Trim1 = Trim1; - this.Trim2 = Trim2; - this.SenseAgreement = SenseAgreement; - this.MasterRepresentation = MasterRepresentation; - this.type = 3593883385; - } - } - IFC4X32.IfcTrimmedCurve = IfcTrimmedCurve; - class IfcTubeBundleType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1600972822; - } - } - IFC4X32.IfcTubeBundleType = IfcTubeBundleType; - class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1911125066; - } - } - IFC4X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType; - class IfcValveType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 728799441; - } - } - IFC4X32.IfcValveType = IfcValveType; - class IfcVehicle extends IfcTransportationDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 840318589; - } - } - IFC4X32.IfcVehicle = IfcVehicle; - class IfcVibrationDamper extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1530820697; - } - } - IFC4X32.IfcVibrationDamper = IfcVibrationDamper; - class IfcVibrationDamperType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3956297820; - } - } - IFC4X32.IfcVibrationDamperType = IfcVibrationDamperType; - class IfcVibrationIsolator extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391383451; - } - } - IFC4X32.IfcVibrationIsolator = IfcVibrationIsolator; - class IfcVibrationIsolatorType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3313531582; - } - } - IFC4X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType; - class IfcVirtualElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2769231204; - } - } - IFC4X32.IfcVirtualElement = IfcVirtualElement; - class IfcVoidingFeature extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 926996030; - } - } - IFC4X32.IfcVoidingFeature = IfcVoidingFeature; - class IfcWallType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1898987631; - } - } - IFC4X32.IfcWallType = IfcWallType; - class IfcWasteTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1133259667; - } - } - IFC4X32.IfcWasteTerminalType = IfcWasteTerminalType; - class IfcWindowType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.ParameterTakesPrecedence = ParameterTakesPrecedence; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 4009809668; - } - } - IFC4X32.IfcWindowType = IfcWindowType; - class IfcWorkCalendar extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.WorkingTimes = WorkingTimes; - this.ExceptionTimes = ExceptionTimes; - this.PredefinedType = PredefinedType; - this.type = 4088093105; - } - } - IFC4X32.IfcWorkCalendar = IfcWorkCalendar; - class IfcWorkControl extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.type = 1028945134; - } - } - IFC4X32.IfcWorkControl = IfcWorkControl; - class IfcWorkPlan extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 4218914973; - } - } - IFC4X32.IfcWorkPlan = IfcWorkPlan; - class IfcWorkSchedule extends IfcWorkControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.CreationDate = CreationDate; - this.Creators = Creators; - this.Purpose = Purpose; - this.Duration = Duration; - this.TotalFloat = TotalFloat; - this.StartTime = StartTime; - this.FinishTime = FinishTime; - this.PredefinedType = PredefinedType; - this.type = 3342526732; - } - } - IFC4X32.IfcWorkSchedule = IfcWorkSchedule; - class IfcZone extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.type = 1033361043; - } - } - IFC4X32.IfcZone = IfcZone; - class IfcActionRequest extends IfcControl { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.PredefinedType = PredefinedType; - this.Status = Status; - this.LongDescription = LongDescription; - this.type = 3821786052; - } - } - IFC4X32.IfcActionRequest = IfcActionRequest; - class IfcAirTerminalBoxType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1411407467; - } - } - IFC4X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType; - class IfcAirTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3352864051; - } - } - IFC4X32.IfcAirTerminalType = IfcAirTerminalType; - class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1871374353; - } - } - IFC4X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType; - class IfcAlignmentCant extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, RailHeadDistance) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.RailHeadDistance = RailHeadDistance; - this.type = 4266260250; - } - } - IFC4X32.IfcAlignmentCant = IfcAlignmentCant; - class IfcAlignmentHorizontal extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1545765605; - } - } - IFC4X32.IfcAlignmentHorizontal = IfcAlignmentHorizontal; - class IfcAlignmentSegment extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, DesignParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.DesignParameters = DesignParameters; - this.type = 317615605; - } - } - IFC4X32.IfcAlignmentSegment = IfcAlignmentSegment; - class IfcAlignmentVertical extends IfcLinearElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1662888072; - } - } - IFC4X32.IfcAlignmentVertical = IfcAlignmentVertical; - class IfcAsset extends IfcGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.OriginalValue = OriginalValue; - this.CurrentValue = CurrentValue; - this.TotalReplacementCost = TotalReplacementCost; - this.Owner = Owner; - this.User = User; - this.ResponsiblePerson = ResponsiblePerson; - this.IncorporationDate = IncorporationDate; - this.DepreciatedValue = DepreciatedValue; - this.type = 3460190687; - } - } - IFC4X32.IfcAsset = IfcAsset; - class IfcAudioVisualApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1532957894; - } - } - IFC4X32.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType; - class IfcBSplineCurve extends IfcBoundedCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) { - super(expressID); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.type = 1967976161; - } - } - IFC4X32.IfcBSplineCurve = IfcBSplineCurve; - class IfcBSplineCurveWithKnots extends IfcBSplineCurve { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.type = 2461110595; - } - } - IFC4X32.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots; - class IfcBeamType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 819618141; - } - } - IFC4X32.IfcBeamType = IfcBeamType; - class IfcBearingType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3649138523; - } - } - IFC4X32.IfcBearingType = IfcBearingType; - class IfcBoilerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 231477066; - } - } - IFC4X32.IfcBoilerType = IfcBoilerType; - class IfcBoundaryCurve extends IfcCompositeCurveOnSurface { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 1136057603; - } - } - IFC4X32.IfcBoundaryCurve = IfcBoundaryCurve; - class IfcBridge extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.PredefinedType = PredefinedType; - this.type = 644574406; - } - } - IFC4X32.IfcBridge = IfcBridge; - class IfcBridgePart extends IfcFacilityPart { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.UsageType = UsageType; - this.PredefinedType = PredefinedType; - this.type = 963979645; - } - } - IFC4X32.IfcBridgePart = IfcBridgePart; - class IfcBuilding extends IfcFacility { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.CompositionType = CompositionType; - this.ElevationOfRefHeight = ElevationOfRefHeight; - this.ElevationOfTerrain = ElevationOfTerrain; - this.BuildingAddress = BuildingAddress; - this.type = 4031249490; - } - } - IFC4X32.IfcBuilding = IfcBuilding; - class IfcBuildingElementPart extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2979338954; - } - } - IFC4X32.IfcBuildingElementPart = IfcBuildingElementPart; - class IfcBuildingElementPartType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 39481116; - } - } - IFC4X32.IfcBuildingElementPartType = IfcBuildingElementPartType; - class IfcBuildingElementProxyType extends IfcBuiltElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1909888760; - } - } - IFC4X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType; - class IfcBuildingSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 1177604601; - } - } - IFC4X32.IfcBuildingSystem = IfcBuildingSystem; - class IfcBuiltElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1876633798; - } - } - IFC4X32.IfcBuiltElement = IfcBuiltElement; - class IfcBuiltSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.LongName = LongName; - this.type = 3862327254; - } - } - IFC4X32.IfcBuiltSystem = IfcBuiltSystem; - class IfcBurnerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2188180465; - } - } - IFC4X32.IfcBurnerType = IfcBurnerType; - class IfcCableCarrierFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 395041908; - } - } - IFC4X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType; - class IfcCableCarrierSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3293546465; - } - } - IFC4X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType; - class IfcCableFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2674252688; - } - } - IFC4X32.IfcCableFittingType = IfcCableFittingType; - class IfcCableSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1285652485; - } - } - IFC4X32.IfcCableSegmentType = IfcCableSegmentType; - class IfcCaissonFoundationType extends IfcDeepFoundationType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3203706013; - } - } - IFC4X32.IfcCaissonFoundationType = IfcCaissonFoundationType; - class IfcChillerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2951183804; - } - } - IFC4X32.IfcChillerType = IfcChillerType; - class IfcChimney extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3296154744; - } - } - IFC4X32.IfcChimney = IfcChimney; - class IfcCircle extends IfcConic { - constructor(expressID, Position, Radius) { - super(expressID, Position); - this.Position = Position; - this.Radius = Radius; - this.type = 2611217952; - } - } - IFC4X32.IfcCircle = IfcCircle; - class IfcCivilElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1677625105; - } - } - IFC4X32.IfcCivilElement = IfcCivilElement; - class IfcCoilType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2301859152; - } - } - IFC4X32.IfcCoilType = IfcCoilType; - class IfcColumn extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 843113511; - } - } - IFC4X32.IfcColumn = IfcColumn; - class IfcCommunicationsApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 400855858; - } - } - IFC4X32.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType; - class IfcCompressorType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3850581409; - } - } - IFC4X32.IfcCompressorType = IfcCompressorType; - class IfcCondenserType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2816379211; - } - } - IFC4X32.IfcCondenserType = IfcCondenserType; - class IfcConstructionEquipmentResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 3898045240; - } - } - IFC4X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource; - class IfcConstructionMaterialResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 1060000209; - } - } - IFC4X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource; - class IfcConstructionProductResource extends IfcConstructionResource { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.Identification = Identification; - this.LongDescription = LongDescription; - this.Usage = Usage; - this.BaseCosts = BaseCosts; - this.BaseQuantity = BaseQuantity; - this.PredefinedType = PredefinedType; - this.type = 488727124; - } - } - IFC4X32.IfcConstructionProductResource = IfcConstructionProductResource; - class IfcConveyorSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2940368186; - } - } - IFC4X32.IfcConveyorSegmentType = IfcConveyorSegmentType; - class IfcCooledBeamType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 335055490; - } - } - IFC4X32.IfcCooledBeamType = IfcCooledBeamType; - class IfcCoolingTowerType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2954562838; - } - } - IFC4X32.IfcCoolingTowerType = IfcCoolingTowerType; - class IfcCourse extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1502416096; - } - } - IFC4X32.IfcCourse = IfcCourse; - class IfcCovering extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1973544240; - } - } - IFC4X32.IfcCovering = IfcCovering; - class IfcCurtainWall extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3495092785; - } - } - IFC4X32.IfcCurtainWall = IfcCurtainWall; - class IfcDamperType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3961806047; - } - } - IFC4X32.IfcDamperType = IfcDamperType; - class IfcDeepFoundation extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3426335179; - } - } - IFC4X32.IfcDeepFoundation = IfcDeepFoundation; - class IfcDiscreteAccessory extends IfcElementComponent { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1335981549; - } - } - IFC4X32.IfcDiscreteAccessory = IfcDiscreteAccessory; - class IfcDiscreteAccessoryType extends IfcElementComponentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2635815018; - } - } - IFC4X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType; - class IfcDistributionBoardType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 479945903; - } - } - IFC4X32.IfcDistributionBoardType = IfcDistributionBoardType; - class IfcDistributionChamberElementType extends IfcDistributionFlowElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1599208980; - } - } - IFC4X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType; - class IfcDistributionControlElementType extends IfcDistributionElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.type = 2063403501; - } - } - IFC4X32.IfcDistributionControlElementType = IfcDistributionControlElementType; - class IfcDistributionElement extends IfcElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1945004755; - } - } - IFC4X32.IfcDistributionElement = IfcDistributionElement; - class IfcDistributionFlowElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3040386961; - } - } - IFC4X32.IfcDistributionFlowElement = IfcDistributionFlowElement; - class IfcDistributionPort extends IfcPort { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.FlowDirection = FlowDirection; - this.PredefinedType = PredefinedType; - this.SystemType = SystemType; - this.type = 3041715199; - } - } - IFC4X32.IfcDistributionPort = IfcDistributionPort; - class IfcDistributionSystem extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 3205830791; - } - } - IFC4X32.IfcDistributionSystem = IfcDistributionSystem; - class IfcDoor extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.OperationType = OperationType; - this.UserDefinedOperationType = UserDefinedOperationType; - this.type = 395920057; - } - } - IFC4X32.IfcDoor = IfcDoor; - class IfcDuctFittingType extends IfcFlowFittingType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 869906466; - } - } - IFC4X32.IfcDuctFittingType = IfcDuctFittingType; - class IfcDuctSegmentType extends IfcFlowSegmentType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3760055223; - } - } - IFC4X32.IfcDuctSegmentType = IfcDuctSegmentType; - class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2030761528; - } - } - IFC4X32.IfcDuctSilencerType = IfcDuctSilencerType; - class IfcEarthworksCut extends IfcFeatureElementSubtraction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3071239417; - } - } - IFC4X32.IfcEarthworksCut = IfcEarthworksCut; - class IfcEarthworksElement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1077100507; - } - } - IFC4X32.IfcEarthworksElement = IfcEarthworksElement; - class IfcEarthworksFill extends IfcEarthworksElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3376911765; - } - } - IFC4X32.IfcEarthworksFill = IfcEarthworksFill; - class IfcElectricApplianceType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 663422040; - } - } - IFC4X32.IfcElectricApplianceType = IfcElectricApplianceType; - class IfcElectricDistributionBoardType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2417008758; - } - } - IFC4X32.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType; - class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3277789161; - } - } - IFC4X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType; - class IfcElectricFlowTreatmentDeviceType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2142170206; - } - } - IFC4X32.IfcElectricFlowTreatmentDeviceType = IfcElectricFlowTreatmentDeviceType; - class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1534661035; - } - } - IFC4X32.IfcElectricGeneratorType = IfcElectricGeneratorType; - class IfcElectricMotorType extends IfcEnergyConversionDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1217240411; - } - } - IFC4X32.IfcElectricMotorType = IfcElectricMotorType; - class IfcElectricTimeControlType extends IfcFlowControllerType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 712377611; - } - } - IFC4X32.IfcElectricTimeControlType = IfcElectricTimeControlType; - class IfcEnergyConversionDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1658829314; - } - } - IFC4X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice; - class IfcEngine extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2814081492; - } - } - IFC4X32.IfcEngine = IfcEngine; - class IfcEvaporativeCooler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3747195512; - } - } - IFC4X32.IfcEvaporativeCooler = IfcEvaporativeCooler; - class IfcEvaporator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 484807127; - } - } - IFC4X32.IfcEvaporator = IfcEvaporator; - class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 1209101575; - } - } - IFC4X32.IfcExternalSpatialElement = IfcExternalSpatialElement; - class IfcFanType extends IfcFlowMovingDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 346874300; - } - } - IFC4X32.IfcFanType = IfcFanType; - class IfcFilterType extends IfcFlowTreatmentDeviceType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1810631287; - } - } - IFC4X32.IfcFilterType = IfcFilterType; - class IfcFireSuppressionTerminalType extends IfcFlowTerminalType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4222183408; - } - } - IFC4X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType; - class IfcFlowController extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2058353004; - } - } - IFC4X32.IfcFlowController = IfcFlowController; - class IfcFlowFitting extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 4278956645; - } - } - IFC4X32.IfcFlowFitting = IfcFlowFitting; - class IfcFlowInstrumentType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 4037862832; - } - } - IFC4X32.IfcFlowInstrumentType = IfcFlowInstrumentType; - class IfcFlowMeter extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2188021234; - } - } - IFC4X32.IfcFlowMeter = IfcFlowMeter; - class IfcFlowMovingDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3132237377; - } - } - IFC4X32.IfcFlowMovingDevice = IfcFlowMovingDevice; - class IfcFlowSegment extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 987401354; - } - } - IFC4X32.IfcFlowSegment = IfcFlowSegment; - class IfcFlowStorageDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 707683696; - } - } - IFC4X32.IfcFlowStorageDevice = IfcFlowStorageDevice; - class IfcFlowTerminal extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2223149337; - } - } - IFC4X32.IfcFlowTerminal = IfcFlowTerminal; - class IfcFlowTreatmentDevice extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3508470533; - } - } - IFC4X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice; - class IfcFooting extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 900683007; - } - } - IFC4X32.IfcFooting = IfcFooting; - class IfcGeotechnicalAssembly extends IfcGeotechnicalElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2713699986; - } - } - IFC4X32.IfcGeotechnicalAssembly = IfcGeotechnicalAssembly; - class IfcGrid extends IfcPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.UAxes = UAxes; - this.VAxes = VAxes; - this.WAxes = WAxes; - this.PredefinedType = PredefinedType; - this.type = 3009204131; - } - } - IFC4X32.IfcGrid = IfcGrid; - class IfcHeatExchanger extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3319311131; - } - } - IFC4X32.IfcHeatExchanger = IfcHeatExchanger; - class IfcHumidifier extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2068733104; - } - } - IFC4X32.IfcHumidifier = IfcHumidifier; - class IfcInterceptor extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4175244083; - } - } - IFC4X32.IfcInterceptor = IfcInterceptor; - class IfcJunctionBox extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2176052936; - } - } - IFC4X32.IfcJunctionBox = IfcJunctionBox; - class IfcKerb extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, Mountable) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.Mountable = Mountable; - this.type = 2696325953; - } - } - IFC4X32.IfcKerb = IfcKerb; - class IfcLamp extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 76236018; - } - } - IFC4X32.IfcLamp = IfcLamp; - class IfcLightFixture extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 629592764; - } - } - IFC4X32.IfcLightFixture = IfcLightFixture; - class IfcLinearPositioningElement extends IfcPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.type = 1154579445; - } - } - IFC4X32.IfcLinearPositioningElement = IfcLinearPositioningElement; - class IfcLiquidTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1638804497; - } - } - IFC4X32.IfcLiquidTerminal = IfcLiquidTerminal; - class IfcMedicalDevice extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1437502449; - } - } - IFC4X32.IfcMedicalDevice = IfcMedicalDevice; - class IfcMember extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1073191201; - } - } - IFC4X32.IfcMember = IfcMember; - class IfcMobileTelecommunicationsAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2078563270; - } - } - IFC4X32.IfcMobileTelecommunicationsAppliance = IfcMobileTelecommunicationsAppliance; - class IfcMooringDevice extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 234836483; - } - } - IFC4X32.IfcMooringDevice = IfcMooringDevice; - class IfcMotorConnection extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2474470126; - } - } - IFC4X32.IfcMotorConnection = IfcMotorConnection; - class IfcNavigationElement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2182337498; - } - } - IFC4X32.IfcNavigationElement = IfcNavigationElement; - class IfcOuterBoundaryCurve extends IfcBoundaryCurve { - constructor(expressID, Segments, SelfIntersect) { - super(expressID, Segments, SelfIntersect); - this.Segments = Segments; - this.SelfIntersect = SelfIntersect; - this.type = 144952367; - } - } - IFC4X32.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve; - class IfcOutlet extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3694346114; - } - } - IFC4X32.IfcOutlet = IfcOutlet; - class IfcPavement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1383356374; - } - } - IFC4X32.IfcPavement = IfcPavement; - class IfcPile extends IfcDeepFoundation { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.ConstructionType = ConstructionType; - this.type = 1687234759; - } - } - IFC4X32.IfcPile = IfcPile; - class IfcPipeFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 310824031; - } - } - IFC4X32.IfcPipeFitting = IfcPipeFitting; - class IfcPipeSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3612865200; - } - } - IFC4X32.IfcPipeSegment = IfcPipeSegment; - class IfcPlate extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3171933400; - } - } - IFC4X32.IfcPlate = IfcPlate; - class IfcProtectiveDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 738039164; - } - } - IFC4X32.IfcProtectiveDevice = IfcProtectiveDevice; - class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 655969474; - } - } - IFC4X32.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType; - class IfcPump extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 90941305; - } - } - IFC4X32.IfcPump = IfcPump; - class IfcRail extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3290496277; - } - } - IFC4X32.IfcRail = IfcRail; - class IfcRailing extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2262370178; - } - } - IFC4X32.IfcRailing = IfcRailing; - class IfcRamp extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3024970846; - } - } - IFC4X32.IfcRamp = IfcRamp; - class IfcRampFlight extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3283111854; - } - } - IFC4X32.IfcRampFlight = IfcRampFlight; - class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots { - constructor(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) { - super(expressID, Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec); - this.Degree = Degree; - this.ControlPointsList = ControlPointsList; - this.CurveForm = CurveForm; - this.ClosedCurve = ClosedCurve; - this.SelfIntersect = SelfIntersect; - this.KnotMultiplicities = KnotMultiplicities; - this.Knots = Knots; - this.KnotSpec = KnotSpec; - this.WeightsData = WeightsData; - this.type = 1232101972; - } - } - IFC4X32.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots; - class IfcReinforcedSoil extends IfcEarthworksElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3798194928; - } - } - IFC4X32.IfcReinforcedSoil = IfcReinforcedSoil; - class IfcReinforcingBar extends IfcReinforcingElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.SteelGrade = SteelGrade; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.PredefinedType = PredefinedType; - this.BarSurface = BarSurface; - this.type = 979691226; - } - } - IFC4X32.IfcReinforcingBar = IfcReinforcingBar; - class IfcReinforcingBarType extends IfcReinforcingElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.NominalDiameter = NominalDiameter; - this.CrossSectionArea = CrossSectionArea; - this.BarLength = BarLength; - this.BarSurface = BarSurface; - this.BendingShapeCode = BendingShapeCode; - this.BendingParameters = BendingParameters; - this.type = 2572171363; - } - } - IFC4X32.IfcReinforcingBarType = IfcReinforcingBarType; - class IfcRoof extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2016517767; - } - } - IFC4X32.IfcRoof = IfcRoof; - class IfcSanitaryTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3053780830; - } - } - IFC4X32.IfcSanitaryTerminal = IfcSanitaryTerminal; - class IfcSensorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 1783015770; - } - } - IFC4X32.IfcSensorType = IfcSensorType; - class IfcShadingDevice extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1329646415; - } - } - IFC4X32.IfcShadingDevice = IfcShadingDevice; - class IfcSignal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 991950508; - } - } - IFC4X32.IfcSignal = IfcSignal; - class IfcSlab extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1529196076; - } - } - IFC4X32.IfcSlab = IfcSlab; - class IfcSolarDevice extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3420628829; - } - } - IFC4X32.IfcSolarDevice = IfcSolarDevice; - class IfcSpaceHeater extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1999602285; - } - } - IFC4X32.IfcSpaceHeater = IfcSpaceHeater; - class IfcStackTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1404847402; - } - } - IFC4X32.IfcStackTerminal = IfcStackTerminal; - class IfcStair extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 331165859; - } - } - IFC4X32.IfcStair = IfcStair; - class IfcStairFlight extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.NumberOfRisers = NumberOfRisers; - this.NumberOfTreads = NumberOfTreads; - this.RiserHeight = RiserHeight; - this.TreadLength = TreadLength; - this.PredefinedType = PredefinedType; - this.type = 4252922144; - } - } - IFC4X32.IfcStairFlight = IfcStairFlight; - class IfcStructuralAnalysisModel extends IfcSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.OrientationOf2DPlane = OrientationOf2DPlane; - this.LoadedBy = LoadedBy; - this.HasResults = HasResults; - this.SharedPlacement = SharedPlacement; - this.type = 2515109513; - } - } - IFC4X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel; - class IfcStructuralLoadCase extends IfcStructuralLoadGroup { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.PredefinedType = PredefinedType; - this.ActionType = ActionType; - this.ActionSource = ActionSource; - this.Coefficient = Coefficient; - this.Purpose = Purpose; - this.SelfWeightCoefficients = SelfWeightCoefficients; - this.type = 385403989; - } - } - IFC4X32.IfcStructuralLoadCase = IfcStructuralLoadCase; - class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.AppliedLoad = AppliedLoad; - this.GlobalOrLocal = GlobalOrLocal; - this.DestabilizingLoad = DestabilizingLoad; - this.ProjectedOrTrue = ProjectedOrTrue; - this.PredefinedType = PredefinedType; - this.type = 1621171031; - } - } - IFC4X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction; - class IfcSwitchingDevice extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1162798199; - } - } - IFC4X32.IfcSwitchingDevice = IfcSwitchingDevice; - class IfcTank extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 812556717; - } - } - IFC4X32.IfcTank = IfcTank; - class IfcTrackElement extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3425753595; - } - } - IFC4X32.IfcTrackElement = IfcTrackElement; - class IfcTransformer extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3825984169; - } - } - IFC4X32.IfcTransformer = IfcTransformer; - class IfcTransportElement extends IfcTransportationDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1620046519; - } - } - IFC4X32.IfcTransportElement = IfcTransportElement; - class IfcTubeBundle extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3026737570; - } - } - IFC4X32.IfcTubeBundle = IfcTubeBundle; - class IfcUnitaryControlElementType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3179687236; - } - } - IFC4X32.IfcUnitaryControlElementType = IfcUnitaryControlElementType; - class IfcUnitaryEquipment extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4292641817; - } - } - IFC4X32.IfcUnitaryEquipment = IfcUnitaryEquipment; - class IfcValve extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4207607924; - } - } - IFC4X32.IfcValve = IfcValve; - class IfcWall extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2391406946; - } - } - IFC4X32.IfcWall = IfcWall; - class IfcWallStandardCase extends IfcWall { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3512223829; - } - } - IFC4X32.IfcWallStandardCase = IfcWallStandardCase; - class IfcWasteTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4237592921; - } - } - IFC4X32.IfcWasteTerminal = IfcWasteTerminal; - class IfcWindow extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.OverallHeight = OverallHeight; - this.OverallWidth = OverallWidth; - this.PredefinedType = PredefinedType; - this.PartitioningType = PartitioningType; - this.UserDefinedPartitioningType = UserDefinedPartitioningType; - this.type = 3304561284; - } - } - IFC4X32.IfcWindow = IfcWindow; - class IfcActuatorType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 2874132201; - } - } - IFC4X32.IfcActuatorType = IfcActuatorType; - class IfcAirTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1634111441; - } - } - IFC4X32.IfcAirTerminal = IfcAirTerminal; - class IfcAirTerminalBox extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 177149247; - } - } - IFC4X32.IfcAirTerminalBox = IfcAirTerminalBox; - class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2056796094; - } - } - IFC4X32.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery; - class IfcAlarmType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 3001207471; - } - } - IFC4X32.IfcAlarmType = IfcAlarmType; - class IfcAlignment extends IfcLinearPositioningElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.PredefinedType = PredefinedType; - this.type = 325726236; - } - } - IFC4X32.IfcAlignment = IfcAlignment; - class IfcAudioVisualAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 277319702; - } - } - IFC4X32.IfcAudioVisualAppliance = IfcAudioVisualAppliance; - class IfcBeam extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 753842376; - } - } - IFC4X32.IfcBeam = IfcBeam; - class IfcBearing extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4196446775; - } - } - IFC4X32.IfcBearing = IfcBearing; - class IfcBoiler extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 32344328; - } - } - IFC4X32.IfcBoiler = IfcBoiler; - class IfcBorehole extends IfcGeotechnicalAssembly { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 3314249567; - } - } - IFC4X32.IfcBorehole = IfcBorehole; - class IfcBuildingElementProxy extends IfcBuiltElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1095909175; - } - } - IFC4X32.IfcBuildingElementProxy = IfcBuildingElementProxy; - class IfcBurner extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2938176219; - } - } - IFC4X32.IfcBurner = IfcBurner; - class IfcCableCarrierFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 635142910; - } - } - IFC4X32.IfcCableCarrierFitting = IfcCableCarrierFitting; - class IfcCableCarrierSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3758799889; - } - } - IFC4X32.IfcCableCarrierSegment = IfcCableCarrierSegment; - class IfcCableFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1051757585; - } - } - IFC4X32.IfcCableFitting = IfcCableFitting; - class IfcCableSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4217484030; - } - } - IFC4X32.IfcCableSegment = IfcCableSegment; - class IfcCaissonFoundation extends IfcDeepFoundation { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3999819293; - } - } - IFC4X32.IfcCaissonFoundation = IfcCaissonFoundation; - class IfcChiller extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3902619387; - } - } - IFC4X32.IfcChiller = IfcChiller; - class IfcCoil extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 639361253; - } - } - IFC4X32.IfcCoil = IfcCoil; - class IfcCommunicationsAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3221913625; - } - } - IFC4X32.IfcCommunicationsAppliance = IfcCommunicationsAppliance; - class IfcCompressor extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3571504051; - } - } - IFC4X32.IfcCompressor = IfcCompressor; - class IfcCondenser extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2272882330; - } - } - IFC4X32.IfcCondenser = IfcCondenser; - class IfcControllerType extends IfcDistributionControlElementType { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ApplicableOccurrence = ApplicableOccurrence; - this.HasPropertySets = HasPropertySets; - this.RepresentationMaps = RepresentationMaps; - this.Tag = Tag; - this.ElementType = ElementType; - this.PredefinedType = PredefinedType; - this.type = 578613899; - } - } - IFC4X32.IfcControllerType = IfcControllerType; - class IfcConveyorSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3460952963; - } - } - IFC4X32.IfcConveyorSegment = IfcConveyorSegment; - class IfcCooledBeam extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4136498852; - } - } - IFC4X32.IfcCooledBeam = IfcCooledBeam; - class IfcCoolingTower extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3640358203; - } - } - IFC4X32.IfcCoolingTower = IfcCoolingTower; - class IfcDamper extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4074379575; - } - } - IFC4X32.IfcDamper = IfcDamper; - class IfcDistributionBoard extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3693000487; - } - } - IFC4X32.IfcDistributionBoard = IfcDistributionBoard; - class IfcDistributionChamberElement extends IfcDistributionFlowElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1052013943; - } - } - IFC4X32.IfcDistributionChamberElement = IfcDistributionChamberElement; - class IfcDistributionCircuit extends IfcDistributionSystem { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.LongName = LongName; - this.PredefinedType = PredefinedType; - this.type = 562808652; - } - } - IFC4X32.IfcDistributionCircuit = IfcDistributionCircuit; - class IfcDistributionControlElement extends IfcDistributionElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1062813311; - } - } - IFC4X32.IfcDistributionControlElement = IfcDistributionControlElement; - class IfcDuctFitting extends IfcFlowFitting { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 342316401; - } - } - IFC4X32.IfcDuctFitting = IfcDuctFitting; - class IfcDuctSegment extends IfcFlowSegment { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3518393246; - } - } - IFC4X32.IfcDuctSegment = IfcDuctSegment; - class IfcDuctSilencer extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1360408905; - } - } - IFC4X32.IfcDuctSilencer = IfcDuctSilencer; - class IfcElectricAppliance extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1904799276; - } - } - IFC4X32.IfcElectricAppliance = IfcElectricAppliance; - class IfcElectricDistributionBoard extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 862014818; - } - } - IFC4X32.IfcElectricDistributionBoard = IfcElectricDistributionBoard; - class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3310460725; - } - } - IFC4X32.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice; - class IfcElectricFlowTreatmentDevice extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 24726584; - } - } - IFC4X32.IfcElectricFlowTreatmentDevice = IfcElectricFlowTreatmentDevice; - class IfcElectricGenerator extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 264262732; - } - } - IFC4X32.IfcElectricGenerator = IfcElectricGenerator; - class IfcElectricMotor extends IfcEnergyConversionDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 402227799; - } - } - IFC4X32.IfcElectricMotor = IfcElectricMotor; - class IfcElectricTimeControl extends IfcFlowController { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1003880860; - } - } - IFC4X32.IfcElectricTimeControl = IfcElectricTimeControl; - class IfcFan extends IfcFlowMovingDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3415622556; - } - } - IFC4X32.IfcFan = IfcFan; - class IfcFilter extends IfcFlowTreatmentDevice { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 819412036; - } - } - IFC4X32.IfcFilter = IfcFilter; - class IfcFireSuppressionTerminal extends IfcFlowTerminal { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 1426591983; - } - } - IFC4X32.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal; - class IfcFlowInstrument extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 182646315; - } - } - IFC4X32.IfcFlowInstrument = IfcFlowInstrument; - class IfcGeomodel extends IfcGeotechnicalAssembly { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 2680139844; - } - } - IFC4X32.IfcGeomodel = IfcGeomodel; - class IfcGeoslice extends IfcGeotechnicalAssembly { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.type = 1971632696; - } - } - IFC4X32.IfcGeoslice = IfcGeoslice; - class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 2295281155; - } - } - IFC4X32.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit; - class IfcSensor extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4086658281; - } - } - IFC4X32.IfcSensor = IfcSensor; - class IfcUnitaryControlElement extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 630975310; - } - } - IFC4X32.IfcUnitaryControlElement = IfcUnitaryControlElement; - class IfcActuator extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 4288193352; - } - } - IFC4X32.IfcActuator = IfcActuator; - class IfcAlarm extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 3087945054; - } - } - IFC4X32.IfcAlarm = IfcAlarm; - class IfcController extends IfcDistributionControlElement { - constructor(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) { - super(expressID, GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag); - this.GlobalId = GlobalId; - this.OwnerHistory = OwnerHistory; - this.Name = Name; - this.Description = Description; - this.ObjectType = ObjectType; - this.ObjectPlacement = ObjectPlacement; - this.Representation = Representation; - this.Tag = Tag; - this.PredefinedType = PredefinedType; - this.type = 25142252; - } - } - IFC4X32.IfcController = IfcController; - })(IFC4X3 || (IFC4X3 = {})); - - // dist/helpers/log.ts - var LogLevel; - (function(LogLevel2) { - LogLevel2[LogLevel2["LOG_LEVEL_DEBUG"] = 0] = "LOG_LEVEL_DEBUG"; - LogLevel2[LogLevel2["LOG_LEVEL_INFO"] = 1] = "LOG_LEVEL_INFO"; - LogLevel2[LogLevel2["LOG_LEVEL_WARN"] = 2] = "LOG_LEVEL_WARN"; - LogLevel2[LogLevel2["LOG_LEVEL_ERROR"] = 3] = "LOG_LEVEL_ERROR"; - LogLevel2[LogLevel2["LOG_LEVEL_OFF"] = 4] = "LOG_LEVEL_OFF"; - })(LogLevel || (LogLevel = {})); - var WebIFCWasm; - if (typeof self !== "undefined" && self.crossOriginIsolated) { - try { - WebIFCWasm = require_web_ifc_mt(); - } catch (ex) { - WebIFCWasm = require_web_ifc(); - } - } else - WebIFCWasm = require_web_ifc(); math.vec2(); math.vec3();